[asterisk-users] How to correctly fork a CDR for billing in a call forwarding scenario?

Benoit Panizzon benoit.panizzon at imp.ch
Tue Jan 28 05:53:36 CST 2020

Hi Gang

I have not yet managed to find a solution to correctly generate CDRs
for this situation:

Alice calls Bob.
Bob has call forwarding delayed 20s to Charlie.
Charlie picks up immediately.

exten => bob,1,DBget(cfwdly=CFDLY/${exten}); $cfwdly contains charlie
	same => n,Set(CDR(src)=${CALLERID(number)}) ; src 'alice'
	same => n,Set(CDR(dst)=${exten})
	same => n,Dial(bob,20)
	same => n,ForkCDR
	same => n,Set(CDR(src)=bob) ; 2nd cdr src shall contain 'bob'
	same => n,Set(CDR(dst)=${cfwdly})
	same => n,Set(CALLERID(number)=bob)
	same => n,Dial(${cfwdly})

Now assume a call of 1 minute.

For billing purposes, I need 2 CDRS.

Billing to Alice: Call of 40 seconds to Bob.
Billing to Bob: Call of 40 seconds to Charlie.

I would expect that setting the custom variables as above and forking
the CDR would generate CDRS looking like this:


But that is not happening. Booth CDR contain the same source and

I have played around with the various ForkCDR(options) but none did
what I expected.

Mit freundlichen Grüssen

-Benoît Panizzon-
I m p r o W a r e   A G    -    Leiter Commerce Kunden

Zurlindenstrasse 29             Tel  +41 61 826 93 00
CH-4133 Pratteln                Fax  +41 61 826 93 01
Schweiz                         Web  http://www.imp.ch

More information about the asterisk-users mailing list