Параметр файла sip.conf: canreinvite


Это параметр для клиентов, которые описаны в файле конфигурации sip.conf, используется для информирования сервера Asterisk о том, что для данного клиента не использовать reinvite процедуру. Запрещение этого метода может потребоваться для корректной работы с некоторым "кривым" аппаратным обеспечением, которое зависает, если у него запрашивают повторный invite, как пример, это ATA 186.

Если инициируется вызов по протоколу SIP, тогда в сообщении INVITE содержиться информация, куда должен отправляться медиапоток. Пользователи или устройства, подключенные к Asterisk, сами по себе являются конечными пунктами этого потока голосовых или видео данных, когда они устанавливают соединение между собой. Когда соединение было подтверждено, сервер Asterisk отправляет еще одно сообщение (re)INVITE, обоим клиентам с информацией, необходимой для того, чтобы медиапотоки, между этими двумя клиентами, шли между ними напрямую.

  • Если хотя бы для одного из клиента установлен параметр canreinvite=NO, сервер Asterisk никогда не будет производить процедуру re-invite.
  • Если клиенты используют различные кодеки, Asterisk не производит процедуру re-invite.
  • Если команда Dial() содержит параметр t или T, Asterisk не производит процедуру re-invite.

'canreinvite=no' блокирует отправку сообщений (re)INVITE, когда соединение уже установлено. Исходя из архивов сообщений рассылок и источника в "Asterisk handbook", точно известно, что Cisco ATA-186 неправильно обрабатывает сообщения (re)INVITE. Также, этот параметр необходим, если клиент и сервер Asterisk находятся по разные стороны маршрутизатора с NAT.

Замечания

  • параметр reinvite=yes/no неправильный, учтите это, если вы это где-либо встретите в примерах файлов конфигурации. Правильный синтаксис - это canreinvite=yes/no
  • Соединение медиапотоков, если два устройства находятся по разные стороны NAT, не очень удачная мысль. Особенное, если оба устройства находятся за NAT. Вы можете использовать связку с SER nathelper, с тех пор, как nathelper.so может подменять приватный IP адрес в поле SDP, которое является частью SIP сообщения re-invite.

Ссылки по теме: