1) для опции externip был указан не правильный !Р
2) для каждого peer`a необходимы такие опции:
| Код: |
| nat=yes qualify=yes canreinvite=no sipreinvite=no |
| Код: |
| [Nov 12 12:29:07] WARNING[12531]: chan_sip.c:2022 retrans_pkt: Maximum retries exceeded on transmission tuecefzqlrjbchx@host3 for seqno 37 (Critical Response) -- See doc/sip-retransmit.txt. [Nov 12 12:29:07] WARNING[12531]: chan_sip.c:2044 retrans_pkt: Hanging up call tuecefzqlrjbchx@host3 - no reply to our critical packet (see doc/sip-retransmit.txt). |
Такое поведение началось, после переноса всей копии астериска (с заменой в sip.conf IP адресов) в другую сеть, в которой другой NAT (порты 5060 и 10000:20000 открыты).
В нашей сети все работает, эта же копия астериска в другой сети не работает. Что было
| Код: |
| sip_client (softphone) -> asterisk -> NAT -> provider -> ... |
и что стало
| Код: |
| sip_client (softphone) -> NAT(1) -> NAT(2) -> asterisk -> NAT(2) -> provider -> ... |
В певом случаее, sip_client и asterisk находятся в одной локальной сети, во втором, все находятся в разных сетях.
В чем может быть проблема?
Все остальное - следствия
Если уж так хочется с таким количеством натов жить - брать в зубы tcpdump и смотреть последовательно как меняется пакет и что прилетает/улетаемт перед/после каждого ната.
И, если понимания нет, постить сюда логи сигнализации с подробным описанием и логи как минимум с ключами tcpdump -lnvvs0
| Код: |
| sip_client (softphone) -> NAT(1) -> NAT(2) -> asterisk -> provider -> ... |
Я сравнивал sip debug на работающем сервере (до переноса) и после переноса. Все значения (From:, To:) в пакетах подставляются верно.
В первом случае (когда все работает), в поле contact подставляется внешний !Р. А во втором случае, в поле contact подставляется внутренний !Р (( Как я понимаю, должно в обоих вариантах, подставлятся внешний !Р адрес, да?
Порты открыты.
Что такое sip трейс? Это sip debug?
| Yur4ek писал(а): |
| Настраиваете STUN, это протокол прохождения НАТа, на софтфоне. |
STUN - это абсолютно бесполезный протокол, ничего и никуда оно проходить не умеет.
На астерисковском пире включено nat=yes ?
Надо включить его и периодические регистрации на софтфоне (не реже, чем время таймаута неактивных UDP-сессий в натах, например 2-5 минут).
Ну или делать пробросы портов на обоих натах
порты открыты.
Проблема остается.
Как я понял, проблема в том, что: после переноса сервера астериск в другую сеть, клиент (софтфон) оказался для астериска за НАТом, что и является проблемой для передачи звука. Или проблема в НАТе той сети, куда был перенес астериск?
4й вариант подходит. Только, вот где найти ", инструкция прилагается >> " ????????