Есть ли какие-нибудь эксперты по trixbox / asterisk?
У меня есть установка trixbox, которая отказывается принимать входящие звонки через IAX2 от определенного провайдера VoIP. Первоначально я думал, что это проблема с брандмауэром, но теперь я понял, что это не так. Я пробовал все, что мог придумать (и я не эксперт в этой области), но безуспешно. Вот что я установил:
Еще один TrixBox на отдельном сайте жестяная банка общаться (через IAX2) с этой установкой. Это один из способов, которым я знаю, что это не проблема брандмауэра, и это, похоже, указывает на проблему с поставщиком VoIP, но ...
Провайдер VoIP может успешно работать с установкой SwitchVox, предполагая, что проблема не только в провайдере VoIP. Но...
Та же самая установка SwitchVox также может взаимодействовать с моей «проблемной» Trixbox - еще раз подтверждая, что в Trixbox нет ничего плохого.
Столкнувшись с противоречивыми результатами, я обратился к отладке звездочкой, включение отладки IAX2 показывает, что выполняется попытка подключения - вот пример НОВОГО сообщения, поступающего от поставщика:
Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: NEW Timestamp: 00004ms SCall: 00043 DCall: 00000 [x.x.x.x:4569] VERSION : 2 CALLED NUMBER : 0845[obfuscated] CODEC_PREFS : () CALLING NUMBER : anonymous CALLING PRESNTN : 0 CALLING TYPEOFN : 0 CALLING TRANSIT : 0 CALLING NAME : LANGUAGE : en USERNAME : [obfuscated] FORMAT : 8 CAPABILITY : 65407 ADSICPE : 2 DATE TIME : 2010-12-03 12:18:58
Вот в чем разница. После успешного вызова я вижу подтверждение аутентификации, отправляется сообщение AUTHREQ, за которым следует ответ AUTHREP. Для подключений, которые не работают, Я никогда не видел этого подтверждения аутентификации (ни AUTHREQ, ни AUTHREP).
Тот факт, что сообщение NEW проходит через брандмауэр и правильно принимается Trixbox, подтверждает мое мнение о том, что это не проблема брандмауэра. Поэтому я думаю, что суть проблемы в том, что по какой-то причине мой Trixbox решает, что ему не нравится входящий звонок, и даже не запрашивая удаленный ящик для аутентификации. Что могло бы вызвать это? Как я могу решить эту проблему дальше? Любые предложения с благодарностью получены на данный момент, потому что я натолкнулся на кирпичную стену.
Хорошо, у меня только что это произошло между более старой коробкой PiaF (1.4) и новой, работающей со звездочкой 1.6.
Оказывается, новая звездочка добавила некоторые функции безопасности, которые необходимо отключить для обеспечения совместимости. На самом деле оказалось, что сообщения были в файле журнала звездочки, хотя я потратил 2 часа, прежде чем их увидел:
[2011-01-18 02:39:01] ОШИБКА [15257] chan_iax2.c: Вызов отклонен, требуется поддержка CallToken. В случае непредвиденной ситуации устраните проблему, поместив адрес XXXXXXX в необязательный список calltoken или установив для пользователя XYZ requirecalltoken = no
Поэтому я добавил requirecalltoken = no в раздел ДЕТАЛИ ПОЛЬЗОВАТЕЛЯ на сервере asterisk 1.6, и все было исправлено. Хм, я вижу, что у меня есть requirecalltoken = auto в разделе Outgoing на другой стороне, но я не считаю, что это необходимо. Мне придется запланировать время простоя, чтобы разобраться с этим.
Об этом есть PDF-файл по адресу: http://downloads.asterisk.org/pub/security/IAX2-security.pdf