VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Проблема с IAX2

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

itsec
Сообщения: 20
Зарегистрирован: 06 окт 2019, 23:51

Проблема с IAX2

Сообщение itsec »

Добрый вечер!
Есть железный Астериск 1.8.13.1, решили обновить до версии 13.14.1.
Развернули на новой вирт. машине Астериск и скопировали конфигурационные файлы со старого Астериска.
Все работает, кроме IAX2 транков и IAX2 абонентов.
1. При попытке позвонить с нового Астериска по IAX2 пакеты NEW улетают по транку, прилетают на другой Астериск, он отвечает пакетом CTOKEN, пакет прилетает на новый Астериск (через tcpdump видно), но Астериск его не обрабатывает, и в консоли нет по этому поводу событий.
2. Также не получается IAX2 абонентов подключить, модуль IAX2 по какой то причине не обрабатывает входящие пакеты.

Если смотреть через netstat, то видим, что на сокете IAX2 накапливается очередь не обработанных пакетов:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 304480 0 0.0.0.0:4569 0.0.0.0:* 3849/asterisk


Итог: исходящие пакеты обрабатываются модулем IAX2, входящие нет.

Куда копать? Что смотреть?

На сайте openwrt, есть похожая тема с проблемой прям у меня http://dev.archive.openwrt.org/ticket/13727 , но у меня не openwrt.
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Проблема с IAX2

Сообщение ded »

requirecalltoken=
calltokenoptional=
itsec
Сообщения: 20
Зарегистрирован: 06 окт 2019, 23:51

Re: Проблема с IAX2

Сообщение itsec »

Спасибо, что откликнулись.

На пирах IAX2
requirecalltoken=0
Этот параметр закомментирован
calltokenoptional=

Я думаю, дело не в calltoken.
Потому что, когда звонишь с другого астериска на новый по IAX2, он NEW и пакеты регистрации тоже не обрабатывает.
Тоже самое когда из локальной сети пытаюсь подключиться через софтфон по IAX2, запрос в консоли Астериска не вижу. Только количество Recv-Q растет.
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Проблема с IAX2

Сообщение ded »

itsec писал(а):1. При попытке позвонить с нового Астериска по IAX2 пакеты NEW улетают по транку, прилетают на другой Астериск, он отвечает пакетом CTOKEN, пакет прилетает на новый Астериск (через tcpdump видно)
itsec писал(а):Я думаю, дело не в calltoken.
Я думал, что вы думаете.
CTOKEN = Calltoken
itsec писал(а):requirecalltoken=0
??

https://wiki.asterisk.org/wiki/display/ ... Validation

Поработал за вас в Google, ясно, что вам некогда.
http://asterisk-support.ru/question/568 ... 2-resheno/
Вложения
iax3.jpg
iax3.jpg (10.85 КБ) 6650 просмотров
itsec
Сообщения: 20
Зарегистрирован: 06 окт 2019, 23:51

Re: Проблема с IAX2

Сообщение itsec »

Спасибо, что помогаете в решении моей проблемы, но почему мы зациклились на CTOKEN сейчас?
Проблема в же в том, что IAX2 модуль ВООБЩЕ не обрабатывает входящие запросы (NEW, REGREQ, и т.д.)
То есть, в консоли астерика при включенном debug iax2 нет вообще событий, только появляются события NEW, когда с него совершаешь звонок по IAX2.
Даже при попытке подключиться через софтфон к номеру 500 по IAX2, в консоли НЕ ВИЖУ сообщений NEW, хотя судя по дампу трафика они прилетают.
Настройки на новом астериске:
Входяшие звонки по транку IAX2 из Питера

Код: Выделить всё

[piterpbx]
type=friend
host=dynamic
trunk=yes
auth=rsa
inkeys=piterpbx
outkey=mskpbx
context=piterpbx_incoming
deny=0.0.0.0/0.0.0.0
permit=192.168.1.5/255.255.255.255
requirecalltoken=no
disallow=all
allow=alaw
allow=ulaw
allow=gsm
Пользователь IAX2

Код: Выделить всё

[500]
type=friend
user=500
context=office
requirecalltoken=no
secret=12345678
host=dynamic
maxcallnumbers=16
disallow=all
allow=alaw
allow=ulaw
allow=gsm
Питерский Астериск звонит так:

Код: Выделить всё

exten => _1XX,n,Dial(IAX2/piterpbx:[piterpbx]@ip_address_new_asterisk/${EXTEN:0})
Если смотреть через netstat, то видим, что на сокете IAX2 накапливается очередь не обработанных пакетов:

Код: Выделить всё

Proto [b]Recv-Q[/b] Send-Q Local Address Foreign Address State PID/Program name
udp [b]304480[/b] 0 0.0.0.0:4569 0.0.0.0:* 3849/asterisk
И да, когда выгружаю и загружаю модуль iax2, то вижу сообщения
[Oct 6 14:14:41] WARNING[11541]: chan_iax2.c:13207 build_user: Unable to support trunking on user 'piterpbx' without a timing interface
[Oct 6 14:14:41] WARNING[11541]: chan_iax2.c:12888 build_peer: Unable to support trunking on peer 'piterpbx' without a timing interface

Если в настройке для piterpbx выставить trunk=no, то эти ошибки пропадают.
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Проблема с IAX2

Сообщение ded »

У вас пир - динамический

Код: Выделить всё

[piterpbx]
type=friend
host=dynamic
это значит он не будет отзываться на вашу строку
exten => _1XX,n,Dial(IAX2/piterpbx:[piterpbx]@ip_address_new_asterisk/${EXTEN:0})
потому что не зарегистрирован.
CLI> iax2 show peers
покажет
piterpbx (Unspecified)

Разберите все проблемы на отдельные задачи.
[piterpbx] и [500] - это принципиально разные пиры, один из них [piterpbx] - транк, там может включаться timing (trunk=yes)
а в другом [500] - нет.
1) Разбейте их, каждый, на user & peer. Получится 4 отдельно взятые проблемы. Решайте последовательно.
2) Попытайтесь зарегистрировать сначала, используя строку регистрации
register = piterpbx:piterpasswd@ip_address_new_asterisk
на этом этапе можно наблюдать tcpdump port 4569 and host ip_address_new_asterisk на обоих концах, и iax2 debug также. Статус
CLI> iax2 show regitry
3) Затем, если всё ОК, можно попробовать звонить по такой формуле:
exten => _1XX,n,Dial(IAX2/piterpbx/${EXTEN})
и мониторить через tcpdump port 4569 and host ip_address_new_asterisk на обоих концах, и iax2 debug также.
itsec
Сообщения: 20
Зарегистрирован: 06 окт 2019, 23:51

Re: Проблема с IAX2

Сообщение itsec »

У вас пир - динамический
это значит он не будет отзываться на вашу строку
exten => _1XX,n,Dial(IAX2/piterpbx:[piterpbx]@ip_address_new_asterisk/${EXTEN:0})
потому что не зарегистрирован.
Прописывал регистрацию в iax.conf. В Астериске Питера вижу в консоли, что запросы на регистрацию прилетают, а ответные пакеты улетают и их нет в консоли нового Астериска. Также и все пакеты регистрации REGREQ, которые прилетают в новый Астериск из Питера - их не видно в консоли. Попытки подключения с софтфона из локальной сети на пир 500, тоже не видны в консоли.
Такое ощущение, что IAX модуль просто не обрабатывает входящие пакеты.

P.S. В Питере Астериск 11.13.1 с аналогичными настройками iax.conf и все работало со старым Астериском без регистрации.
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Проблема с IAX2

Сообщение ded »

Если запросы на регистрацию прилетают, а ответные пакеты улетают и их нет в консоли нового Астериска, то проблема на уровне iptables.
Наиболее наглядно - включить на новом Астериске tcpdump port 4569
и iax2 set debug on
core set debug 10
itsec
Сообщения: 20
Зарегистрирован: 06 окт 2019, 23:51

Re: Проблема с IAX2

Сообщение itsec »

проблема на уровне iptables
это была сразу первая мысль.. выключал fail2ban, чистил все правила iptables, пробовал добавлять разрешающее правило для порта 4569
включить на новом Астериске tcpdump port 4569
так и смотрел, пакеты прилетают, но в консоли никакого события по IAX (iax2 set debug on)
core set debug 10
сегодня посмотрю в этом режиме логирования
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Проблема с IAX2

Сообщение ded »

netstat -nlp | grep 4569 ??
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH