Пришлось мне тут на днях делать стык по сипу с Ростелекомом сделал конечно но как то костыльно получилось.
Вот какие параметры они мне дали:
адрес для регистрации xx.xx.xx.3
резервный адрес для регистрации xx.xx.xx.2
порт для регистрации 5062
ну и соответственно логины и пароли для регистрации
Ладно настроил так sip.conf
Код: Выделить всё
register => YYYYY:ZZZZZZZ@xx.xx.xx.3:5062/YYYY
[YYYY]
type=friend
username=YYYY
secret=ZZZZZZZ
host=xx.xx.xx.3
port=5062
fromuser=YYYY
disallow=all
allow=alaw
dtmfmode=inband
cancallforward=yes
context=incoming
insecure=port,invite
qualify=yes
Разбираемся дальше запускаем tcpdump и что мы видим эти говнюки из ростелекома присылают мне invite уже с порта 5060 и с ip xx.xx.xx.2
Короче я должен регитсрироваться по порту 5062 и отправлять инвайты на xx.xx.xx.3:5062,а они мне шлют с ip xx.xx.xx.2:5060
после звонка а их ТП они говорят что от них может прилетать и с Ip xx.xx.xx.2:5060 и с ip xx.xx.xx.3:5060
в итоге если прописываю в настройках пира
Код: Выделить всё
host=xx.xx.xx.2
port=5060
тогда делаю костыль в диалплане
Код: Выделить всё
same => n,Dial(SIP/${EXTEN}@xx.xx.xx.3:5062,,t)
Ладно с портом проблема решена а как быть с ip ?Если от них будет прилетать с ip xx.xx.xx.3
Создал тупо еще один пир короче получилось вот так
Код: Выделить всё
[YYYY]
type=friend
username=YYYY
secret=ZZZZZZZ
host=xx.xx.xx.2
port=5060
fromuser=YYYY
disallow=all
allow=alaw
dtmfmode=inband
cancallforward=yes
context=incoming
insecure=port,invite
qualify=yes
[YYYY.1]
type=friend
username=YYYY
secret=ZZZZZZZ
host=xx.xx.xx.3
port=5060
fromuser=YYYY
disallow=all
allow=alaw
dtmfmode=inband
cancallforward=yes
context=incoming
insecure=port,invite
qualify=yes
Код: Выделить всё
register => YYYYY:ZZZZZZZ@xx.xx.xx.3:5062/YYYY
register => YYYYY:ZZZZZZZ@xx.xx.xx.2:5062/YYYY
Код: Выделить всё
same => n,Dial(SIP/${EXTEN}@xx.xx.xx.3:5062,,t)
same => n,GotoIf($["${DIALSTATUS}" = "BUSY"]?hangup)
same => n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?hangup)
same => n,Set(CALLERID(all)=YYYYY)
same => n,Dial(SIP/${EXTEN}@xx.xx.xx.2:5062,,t)
same => n,GotoIf($["${DIALSTATUS}" = "BUSY"]?hangup)
same => n,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?hangup)
same => n,Congestion(5)
same => n,Hangup
same => n(hangup),Congestion(5)
same => n(hangup),Hangup