Добрый день. Есть связка Elastix + 2 goip-4 шлюза. Так уж вышло, что в одной сети их разместить нет возможности и шлюзы стоят удаленно (всё за NATами). Настроил шлюзы в режиме trunk gateway mode. Сигнализация от Elastixa на шлюзы приходит. При звонках через шлюзы, в логах по telnet-у видны инвайты и попытки ответить:
Receive a Message:
INVITE sip:10+1111111@внешний айпи шлюза:5161 SIP/2.0
Via: SIP/2.0/UDP внутренний айпи ластика:5060;branch=z9hG4bK61617774;rport
From: "8000" <sip:8000@внутренний айпи ластика>;tag=as0274c4ce
To: <sip:10+1111111@внешний айпи шлюза:5161>
Call-ID: 59f5ed4e1449e4b90515a692192884d8@192.168.0.133:5060
CSeq: 102 INVITE
Contact: <sip:8000@внутренний айпи ластика:5060>
max-forwards: 70
user-agent: FPBX-2.11.0(11.13.0)
date: Wed, 16 Dec 2015 13:48:21 GMT
supported: replaces
supported: timer
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Content-Type: application/sdp
Content-Length: 285
v=0
o=root 1373057521 1373057521 IN IP4 внутренний айпи ластика
s=Asterisk PBX 11.13.0
c=IN IP4 внутренний айпи ластика
t=0 0
m=audio 16798 RTP/AVP 8 3 0 101
a=rtpmap:8 PCMA/8000
a=rtpmap:3 GSM/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=sendrecv
../src/transport.c:867:transport_rerecv_filter(): is invite msg!
../src/sipmsg.c:2135:sipmsg_get_destination(): sipmsg get destination...
../src/sipmsg.c:2175:sipmsg_get_destination(): message is response!
../src/callback.c:108:send_msg():
Sending Message to внутренний айпи ластика:5060:
SIP/2.0 503 Service Unavailable
Via: SIP/2.0/UDP внутренний айпи ластика:5060;branch=z9hG4bK61617774;rport
From: "8000" <sip:8000@внутренний айпи ластика>;tag=as0274c4ce
To: <sip:10+1111111@внешний айпи шлюза:5161>;tag=871232896
Call-ID: 59f5ed4e1449e4b90515a692192884d8@192.168.0.133:5060
CSeq: 102 INVITE
User-Agent: dble
Content-Length: 0
Под внутренним айпи ластика подразумевается адрес в локальной подсети за натом вида 192.168.Х.Х Под внешним айпи шлюза подразумевается БЕЛЫЙ ip-adress роутера, за которым стоит шлюз. По логам видно, что шлюз шлет ответ на внутренний айпи, что ставит меня в глубокий ступор, так как nat=force_rport установлен и в general прописан externip. Что я мог упустить?
Шлюз уведен на 5161 сознательно, на самом шлюзе так же настроено слушать этот порт.
Пробросы портов есть на всех роутерах (как уже говорил выше сигнализация доходит). Пробросы RTP на роутерах так же сделал, увел их на 10000-10100, как в ластике, так и на шлюзах это прописал.
10+номер который набирали потому, что рутинг происходит по префиксам уже на шлюзе, сами префиксы приписывает ластик.
503 Service Unavailable потому, что в шлюзе нет симкарт, сейчас задача стоит получить ответ на сам ивнайт от ластика=)
Был бы очень благодарен, если бы Вы смогли указать на то, что я упустил. Всем спасибо за ответы.
спросил 2015-12-16 18:05:25 +0400
Аноним
1) обновите firmware шлюзов
2) найдите один из 1000 постов про goip и настройте как описано.
3) если не помогает, купите wr703n за $25, поставьте возле шлюза и сделайте openvpn туннель
Задан: 2015-12-16 18:05:25 +0400
Просмотрен: 588 раз
Обновлен: Dec 17 '15
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
Случайно запостил анонимно. Хотел добавить, что если поставить qualify=yes для транка до шлюза, то на шлюзе сыпятся пакеты с опциями, а вот ответы на них точно так же шлются на внутренний ip, соответственно trunk находится в состоянии unreachable.
Sparkle ( 2015-12-16 18:12:41 +0400 )редактироватьmeral То есть Вы советуете настроить правильно GoIP, хотя некорректно работает трансляция адресов на астериске? Ну логично... Как мне кажется тут нужно копать в сторону почему не происходит подмена сетевого адреса. Вопрос был задан что бы получить подсказку к тому, что я мог упустить.
Sparkle ( 2015-12-17 16:42:21 +0400 )редактироватьКорчое оказалось что это мулька самого FreePBX, он берет параметр externip не из контекста general, а из отдельного файла sip_nat.conf
Sparkle ( 2015-12-18 16:32:37 +0400 )редактировать