[Asterisk-Users] Getting correct CDR info

Spam Fighter spamfighter11 at yahoo.com
Sat Oct 29 05:47:45 MST 2005


I am using queue and dynamic (pstn) agents that log in with
AgentCallBackLogin. My problem is that CDR does not make a complete
picture of the calls.

Below I put a truncated CDR of one call. Here, user's call (3) is
forwarded to one agent (1) who hasn't answered in 22 sec, then to
Agent/302 (2) who answered after 13 sec. For the second agent only the
time before pick up shows up in the CDR. The actual duration of the
answered outbound call to Agent/302 (the only one which is paid!!!) is
lost...

dstchann/lastapp/duration/billsec/disposition
1. Zap/1-1    Dial   22   0  NO ANSWER
2. Zap/1-1    Dial   13   0  ANSWERED
3. Agent/302  Queue  49  49  ANSWERED

Tracking down the problem, I have found that queues use Local channel to
place calls to agents. Local channels are destroyed when bridged to an
originating channel. Therefore, the call (2) is destroyed and call 3 shows
duration=billsec as it should be for that call since it is answered by the
system.

I have made a hack, that allows for correct reading of duration/billsec.
This is achieved with an extra Local channel with "/n" option that saves
the original channel from bridging to the Agent's channel having both legs
recorded in CDR.

1. Zap/1-1    Dial   12   0  NO ANSWER
2. Zap/1-1    Dial   16   7  ANSWERED
3. Agent/302  Queue  69  69  ANSWERED

This solution costs an extra Local  channel for each call, extra contexts
in the dialplan, etc.

Is there any way to make queue not to call agents over Local channel or
say queue to use the "/n" option?

Thanks.
Cleo



		
__________________________________ 
Yahoo! FareChase: Search multiple travel sites in one click.
http://farechase.yahoo.com



More information about the asterisk-users mailing list