ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Проблема с IAX2

Проблемы и их решения Asterisk как такового

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

Проблема с IAX2

Сообщение itsec » 07 окт 2019, 01:13

Добрый вечер!
Есть железный Астериск 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.
itsec
 
Сообщений: 20
Зарегистрирован: 07 окт 2019, 00:51

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

Сообщение ded » 07 окт 2019, 11:36

requirecalltoken=
calltokenoptional=
ded
 
Сообщений: 15803
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение itsec » 07 окт 2019, 11:47

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

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

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

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

Сообщение ded » 07 окт 2019, 12:47

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 KIB) Просмотров: 5646
ded
 
Сообщений: 15803
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение itsec » 07 окт 2019, 16:09

Спасибо, что помогаете в решении моей проблемы, но почему мы зациклились на 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, то эти ошибки пропадают.
itsec
 
Сообщений: 20
Зарегистрирован: 07 окт 2019, 00:51

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

Сообщение ded » 07 окт 2019, 17:44

У вас пир - динамический
Код: выделить все
[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 также.
ded
 
Сообщений: 15803
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение itsec » 07 окт 2019, 18:35

У вас пир - динамический
это значит он не будет отзываться на вашу строку
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 и все работало со старым Астериском без регистрации.
itsec
 
Сообщений: 20
Зарегистрирован: 07 окт 2019, 00:51

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

Сообщение ded » 07 окт 2019, 19:03

Если запросы на регистрацию прилетают, а ответные пакеты улетают и их нет в консоли нового Астериска, то проблема на уровне iptables.
Наиболее наглядно - включить на новом Астериске tcpdump port 4569
и iax2 set debug on
core set debug 10
ded
 
Сообщений: 15803
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение itsec » 07 окт 2019, 19:33

проблема на уровне iptables

это была сразу первая мысль.. выключал fail2ban, чистил все правила iptables, пробовал добавлять разрешающее правило для порта 4569
включить на новом Астериске tcpdump port 4569

так и смотрел, пакеты прилетают, но в консоли никакого события по IAX (iax2 set debug on)
core set debug 10

сегодня посмотрю в этом режиме логирования
itsec
 
Сообщений: 20
Зарегистрирован: 07 окт 2019, 00:51

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

Сообщение ded » 07 окт 2019, 19:37

netstat -nlp | grep 4569 ??
ded
 
Сообщений: 15803
Зарегистрирован: 26 авг 2010, 19:00

След.

Вернуться в Конфигурация и настройка Asterisk

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 22

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH