MГТС GPON: SFP ONU + Mikrotik + Asterisk

от автора

Очень кратенько, в дополнение к следующим статьям:

https://habr.com/ru/companies/ruvds/articles/547442/

https://habr.com/ru/articles/724566/

https://habr.com/ru/articles/553118/

MГТС GPON и IPv6

Согласно http://version6.ru/isp/mts — никаких статических ip4, работает только ip4 cgnat + ip6. Из настроек следует только иметь ввиду, что в DHCP client надо включить только запрос префикса (не включать запрос адреса).

IMS VLAN

Перейдем сразу к проблеме, о которую все бьются головой: список серверов прилетает в DHCP option 120. К счастью, эта проблема вполне решается DHCP скриптом. 🙂 Вот и он — https://gist.github.com/cyanide-burnout/433bb6678a5de7824ead68b27cab879c
Скрипт разбирает опцию, правит маршрут, прокомментированный как ims-core. Естественно, от установки маршрута по-умолчанию следует отказаться. Попутно скрипт отгружает список SIP-серверов на хост с Asterisk.

Автоматизация настроек Asterisk

Вот и ответная часть подъехала — https://gist.github.com/cyanide-burnout/a7dadea75b18a3c8edc00106ad4f0cca
Запуск этого скрипта инициирует Mikrotik, передавая список SIP-серверов. Скрипт идет SSH-ем на ONU и забирает имя пользователя и пароль, прилетевшие от оператора, переваривает все и создает маленький файл конфигурации, который нужно подключить с помощью #include в pjsip.conf.
Если параметры изменились, он так же вежливо попросит Asterisk перезагрузить конфигурацию pjsip через AMI.

NAT Traversal

Mikrotik имеет вполне неплохой SIP ALG, главное, ему не мешать делать свою работу. Отключите на Mikrotik опцию Direct media в SIP ALG и не используйте external_media_address в настройках pjsip, тогда Mikrotik отлично справится с подстановкой правильных адресов в SIP SDP в зависимости от маршрута.

Dialplan и call setup

В своем dial plan-е я использую очередь с параллельным вызовом всех трубок. Добиться стабильного коннекта на входящем с классическим предответным состоянием линии от МГТС, пока никто не взял трубку мне не удалось, по этому я решил эту проблему переводом линии в ответ с помощью Answer(), пускай телефонные сапамеры послушают музыку, пока вызов дойдет до моего SIP-клиента. Такое решение добавило плюс к борьбе с ними: боты слышат музыку и вешают трубку, а человек, когда нужно, ждет.

Как и обещал, кратенько. Надеюсь, что дальше сами разберетесь.
Если захотите — дополню про борьбу с sip-сканерами и разрешение проблем с мобильным sip-клиентом с push.


ссылка на оригинал статьи https://habr.com/ru/articles/848866/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *