[asterisk-bugs] [JIRA] (ASTERISK-17826) [patch] 3 examples of loss of CDR data
Joshua Colp (JIRA)
noreply at issues.asterisk.org
Tue Dec 19 06:53:10 CST 2017
[ https://issues.asterisk.org/jira/browse/ASTERISK-17826?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Joshua Colp closed ASTERISK-17826.
----------------------------------
Resolution: Suspended
CDR support has been rewritten in Asterisk 13 and due to the way it is now defined and works I don't believe this is still applicable.
If I'm mistaken please feel free to reopen by commenting and pointing out where in the specific things are going wrong.
> [patch] 3 examples of loss of CDR data
> --------------------------------------
>
> Key: ASTERISK-17826
> URL: https://issues.asterisk.org/jira/browse/ASTERISK-17826
> Project: Asterisk
> Issue Type: Bug
> Components: CDR/General
> Affects Versions: 1.6.2.18, 10.0.0
> Reporter: Steve Davies
> Attachments: cdr-patch1-cleanup, cdr-patch2-explicit_goto, cdr_xfer_cdr_cleanup.v10.part2.patch, cdr_xfer_cdr_cleanup.v10.patch
>
>
> Discovered in 1.6.2.18, but looking at 1.8 and trunk, it probably still applies, as this code appears to be largely unchanged.
> If transferring (ast_do_masquerade) a bridged channel into an unbridged channel, CDR data is lost. I have found 3 scenarios so far where CDR data or records are lost.
> ****** ADDITIONAL INFORMATION ******
> Scenario 1. SIP handset transfer to a ringing call.
> A bridged to B
> A' ringing C (not answered)
> A SIP Redirects to B to C. ast_do_masquerade() swaps the CDR records between A and A' - Overwriting the A CDR is harmless because it is in a bridge, and ast_bridge_cdr() has a copy of its CDR stored in 'bridge_cdr'. Overwriting the A' CDR permanently destroys the only copy of that data (The copy on A is destroyed after the hangup). In this case, 2 CDR records are written, but the "A' to C" leg of the call contains data from the "A to B" leg in error.
> Scenario 2. SIP Transfer IVR to a bridged caller.
> Scenario 3. SIP Transfer bridged caller to IVR.
> These 2 scenarios are actually equivalent because scenario 2 is transmuted into scenario 3 by chan_sip.c before being executed. It pans out very similarly to the calls above, but only 1 CDR is ever written, the CDR describing the IVR leg of the call is never saved - I assume that being copied into a bridge causes it to be ignored in favour of the 'ast_bridge_cdr' copy.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list