The CDRfix4/5/6 omnibus cdr fixes.

(closes issue #10927)
Reported by: murf
Tested by: murf, deeperror

(closes issue #12907)
Reported by: falves11
Tested by: murf, falves11


(closes issue #11849)
Reported by: greyvoip

As to 11849, I think these changes fix the core problems 
brought up in that bug, but perhaps not the more global
problems created by the limitations of CDR's themselves
not being oriented around transfers.

Reopen if necc, but bug reports are not the best
medium for enhancement discussions. We need to start
a second-generation CDR standardization effort to cover
transfers.

(closes issue #11093)
Reported by: rossbeer
Tested by: greyvoip, murf




git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@127663 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Steve Murphy
2008-07-03 00:16:25 +00:00
parent 27a3ead8a7
commit e9f5152eba
7 changed files with 135 additions and 216 deletions

View File

@@ -13402,19 +13402,6 @@ static int attempt_transfer(struct sip_dual *transferer, struct sip_dual *target
if (peerd)
ast_quiet_chan(peerd);
/* Fix CDRs so they're attached to the remaining channel */
if (peera->cdr && peerb->cdr)
peerb->cdr = ast_cdr_append(peerb->cdr, peera->cdr);
else if (peera->cdr)
peerb->cdr = peera->cdr;
peera->cdr = NULL;
if (peerb->cdr && peerc->cdr)
peerb->cdr = ast_cdr_append(peerb->cdr, peerc->cdr);
else if (peerc->cdr)
peerb->cdr = peerc->cdr;
peerc->cdr = NULL;
if (option_debug > 3)
ast_log(LOG_DEBUG, "SIP transfer: trying to masquerade %s into %s\n", peerc->name, peerb->name);
if (ast_channel_masquerade(peerb, peerc)) {