Файл конфигурации iax.conf


В файле iax.conf вы описываете ваши соединения по протоколу IAX.
Конфигурационные параметры, используемые в файле iax.conf, неплохо описаны в Asterisk handbook.

Настройка IAX клиентов.

Выдержка из примера конфигурации файла IAX.CONF, который идет в дистрибутиве:

Далее Вы можете добавить секции, в которых определяются Ваши пользователи, имена контекстов для исходящих от них вызовов, их имена и пароли, которые будут использоваться для авторизации. Примитивный контроль доступа на основе IP адресов можно осуществлять, используя директивы "permit" и "deny". Есть возможность использования нескольких правил, в этом случае первое определенное правило используется по умолчанию, если нет дальнейших совпадений.

Вы можете переопределить значение caller*ID, в этом случае, при получении вызова Вы можете установить поле Caller*ID в нужное Вам значение, если Вы не доверяете значению, которое предоставил удаленный пользователь.

Для авторизации пользователей поддерживаются три метода: md5, авторизация с использованием незашифрованного пароля (plaintext) и метод с использованием rsa. Самый незащищенный метод - это использование незашифрованного пароля "plaintext", т.к. при этом пароль в неизменном виде передается по сетям связи. В методе "md5" используется схема запрос/ответ с использованием md5 хеша передаваемых данных, но, по прежнему, необходимо на обоих концах соединения хранить пароль в незашифрованном виде. Метод "rsa" позволяет производить авторизацию с использованием однонаправленного шифрования с использованием связки публичного и приватного ключа, где с помощью публичного ключа можно только шифровать данные, но невозможно их расшифровать, а расшифровка данных возможна только при использовании приватного ключа. Если используется авторизация с методом "rsa", параметр "inkeys" определяет список имен публичных ключей для локальной системы, которые могут быть использованы для авторизации удаленного абонента, эти имена должны быть разделены символом ":". Параметр "outkey" - это имя одного приватного ключа, который используется для авторизации на удаленной системе.

Файл публичного ключа имеет имя вида: /var/lib/asterisk/keys/.pub, тогда как приватный ключ именуется как: /var/lib/asterisk/keys/.key. Приватнйы ключ всегда должен быть зашифрован с использованием алгоритма 3DES.


Примеры:


Голосовые кодеки

Нижеприведенные голосовые кодеки Вы можете использовать в качестве аргументов для директив: allow/disallow:
  • g723.1
  • gsm
  • ulaw
  • alaw
  • g726
  • slinear
  • lpc10
  • adpcm
  • g729
  • speex
  • ilbc
  • h261
  • h263
  • all

Управление потоками медиаданных

Указывая параметр notransfer=yes, Вы можете запретить серверу Asterisk исключить себя из пути следования медиаданных между двумя удаленными абонентами и замыкать его между ними напрямую. Это, конечно, влияет на содержимое Ваших (CDR) записей и билинговой информации.
Замечание: Поведение при использовании этого параметра очень похоже на использование параметра canreinvite=no в файле конфигурации sip.conf.

TOS


В качестве альтернативы, Вы можете непосредственно указать какие TOS биты требуется установить:

tos=0x18 ; где tos биты устанавливаются индивидуально и в комбинации из нескольких битов.

Например так:

tos=0x10 = требование минимальных задержек прохождения пакетов (low delay)
tos=0x08 = требование выделения большой полосы пропускания (high throughput)
tos=0x04 = требование высокой надежности доставки пакетов (high reliability)
tos=0x02 = установить ECT бит
tos=0x01 = установить CE бит

или сразу установить насколько бит сразу, например так:

tos=0x18

при этом устанавливается биты требующие наименьших задержек прохождения пакета (low delay) и выделения большой полосы пропускания (high throughput).

Параметр qualify

Для некоторых IAX клиентов — включая firefly, diax, IAXphone, IAXComm — не может быть отслежено их состояние с использованием директивы qualify=1000. Если Вы определите этот параметр, то в CLI консоли Вы увидите примерно такое сообщение:

Peer '2004' is now UNREACHABLE!

Для этих клиентов устанавливайте: qualify=no.

Упрощение формата команды Dial в файле extensions.conf


Хотя, для определения вызовов через IAX каналы, вся информация (имя пользователя, пароль, и т.д.) может быть явно задана для каждой команды "dial" в файле extensions.conf, эта строка для создания вызова может быть упрощена или сокращена, путем помещения всей этой информации в файл iax.conf, и использования для создания исходящего вызова ссылки на имя определенного там абонента:

Dial(IAX2//)

Например, для вызова в IAXtel, вы можете в файле iax.conf создать примерно такую запись:

[iaxtel-outbound]
type=peer
username=
secret=
peercontext=iaxtel
host=iaxtel.com

Тогда можно использовать команду Dial в таком виде:

exten => _1700XXXXXX,1,Dial(IAX2/iaxtel-outbound/${EXTEN})

Замечание: Параметр "peercontext" появился начиная с CVS версии Asterisk от 26-06-2004.

Таблица команд и директив с определением, где их можно использовать.

__Нуждается в обновлении: последний раз редактировалось 14 октября 2004.
Directive Value General Peer __User
allowYYY
disallowYYY
amaflags Y
auth
autocreatepeer
bandwidth YYY
bindaddr Y
bindport Y
callerid
callgroup
context YY
defaultexpirey
defaultip
externip SIP only - N SIP only - N
fromdomain
fromuser
host
incominglimit
jitterbuffer Y
maxjitterbuffer Y
maxexcessbuffer Y
outgoinglimit
inkeys YY
outkey YY
insecure
language
localnet
mailbox
maxexpirey
md5secret YY
notransfer YY
peercontext
pedantic
permit YY
deny YY
pickupgroup
qualify YY
register Y
restrictcid
secret YY
srvlookup
tos YY
trunkfreq Y
trunk YY
trustrpid
type YY
useragent
username
videosupport



Tips

  • Команда "Register" для регистрации на другом IAX сервере должны находиться в секции [general] файла iax.conf.
  • Для создания IAX соединения в транковом режиме, добавьте "trunk=yes" в определение Вашего абонента в файле iax.conf. Транковый IAX канал нуждается в поддержке аппаратного таймера. Для дополнительной информации, смотри: Asterisk timer.
  • Не используйте одновременно "host=dynamic" и "defaultip=111.222.333.444", убедитесь, что используется только один из этих параметров (смотри багрепорты: 558 и 673).
  • Если Вы не используете контроль доступа на основе IP адресов для всех ваших клиентских записей с "type='user", тогда в Вашем файле iax.conf должна содержаться гостевая ("guest") запись, для которой не задано поле secret (без пароля), если Вы хотите, чтобы Ваш сервер Asterisk имел более-менее безопасную конфигурацию. В случае, если у Вас не определена гостевая запись то, когда к Вам поступает соединение с удаленной системы, она может подключиться к Вам без указания имени пользователя (анонимно), в этом случае сервер Asterisk может позволить ей подключиться с любым из паролей, которые определены в файле iax.conf. Это значит, что если у Вас имеется много записей с типом - "type=user" в файле iax.conf и не описана гостевая ("guest") запись, то кто-либо, кто знает хотя бы один пароль для соединения с Вашим сервером, может использовать его для входа под именем пользователя, кому этот пароль принадлежит (т.e. ему не нужно знать одновременно и имя пользователя и его пароль, достаточно знать только пароль). Но, добавление гостевой записи (без пароля), для анонимных входящих вызовов, решает эту проблему.
  • Добавьте последнюю запись в файл iax.conf, не содержащую пароля, для отправки анонимных вызовов в определенный контекст.
  • Если Вы используете механизм realtime, убедитесь, что у Вас нет пользователей с пустым паролем или без установленных параметров permit/deny.
  • Используйте глобальный параметр mailboxdetail=yes, для отправки детальной информации и информации о количестве новых сообщений в голосовом ящике. Эта функция работает для большинства IAX телефонов, например, с AT-320 или с программными клиентами.

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