Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / Конфигурация и настройка / Не работает IAX2

Не работает IAX2

Сообщений: 16

Не работает IAX2

Здравствуйте.
Есть задача объединить 2 dialplan-а *.
Сходу (почти) завелось на SIP. Многие тут нахваливают IAX2, решил попробовать.
Конфиг iax.conf на обеих сторонах идентичный (за исключением ip-адресов, на одной стороне 172.31.23.50, на другой - 172.31.23.55):

[general]
bandwidth=low
disallow=all
allow=g729
jitterbuffer=no
forcejitterbuffer=no
autokill=yes

register => aster02:secret@172.31.23.55

[aster02]
type=friend
host=dynamic
username=aster02
secret=secret
context=APK_ALL

extensions.conf (кусочек из макроса):

exten => s,2,Dial(IAX2/aster02:secret@172.31.23.55/${ARG1}@APK_ALL

Звонок не проходит, в трубке тишина, потом отбой.

Лог с вызывающей стороны:

-- Called aster02:02-aster@172.31.23.55/335@APK_ALL
Tx-Frame Retry[000] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: NEW
Timestamp: 00019ms SCall: 14034 DCall: 00000 [172.31.23.55:4569]
VERSION : 2
CALLED NUMBER : 335
CODEC_PREFS : (g729)
CALLING NUMBER : 623411376
CALLING PRESNTN : 0
CALLING TYPEOFN : 0
CALLING TRANSIT : 0
CALLING NAME :
LANGUAGE : en
CALLED CONTEXT : APK_ALL
USERNAME : aster02
FORMAT : 256
CAPABILITY : 57600
ADSICPE : 2
DATE TIME : 2009-04-27 09:27:00

Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 001 Type: IAX Subclass: AUTHREQ
Timestamp: 00014ms SCall: 12771 DCall: 14034 [172.31.23.55:4569]
AUTHMETHODS : 3
CHALLENGE : 120864230
USERNAME : aster02

Tx-Frame Retry[000] -- OSeqno: 001 ISeqno: 001 Type: IAX Subclass: AUTHREP
Timestamp: 00023ms SCall: 14034 DCall: 12771 [172.31.23.55:4569]
MD5 RESULT : 48836170564c521b2a84fceca6cf5882

Rx-Frame Retry[ No] -- OSeqno: 001 ISeqno: 002 Type: IAX Subclass: ACCEPT
Timestamp: 00016ms SCall: 12771 DCall: 14034 [172.31.23.55:4569]
FORMAT : 256

-- Call accepted by 172.31.23.55 (format g729)
-- Format for call is g729
Tx-Frame Retry[-01] -- OSeqno: 002 ISeqno: 002 Type: IAX Subclass: ACK
Timestamp: 00016ms SCall: 14034 DCall: 12771 [172.31.23.55:4569]
Tx-Frame Retry[002] -- OSeqno: 000 ISeqno: 001 Type: IAX Subclass: REGACK
Timestamp: 00009ms SCall: 01702 DCall: 16349 [172.31.23.55:4569]
USERNAME : aster02
DATE TIME : 2009-04-27 09:26:50
REFRESH : 60
APPARENT ADDRES : IPV4 172.31.23.55:4569

Tx-Frame Retry[000] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: REGREQ
Timestamp: 00010ms SCall: 01902 DCall: 00000 [172.31.23.55:4569]
USERNAME : aster02
REFRESH : 60

Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 001 Type: IAX Subclass: REGACK
Timestamp: 00004ms SCall: 07040 DCall: 01902 [172.31.23.55:4569]
USERNAME : aster02
DATE TIME : 2009-04-27 08:28:14
REFRESH : 60
APPARENT ADDRES : IPV4 172.31.23.50:4569

Tx-Frame Retry[-01] -- OSeqno: 001 ISeqno: 001 Type: IAX Subclass: ACK
Timestamp: 00004ms SCall: 01902 DCall: 07040 [172.31.23.55:4569]
Tx-Frame Retry[000] -- OSeqno: 002 ISeqno: 002 Type: IAX Subclass: LAGRQ
Timestamp: 10020ms SCall: 14034 DCall: 12771 [172.31.23.55:4569]
Tx-Frame Retry[001] -- OSeqno: 002 ISeqno: 002 Type: IAX Subclass: LAGRQ
Timestamp: 10020ms SCall: 14034 DCall: 12771 [172.31.23.55:4569]
Tx-Frame Retry[003] -- OSeqno: 000 ISeqno: 001 Type: IAX Subclass: REGACK
Timestamp: 00009ms SCall: 01702 DCall: 16349 [172.31.23.55:4569]
USERNAME : aster02
DATE TIME : 2009-04-27 09:26:50
REFRESH : 60
APPARENT ADDRES : IPV4 172.31.23.55:4569

-- Hungup 'IAX2/aster02-14034'
== Spawn extension (APK_ALL, 03335, 1) exited non-zero on 'SIP/9000-0877a000'
Tx-Frame Retry[000] -- OSeqno: 003 ISeqno: 002 Type: IAX Subclass: HANGUP
Timestamp: 15038ms SCall: 14034 DCall: 12771 [172.31.23.55:4569]
CAUSE CODE : 0

Tx-Frame Retry[001] -- OSeqno: 003 ISeqno: 002 Type: IAX Subclass: HANGUP
Timestamp: 15038ms SCall: 14034 DCall: 12771 [172.31.23.55:4569]
CAUSE CODE : 0

С принимающей стороны:

Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: NEW
Timestamp: 00003ms SCall: 07542 DCall: 00000 [172.31.23.50:4569]
VERSION : 2
CALLED NUMBER : 335
CODEC_PREFS : (g729)
CALLING NUMBER : 623411376
CALLING PRESNTN : 0
CALLING TYPEOFN : 0
CALLING TRANSIT : 0
CALLING NAME :
LANGUAGE : en
CALLED CONTEXT : APK_ALL
USERNAME : aster02
FORMAT : 256
CAPABILITY : 57600
ADSICPE : 2
DATE TIME : 2009-04-27 09:28:14

Tx-Frame Retry[000] -- OSeqno: 000 ISeqno: 001 Type: IAX Subclass: AUTHREQ
Timestamp: 00014ms SCall: 14755 DCall: 07542 [172.31.23.50:4569]
AUTHMETHODS : 3
CHALLENGE : 632827360
USERNAME : aster02

Rx-Frame Retry[ No] -- OSeqno: 001 ISeqno: 001 Type: IAX Subclass: AUTHREP
Timestamp: 00006ms SCall: 07542 DCall: 14755 [172.31.23.50:4569]
MD5 RESULT : 2dcb60723eb9a5e0463c93c075092fd4

-- Accepting AUTHENTICATED call from 172.31.23.50:
> requested format = g729,
> requested prefs = (g729),
> actual format = g729,
> host prefs = (g729),
> priority = mine
-- Executing [335@APK_ALL:1] Macro("IAX2/aster02-14755", "DIAL|335") in new stack
-- Executing [s@macro-DIAL:1] Dial("IAX2/aster02-14755", "SIP/335") in new stack
Tx-Frame Retry[000] -- OSeqno: 001 ISeqno: 002 Type: IAX Subclass: ACCEPT
Timestamp: 00015ms SCall: 14755 DCall: 07542 [172.31.23.50:4569]
FORMAT : 256

-- Called 335
Rx-Frame Retry[ No] -- OSeqno: 002 ISeqno: 002 Type: IAX Subclass: ACK
Timestamp: 00015ms SCall: 07542 DCall: 14755 [172.31.23.50:4569]
-- SIP/335-08796000 is ringing
Tx-Frame Retry[000] -- OSeqno: 002 ISeqno: 002 Type: CONTROL Subclass: RINGING
Timestamp: 00018ms SCall: 14755 DCall: 07542 [172.31.23.50:4569]
Tx-Frame Retry[001] -- OSeqno: 002 ISeqno: 002 Type: CONTROL Subclass: RINGING
Timestamp: 00018ms SCall: 14755 DCall: 07542 [172.31.23.50:4569]
Rx-Frame Retry[ No] -- OSeqno: 002 ISeqno: 002 Type: IAX Subclass: LAGRQ
Timestamp: 10000ms SCall: 07542 DCall: 14755 [172.31.23.50:4569]
Tx-Frame Retry[000] -- OSeqno: 003 ISeqno: 002 Type: IAX Subclass: LAGRQ
Timestamp: 10015ms SCall: 14755 DCall: 07542 [172.31.23.50:4569]
Tx-Frame Retry[000] -- OSeqno: 004 ISeqno: 003 Type: IAX Subclass: LAGRP
Timestamp: 10000ms SCall: 14755 DCall: 07542 [172.31.23.50:4569]
Rx-Frame Retry[Yes] -- OSeqno: 002 ISeqno: 002 Type: IAX Subclass: LAGRQ
Timestamp: 10000ms SCall: 07542 DCall: 14755 [172.31.23.50:4569]
Tx-Frame Retry[-01] -- OSeqno: 002 ISeqno: 003 Type: IAX Subclass: ACK
Timestamp: 10000ms SCall: 14755 DCall: 07542 [172.31.23.50:4569]
Tx-Frame Retry[001] -- OSeqno: 003 ISeqno: 003 Type: IAX Subclass: LAGRQ
Timestamp: 10015ms SCall: 14755 DCall: 07542 [172.31.23.50:4569]
Tx-Frame Retry[001] -- OSeqno: 004 ISeqno: 003 Type: IAX Subclass: LAGRP
Timestamp: 10000ms SCall: 14755 DCall: 07542 [172.31.23.50:4569]
Tx-Frame Retry[002] -- OSeqno: 002 ISeqno: 003 Type: CONTROL Subclass: RINGING
Timestamp: 00018ms SCall: 14755 DCall: 07542 [172.31.23.50:4569]
Rx-Frame Retry[ No] -- OSeqno: 003 ISeqno: 002 Type: IAX Subclass: HANGUP
Timestamp: 15033ms SCall: 07542 DCall: 14755 [172.31.23.50:4569]
CAUSE CODE : 0

Tx-Frame Retry[-01] -- OSeqno: 002 ISeqno: 004 Type: IAX Subclass: ACK
Timestamp: 15033ms SCall: 14755 DCall: 07542 [172.31.23.50:4569]
== Spawn extension (APK_ALL, 335, 1) exited non-zero on 'IAX2/aster02-14755'
-- Hungup 'IAX2/aster02-14755'
Rx-Frame Retry[Yes] -- OSeqno: 003 ISeqno: 002 Type: IAX Subclass: HANGUP
Timestamp: 15033ms SCall: 07542 DCall: 14755 [172.31.23.50:4569]
CAUSE CODE : 0

Tx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: INVAL
Timestamp: 00000ms SCall: 14755 DCall: 07542 [172.31.23.50:4569]
Tx-Frame Retry[000] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: REGREQ
Timestamp: 00009ms SCall: 09256 DCall: 00000 [172.31.23.50:4569]
USERNAME : aster02
REFRESH : 60

Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 001 Type: IAX Subclass: REGACK
Timestamp: 00007ms SCall: 00871 DCall: 09256 [172.31.23.50:4569]
USERNAME : aster02
DATE TIME : 2009-04-27 09:28:30
REFRESH : 60
APPARENT ADDRES : IPV4 172.31.23.55:4569

Tx-Frame Retry[-01] -- OSeqno: 001 ISeqno: 001 Type: IAX Subclass: ACK
Timestamp: 00007ms SCall: 09256 DCall: 00871 [172.31.23.50:4569]
Rx-Frame Retry[Yes] -- OSeqno: 000 ISeqno: 001 Type: IAX Subclass: REGACK
Timestamp: 00007ms SCall: 00871 DCall: 09256 [172.31.23.50:4569]
USERNAME : aster02
DATE TIME : 2009-04-27 09:28:30
REFRESH : 60
APPARENT ADDRES : IPV4 172.31.23.55:4569

Tx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: INVAL
Timestamp: 00000ms SCall: 09256 DCall: 00871 [172.31.23.50:4569]
Rx-Frame Retry[Yes] -- OSeqno: 002 ISeqno: 002 Type: IAX Subclass: LAGRQ
Timestamp: 10000ms SCall: 07542 DCall: 14755 [172.31.23.50:4569]
Tx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: INVAL
Timestamp: 00000ms SCall: 14755 DCall: 07542 [172.31.23.50:4569]
Rx-Frame Retry[Yes] -- OSeqno: 000 ISeqno: 001 Type: IAX Subclass: REGACK
Timestamp: 00007ms SCall: 00871 DCall: 09256 [172.31.23.50:4569]
USERNAME : aster02
DATE TIME : 2009-04-27 09:28:30
REFRESH : 60
APPARENT ADDRES : IPV4 172.31.23.55:4569

Tx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: INVAL
Timestamp: 00000ms SCall: 09256 DCall: 00871 [172.31.23.50:4569]
Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: REGREQ
Timestamp: 00007ms SCall: 00873 DCall: 00000 [172.31.23.50:4569]
USERNAME : aster02
REFRESH : 60

Tx-Frame Retry[000] -- OSeqno: 000 ISeqno: 001 Type: IAX Subclass: REGACK
Timestamp: 00002ms SCall: 12607 DCall: 00873 [172.31.23.50:4569]
USERNAME : aster02
DATE TIME : 2009-04-27 08:29:54
REFRESH : 60
APPARENT ADDRES : IPV4 172.31.23.50:4569

Rx-Frame Retry[ No] -- OSeqno: 001 ISeqno: 001 Type: IAX Subclass: ACK
Timestamp: 00002ms SCall: 00873 DCall: 12607 [172.31.23.50:4569]
Rx-Frame Retry[Yes] -- OSeqno: 000 ISeqno: 001 Type: IAX Subclass: REGACK
Timestamp: 00007ms SCall: 00871 DCall: 09256 [172.31.23.50:4569]
USERNAME : aster02
DATE TIME : 2009-04-27 09:28:30
REFRESH : 60
APPARENT ADDRES : IPV4 172.31.23.55:4569

Tx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 000 Type: IAX Subclass: INVAL
Timestamp: 00000ms SCall: 09256 DCall: 00871 [172.31.23.50:4569]
2009-04-27 10:41

Сообщений: 16

Re: Не работает IAX2

Софт

FreeBSD 6.4-STABLE
asterisk-1.4.24.1
asterisk-addons-1.4.6_4

FreeBSD 6.3-STABLE
asterisk-1.4.23.1
asterisk-addons-1.4.6_4
2009-04-27 10:44

Сообщений: 6521

Re: Не работает IAX2

Километры ненужных букафф.
register => aster02:secret@172.31.23.55 - кто на ком должен регистрироваться? Каша. Может и не нужно регистрироваться, если в одной сети и на статических адресах?

Определись, пжлст в названиях.
aster01 = 172.31.23.50
aster02 = 172.31.23.55

[aster02] ; это должен быть кусок конфига на aster01, где указываем, что aster02 у него должен регистрироваться, а не наоборот.
type=friend
host=dynamic
username=aster02
secret=secret
context=APK_ALL

Давай сначала без макроса, ОК?

exten => _33Х,1,Dial(IAX2/aster02/${EXTEN})
это на aster01 должно быть в сторону aster02

exten => _2ХХ,2,Dial(IAX2/aster01/${EXTEN})
а это на втором, в сторону aster01
2009-04-27 11:23

Сообщений: 16

Re: Не работает IAX2

1. Почему каша? Пусть регистрируются друг на друге, хоть обрегистрируются, чему это мешает?

2. В названиях у меня все нормально. Учетная запись одинаковая на обоих серверах, в пирах друг у друга они видят под разными ip. Чего мне плодить 01,02,... Каждый считает себя 01, а соседа - 02.

3. Идея макроса в следующем: звонок на 3XX уходит в SIP/3XX, если получаем CHANUNAVAIL - идем на aster02. С ним, как и без него, работает одинаково.

Аналогичная схема на SIP работает, интересует что IAXу не хватает..
2009-04-27 12:20

Сообщений: 16

Re: Не работает IAX2

aster01:

[general]
bandwidth=low
disallow=all
allow=g729
jitterbuffer=no
forcejitterbuffer=no
autokill=yes

register => aster01:secret01@172.31.23.55

[aster02]
type=friend
host=172.31.23.55
username=aster02
secret=secret02
context=APK_ALL

exten => 3XX,1,Dial(IAX2/aster01:secret01@172.31.23.55/${ARG1}@APK_ALL)


aster02:

[general]
bandwidth=low
disallow=all
allow=g729
jitterbuffer=no
forcejitterbuffer=no
autokill=yes

register => aster02:secret02@172.31.23.50

[aster01]
type=friend
host=172.31.23.50
username=aster01
secret=secret01
context=APK_ALL

exten => 2XX,1,Dial(IAX2/aster02:02-aster@172.31.23.50/${ARG1}@APK_ALL)


Результат тот же.
2009-04-27 12:37

Сообщений: 16

Re: Не работает IAX2

не {ARG1}, а {EXTEN}
2009-04-27 12:38

Сообщений: 6521

Re: Не работает IAX2

plohish07, или Вы следуете советам, или развиваете свои идеи (молча).
Если host=172.31.23.55 то нет нужды в каких-либо регистрациях. Наворачивать всё что под руку попалось в конфиг можно, но не надо тогда выплёскивать сюда, это затуманивает восприятие.

Если удобны одинаковые лэйблы, вперёд! Но понять кто кому звонит сложнее. Это я Вам говорю.

Если пройдет звонок вида
exten => _2Х,1,Dial(IAX2/aster02/${EXTEN})
то можно конструировать макросы.

Вот так:
exten => 2XX,1,Dial(IAX2/aster02:02-aster@172.31.23.50/${EXTEN}@APK_ALL)
я не рекомендовал. Если используете такой синтаксис, то значит понимаете, что делаете (по моему бред), тогда не задаёте вопросы "Почему звонок не идёт?", дискутировать на эту тему не хочется.
2009-04-27 13:22

Сообщений: 1573

Re: Не работает IAX2

ded:

Если host=172.31.23.55 то нет нужды в каких-либо регистрациях.
добавлю - еще и ошибку выдавать будет ...

Во вторых, у вас неправильные username на обоих серверах. Сделайте:


[aster02]
type=friend
host=172.31.23.55
username=aster01
secret=secret
context=APK_ALL

=====================

[aster01]
type=friend
host=172.31.23.50
username=aster02
secret=secret
context=APK_ALL

Пароль тоже должен быть одинаковым в такой конфигурации. И уберите, как выше сказали, регистрацию ...

plohish07:

exten => 3XX,1,Dial(IAX2/aster01:secret01@172.31.23.55/${ARG1}@APK_ALL)

такой формат строки нужен, если IAX-пиры не описаны в iax.conf. В вашем случае пользуйте, например на aster02:

exten => 3XX,1,Dial(IAX2/aster01/${EXTEN})
2009-04-27 13:37

Сообщений: 1573

Re: Не работает IAX2

plohish07:

aster01:

[general]
bandwidth=low
disallow=all
allow=g729
jitterbuffer=no
forcejitterbuffer=no
autokill=yes

register => aster01:secret01@172.31.23.55

[aster02]
type=friend
host=172.31.23.55
username=aster02
secret=secret02
context=APK_ALL

exten => 3XX,1,Dial(IAX2/aster01:secret01@172.31.23.55/${ARG1}@APK_ALL)


aster02:

[general]
bandwidth=low
disallow=all
allow=g729
jitterbuffer=no
forcejitterbuffer=no
autokill=yes

register => aster02:secret02@172.31.23.50

[aster01]
type=friend
host=172.31.23.50
username=aster01
secret=secret01
context=APK_ALL

exten => 2XX,1,Dial(IAX2/aster02:02-aster@172.31.23.50/${ARG1}@APK_ALL)
Хотя сейчас понял ваш замысел. Так тоже можно настроить вызовы. В таком случае поле - username можно не использовать. И type=friend можно поставить в type=user. (но все это не критично. Только сбивает ... )

Уберите регистрацию (обязательно). И попробуйте позвонить так, например c aster01:

exten => 2XX,1,Dial(IAX2/aster02:02-aster@172.31.23.50/${EXTEN})


P.S. Рекомендую использовать вариант из предудущего моего поста.
2009-04-27 14:19

Сообщений: 16

Re: Не работает IAX2

Спасибо.
Не работало совсем по другой причине, но критику учту..
2009-04-27 16:09

Добавить страницу в закладки:  Delicious Google Slashdot Yahoo Yandex.ru Reddit Digg Technorati Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Vaau.ru Memori.ru Rucity.com Moemesto.ru News2.ru Mister-Wong.ru Myscoop.ru 100zakladok.ru