Добрый день, %username%.
Хочу заранее предупредить всех, кто будет в принципе прав, эта система похожа на стрельбу по воробьям из пушки, но мне хотелось чего-то такого.
Также некоторые элементы в этой схеме подняты не с нуля, они уже существовали и использовались при решении других задач, и мы не будем рассматривать их архитектуру (сервер базы данных и HTTP-сервер), примем как факт, что эти сервисы правильно работают. сдержанный.
На одной из моих работ была поставлена задача перевести внешние линии с gsm-шлюзов (около 30) и приземные линии (100 линий) на IP. Также в связи с невозможностью дальнейшего развития АТС Samsung ids-500 (2 станции), установка IP-телефонов.
В АТС уже было около 600 работающих телефонов.
В настоящее время имеется 190 внешних линий.
Основные требования:
- Использование IP-телефонов с обычными аналоговыми
- Максимальная избыточность вывода с АТС на IP и наоборот.
- Масштабируемость, стабильность, управляемость, гибкость
- Управление IP-телефоном
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-телефония #Разработка систем связи
-
Wifi В Отеле Требование Каждого Клиента
19 Oct, 24 -
День Рождения Javascript
19 Oct, 24 -
Новый Youtube Для Android
19 Oct, 24 -
Самоубийство Vmware Esxi
19 Oct, 24