null

Назначение поля username в iax.conf

Довольно часто [1], [2], [3], ..., в том числе в официальной документации, при рассмотрении настройки канала IAX2 и синтаксиса файла и iax.conf в asterisk забывают разъяснить назначение поля username узла, и, более того, приводя примеры описания узлов часто опускают или неправильно используют это поле. До тех пор, пока у Вас по IAX2 связано только два узла, это не является проблемой и даже не влияет на работу канала.

Но как только на одном из узлов появится второй IAX2 канал, проблемы не заставят себя ждать. Поведение может варьироваться и, в том числе, зависит от свойств узлов. В моём случае username не был указан ни на одном из трёх связанных последовательно asterisk, и asterisk, на котором было прописано два узла, при получении звонка от первого из узлов, не обращая внимание на IP адрес отправителя использовал имя последнего упомянутого в iax.conf узла, а так как пароли отличались, отказывался принимать звонок с сообщением:

chan_iax2.c: Host A.B.C.D failed to authenticate as PEER2

После указания на всех узлах корректного username всё встало на свои места. При этом надо понимать, что в username не дублируется удалённого узла, как это приводится в примерах выше, а указывается имя, под которым удалённый узел знает этот узел.

Таким образом на узле peer1 секция для узла peer2 должен начинаться с:

[peer2]
username=peer1

А на узле peer2:

[peer1]
username=peer2

С формальной точки зрения наше имя на удалённых узлах может отличаться, и в этом случае в локальном конфигурационном файле может быть указано разное username для разных удалённых узлов.

Коротко о себе:

Работаю в компании Tune-IT и тьютором кафедры Вычислительной техники в СПбГУИТМО.

Очень люблю команду cat, core solaris и IPv6.

Ещё на эту же тему:

Project Schedule Management
Забивание гвоздей микроскопом
Запрос внешних данных в asterisk 1.6
"А я вам не звонил". Реализуем атаку VoIP-spoofing.
Asterisk + Solaris 10