[asterisk-users] CDR Problem - No CDRs when call is not bridged

Alex Balashov abalashov at evaristesys.com
Tue Aug 4 06:16:58 CDT 2009


Alex Balashov wrote:

> Klaus Darilion wrote:
> 
>> [from_pstn]
>> exten => 997,1,Answer()
>> exten => 997,2,Playback(tt-weasels)
>> exten => 997,3,Hangup()
>>
>> exten => 999,1,Playback(tt-weasels|noanswer)
>> exten => 999,4,Hangup()
>>
>>
>> For incoming calls to 997 a CDR will be written, but not for 999.
> 
> It seems to me that this has to do with the fact that in 999, the dialog 
> is kept in an early state and is never actually answered.  Thus, 
> technically tt-weasels is in-band ringback, and no actual call took place.
> 
> What I'm a little hazy on is which dial plan applications imply a full 
> Answer() and which don't;  I do not remember if Playback() is one of the 
> ones that doesn't imply it, but if that's so, it would explain the lack 
> of CDR.  Its cousin Background() implies an answer for sure, as that 
> requires a bidirectional media path for possible DTMF input from the 
> user that may preempt the announcement.
> 
> There is a very limited amount of things that can actually take place in 
> the dial plan that don't require picking up the call (200 OK) and 
> establishing a bidirectional media path;  basically, it's the set of 
> actions that involve playing things to the user unidirectionally. 
> Everything else will trigger an answer if an answer is not required but 
> not explicitly enacted with Answer().

It seems that you're already a step ahead of me.  By specifying the 
"noanswer" option, you're specifically telling Playback() not to answer 
the channel first, which leads to no CDR.

I do not know if there is a way to generate CDRs for early dialogs as 
well.  I would presume there is.

-- Alex

-- 
Alex Balashov
Evariste Systems
Web    : http://www.evaristesys.com/
Tel    : (+1) (678) 954-0670
Direct : (+1) (678) 954-0671
Mobile : (+1) (678) 237-1775



More information about the asterisk-users mailing list