Превращаем «стационарный» номер от МГТС в подвижную связь
Работу с провайдером МГТС для физических лиц обсуждают на многих ресурсах в сети. Одной из опций, кроме традиционного доступа в интернет и телевидения является домашний телефон с кодом города (499 в моём случае). Поделюсь своим опытом в превращении "стационарной" связи в подвижную и надеюсь это будет полезным для интересующихся этим вопросом.
Сразу скажу что МГТС у меня подключен через Mikrotik 960PGS и SFP-модуль D-Link DPN-100. Возможно позже напишу про само подключение с помощью такого железа, но сейчас расскажу про настройку домашнего телефона, который будет с вами везде, где есть интернет или мобильная связь.
МГТС подключает абонентов телефонии по технологии SIP через свои сервера с "серыми" IP адресами. Поддержка этого провайдера, как всем известно, на все вопросы отвечает, - что это стационарная связь и точка! Это не так. В моём случае сервер регистрации SIP имеет адрес 192.168.69.9, в процессе функционирования задействуются и другие SIP сервера из адресного пространства 192.168.0.0/16. SIP-Телефония работает через VLAN-5, адрес получаем по DHCP. На мой роутер МГТС выдаёт на этот VLAN один из двух адресов которые мне, понятно уже давно известны. По этому на роутере прописаны два статических маршрута и с изменением адреса проблем не возникает. Ниже выдержки из конфига моего Mikrotik'а, которые касаются непосредственно VLAN-5:
/interface vlan
add interface="sfp1 - mgts" name="vlan.5/5(VID/PRI)" vlan-id=5
/ip dhcp-client
add add-default-route=no dhcp-options=clientid,clientid disabled=no \
interface="vlan.5/5(VID/PRI)" use-peer-dns=no use-peer-ntp=no
/ip firewall filter
add action=accept chain=forward in-interface="vlan.5/5(VID/PRI)"
/ip firewall nat
add action=masquerade chain=srcnat log=yes out-interface="vlan.5/5(VID/PRI)"
/ip route
#это динамический маршрут получаемый по DHCP. Бывает или
add distance=1 dst-address=10.*.*.*/19 gateway="vlan.5/5(VID/PRI)" \
pref-src=10.*.*.11 scope=10
#или
add distance=1 dst-address=10.*.*.*/19 gateway="vlan.5/5(VID/PRI)" \
pref-src=10.*.*.12 scope=10
#Ниже по две записи статических маршрутов для двух разных адресов, как писалось выше.
add distance=1 dst-address=10.*.*.1/32 gateway=10.*.*.1 pref-src=\
10.*.*.11 scope=10
add distance=1 dst-address=192.168.0.0/16 gateway=10.*.*.1 pref-src=\
10.*.*.11
add distance=1 dst-address=10.*.*.1/32 gateway=10.*.*.1 pref-src=\
10.*.*.12 scope=10
add distance=1 dst-address=192.168.0.0/16 gateway=10.*.*.1 pref-src=\
10.*.*.12
Такого конфига для SIP от МГТС оказалось вполне достаточно.
Управляет всем сервер Free PBX развёрнутый на Hyper-V. Серверу выделено два интерфейса:
1-й смотрит в LAN и через роутер регистрируется на SIP-сервере МГТС
2-й смотрит в WAN с "белым" IP от другого провайдера (не МГТС), для подключения меня к нему откуда угодно.
Есть ещё VoIP-GSM шлюз, который тоже задействован в некоторых сценариях.
Ниже выдержки из конфигов FreePBX относящихся к SIP-транку МГТС
sip_registrations.conf
register=+7499*******@msk.ims.mgts.ru:password:+7499*******@msk.ims.mgts.ru@192.168.69.9/+7499*******
sip_additional.conf
[mgts-in]
context=from-trunk-sip-mgts-out
[mgts-out]
type=peer
host=192.168.69.9
fromuser=+7499*******
fromdomain=msk.ims.mgts.ru
context=from-trunk-sip-mgts-out
Так же в Free-PBX необходимо прописать статический IP4 маршрут в подсеть 192.168.0.0/16
Понимание какой должна быть строка регистрации у МГТС заставило не одну ночь провести в поисках на просторах рунета и анализе трафика между FreePBX - МГТС, и между VoIP-GSM шлюзом - МГТС, для выявления различий.
Дело в том что VoIPGSM-шлюз без проблем регистрировался на сервере SIP, без бубна и сложных ритуалов ) Когда различие стало понятно (что строка регистрации разная), обнаружил верный формат на одном из просмотренных за всё время исследований сайте. Все ресурсы на которых была найдена ценная информация по вопросу указаны в конце статьи.
На разных ресурсах по разному инструктируют как получить пароль SIP для регистрации в не зашифрованном виде. Мной была использована утилита "grep". Когда уже был получен root на GPON-роутере от МГТС (RV6699 V2), пароль был взят прямо из ОЗУ, подключённой к сети и SIP-серверу железки, командой:
grep -c 3 user=+7499*******@msk.ims.mgts.ru ./dev/ram
Теперь мой Xaomi MI MIX 2S, имеющий штатный SIP-клиент умеет делать исходящие и принимать входящие вызовы от МГТС везде, где есть доступ в сеть. Если доступа к сети нет то Free-PBX при недоступности внутреннего номера маршрутизирует звонок на VoIP-GSM шлюз для попытки дозвона через сим-карту шлюза.
Ресурсы которые мне были полезны в процессе:
http://ws-e.ru/index.php/unix-os/5-freepbx-i-mgts (здесь нашёл верный формат строки регистрации на SIP сервере)
Спасибо за внимание! Надеюсь, был полезен! Если будет интересно напишу как подключался к GPON от МГТС Через Mikrotik с SFP-модулем.
Кому будет интересно, отправлю интересующие конфиги Mikrotik и Free-PBX на почту.