Как стать автором
Обновить

Freeswitch: инициируем звонок через HTTP запрос

У нас есть база данных с телефонами, у нас есть VoIP телефоны (или софтфоны), у нас есть замечательный FreeSwitch и мы хотим инициировать звонок из базы, чтобы не набирать номер вручную.

Некоторые VoIP телефоны позволяют выполнять нажатие клавиш через HTTP запрос к внутреннему веб-серверу, а у кое-какого производителя на букву «D» для этого даже не нужна никакая авторизация. Однако синтаксис запроса у каждого производителя свой, что не очень удобно. Гораздо проще решить это через запрос к FreeSwitch.

Во-первых, надо включить модуль mod_xml_rpc, т.е. раскомментировать его загрузку в conf/autoload_configs/modules.conf.xml. После этого редактируем по своему вкусу несложные настройки (порт, пользователь, пароль) самого модуля в xml_rpc.conf.xml.

После перезапуска FreeSwitch веб-сервер заработает. Как таковой он сам по себе довольно удобен для выполнения команд, т.к. выводит результат в виде таблицы, что гораздо нагляднее той же консоли.

Синтаксис довольно простой:

http://192.168.0.1/webapi/

Если команда содержит больше чем одно слово, то первое и второе слово разделяются знаком вопроса, а остальные пробелами.
Например:

http://192.168.0.1/webapi/sofia?status%20profile%20internal


Теперь переходим непосредственно к делу. Идея в том, чтобы инициировать звонок (originate) на телефон сотрудника (007), а потом состоявшийся вызов переводить в план набора для исходящих вызовов («default»):

http://192.168.0.1/webapi/originate?{call_timeout=7,call_from_db=true,origination_caller_id_name='call%2078001234567',origination_caller_id_number=007}user/007%20&transfer(78001234567%20XML%20default)


После выполнения такого запроса зазвонит телефон с номером 007, а после взятия трубки звонок поступит в план вызовов ровно так же, как если бы номер 78001234567 непосредственно был набран с этого телефона.

В фигурных скобочках можно указать настройки для первоначального вызова, например свою переменную «call_from_db», благодаря которой в плане набора можно отличить такие звонки от обычных и как-то по особому их обработать.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.