Pull to refresh

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», благодаря которой в плане набора можно отличить такие звонки от обычных и как-то по особому их обработать.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.
Change theme settings