[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