Asterisk™: будущее телефонии Второе издание - Меггелен Джим Ван
amaflags (для обоих)
Система автоматической регистрации сообщений (Automatic Message Accounting, AMA) описана в документации компании Telcordia, в разделе FR-AMA-1. Эти документы определяют стандартные механизмы формирования и передачи CDR. Можно задать один из четырех флагов AMA (default, omit, billing или documentation), который будет применяться ко всем SIP-соединениям: amaflags=documentation callerid (для обоих)
С помощью параметра callerid можно задать рекомендуемый строковый Caller ID (ID звонящего) для каналов типа user или peer. Если для user задано поле Caller ID, всем звонкам, поступающим по этому каналу, будет присвоен этот Caller ID независимо от того, что посылает вам дальний конец соединения. Если оно задано для peer, вы посылаете запрос дальнему концу на использование этого Caller ID как вашего идентификатора (хотя не располагаете средствами, чтобы проконтролировать это). Если вы хотите, чтобы вызывающие абоненты могли использовать собственные Caller ID (то есть для гостей), убедитесь, что поле callerid не задано: callerid=John Smith <(800) 555-1234> callgroup и pickupgroup (для обоих)
Параметр callgroup используется для назначения описания канала одной или более группам. Опция pickupgroup может использоваться в сочетании с этим параметром, чтобы обеспечить возможность ответа на звонок на данный телефон с другого добавочного номера. Опция pickupgroup используется для определения, вызовы каких групп вызовов может принимать канал, - каналу предоставляется возможность отвечать на вызовы другого канала, если он входит в ту же группу pickupgroup, что и группа вызовов вызываемого канала. По умолчанию перехватить вызовы удаленных добавочных номеров можно, набрав *8 (это можно настроить в файле features.conf):
callgroup=1,3-5 pickupgroup=1,3-5
callingpres (для обоих)
Задает публикацию Caller ID для данного пользователя/равноправного участника сети. Эта настройка принимает одну из следующих опций:
allowed_not_screened
Публикация разрешена, экранирование учетных данных не производится.
allowed_passed_screen
Публикация разрешена, экранирование разрешено.
allowed_failed_screen
Публикация разрешена, экранирование запрещено.
allowed
Публикация разрешена, сетевой номер.
prohib_not_screened
Публикация запрещена, экранирование учетных данных не производится.
prohib_passed_screen
Публикация запрещена, экранирование разрешено.
prohib_failed_screen
Публикация запрещена, экранирование запрещено.
prohib
Публикация запрещена, сетевой номер.
unavailable
Номер недоступен.
=yes|no canreinvite (для обоих)
SIP-протокол пытается соединить конечные точки напрямую. Однако Asterisk должна оставаться на линии передачи между конечными точками, если необходимо определять наличие DTMF (более подробную информацию можно найти в главе 4): canreinvite=no context (для обоих)
Контекст задается в описании канала, чтобы входящие звонки направлялись в соответствующий контекст в extensions.conf, где осуществляется их обработка (см. главы 4 и 5). Для любого канала, соединяющегося с сервером Asterisk, должен быть задан контекст, в который он будет направлен. Контекст обязателен для любого описания канала типа user; если контекст не задан, входящие звонки будут направляться в контекст default:
context=incoming
Необходимо знать о необычном сценарии, который потребует задания контекста для peer. Когда по SIP-каналу поступает вызов, он сначала пытается найти соответствующее описание user (согласно имени пользователя, заданному в квадратных скобках, и паролю). Если он не может найти ни одного подходящего пользователя, он ищет соответствие среди peer по IP- адресу, с которого поступил вызов. Поскольку обычно peer не имеют контекстов, такой вызов в итоге поступит в контекст default. Хотя это будет работать, контекст default не следует использовать для обработки входящих звонков. Выход - определить контекст для каждого peer, который может обрабатывать входящие звонки. Чтобы поэкспериментировать с этим, можете позвонить на свой номер в службе Free World Dialup; вызов вернется прямо к вам.
defaultip (равноправный участник)
Настройка defaultip дополняет host=dynamic. Если хост еще не зарегистрирован на вашем сервере, вы будете пытаться отправлять сообщения по указанному здесь IP-адресу по умолчанию:
defaultip=192.168.1.101 deny (для обоих)
С помощью опции deny можно задавать конкретные IP-адреса и диапазоны. Чтобы ограничить доступ для диапазона IP-адресов, используется маска подсети, например deny=192.168.1.0/255.255.255.0. Также можно запретить все адреса, задав deny=0.0.0.0/0.0.0.0, а затем с помощью команды permit разрешить доступ только определенным адресам. Помните о влиянии на безопасность, которое оказывает данная настройка (см. также permit): deny=0.0.0.0/0.0.0.0 disallow (для обоих) См. allow.
dtmfmode (для обоих)
Параметру dtmfmode могут быть присвоены значения inband, rfc2833 или info. DTMF-коды могут быть отправлены или в полосе частот (как часть аудиопотока), или вне полосы (как сигнальная информация) с помощью методов RFC 2833 или INFO. Метод inband работает надежно только при использовании кодека без сжатия, такого как G.711, plaw или alaw. Рекомендуемым является метод rfc2833; однако некоторые устройства, например производимые компанией Grandstream, поддерживают метод info: dtmfmode=rfc2833
В Asterisk 1.4 был введен DTMF-сигнал переменной длительности (Variable Length DTMF), чтобы Asterisk имела возможность сообщать дальнему концу соединения верную длительность нажатия кнопки на телефоне, подключенном к входящему каналу (согласно RFC 2833 IETF). Более старые системы Asterisk не понимают параметра переменной длины. В старых системах Asterisk DTMF-сигнал, доставляемый через RFC 2833, может быть неправильно интерпретирован, что приводит к странным эффектам, например, в сеансах передачи голосовой почты. Если требуется, чтобы настройка rfc2833 была реализована, как в более старой версии (до 1.4), необходимо добавить опцию rfc2833compensate=yes в описание peer в файле sip.conf, который определяет порядок обмена информацией с вашей системой Asterisk версии до 1.4.
fromdomain (равноправный участник)
Позволяет задавать домен в поле From: SIP-заголовка. Может требоваться некоторыми поставщиками сервисов для аутентификации: fromdomain=my.hostname.tld fromuser (равноправный участник)
Позволяет задавать имя пользователя для аутентификации. Обычно используется имя, заключенное в квадратные скобки в описании канала, но оно может быть переопределено с помощью опции fromuser. Это позволяет обращаться к описанию канала по имени, отличному от того, которое используется для аутентификации: fromuser=john_smith host (равноправный участник)
Конфигурирует хост, с которым должен соединяться данный равноправный участник сети. Используйте полное доменное имя: host=remote.hostname.tld incominglimit (для обоих)
Эта опция ограничивает общее число одновременных звонков для равноправного участника сети или пользователя. Задает максимальное число одновременных исходящих звонков для равноправного участника сети или максимальное число входящих звонков для пользователя. incominglimit=3 insecure (для обоих)
При получении сообщения INVITE от удаленного ресурса Asterisk пытается аутентифицировать строку символов перед знаком @ в строке INVITE, полученную в SIP-заголовке с именем описания канала из sip.conf. Если удаленный конец связи является агентом пользователя, его аутентификация будет проводиться исходя из описания user. Однако, если удаленный конец является прокси-сервисом SIP, он будет аутентифицироваться по записи peer. Когда вызовы поступают от такого провайдера, как Free World Dialup, который выступает в роли прокси для удаленной стороны, фактически вызывающей вас, этот провайдер не может принимать вызов от лица конечной точки. Поскольку было бы непрактичным конфигурировать аутентификацию для каждого FWD-пользователя и поскольку FWD не может отвечать на сообщения 407 Proxy Authentication Required (Необходима аутентификация на прокси), требуется альтернативный способ разрешения приема звонков от этих абонентов. Задавая insecure=invite, вы определите, какому каналу peer ищется соответствие при сравнении IP-адреса или имени хоста и номера порта с предоставленными в поле Contact SIP-заголовка опциями host и port в sip.conf. Если соответствие найдено, исходное сообщение INVITE не станет требовать аутентификации и звонок будет разрешен.