Summary:ASTERISK-06950: Accountcode isn't accurate with ForkCDR.
Reporter:Juan Pablo Abuyeres (jpabuyer)Labels:
Date Opened:2006-05-10 16:54:48Date Closed:2011-06-07 14:07:46
Versions:Frequency of
Environment:Attachments:( 0) blindtransfer+forkcdr_SVN-trunk-r26655.log
Description:When A calls B, and B blindtransfers the call to C, I ForkCDR to make 2 CDR records. I want the first call to have accountcode of user A, and the second (the blindtransfered) call to have accountcode of user B.
When I ForkCDR, both calls have the same accountcode (user A's). If I ForkCDR before the new Dial (in the middle of the blindtransfer), I would expect the new cdr to have accountcode of the account that's making the transfer, not the original caller.
Comments:By: Serge Vecher (serge-v) 2006-05-10 19:42:13

please turn up high verbosity enable the sip debug and post the results here as an attachment.


By: Juan Pablo Abuyeres (jpabuyer) 2006-05-11 09:50:04

Uploaded file shows SIP/1003 calling SIP/1002, and then SIP/1002 blindtransfers the call to SIP/1001, ForkingCDR before the second Dial.

By: Juan Pablo Abuyeres (jpabuyer) 2006-05-17 15:55:59

I've been looking at the source code trying to solve this myself. It's not an easy task to try to undestand this beast with no background :) so I have a design question. Correct me if I'm wrong.
ast_chan->cdr is a pointer to a linked list of cdr's for a channel, but apparently from ast_cdr_setaccount() it is expected that every ast_chan->cdr->accountcode to be the same.. It doesn't make sense to me, from a billing system point of view. Please give me some clues on this. Thank you.

By: Joshua C. Colp (jcolp) 2006-05-18 11:08:46

I think this question would be better if it was asked on the Asterisk-Dev mailing list then here... it's more of a design question and proper behavior question that I don't think anybody can outright answer.