Как сделать обратный звонок с сайта с помощью RanCOM

Обратный звонок с сайта это довольно распространенный функционал на современных сайтах. Обычно эта функция реализуется на базе софтовых АТС типа Asterisk. А вот как это сделать, имея только цифровую АТС, это очень интересный вопрос.

Ответить на него попытаемся в этой статье.

Пример совершения звонка из HTML страницы

Исходная конфигурация: АТС Panasonic KX-NCP500RU, Rander Server Plus Ver.5, RanCOM Plus Ver.5, TSP драйвер Ver.4.2.12, Windows Server 2008, Apache сервер с поддержкой PHP, FireFox V.31.0.

Попробуем посмотреть как это возможно на конкретном примере. В нашем случае мы используем АТС Panasonic KX-NCP500RU и программное обеспечение Rander Server Plus с модулем интеграции RanCOM Plus. Это программное обеспечение уже установлено, TSP драйвер так же установлен и мы можем убедиться, что вся система работает исправно, если запустим клиент Rander и выполним все необходимые «Настройки».

Обратите внимание, что сервер Rander не обязательно должен быть установлен на той же машине, где работает WEB сервер, а вот RanCOM должен быть установлен именно на WEB сервере.

Теперь, когда мы убедились, что система полностью работоспособна, можем приступать к изучению возможностей управления сервером Rander и АТС непосредственно из HTML страницы.

Запускаем на WEB сервере командную строку от имени администратора и вводим команду regedit, в результате чего открывается содержание системного реестра. Ищем в системном реестре записи, имеющие отношение к RanCOM.

Как видим, в реестре имеется запись RanderCOM.RanCOM.1. Это означает, что RanCOM установлен на сервере и в системе существует такой COM объект. Запомним это имя для использования его в дальнейшем.

Для начала создадим на какой-нибудь готовой HTML странице окно для ввода номера телефона и его набора:

В браузере это будет выглядеть следующим образом:

В строке «form action=»RanCOM.php» method=»post»» мы использовали ссылку на файл RanCOM.php, который и будет выполнять набор номера.

Создадим файл RanCOM.php с таким кодом:

В этом коде мы сначала создаем новый объект, используя имя COM объекта RanderCOM.RanCOM.1, затем подключаемся к серверу Rander, открываем линию 303 и набираем номер от имени открытой линии 303.
Номер, который мы вводили на HTML странице у нас запомнился в переменной phonenumber. В фале PHP мы создаем аналогичную переменную и присваиваем ей ранее введенное значение phonenumber.
Таким образом, от имени телефона 303 система набирает номер, введенный нами в окне на HTML странице.
Телефон звонит! Все работает! Ура!

Как это работает?

Любой клиент, просматривающий страницу контактов нашего WEB сайта, вводит номер своего телефона в предложенном формате, в результате чего активируется рассмотренный ранее PHP код и модуль RanCOM, установленный на WEB сервере, обращается к серверу Rander и запрашивает у него функцию набора введенного номера от имени открытой линии. Клиент получает на экране браузера уведомление «Номер набирается! Пожалуйста, ожидайте звонок!». Если 303 это системный телефон, то он автоматически включится и начнет набирать номер абонента. После ответа абонента устанавливается соединение.

При этом не важно на каком устройстве мы открываем WEB страницу с контактами и пытаемся заказать обратный звонок. Поскольку все функции выполняются на нашем WEB сервере, а на устройство клиента передаются только результаты, система не зависит от типа используемой клиентской операционной системы.

г.Пермь, 11.09.2014 г. Рабчевский Андрей Николаевич