Как и для IAX, конфигурационный файл SIP (sip.conf) содержит информацию о конфигурации для каналов, работающих по протоколу SIP. Заголовки описаний каналов формируются словом, заключенным в квадратные скобки ([ ] ), опять же, за исключением раздела [general], в котором задаются глобальные параметры SIP. Не скупитесь на комментарии в файле sip.conf. Текст комментария начинается с точки с запятой; все, что располагается справа от нее, будет проигнорировано.
Общие параметры SIP
В разделе [general] файла sip.conf должны использоваться следующие опции:
allowexternalinvites
Если задано значение no, эта настройка деактивирует отправку сообщений INVITE и REFER нелокальным доменам. Смотрите настройку
domain.
allowexternalinvites=yes|no allowguest
Если задано значение no, этот параметр запрещает гостевые SIP-со- единения. По умолчанию они разрешены. SIP обычно требует аутентификацию, но можно принимать вызовы от пользователей, которые не поддерживают аутентификацию (то есть для которых не задано значение в поле secret). Некоторые SIP- устройства (такие, как Cisco Call Manager v4.1) не поддерживают аутентификацию, поэтому они не смогут устанавливать соединения, если задано allowguest=no: allowguest=no|yes allowoverlap
Если задано значение no, деактивирован набор в режиме наложения:
allowoverlap=no|yes allowsubscribe
Разрешает или запрещает внешним устройствам подписываться на получение информации о состоянии добавочного номера (заданное в приоритете hint). Значение по умолчанию - yes:
allowsubscribe=yes|no
allowtransfers
Значение no деактивирует переадресацию для всех SIP-вызовов, кроме тех, для которых она активирована специально:
allowtransfers=no|yes
alwaysauthreject
Если эта опция активирована, любое отклонение INVITE или REGISTER Asterisk будет сопровождать сообщением 401 Unauthorized, а не предоставлять вызывающему абоненту информацию о наличии соответствующего user или peer для этого запроса:
alwaysauthreject=no|yes
autodomain
Задайте для этой опции значение yes, тогда Asterisk будет добавлять имя локального хоста и локальные IP-адреса в список доменов:
autodomain=yes|no
bindaddr и bindport
Эти необязательные параметры позволяют задавать IP-интерфейс и порт, на которые вы желаете принимать SIP-соединения. Если данные параметры опущены, будет задан порт 5060 и все IP-адреса вашей системы Asterisk будут принимать входящие SIP-соединения. Если задано несколько адресов привязки, соединения будут слушать только эти интерфейсы. Значение 0.0.0.0 указывает Asterisk слушать все интерфейсы: bindaddr=0.0.0.0 bindport=5060 buggymwi
Эта настройка позволяет Asterisk отправлять уведомления об ожидающих сообщениях на определенные SIP-телефоны Cisco, прошивка которых не обеспечивает полной поддержки индикации ожидающих сообщений, описанной в документации RFC для Интернета. Активируйте эту опцию, чтобы не получать сообщения об ошибках при отправке MWI-сообщений на телефоны с таким недостатком: buggymwi=no|yes callevents
Задайте значение yes, если вы хотите, чтобы SIP формировал события интерфейса Manager. Это важно при наличии внешних программ, использующих интерфейс Asterisk Manager, таких как Flash Operator Panel:
callevents=yes
checkmwi
Эта опция определяет интервал времени по умолчанию, в секундах, между проверками почтовых ящиков для равноправных участников:
checkmwi=30
compactheaders
Для параметра compactheaders можно задать значение yes или no. Если задано yes, для SIP-заголовков будет использоваться компактный формат. Это может потребоваться, когда размер SIP-заголовка больше максимального размера передаваемого блока данных (Maximum Transmission Unit, MTU) ваших IP- заголовков, что приводит к фрагментации IP-пакета. Не используйте эту опцию, если не знаете, что делаете:
compactheaders=yes|no defaultexpiry
Задает срок действия SIP-регистрации по умолчанию, в секундах, для входящих и исходящих регистраций. Клиент обычно задает это значение при первой регистрации, поэтому значение по умолчанию будет использоваться, только если клиент не задал собственное значение. Если вы регистрируетесь на другом сервере агента пользователя (User Agent Server, UAS), этот срок регистрации будет передан на дальний конец:
defaultexpiry=300
directrtpsetup
Эта настройка конфигурирует прямое установление соединения в реальном масштабе времени между двумя конечными точками без необходимости повторного обмена сообщениями INVITE.
directrtpsetup=yes|no
На момент написания данной книги параметр directrtpsetup все еще считается экспериментальным, и поэтому вы не должны активировать его, если полностью не осознаете последствий этого действия. Эта опция не будет работать для видеосессий и в случаях, когда вызываемая сторона посылает полезную нагрузку RTP и FMTP-заголовки в ответе 200 OK, что не соответствует запросу INVITE вызывающего абонента.
domain
Определяет домен по умолчанию для данного сервера Asterisk. Если определен этот параметр, Asterisk допускает отправку сообщений INVITE и REFER только нелокальным доменам. Получить список локальных доменов можно с помощью CLI-команды sip show domains:
dumphistory
Для параметра dumphistory можно задать значение yes или no, чтобы активировать или деактивировать вывод отчета по истории SIP в конце диалогового окна SIP. SIP-история записывается в канал протоколирования DEBUG:
dumphistory=yes|no
externhost
Параметр externhost принимает в качестве аргумента полное имя домена. Если Asterisk выполняется за NAT, SIP-заголовок, как правило, будет использовать внутренний IP-адрес, присвоенный серверу. Если вы зададите эту опцию, Asterisk будет периодически выполнять DNS-поиск по имени хоста и замещать внутренний IP-адрес на тот, который был возвращен в результате DNS-поиска:
В системах, находящихся в производственной эксплуатации, не рекомендуется использовать externhost, потому что в случае изменения IP-адреса сервера в SIP-заголовках будет указываться неверный IP-адрес вплоть до следующего поиска. Вместо этого рекомендуется использовать параметр externip.
externip