- База знаний
- Пример файла конфигурации XML для Cisco 8851 phone
- Пример файла конфигурации XML для Cisco 7970 phone
- Пример файла конфигурации XML для Cisco 9971
- Отладка VoIP звонка с Wireshark
- Книги
- Использование поля Diversion в SIP пакете
- Астериск и Н.323
- ISDN release cause codes
- Пример файла конфигурации голосового шлюза Cisco
- Пример конфигурации интерфейса E1 PRI в голосовом шлюзе Cisco
- Аналоговое зло
- Интернациональные телефонные коды стран
- Практикум по интеграции Астериск в комплексе с OpenBSC/Osmocom
- Факс по IP
Параметр файла 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.
Ссылки по теме:
- Asterisk SIP media path: Дополнительная информация, когда медиапотоки должны проходить через сервер Asterisk.
- Каналы в Asterisk
- Файл конфигурации sip.conf
- SIP method invite re-invite: Что такое re-invite в протоколе SIP?
- Asterisk SIP NAT Solutions
- Asterisk | FAQ | Tips & Tricks | Introduction