Не работает 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]
|
Сообщений: 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
|
Сообщений: 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
|
Сообщений: 16
|
Re: Не работает IAX2
1. Почему каша? Пусть регистрируются друг на друге, хоть обрегистрируются, чему это мешает?
2. В названиях у меня все нормально. Учетная запись одинаковая на обоих серверах, в пирах друг у друга они видят под разными ip. Чего мне плодить 01,02,... Каждый считает себя 01, а соседа - 02.
3. Идея макроса в следующем: звонок на 3XX уходит в SIP/3XX, если получаем CHANUNAVAIL - идем на aster02. С ним, как и без него, работает одинаково.
Аналогичная схема на SIP работает, интересует что IAXу не хватает..
|
Сообщений: 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)
Результат тот же.
|
Сообщений: 16
|
Re: Не работает IAX2
не {ARG1}, а {EXTEN}
|
Сообщений: 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)
я не рекомендовал. Если используете такой синтаксис, то значит понимаете, что делаете (по моему бред), тогда не задаёте вопросы "Почему звонок не идёт?", дискутировать на эту тему не хочется.
|
Сообщений: 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})
|
Сообщений: 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. Рекомендую использовать вариант из предудущего моего поста.
|
Сообщений: 16
|
Re: Не работает IAX2
Спасибо.
Не работало совсем по другой причине, но критику учту..
|
|