Summary:ASTERISK-07492: After a ForkCDR asterisk does no longer get the correct values for CDR(userfield) and CDR(accountcode)
Reporter:Loic Didelot (voipgate)Labels:
Date Opened:2006-08-09 01:25:43Date Closed:2006-08-17 11:30:53
Versions:Frequency of
Description:Ok lets take this example:
exten => bla,1,set(CDR(accountcode)=STEP1)
exten => bla,2,NOOP(${CDR(accountcode)}) ;will output "STEP1"
exten => bla,3,NOOP(${ACCOUNTCODE}) ;will output "STEP1"
exten => bla,4,ForkCDR
exten => bla 5,set(CDR(accountcode)=STEP2)
exten => bla,6,NOOP(${CDR(accountcode)}) ;will output "STEP1"
exten => bla,7,NOOP(${ACCOUNTCODE}) ;will output "STEP2" !!!!!!!

The result in my CDR logs is correct. So I can write to the variables and they are correctly put into the cdr table. But I can no loger read those variables after having changed them after a ForkCDR. The value I will get is always the value before the ForkCDR (except for the deprecated variable ${ACCOUNTCODE})


I have tested it on 1.2.9,, 1.2.10 and some trunk versions. The behaviour does not change if I use agi's or dialplan logic.

I tested if normal variables (non CDR's related stuff) behavesn the same. But in that case the behaviour is perfectly normal.

Some unimportant information:
We use ForkCDR for "Redirected Calls". So the accountcode (user_id in our database) on the first CDR line should be the one of the calling user and then we need to change it for the second CDR line to the redirecting user so that the correct user gets billed.
Comments:By: Joshua C. Colp (jcolp) 2006-08-16 14:17:55

I know what the issue is, after I talk to Russell I'll see about putting it into 1.2

By: Joshua C. Colp (jcolp) 2006-08-17 11:30:53

Fixed in 1.2 as of revision 40225 and in trunk as of revision 40226. In trunk you must use the 'l' option.