• Почему не регистрируется asterisk за NAT (Request sent)?

    Мы также держим свой сервер за NAT. И имели проблемы когда Asterisk не знал свой внешний IP, т.к. он в сигнальных полях указывал локальный IP, то сервер провайдера не разрешал регистрацию.

    Поэтому в sip.conf:
    externip= или externhost=
    и соответственно обновлять при переключении провайдеров.
    Ответ написан
    1 комментарий
  • Retransmission timeout reached on transmission в Asterisk

    @kbdfck
    Если Asterisk находится за натом, должны быть прописаны параметры localnet и externip. В вашем случае конечная точка за натом получает 200 ОК при ответе, но скорее всего ACK на него телефон пытается отправить на анонсированный Asterisk-ом адрес Contact: sip:1000@192.168.1.3:5060, до которого он дойти из-за NAT, естественно, не может. В итоге срабатывает таймер и Asterisk разрывает вызов, т. к. ACK на 200 ОК обязателен.

    То есть либо включите externip=external router ip, чтобы asterisk указывал этот адрес в запросах и ответах на адреса, отличные от указанных в localnet, либо на клиентах включите использование и отсылку опции rport, которая указывает клиенту при выборе адреса сигнализации ориентироваться на данные параметра rport, а не параметры SIP-сообщения.
    Ответ написан
    1 комментарий