Шрифт:
IAX
Конфигурационный файл IAX (iax.conf) содержит всю конфигурационную информацию, необходимую Asterisk для создания и управления каналами, работающими по протоколу IAX. Разделы файла отделены заголовками, сформированными словом, заключенным в квадратные скобки ([]). Имя в скобках будет именем канала за одним исключением: раздел [general] не является каналом, это область, где определяются глобальные параметры протокола.
В данном разделе рассматриваются различные общие и специальные настройки канала, определяемые в файле iax.conf. Мы опишем каждый параметр, а затем приведем пример его использования. Некоторые опции могут иметь несколько действительных аргументов. Список этих аргументов, разделенных символом вертикальной черты (|), приводится рядом с опцией. Например, запись bandwidth=low|medium|high означает, что параметр bandwidth принимает в качестве аргумента одно из значений: low, medium или high.
Комментарии можно вставлять в любом месте файла iax.conf. Текст комментария начинается с точки с запятой (;). Все, что располагается справа от точки с запятой, будет проигнорировано обработчиком Asterisk. Комментарии могут использоваться достаточно активно.
Общие настройки IAX
Первой незакомментированной строкой в файле iax.conf должен быть заголовок [general]. Параметры в этом разделе будут применяться ко всем соединениям, использующим данный протокол, если не определено другое в описании конкретного канала. Поскольку некоторые из этих настроек могут определяться для канала индивидуально, меткой (глобальный) мы обозначили настройки, которые всегда глобальны, а меткой (канал) - те, которые могут задаваться для каждого канала в отдельности. Если параметр задается в разделе [general], его не надо определять для каждого канала; его значение становится значением по умолчанию. Помните, что определение параметра в разделе [general] не запрещает задавать ему другое значение для конкретного канала; это просто делает данное значение значением по умолчанию. Также нельзя забывать, что отсутствие задания этих параметров может в некоторых случаях приводить к использованию системных значений по умолчанию.
Вот параметры, которые могут быть сконфигурированы: accountcode (канал)
Код учетной записи может определяться для каждого пользователя. Если задан, этот код учетной записи будет присваиваться записи вызова, если не задан код учетной записи конкретного пользователя. Заданное имя accountcode будет использоваться как имя файла в формате CSV в папке /var/log/asterisk/cdr-csv/, где хранятся записи параметров вызовов (Call Detail Records, CDRs) для соединений типа user/peer/friend:
accountcode=iax-имяпользователя adsi (канал)
Поддержка ADSI (Analog Display Services Interface - интерфейс сервисов для аналогового дисплея) может быть активирована только при наличии совместимого с ADSI телекоммуникационного оборудования на стороне клиента (CPE-оборудования): adsi=yes|no allow и disallow (канал)
Могут быть разрешены или запрещены определенные кодеки, что позволяет разработчику системы задавать перечень используемых кодеков. allow и disallow также могут быть определены для канала отдельно. Помните, что выражения allow в разделе [general] будут распространяться на все каналы, для которых не переопределено disallow=all. Согласование кодеков ведется в порядке их задания.
Лучшей практикой считается определять disallow=all, а затем в выражениях allow явно задавать каждый кодек, который вы желаете использовать. Если ничего не задано, предполагается allow=all:
disallow=all allow=ulaw allow=gsm allow=ilbc
amaflags (канал)
Система автоматической регистрации сообщений (Automatic Message Accounting, AMA) описана в наборе документов компании Telcordia, зарегистрированных как FR-AMA-1. Эти документы определяют стандартные механизмы формирования и передачи CDR. Можно задать один из четырех флагов AMA, который будет применяться ко всем IAX-соединениям:
am flags=default|omit|billing|documentation authdebug (глобальный)
Можно свести до минимума объем записи параметров аутентификации, отключив его с помощью authdebug=no. Запись параметров аутентификации активирована по умолчанию, если не отключена явно:
authdebug=no autokill (глобальный)
Чтобы максимально сократить опасность зависания в условиях недоступности хоста, можно задать для параметра autokill значение yes, тогда любое новое соединение будет разорвано при отсутствии подтверждения ACK в течение 2000 мс. (Очевидно, что это не рекомендуется для хостов с большой задержкой.) Вместо yes можно указать время ожидания в миллисекундах перед тем, как будет принято решение о недоступности равноправного участника сети. Параметр autokill задает время ожидания для всех равноправных участников, работающих по протоколу IAX2, но с помощью команды qualify его можно сконфигурировать для каждого равноправного участника в отдельности: autokill=1500 bandwidth (канал)
bandwidth - это сокращенная запись, которая поможет избежать применения disallow=all и множества выражений allow для задания используемых кодеков. Допустимыми опциями являются:
high
Допускаются все медиа-кодеки (G.723.1, GSM, plaw, alaw, G.726, ADPCM, slinear, LPC10, G.729, Speex, iLBC).
medium
Допускаются все кодеки, кроме slinear, plaw и alaw.
low
Допускаются все медиа-кодеки, кроме G.726 и ADPCM. bandwidth=low|medium|high bindport и bindaddr (глобальные)
Эти необязательные параметры позволяют задавать IP-интерфейс и порт, которые будут принимать IAX-соединения. Если они опущены, будет задан порт 4569, и все IP-адреса системы Asterisk будут принимать входящие IAX-соединения. Если задано несколько адресов привязки, IAX-соединения будет принимать только заданный интерфейс [141] . Использование вместо адреса 0.0.0.0 указывает Asterisk слушать все интерфейсы: bindport=4569 bindaddr=192.168.0.1
codecpriority (канал)
141
В настоящее время Asterisk работает только с одной опцией bindaddr. Если необходимо слушать более одного адреса, придется использовать 0.0.0.0. Обратите внимание, что Asterisk работает в многосетевой среде, но не с многоадресными интерфейсами. Asterisk выбирает интерфейс, с которого будет отправлен пакет, используя таблицу маршрутизации системы, и в качестве исходного применяется основной адрес этого интерфейса.