Freeswitch Пример Из Жизни...

Добрый день, %username%.

Хочу заранее предупредить всех, кто будет в принципе прав, эта система похожа на стрельбу по воробьям из пушки, но мне хотелось чего-то такого.

Также некоторые элементы в этой схеме подняты не с нуля, они уже существовали и использовались при решении других задач, и мы не будем рассматривать их архитектуру (сервер базы данных и HTTP-сервер), примем как факт, что эти сервисы правильно работают. сдержанный.

На одной из моих работ была поставлена задача перевести внешние линии с gsm-шлюзов (около 30) и приземные линии (100 линий) на IP. Также в связи с невозможностью дальнейшего развития АТС Samsung ids-500 (2 станции), установка IP-телефонов.

В АТС уже было около 600 работающих телефонов.

В настоящее время имеется 190 внешних линий.

Основные требования:

  • Использование IP-телефонов с обычными аналоговыми
  • Максимальная избыточность вывода с АТС на IP и наоборот.
  • Масштабируемость, стабильность, управляемость, гибкость
  • Управление IP-телефоном
Коротко об используемом программном обеспечении: FreeSWITCH - маршрутизация звонков, регистрация абонентов, факсы, в общем все функции АТС OpenSIPS — балансировка регистраций, обращений к серверам FreeSWITCH, также при перехвате звонка определяет сервер, на который поступает звонок, и отправляет на него запрос пользователя.

Asterisk — карты DAHDI, логика 0,1%, переадресация с АТС на FreeSWITCH и обратно.

Django — рассылка конфигураций по серверам (mod_xml_curl), конфигурации телефонов и управление всем этим добром.

Я плохо рисую диаграммы, поэтому попробую описать схему так (как оказалось, и писать я не очень хорошо).

Если Вас интересуют более подробные подробности, отвечу дополнительно.

Оборудование: 2 — физические сервера, каждый с двумя платами DAHDI, с которыми работает Asterisk (порт 6060 используется для sip).

FreeSWITCH также установлен на этих же машинах.

АТС расположены в разных серверных комнатах, серверы также распределены по этим серверным комнатам.

Назовем их sip1 и sip2. 1 - виртуальная машина, через нее идет связь с операторами, установлен FreeSWITCH, назовем ее sip0 1 — виртуальная машина, OpenSIPS — наш балансировщик.

Логика: Каждый сервер подключен к каждой АТС по pri, что обеспечивает нам резервирование.

При звонке с АТС Asterisk пытается отправить вызов FreeSWITCH, работающему на этой машине; в случае ошибки отправляем вызов на второй сервер.

Звонки на АТС в принципе следуют аналогичной логике, с единственным исключением: сначала звонок поступает на сервер, который находится рядом с АТС, на которую осуществляется звонок.

То есть, если звонок пришел на sip1, а sip2 находится ближе к АТС2, то звонок сначала отправляется на нее.

Все номера АТС, к которым привязан внешний номер, регистрируются в системе; при звонке с sip0 вставляется соответствующий идентификатор вызывающего абонента; если связи нет, вставляется пилотный номер.

Это было реализовано в виде переменной, зарегистрированной для пользователей out_number и проверенной в диалплане.



${user_data(${caller_id_number}@${domain} var out_number)}

Для номеров VOIP логика та же.

Для внутренних вызовов имя звонящего получается через http-запрос.

mod_cidlookup .

Соответствие номеру телефона и фамилии сотрудника, про АД и 1С отдельный рассказ.

VOIP телефоны - Dlink dph-105, dph-400, grandstream gxp-1405, gxp-2120. Конфигурация на них раздаётся по http, все настройки берём из базы и на лету создаём необходимый файл конфигурации.

В админке пока реализован минимальный функционал, настройка устройств - пользователи, cdr, перезагрузка устройства, управление диалпланом, небольшая статистика за день входящих/исходящих успешных звонков, а также по ошибкам, текущее количество зарегистрированных пользователей и количество активных звонки по серверу.

sip1 и sip2 используют одну и ту же базу данных для регистрации пользователей, голосовой почты, активных вызовов, cdr, хранения переменных.

Вы можете прочитать о масштабируемости и резервировании FreeSWITCH. Корпоративное развертывание На данный момент зарегистрировано 300 SIP пользователей, на АТС 600 пользователей.

Максимальное количество одновременных вызовов на внешние направления — 40. Я понимаю, что этот поток текста не является полным и не описывает картину полностью, однако, поскольку я постоянно откладываю написание, я решил, что лучше будет написать как можно лучше и если эта тема будет интересна, я буду расширять и дополнять это.

Теги: #freeswitch #ip-телефония #Разработка систем связи

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.