воскресенье, 30 марта 2025 г.

Модули mod_xml_curl, mod_httapi и mod_xml_rpc FREESWITCH

Модуль mod_xml_curl
Этот модуль используется для динамической генерации XML-конфигураций FreeSWITCH через внешний HTTP-сервер.
Загрузка выполняется при старте freeswitch и при выполнении команды reloadxml.
Freeswitch отправялет запрос о том, какую секцию загрузить, например directory или dialplan. В отввет ожидается XML документ куска конфигурации.
По умолчанию модуль не включен в конфигурацию Freeswitch. Проверка:
# fs_cli -x "module_exists mod_xml_curl"
Команда должна вывести "false"
Для установки модуля сначало необходимо его скомпилировать. Заходим в директорию с исходными кодами freeswitch, проводим сборку и установку.
# cd /usr/src/freeswitch
# cd src/mod/xml_int/mod_xml_curl
# make install

Проверка установки модуля:
# ls -l /usr/lib64/freeswitch/mod/ | grep curl
Теперь модуль нужно минимально сконфигурить. Открываем конфигурационный файл:
# nano /etc/freeswitch/autoload_configs/xml_curl.conf.xml
Для проерки достаточно прописать один параметр, определяющий URL, откуда сервер Freeswitch будет подтягивать конфигурацию.
Это параметр gateway-url:
    <binding name="example">
        <param name="gateway-url" value="http://127.0.0.1:8081/fsapi" bindings="dialplan|configuration|directory|phrases"/>
...
</binding>
Теперь проверяем загрузку модуля:
# fs_cli
> load mod_xml_curl

Ответ должен быть "+OK"
Для включения модуля в конфигурацию открываем файл загружаемых модулей:
# nano /etc/freeswitch/autoload_configs/modules.conf.xml
Раскомментируем строчку
<load module="mod_xml_curl"/>

Модуль mod_httapi.
Модуль позволяет интегрировать FreeSWITCH с внешними HTTP-сервисами для обработки вызовов через API.
Запрос на внешний сервер может отправляться при каждом вызове. Freeswitch отправляет на внешний HTTP сервер запрос содержащий, например переменные:
caller_id_number (Номер звонящего), destination_number (Набранный номер).
В ответ Freeswitch должен получить набор инструкций, описывающий обработку вызова. Или набор переменных, которые используются для обработки вызова в диалплане.
По умолчанию модуль включен в конфигурацию Freeswitch. Проверка:
# fs_cli -x "module_exists mod_httapi"
Команда должна вывести "true"
Файл настроек модуля:
# nano /etc/freeswitch/autoload_configs/httapi.conf.xml

Модуль mod_xml_rpc.
Модуль mod_xml_rpc в FreeSWITCH позволяет использовать XML-RPC интерфейс для управления сервером через внешние приложения.
По умолчанию модуль не включен в конфигурацию Freeswitch. Проверка:
# fs_cli -x "module_exists mod_xml_rpc"
Команда должна вывести "false"
Для установки модуля сначала необходимо его скомпилировать. Заходим в директорию с исходными кодами freeswitch, проводим сборку и установку.
# cd /usr/src/freeswitch
# cd src/mod/xml_int/mod_xml_rpc
# make install

Проверка установки:
# ls -l /usr/lib64/freeswitch/mod/ | grep mod_xml_rpc
# fs_cli
> load mod_xml_rpc

Отет должен быть "+OK"
Включаем модуль в загрузку при старте Freeswitch:
# nano /etc/freeswitch/autoload_configs/modules.conf.xml
Раскомментируем строку:
<load module="mod_xml_rpc"/>
Файл настроек модуля:
# nano /etc/freeswitch/autoload_configs/xml_rpc.conf.xml
Тут можно указать логин-пароль для доступа к сервису XML-RPC (по умолчанию freeswitch/works), сменить прослушиваемый порт (по умолчанию 8080) и выставить IP адрес, на котором сервис слушает сеть (по умолчанию 0.0.0.0, установить конкретный IP можно директивой <param name="listen-ip" value="127.0.0.1"/>)
Рестартуем Freeswitch
# systemctl restart freeswitch
Проверка прослушивания порта 8080:
# netstat -ltupn | grep 8080
Проверка выполнения команд
# curl -X GET http://127.0.0.1:8080/webapi/sofia?status%20profile%20internal -u freeswitch:works                          
Name                    internal
Domain Name             N/A
Auto-NAT                false
DBName                  sofia_reg_internal
Pres Hosts              10.0.1.53,10.0.1.53
Dialplan                XML
Context                 public
Challenge Realm         auto_from
.....

Комментариев нет:

Отправить комментарий