Здравствуйте.
Прошу прощения за некропостинг. Копирую свой вопрос из этой ветки.
Аналогичная ситуация. Нужно, чтобы nway call мог собирать callee.
features.conf
[applicationmap]
nwaystart => *0,caller,Macro,nwaycall-start
extensions.conf
[macro-nwaycall-start]
exten => s,1,NoOp
; присоединяем к конференции собеседника
same => n,Set(__CONFNO=900)
; вариант 1
same => n,ChannelRedirect(${BRIDGEPEER},dynamic-nway,${CONFNO},1)
; вариант 2
same => n,System(asterisk -rx 'channel redirect ${BRIDGEPEER} dynamic-nway,${CONFNO},1')
; вариант 3 (скрипт аналогичный топикстартеру)
same => n,AGI(/var/lib/asterisk/agi-bin/redirect.php)
; присоединяем к конференции инициатора
same => n,Playback(conf-placeintoconf)
same => n,Wait(0.3)
same => n,Playback(confbridge-join)
same => n,Dial(Local/${CONFNO}@dynamic-nway)
[dynamic-nway]
exten => _XXX,1,Answer()
same => n,Set(__CONFNO=${EXTEN})
same => n,Set(MEETME_EXIT_CONTEXT=dynamic-nway-invite)
same => n,Set(__DYNAMIC_FEATURES=)
same => n,MeetMe(${CONFNO},pqMX)
same => n,Hangup
Вариант 1 - не работает.
[2013-10-11 12:53:58] DEBUG[26734]: pbx.c:4265 pbx_extension_helper: Launching 'ChannelRedirect'
-- Executing [s@macro-nwaycall-start:4] ChannelRedirect("SIP/501-0000000e", "SIP/provider-0000000d,dynamic-nway,900,1") in new stack
[2013-10-11 12:53:58] DEBUG[26734]: channel.c:2703 ast_softhangup_nolock: Soft-Hanging up channel 'SIP/provider-0000000d'
[2013-10-11 12:53:58] DEBUG[26734]: app_macro.c:435 _macro_exec: Executed application: ChannelRedirect
Вариант 2 - не работает.
[2013-10-11 12:51:46] DEBUG[26728]: pbx.c:4265 pbx_extension_helper: Launching 'System'
-- Executing [s@macro-nwaycall-start:4] System("SIP/501-0000000c", "asterisk -rx 'channel redirect SIP/provider-0000000b dynamic-nway,900,1'") in new stack
-- Remote UNIX connection
[2013-10-11 12:51:46] DEBUG[26731]: channel.c:2703 ast_softhangup_nolock: Soft-Hanging up channel 'SIP/provider-0000000b'
Вариант 3 - работает.
[2013-10-11 12:58:54] DEBUG[26744]: manager.c:4709 process_message: Running action 'Redirect'
[2013-10-11 12:58:54] DEBUG[26744]: channel.c:2703 ast_softhangup_nolock: Soft-Hanging up channel 'SIP/provider-00000011'
[2013-10-11 12:58:54] DEBUG[26744]: channel.c:5964 __ast_channel_masquerade: Planning to masquerade channel SIP/501-00000012 into the structure of AsyncGoto/SIP/501-00000012
[2013-10-11 12:58:54] DEBUG[26744]: channel.c:5974 __ast_channel_masquerade: Done planning to masquerade channel SIP/501-00000012 into the structure of AsyncGoto/SIP/501-00000012
[2013-10-11 12:58:54] DEBUG[26744]: channel.c:6549 ast_do_masquerade: Actually Masquerading SIP/501-00000012(6) into the structure of AsyncGoto/SIP/501-00000012(6)
[2013-10-11 12:58:54] DEBUG[26744]: channel.c:6753 ast_do_masquerade: Putting channel SIP/501-00000012 in alaw/alaw formats
[2013-10-11 12:58:54] DEBUG[26744]: chan_sip.c:6734 sip_fixup: SIP Fixup: New owner for dialogue 5ab4a8af421bef667fe4bcc527d2692c@192.168.2.33:5060: SIP/501-00000012 (Old parent: AsyncGoto/SIP/501-00000012<ZOMBIE>)
[2013-10-11 12:58:54] DEBUG[26741]: res_agi.c:3509 run_agi: AsyncGoto/SIP/501-00000012<ZOMBIE> hungup
[2013-10-11 12:58:54] DEBUG[26744]: channel.c:6829 ast_do_masquerade: Done Masquerading SIP/501-00000012 (6)
[2013-10-11 12:58:54] DEBUG[26744]: res_rtp_asterisk.c:849 ast_rtp_change_source: Changing ssrc from 662727108 to 1707455763 due to a source change
[2013-10-11 12:58:54] DEBUG[26745]: pbx.c:4265 pbx_extension_helper: Launching 'Answer'
-- Executing [900@dynamic-nway:1] Answer("SIP/501-00000012", "") in new stack
[2013-10-11 12:58:54] DEBUG[26744]: manager.c:4290 match_filter: Examining event:
Event: Newchannel
Privilege: call,all
Channel: AsyncGoto/SIP/501-00000012
ChannelState: 6
ChannelStateDesc: Up
CallerIDNum:
CallerIDName:
AccountCode:
Exten: s
Context: macro-nwaycall-start
Uniqueid: 1381481934.45
[2013-10-11 12:58:54] DEBUG[26744]: manager.c:4290 match_filter: Examining event:
Event: Masquerade
Privilege: call,all
Clone: SIP/501-00000012
CloneState: Up
Original: AsyncGoto/SIP/501-00000012
OriginalState: Up
-- <AsyncGoto/SIP/501-00000012<ZOMBIE>>AGI Script /var/lib/asterisk/agi-bin/redirect.php completed, returning 4
[2013-10-11 12:58:54] ERROR[26744]: utils.c:1278 ast_careful_fwrite: fwrite() returned error: Connection reset by peer
== Manager 'me_and_only_me' logged off from 127.0.0.1
[2013-10-11 12:58:54] DEBUG[26741]: app_macro.c:429 _macro_exec: Spawn extension (macro-nwaycall-start,s,4) exited non-zero on 'AsyncGoto/SIP/501-00000012<ZOMBIE>' in macro 'nwaycall-start'
Т.е. если ChannelRedirect() выполняется от Callee - каким-то образом работает только через AGI->AMI. При этом похоже, что просто оба канала редиректятся в контекст [dynamic-nway], т.к. инициатору далее должны выполняться Playback, Wait и т.д., но в выводе их нет.
Уважаемые гуру, адекватная работа этой хотелки в принципе возможна, или это косяк на уровне кода * и нужно искать другие варианты ?
Собственно по наводке zzuz нашел похожий баг на багтрекере *.
https://issues.asterisk.org/jira/browse/ASTERISK-11896
Его почему-то отметили как пофиксеный, но не закоммитили ни в одну версию.
Это оно?
спросил
2013-10-11 17:41:45 +0400
bb2kp 105 ● 7 ● 1 ● 8