Подключаюсь к Энфорте по h323 (чтоб они вечно были здоровы...) Соединение устанавливается, а голос не идет в обе стороны. как показывает tcpdump, rtp-пакеты к Астериску приходят, а от Астериска ни чего не уходит. Вот конфиг ooh323.conf
[general]
port = 1720
bindaddr = aa.aa.aa.aa ; это IP моего Астериска
disallow=all
allow=g729:60
allow=alaw:30
allow=ulaw
;dtmfmode=rfc2833
dtmfmode=h245alphanumeric
gatekeeper = DISABLE
context=from-pstn-custom
tunneling=cisco
tos_audio=ef
cos_audio=5
progress_setup = 8
progress_alert = 8
progress_audio = yes
fastStart=yes
mediawaitforconnect=no
h245tunneling=yes
;h323id=ObjSysAsterisk
e164=100
nat=yes
srvlookup=no
AllowGKRouted = yes
amaflags = default
[suo1]
ip=bb.bb.bb.bb ; это ip их гейткипера
port = 1720
type=friend
incominglimit=64
fastStart=yes
h245Tunneling=yes
disallow=all
allow=g729:60
allow=alaw:30
allow=ulaw
context=from-pstn-custom
Вот Debug ooh323 при звонке с Энфорты -> на Астериск
trixbox1*CLI>
--- onNewCallCreated ooh323c_1
+++ onNewCallCreated ooh323c_1
--- ooh323_onReceivedSetup ooh323c_1
--- ooh323_alloc
+++ ooh323_alloc
--- find_user
+++ find_user
Adding capabilities to call(incoming, ooh323c_1)
Adding g729A capability to call(incoming, ooh323c_1)
Adding g729 capability to call(incoming, ooh323c_1)
Adding g711 alaw capability to call(incoming, ooh323c_1)
Adding g711 ulaw capability to call(incoming, ooh323c_1)
--- configure_local_rtp
+++ configure_local_rtp
+++ ooh323_onReceivedSetup - Determined context from-pstn-custom, extension 3030966
--- setup_rtp_connection
--- find_call
+++ find_call
+++ setup_rtp_connection
--- onAlerting ooh323c_1
--- find_call
+++ find_call
--- ooh323_new - suo1
+++ h323_new
+++ onAlerting ooh323c_1
-- Executing [2222222@from-pstn-custom:1] Set("OOH323/suo1-1d5b", "__FROM_DID=2222222") in new stack
-- Executing [2222222@from-pstn-custom:2] Gosub("OOH323/suo1-1d5b", "app-blacklist-check,s,1") in new stack
-- Executing [s@app-blacklist-check:1] GotoIf("OOH323/suo1-1d5b", "0?blacklisted") in new stack
-- Executing [s@app-blacklist-check:2] Return("OOH323/suo1-1d5b", "") in new stack
-- Executing [2222222@from-pstn-custom:3] ExecIf("OOH323/suo1-1d5b", "0 ?Set(CALLERID(name)=1111111)") in new stack
-- Executing [2222222@from-pstn-custom:4] Set("OOH323/suo1-1d5b", "__CALLINGPRES_SV=allowed_not_screened") in new stack
-- Executing [2222222@from-pstn-custom:5] Set("OOH323/suo1-1d5b", "CALLERPRES()=allowed_not_screened") in new stack
-- Executing [2222222@from-pstn-custom:6] Goto("OOH323/suo1-1d5b", "ivr-8,s,1") in new stack
-- Goto (ivr-8,s,1)
-- Executing [s@ivr-8:1] Set("OOH323/suo1-1d5b", "MSG=custom/msg0003-1") in new stack
-- Executing [s@ivr-8:2] Set("OOH323/suo1-1d5b", "LOOPCOUNT=0") in new stack
-- Executing [s@ivr-8:3] Set("OOH323/suo1-1d5b", "__DIR-CONTEXT=default") in new stack
-- Executing [s@ivr-8:4] Set("OOH323/suo1-1d5b", "_IVR_CONTEXT_ivr-8=") in new stack
-- Executing [s@ivr-8:5] Set("OOH323/suo1-1d5b", "_IVR_CONTEXT=ivr-8") in new stack
-- Executing [s@ivr-8:6] GotoIf("OOH323/suo1-1d5b", "0?begin") in new stack
-- Executing [s@ivr-8:7] Answer("OOH323/suo1-1d5b", "") in new stack
--- ooh323_answer
+++ ooh323_answer
----- ooh323_indicate -1 on call ooh323c_1
++++ ooh323_indicate -1 on ooh323c_1
--- onCallEstablished ooh323c_1
--- find_call
+++ find_call
+++ onCallEstablished ooh323c_1
-- Executing [s@ivr-8:8] Wait("OOH323/suo1-1d5b", "1") in new stack
-- Executing [s@ivr-8:9] Set("OOH323/suo1-1d5b", "TIMEOUT(digit)=3") in new stack
-- Digit timeout set to 3
-- Executing [s@ivr-8:10] Set("OOH323/suo1-1d5b", "TIMEOUT(response)=60") in new stack
-- Response timeout set to 60
-- Executing [s@ivr-8:11] Set("OOH323/suo1-1d5b", "__IVR_RETVM=") in new stack
-- Executing [s@ivr-8:12] ExecIf("OOH323/suo1-1d5b", "1?Background(custom/msg0003-1)") in new stack
-- Executing [s@ivr-8:13] WaitExten("OOH323/suo1-1d5b", ",") in new stack
ВОТ ЗДЕСЬ ДОЛЖНО ЗВУЧАТЬ ПРИВЕТСТВИЕ, НО НИ ЧЕГО НЕ СЛЫШНО... ДАЛЕЕ Я НАБИРАЮ ВНУТРЕННИЙ НОМЕР 104 И АСТЕРИСК ПОЛУЧАЕТ ЭТИ ЦИФРЫ
--- find_call
+++ find_call
--- find_call
+++ find_call
--- find_call
+++ find_call
== CDR updated on OOH323/suo1-1d5b
-- Executing [104@ivr-8:1] ExecIf("OOH323/suo1-1d5b", "0?dbDel()") in new stack
-- Executing [104@ivr-8:2] Set("OOH323/suo1-1d5b", "__NODEST=") in new stack
-- Executing [104@ivr-8:3] Goto("OOH323/suo1-1d5b", "from-did-direct,104,1") in new stack
-- Goto (from-did-direct,104,1)
-- Executing [104@from-did-direct:1] Macro("OOH323/suo1-1d5b", "exten-vm,novm,104") in new stack
-- Executing [s@macro-exten-vm:1] Macro("OOH323/suo1-1d5b", "user-callerid") in new stack
-- Executing [s@macro-user-callerid:1] Set("OOH323/suo1-1d5b", "AMPUSER=1111111") in new stack
-- Executing [s@macro-user-callerid:2] GotoIf("OOH323/suo1-1d5b", "0?report") in new stack
-- Executing [s@macro-user-callerid:3] ExecIf("OOH323/suo1-1d5b", "1?Set(REALCALLERIDNUM=1111111)") in new stack
-- Executing [s@macro-user-callerid:4] Set("OOH323/suo1-1d5b", "AMPUSER=") in new stack
-- Executing [s@macro-user-callerid:5] Set("OOH323/suo1-1d5b", "AMPUSERCIDNAME=") in new stack
-- Executing [s@macro-user-callerid:6] GotoIf("OOH323/suo1-1d5b", "1?report") in new stack
-- Goto (macro-user-callerid,s,10)
-- Executing [s@macro-user-callerid:10] GotoIf("OOH323/suo1-1d5b", "0?continue") in new stack
-- Executing [s@macro-user-callerid:11] Set("OOH323/suo1-1d5b", "__TTL=64") in new stack
-- Executing [s@macro-user-callerid:12] GotoIf("OOH323/suo1-1d5b", "1?continue") in new stack
-- Goto (macro-user-callerid,s,19)
-- Executing [s@macro-user-callerid:19] NoOp("OOH323/suo1-1d5b", "Using CallerID "bb.bb.bb.bb" <1111111>") in new stack
-- Executing [s@macro-exten-vm:2] Set("OOH323/suo1-1d5b", "RingGroupMethod=none") in new stack
-- Executing [s@macro-exten-vm:3] Set("OOH323/suo1-1d5b", "VMBOX=novm") in new stack
-- Executing [s@macro-exten-vm:4] Set("OOH323/suo1-1d5b", "EXTTOCALL=104") in new stack
-- Executing [s@macro-exten-vm:5] Set("OOH323/suo1-1d5b", "CFUEXT=") in new stack
-- Executing [s@macro-exten-vm:6] Set("OOH323/suo1-1d5b", "CFBEXT=") in new stack
-- Executing [s@macro-exten-vm:7] Set("OOH323/suo1-1d5b", "RT=""") in new stack
-- Executing [s@macro-exten-vm:8] Macro("OOH323/suo1-1d5b", "record-enable,104,IN") in new stack
-- Executing [s@macro-record-enable:1] GotoIf("OOH323/suo1-1d5b", "1?check") in new stack
-- Goto (macro-record-enable,s,4)
-- Executing [s@macro-record-enable:4] AGI("OOH323/suo1-1d5b", "recordingcheck,20120811-160210,1344686511.147") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
-- <OOH323/suo1-1d5b>AGI Script recordingcheck completed, returning 0
-- Executing [s@macro-record-enable:5] MacroExit("OOH323/suo1-1d5b", "") in new stack
-- Executing [s@macro-exten-vm:9] Macro("OOH323/suo1-1d5b", "dial,"",tr,104") in new stack
-- Executing [s@macro-dial:1] GotoIf("OOH323/suo1-1d5b", "1?dial") in new stack
-- Goto (macro-dial,s,3)
-- Executing [s@macro-dial:3] AGI("OOH323/suo1-1d5b", "dialparties.agi") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/dialparties.agi
dialparties.agi: Starting New Dialparties.agi
dialparties.agi: Caller ID name is 'bb.bb.bb.bb' number is '1111111'
> dialparties.agi: USE_CONFIRMATION: 'FALSE'
> dialparties.agi: RINGGROUP_INDEX: ''
dialparties.agi: Methodology of ring is 'none'
-- dialparties.agi: Added extension 104 to extension map
> dialparties.agi: Extension 104 has call screening off
-- dialparties.agi: Extension 104 cf is disabled
-- dialparties.agi: Extension 104 do not disturb is disabled
> dialparties.agi: extnum 104 has: cw: 0; hascfb: 0 [] hascfu: 0 []
dialparties.agi: EXTENSION_STATE: 0 (NOT_INUSE)
dialparties.agi: Extension 104 has ExtensionState: 0
-- dialparties.agi: Checking CW and CFB status for extension 104
-- dialparties.agi: dbset CALLTRACE/104 to 1111111
-- dialparties.agi: Filtered ARG3: 104
-- <OOH323/suo1-1d5b>AGI Script dialparties.agi completed, returning 0
-- Executing [s@macro-dial:7] Dial("OOH323/suo1-1d5b", "SIP/104,"",tr") in new stack
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
== Using SIP VRTP TOS bits 136
== Using SIP VRTP CoS mark 6
-- Couldn't call 104
== Everyone is busy/congested at this time (0:0/0/0)
ТУТ ЕЩЕ ОДНА СТРАННОСТЬ, ТАК КАК ТЕЛЕФОН 104 В ЭТОТ МОМЕНТ СВОБОДЕН И ДОСТУПЕН
-- Executing [s@macro-dial:8] Set("OOH323/suo1-1d5b", "DIALSTATUS=CHANUNAVAIL") in new stack
-- Executing [s@macro-dial:9] GosubIf("OOH323/suo1-1d5b", "0?CHANUNAVAIL,1") in new stack
-- Executing [s@macro-exten-vm:10] GotoIf("OOH323/suo1-1d5b", "0?exit,return") in new stack
-- Executing [s@macro-exten-vm:11] Set("OOH323/suo1-1d5b", "SV_DIALSTATUS=CHANUNAVAIL") in new stack
-- Executing [s@macro-exten-vm:12] GosubIf("OOH323/suo1-1d5b", "0?docfu,1") in new stack
-- Executing [s@macro-exten-vm:13] GosubIf("OOH323/suo1-1d5b", "0?docfb,1") in new stack
-- Executing [s@macro-exten-vm:14] Set("OOH323/suo1-1d5b", "DIALSTATUS=CHANUNAVAIL") in new stack
-- Executing [s@macro-exten-vm:15] NoOp("OOH323/suo1-1d5b", "Voicemail is 'novm'") in new stack
-- Executing [s@macro-exten-vm:16] GotoIf("OOH323/suo1-1d5b", "1?s-CHANUNAVAIL,1") in new stack
-- Goto (macro-exten-vm,s-CHANUNAVAIL,1)
-- Executing [s-CHANUNAVAIL@macro-exten-vm:1] NoOp("OOH323/suo1-1d5b", "IVR_RETVM: IVR_CONTEXT: ivr-8") in new stack
-- Executing [s-CHANUNAVAIL@macro-exten-vm:2] GotoIf("OOH323/suo1-1d5b", "0?exit,1") in new stack
-- Executing [s-CHANUNAVAIL@macro-exten-vm:3] PlayTones("OOH323/suo1-1d5b", "congestion") in new stack
== Spawn extension (macro-exten-vm, s-CHANUNAVAIL, 3) exited non-zero on 'OOH323/suo1-1d5b' in macro 'exten-vm'
== Spawn extension (from-did-direct, 104, 1) exited non-zero on 'OOH323/suo1-1d5b'
--- ooh323_hangup
hanging suo1
+++ ooh323_hangup
--- close_rtp_connection
--- find_call
+++ find_call
+++ close_rtp_connection
--- onCallCleared ooh323c_1
--- find_call
+++ find_call
+++ onCallCleared
--- ooh323_destroy
Destroying suo1
+++ ooh323_destroy
Вот кусок TCPDUMP
....
15:42:08.756576 IP (tos 0x0, ttl 63, id 17709, offset 0, flags [DF], proto: TCP (6), length: 150) bb.bb.bb.bb.18657 > aa.aa.aa.aa.h323hostcall: P 1093:1191(98) ack 681 win 63 <nop,nop,timestamp 1184855451 66187100>
15:42:08.756579 IP (tos 0x0, ttl 64, id 14801, offset 0, flags [DF], proto: TCP (6), length: 52) aa.aa.aa.aa.h323hostcall > bb.bb.bb.bb.18657: ., cksum 0xbddc (correct), 681:681(0) ack 1191 win 67 <nop,nop,timestamp 66187215 1184855451>
Вот тут произошло поднятие трубки и дальше 2 странные строчки, после которых сыпятся пакеты только со стороны Энфорты, причем с другого IP но все равно слышимости нет даже на стороне Астериска
15:42:08.953475 00:1b:53:ba:a4:18 (oui Unknown) > 01:00:0c:cc:cc:cd (oui Unknown) SNAP Unnumbered, ui, Flags [Command], length 50
15:42:09.036520 IP (tos 0x0, ttl 1, id 28534, offset 0, flags [none], proto: IGMP (2), length: 28) 10.61.99.250 > 239.255.255.100: igmp v1 report 239.255.255.100
15:42:09.121702 IP (tos 0xb8, ttl 253, id 62919, offset 0, flags [none], proto: UDP (17), length: 100) bb.bb.bb.cc.17236 > aa.aa.aa.aa.11584: udp/rtp 60 c18 * 37264 1039888594 197803268
15:42:09.178587 IP (tos 0xb8, ttl 253, id 62919, offset 0, flags [none], proto: UDP (17), length: 100) bb.bb.bb.cc.17236 > aa.aa.aa.aa.11584: udp/rtp 60 c18 37265 1039889074 197803268
15:42:09.245436 IP (tos 0xb8, ttl 253, id 62919, offset 0, flags [none], proto: UDP (17), length: 100) bb.bb.bb.cc.17236 > aa.aa.aa.aa.11584: udp/rtp 60 c18 37266 1039889554 197803268
.....
Потом я кладу трубку со стороны Энфорты и Астериск получает пакеты (очевидно с командой на разъединение)
15:42:13.295896 IP (tos 0x0, ttl 63, id 17710, offset 0, flags [DF], proto: TCP (6), length: 196) bb.bb.bb.bb.18657 > aa.aa.aa.aa.h323hostcall: P 1191:1335(144) ack 681 win 63 <nop,nop,timestamp 1184859953 66187215>
15:42:13.295909 IP (tos 0x0, ttl 64, id 14802, offset 0, flags [DF], proto: TCP (6), length: 52) aa.aa.aa.aa.h323hostcall > bb.bb.bb.bb.18657: ., cksum 0x99f0 (correct), 681:681(0) ack 1335 win 78 <nop,nop,timestamp 66191754 1184859953>
Еще скажу, что на Астериске стоит две сетевые eth0 и eth1 eth0 имеет локальный IP и через нее осуществляется выход в инет eth1 имеет реальный IP, но в нее попадают пакеты только идущие в подсеть bb.bb.0.0
также слушал tcpdump'ом на eth0, думал может туда идут rtp пакеты, но там полная тишина....
Firewall - отключен вААпще
Помогите соображениями куда копать?
почти все циско умеет sip.
просите у них сип.
н323 дебаг зело сложно, нам в лаптях не осилить. ну иль за тридевять земель не осилит, надо штуку бусурманскую поближе к рукам принестъ
Задан: 2012-08-11 16:53:40 +0400
Просмотрен: 565 раз
Обновлен: Aug 11 '12
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.