[asterisk-bugs] [JIRA] (ASTERISK-20933) No CDR created after call has been split and then bridged back
Alex Barnes (JIRA)
noreply at issues.asterisk.org
Mon Jan 14 08:08:45 CST 2013
Alex Barnes created ASTERISK-20933:
--------------------------------------
Summary: No CDR created after call has been split and then bridged back
Key: ASTERISK-20933
URL: https://issues.asterisk.org/jira/browse/ASTERISK-20933
Project: Asterisk
Issue Type: Bug
Security Level: None
Components: CDR/General, Core/Bridging
Affects Versions: 1.8.19.1, 1.8.15.1, 1.8.14.1
Environment: CentOS 5 using Digium yum repositories
Reporter: Alex Barnes
Scenario
===========================
No CDR record is created after a call has been split and then bridged back. See example dialplan below where a CDR record is created at all points right up to the Bridge command but not after. Reversing which channel gets bridged still results in no CDR, i.e. the caller doing the bridging or the callee.
In our case the VoiceSafe is acting as an ISDN middle-man to record and log calls before being passed onto the PBX or telco. I haven't tested purely SIP but I imagine it would be the same outcome.
Note that this was working in 1.8.13 but appears to have been broken in 1.8.14 and above.
Versions
===========================
All packages installed via Yum.
*1.8.13.1-1_centos5 = OK
*1.8.14.1-1_centos5 = No CDR
*1.8.15.1-1_centos5 = No CDR
*1.8.15-0.cert1.1_centos5 = No CDR
*1.8.19.1-1_centos5 = No CDR
Dialplan
===========================
{code}
[from-inside]
exten => 321,1,SET(__DYNAMIC_FEATURES=testBridge)
exten => 321,n,Dial(DAHDI/g1/321,300,)
[macro-test-bridge]
exten => s,1,NoOp(In test-bridge)
exten => s,n,Set(operator-channel=${CHANNEL})
exten => s,n,Set(caller-channel=${BRIDGEPEER})
; Sync variables on both channels
exten => s,n,NoOp(Syncing channel vars)
exten => s,n,Set(SHARED(operator-channel,${operator-channel})=${operator-channel})
exten => s,n,Set(SHARED(caller-channel,${operator-channel})=${caller-channel})
exten => s,n,Set(SHARED(operator-channel,${caller-channel})=${operator-channel})
exten => s,n,Set(SHARED(caller-channel,${caller-channel})=${caller-channel})
exten => s,n,ChannelRedirect(${caller-channel},test-wait-bridge,1,1)
exten => s,n,ChannelRedirect(${operator-channel},test-wait,1,1)
[test-wait-bridge]
exten => 1,1,NoOp(In test-wait-bridge)
exten => 1,n,Wait(5)
; Hanging up here rather than bridging will results in CDR correctly being created
; exten => 1,n,Hangup
exten => 1,n,Bridge(${SHARED(operator-channel)})
[test-wait]
exten => 1,1,NoOp(In test-wait)
exten => 1,n,Wait(30)
exten => 1,n,Hangup
{code}
features.conf
===========================
{code}
testBridge => #2,peer,Macro,test-bridge
{code}
Example Output
===========================
{code}
-- Accepting overlap call from '123' to '321' on channel 0/1, span 2
-- Starting simple switch on 'DAHDI/i2/123-28'
-- Executing [321 at from-inside:1] Set("DAHDI/i2/123-28", "__DYNAMIC_FEATURES=testBridge") in new stack
-- Executing [321 at from-inside:2] Dial("DAHDI/i2/123-28", "DAHDI/g1/321,300,") in new stack
-- Requested transfer capability: 0x00 - SPEECH
-- Called DAHDI/g1/321
-- DAHDI/i1/321-27 is making progress passing it to DAHDI/i2/123-28
-- DAHDI/i1/321-27 is proceeding passing it to DAHDI/i2/123-28
-- DAHDI/i1/321-27 is ringing
-- DAHDI/i1/321-27 answered DAHDI/i2/123-28
-- Feature Found: testBridge exten: testBridge
-- Executing [s at macro-test-bridge:1] NoOp("DAHDI/i2/123-28", "In test-bridge") in new stack
-- Executing [s at macro-test-bridge:2] Set("DAHDI/i2/123-28", "operator-channel=DAHDI/i2/123-28") in new stack
-- Executing [s at macro-test-bridge:3] Set("DAHDI/i2/123-28", "caller-channel=DAHDI/i1/321-27") in new stack
-- Executing [s at macro-test-bridge:4] NoOp("DAHDI/i2/123-28", "Syncing channel vars") in new stack
-- Executing [s at macro-test-bridge:5] Set("DAHDI/i2/123-28", "SHARED(operator-channel,DAHDI/i2/123-28)=DAHDI/i2/123-28") in new stack
-- Executing [s at macro-test-bridge:6] Set("DAHDI/i2/123-28", "SHARED(caller-channel,DAHDI/i2/123-28)=DAHDI/i1/321-27") in new stack
-- Executing [s at macro-test-bridge:7] Set("DAHDI/i2/123-28", "SHARED(operator-channel,DAHDI/i1/321-27)=DAHDI/i2/123-28") in new stack
-- Executing [s at macro-test-bridge:8] Set("DAHDI/i2/123-28", "SHARED(caller-channel,DAHDI/i1/321-27)=DAHDI/i1/321-27") in new stack
-- Executing [s at macro-test-bridge:9] ChannelRedirect("DAHDI/i2/123-28", "DAHDI/i1/321-27,test-wait-bridge,1,1") in new stack
-- Executing [s at macro-test-bridge:10] ChannelRedirect("DAHDI/i2/123-28", "DAHDI/i2/123-28,test-wait,1,1") in new stack
== Channel 'DAHDI/i2/123-28' jumping out of macro 'test-bridge'
-- Executing [1 at test-wait-bridge:1] NoOp("DAHDI/i1/321-27", "In test-wait-bridge") in new stack
-- Executing [1 at test-wait-bridge:2] Wait("DAHDI/i1/321-27", "5") in new stack
== Spawn extension (test-wait, 1, 1) exited non-zero on 'DAHDI/i2/123-28'
-- Executing [1 at test-wait:1] NoOp("DAHDI/i2/123-28", "In test-wait") in new stack
-- Executing [1 at test-wait:2] Wait("DAHDI/i2/123-28", "30") in new stack
-- Executing [1 at test-wait-bridge:3] Bridge("DAHDI/i1/321-27", "DAHDI/i2/123-28") in new stack
== Spawn extension (test-wait, 1, 2) exited non-zero on 'Bridge/DAHDI/i2/123-28<ZOMBIE>'
-- Span 1: Channel 0/1 got hangup request, cause 16
-- Hungup 'DAHDI/i1/321-27'
-- Executing [1 at test-wait:3] Hangup("DAHDI/i2/123-28", "") in new stack
== Spawn extension (test-wait, 1, 3) exited non-zero on 'DAHDI/i2/123-28'
-- Hungup 'DAHDI/i2/123-28'
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the asterisk-bugs
mailing list