Библиотека ESL позволяет гибко управлять Freeswitch через сокеты.
Для сборки библиотеки необходимо предварительно установить пакеты:
# dnf groupinstall "Development Tools"
# dnf install python3-devel
# dnf install libcurl-devel openssl-devel
Переходим в каталог с исходными кодами и собираем пакет ESL для Python3:
# cd /usr/src/freeswitch/libs/esl/
# make pymod
# cp python/_ESL.so /usr/lib64/python3.9/site-packages/
# cp python/ESL.py /usr/lib64/python3.9/site-packages/
Включаем возможность работы с сокетами в Freeswitch:
# nano /etc/freeswitch/autoload_configs/modules.conf.xml
Следующая строчка должна быть раскомментирована:
<load module="mod_event_socket"/>
Конфигурационный файл модуля mod_event_socket
# nano /etc/freeswitch/autoload_configs/event_socket.conf.xml
Тут определяются пароли доступа к сервису ESL, прослушиваемый порт.
Можно все оставить по умолчанию или изменить пароль подключения.
После изменений конфигурации, нужно рестартовать Freeswitch
# systemctl restart freeswitch
Для проверки создаем файл соединения с Python:
# nano testesl.py
Содержимое:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import string
import sys
from ESL import ESLconnection
esl = ESLconnection("127.0.0.1","8021","ClueCon")
if esl.connected():
print("Подключение к FreeSWITCH успешно!")
else:
print("Не удалось подключиться к FreeSWITCH.")
if esl.connected:
esl.events("plain", "all");
while 1:
event = esl.recvEvent()
if event:
# Выводим содержимое события
print("Получено событие:")
print(event.serialize())
Теперь после запуска сервера:
# python3 testesl.py
Мы будем получать все события:
Подключение к FreeSWITCH успешно!
Получено событие:
Event-Name: HEARTBEAT
Core-UUID: f78a248f-4d85-4d36-a773-424267bc7761
FreeSWITCH-Hostname: testkvs
FreeSWITCH-Switchname: testkvs
...
Получено событие:
Event-Name: RE_SCHEDULE
Core-UUID: f78a248f-4d85-4d36-a773-424267bc7761
FreeSWITCH-Hostname: testkvs
FreeSWITCH-Switchname: testkvs
...
Для сборки библиотеки необходимо предварительно установить пакеты:
# dnf groupinstall "Development Tools"
# dnf install python3-devel
# dnf install libcurl-devel openssl-devel
Переходим в каталог с исходными кодами и собираем пакет ESL для Python3:
# cd /usr/src/freeswitch/libs/esl/
# make pymod
# cp python/_ESL.so /usr/lib64/python3.9/site-packages/
# cp python/ESL.py /usr/lib64/python3.9/site-packages/
Включаем возможность работы с сокетами в Freeswitch:
# nano /etc/freeswitch/autoload_configs/modules.conf.xml
Следующая строчка должна быть раскомментирована:
<load module="mod_event_socket"/>
Конфигурационный файл модуля mod_event_socket
# nano /etc/freeswitch/autoload_configs/event_socket.conf.xml
Тут определяются пароли доступа к сервису ESL, прослушиваемый порт.
Можно все оставить по умолчанию или изменить пароль подключения.
После изменений конфигурации, нужно рестартовать Freeswitch
# systemctl restart freeswitch
Для проверки создаем файл соединения с Python:
# nano testesl.py
Содержимое:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import string
import sys
from ESL import ESLconnection
esl = ESLconnection("127.0.0.1","8021","ClueCon")
if esl.connected():
print("Подключение к FreeSWITCH успешно!")
else:
print("Не удалось подключиться к FreeSWITCH.")
if esl.connected:
esl.events("plain", "all");
while 1:
event = esl.recvEvent()
if event:
# Выводим содержимое события
print("Получено событие:")
print(event.serialize())
Теперь после запуска сервера:
# python3 testesl.py
Мы будем получать все события:
Подключение к FreeSWITCH успешно!
Получено событие:
Event-Name: HEARTBEAT
Core-UUID: f78a248f-4d85-4d36-a773-424267bc7761
FreeSWITCH-Hostname: testkvs
FreeSWITCH-Switchname: testkvs
...
Получено событие:
Event-Name: RE_SCHEDULE
Core-UUID: f78a248f-4d85-4d36-a773-424267bc7761
FreeSWITCH-Hostname: testkvs
FreeSWITCH-Switchname: testkvs
...
Комментариев нет:
Отправить комментарий