Страница 1 из 1

Долбаный Ростелеком

Добавлено: 04 дек 2013, 11:32
gofer_k
Всем привет.
Пришлось мне тут на днях делать стык по сипу с Ростелекомом сделал конечно но как то костыльно получилось.
Вот какие параметры они мне дали:
адрес для регистрации 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
Все как бы работает но чето эти костыли меня напрягают может есть более православное решение?

Re: Долбаный Ростелеком

Добавлено: 04 дек 2013, 11:39
Vlad1983
insecure=port,invite как раз позволяет принимать входящие с порта отличного от того что в параметре port
так что забейте в оба пира port=5062
тогда в диалплане можно будет использовать имена пиров

сколько IP у оператора столько и будет пиров

Re: Долбаный Ростелеком

Добавлено: 04 дек 2013, 11:43
gofer_k
Я тоже так думал нифига не прокатывает с портом пока тупо не пропишешь 5060 не работает

Re: Долбаный Ростелеком

Добавлено: 04 дек 2013, 11:45
gofer_k
а почему не прокатывает host=dynamic в настройках пира ?

Re: Долбаный Ростелеком

Добавлено: 04 дек 2013, 12:17
Vlad1983
gofer_k писал(а):Я тоже так думал нифига не прокатывает с портом пока тупо не пропишешь 5060 не работает
не рассказывайте сказки вы пробовали когда был один при потому и не проходили входящие
gofer_k писал(а):а почему не прокатывает host=dynamic в настройках пира ?
описано в документации

Re: Долбаный Ростелеком

Добавлено: 04 дек 2013, 12:38
gofer_k
Ну да пробовал когда был 1 пир.
Щас попробую с двумя.