Бывает даже, что нужно заставить такого монстра, как Freeswitch, работать как обычную рацию.
Один говорит, все слушают.
А поможет нам в этом NodeJs и модель модуля npm для взаимодействия с Freeswitch.
В какой-то момент в нашей организации, в большом проекте беспроводной связи, заказчику потребовалось эмулировать поведение рации через VoIP-телефонию.
За основу системы был взят Freeswitch. В целом система связи организована на основе ячеистой сети и, соответственно, нет централизованного сервера; у каждого узла есть свой экземпляр Freeswitch, отвечающий за различные голосовые сценарии.
Задача
В рации, как известно, все очень просто: один человек говорит, а все слушают, что и нужно реализовать.Также необходимо провести конференц-связь для нескольких независимых групп, причем любой абонент может одновременно находиться в нескольких из них.
И естественно, в сети должны быть целевые звонки.
В нашем распоряжении:
- свободный переключатель — пользовательский агент, который при правильном подборе модулей сможет даже приготовить кофе.
- модель - модуль npm для взаимодействия с Freeswitch с помощью Библиотека сокетов событий .
- mod_conference — Модуль FS для создания и работы с голосовыми конференциями.
- mod_sofia — Модуль FS для работы с SIP.
Общая схема
Логика конечно странная и запутанная, но раз заказчик просит, то надо сделать.Примерная структура выглядит так: Общая структура голосовой связи.
SIP-клиент - возможно mod_portaudio и линфон или например баресип.
Местная конференция — это внутренняя конференция для каждого узла, задача которой — поддерживать хитрую логику работы с эмуляцией рации и переключения между глобальными конференциями.
Глобальная конференция - это Генеральная конференция; их может быть несколько, что позволит объединить разных пользователей в разные группы.
Подготовка
Как подключить модель
Подключить модель можно следующим образом:Теги: #node.js #freeswitch #modesl #node.js #Разработка систем связиvar esl = require( "modesl"); var localServer = "localhost"; var localServerPort = 8021; var localServerUser = "ClueCon"; var connectionCallback = function() {
-
Превращаем Ноутбук В Видеорегистратор
19 Oct, 24 -
Календарь Google Покажет Погоду
19 Oct, 24