[asterisk-dev] No CDR for non-bridged outgoing calls

Jim Gottlieb jimmy at nccom.com
Mon Dec 28 02:08:16 CST 2009

I'm trying to bring all our systems a little closer to modernity, but I'm hitting one show-stopper bug in trying to update from asterisk 1.2 to 1.4.24 (upgrading to 1.6 will require many changes as we use the C API).

Basically, I have found that an outgoing call (made by dropping a file in /var/spool/asterisk/outgoing) in 1.4 does not generate a CDR record for the call it connects the dialed party to, unless it uses the Dial() command.  This worked fine in 1.2.

In other words, if we call someone, and then Dial() is used to connect them, we get CDR.  But if we call someone and then just play them a recording or an IVR tree, then no CDR is generated for the call.

According to http://www.asterisk.org/node/48358 the generation of CDR in 1.4 was moved from the Hangup routine to ast_bridge_call, so I suspect the problem is that these calls are never being handled in ast_bridge_call.  I've tried using ResetCDR() and ForkCDR() with various options but still, no CDR is generated.

I've also tried doing an explicit Hangup() on the call (as opposed to having the called party cause the call to end), but that doesn't help either.

Short of dialing out to the PSTN and back in again, can someone think of a way to fix this?  We need to be able to charge for these calls.

Jim Gottlieb
San Diego CA

Call file:

Channel: Local/8585551234 at outtrunk-collect
Callerid: 8585551234
MaxRetries: 5
RetryTime: 20
WaitTime: 45
Context: collect-approval
Extension: 16191000001
Priority: 1

More information about the asterisk-dev mailing list