[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