[Из песочницы] Настройка SIP агента сети IMS (Белтелеком) на маршрутизаторе CISCO
В настоящее время в Беларуси оператор электросвязи Белтелеком усиленно внедряет телефонную связь на базе сети IMS. Предоставляется оборудование в пользование. Представляет оно собой обычный ADSL модем, но со встроенным SIP клиентом.
Но у нас есть CISCO 2951 с поднятой телефонией. Возникла мысль, а можно ли настроить такой телефонный номер без оборудования Белтелеком и напрямую в маршрутизаторе.
При разборе настроек в модеме выяснилось следующее. VoIP подается по отдельному PVC (VCI/VPI=2/35) в режиме IP/DHCP:
Модем получает настройки IP и шлюза по DHCP.
Нам важно запомнить адрес шлюза, для дальнейшей настройки на CISCO.
При заключении договора выдаются следующие данные:
Номер телефона: +37517xxxxxxx
Login: +37517xxxxxxx@ims.beltel.by
Необходимо также узнать пароль к сервису IMS: passIMS. У меня в маршрутизаторе Cisco установлена ADSL2 and ADSL2 High-Speed WAN Interface Cards.
Настраиваем сначала подключение по нужному PVC (2/35).
interface ATM0/1/0.2 point-to-point
ip address dhcp
no ip proxy-arp
ip nat outside
ip virtual-reassembly in
atm route-bridged ip
pvc 2/35
encapsulation aal5snap
.02 в имени интерфейса выбрана произвольно, так как у меня уже есть одно соединение на этом же интерфейсе.
sh int atm 0/1/0.2
убеждаемся что интерфейс поднялся и IP адрес получен.
Настройки SIP серверов тоже можно увидеть в модеме, если предварительно в telnet дать следующую команду: sendcmd 3 webd setconfig voippagedisp y.
Будем использовать один из SIP серверов, а именно 10.56.0.9. Далее необходимо прописать маршруты.
ip route 10.56.0.9 255.255.255.255 10.233.64.1
ip route 10.56.0.10 255.255.255.255 10.233.64.1
ip route 10.56.0.11 255.255.255.255 10.233.64.1
10.56.0.10 и 10.56.0.11 — это адрес RTP сервера обслуживающего аудио поток. Так как ims.beltel.by не имеет в DNS записи, то прописываем ее руками.
ip host ims.beltel.by 10.56.0.9
Теперь переходим к непосредственной настройки sip-ua. Здесь есть особенность, авторизация должна проходить с указанием домена, т.е. вида +37517xxxxxxx@ims.beltel.by. Поэтому используем еще параметр number.
sip-ua
credentials number +37517xxxxxxx username +37517xxxxxxx@ims.beltel.by password PassIMS realm ims.beltel.by
authentication username +37517xxxxxxx password PassIMS realm ims.beltel.by
retry invite 3
retry response 3
retry bye 3
retry cancel 3
retry register 5
registrar dns:ims.beltel.by:5060 expires 3600 auth-realm ims.beltel.by
sip-server dns:ims.beltel.by:5060
connection-reuse
host-registrar
Об успешной регистрации будет видно из команды:
sh sip-ua register status
Далее создаем dial-peer для исходящих звонков.
dial-peer voice 8017 voip
description #toIMS#
translation-profile outgoing fromIMS
destination-pattern 8017[2,3,5].T
session protocol sipv2
session target sip-server
session transport udp
voice-class codec 1
dtmf-relay rtp-nte
no vad
Необходимо также обязательно подменять свой внутренний номер на номер выданный Белтелекомом, чтобы звонок обслуживался. Это делается через translation-profile.
voice translation-rule 1
rule 1 /.*/ /+37517xxxxxxx/
voice translation-profile fromIMS
translate calling 1
Так как у меня используются телефоны Cisco 6921, то для входящего звонка просто прописан параметр secondary на внутреннем номере.
ephone-dn 1 dual-line
number 1234 secondary +37517xxxxxxx no-reg both
Таким образом мы получаем SIPовский номер в нашу телефонную сеть без дополнительного стороннего оборудования и в цифровом виде.
Update: С недавнего времени Белтелеком начал работать по UDP протоколу. Поэтому для входящих соединений уже не получится вписать secondary номер. Необходимо делать dial-peer с входящим правилом.
Примерно такой:
dial-peer voice 9192 voip
description #Incoming_IMS#
translation-profile incoming incomIMS
session protocol sipv2
session target dns:ims.beltel.by
session transport udp
incoming called-number +37517xxxxxxx
voice-class codec 1
dtmf-relay rtp-nte
где translation-profile incoming incomIMS это правило сопоставления номера IMS вашему внутреннему, на который необходимо принять звонок.
Например:
voice translation-rule 5
rule 1 /.*/ /1234/
voice translation-profile incomIMS
translate called 5