Здравствуйте. Elastix 2.4.0 1. Asterisk 1.8.20.
Два транка: sipnet.ru и городской sip Ростелекома.
Две сетевые карты
eth0 - локальная сеть (ip:192.168.0.10/24 gw:192.168.0.1).
eth1 - сеть Ростелекома (172.16.x.50/24 gw:172.16.x.1)
, сервер sip 10.yyy.xxx.100.
Маршрут по умолчанию прописал 192.168.0.1, а так же статический маршрут в файле route-eth1 "route add -net 10.yyy.xxx.0/24 gw 172.16.x.1"
в sip_general_custom добавил
externip=yy.xx.cc.ff
localnet=192.168.0.0/255.255.255.0
nat=yes
canreinvite=no
sip show registry показывает транк РТ registered. Входящие вызовы на транк РТ приходят, но голос идет только в сторону asteriska, обратно тишина. Исходящие не идут. Итог пакеты со стороны РТ знают куда идти, а со стороны астрериска не знают.
Аппаратный sip телефон к сети РТ подключал - входящие/исходящие вызовы работают. Голос идет в обе стороны.
Секаса мана нясяльнике.... Кароч смотреть дебаг и анализировать дампы, а что не так тыкать носом поддержку. Единого рецепта нет - Ростелегом свои ху*нявеи в разных регионах настраивает по разному и кривизна везде разная, но суровая. Опробовано на куче клиентов из разных регионов.
Параметр nat выставьте в "no". Видимо не все понимают работу этого параметра. Укажите externaddr = <ваш внешний IP> На роутере пробросьте UDP порты для RTP. Диапазон пробрасываемых портов можно узнать в конфиге rtp.conf. Можете вовсе в DMZ астериск поставить но не секюрно совсем.
Написали полную ерунду..: в сеть 172.xxx.xxx.xxx и так NAT нет, поскольку ТС последовал совету meral и прописал ее в localnet - там отдельная сетевуха и никакого роутика НЕТ, а глобально nat=no не позволит работать с sipnet (через GW 192.168.0.1/nat). Кроме всего прочего, видны и пробелы понимания работы с транком при регистрации - НЕ НУЖНО только ради этого порты пробрасывать никакие.. Нужно просто делать всё правильно, отключить SIP ALG, прописать верно localnet/externip, directmedia=no. Сколько уже можно об этом?
Zavr2008 (Nov 20 '15)editдобавил externip=yy.xx.cc.ff
Asterisk 1.8.20.
Нужно прописывать externhost=, поскольку параметр externip= в 1.8 уже больше не поддерживается.
Также советую у САМОГО пира поставить directmedia=no, поскольку canreinvite тоже почил в бозе да еще и ставить глобально вредно.
посотрите вот это
http://asterisk-support.ru/question/38386/kak-poniat-chto-proiskhodit-na-asteriske/
валидные опции для нат сейчас вот такие.
; nat = no ; Do no special NAT handling other than RFC3581
; nat = force_rport ; Pretend there was an rport parameter even if there wasn't
; nat = comedia ; Send media to the port Asterisk received it from regardless
; ; of where the SDP says to send it.
; nat = auto_force_rport ; Set the force_rport option if Asterisk detects NAT (default)
; nat = auto_comedia ; Set the comedia option if Asterisk detects NAT
; The nat settings can be combined. For example, to set both force_rport and comedia
; one would set nat=force_rport,comedia.
соответвенно попробуйте другие варианты. также попроюуйте пробросить rtp порты.
Задан: Jan 20 '14
Просмотрен: 2,628 раз
Обновлен: Nov 19 '15
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
неужели это так трудно отформатировать свой вопрос?
zzuz (Jan 20 '14)edit