Hi all,
I have created a bug for an issue we are having since upgrading from 1.8.13 to 1.8.14 and above (inc. 1.8.19) but I was hoping someone could help reproduce or even suggest a work around.
Bug report is here, including example dialplans etc, to save me repeating myself too much: issues.asterisk.org/jira/browse/ASTERISK-20933
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.
Dialplan
This is a simplified dialplan to demonstrate the issue, our real dialplan is more complicated. The macro “macro-test-bridge” is initiated via DTMF feature.
[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
Thanks in advance for any help or suggestions,
Alex

