Non-answered calls from a queue

Hello, I have a question concerning call statistics. We have a small call center, and my boss wants to have statistical information about the following:

  • the quantity of answered calls;
  • total duration of answered calls;
  • the quantity of non-answered calls.

The problem with the latter is that we need to separate the calls which the operator didn’t answer because he was busy (answering another call), from the ones he didn’t answer because he was working badly.
Plus, when the call comes from a queue and not being answered for a long time, it keeps looping, so in the statistics it shows not as one, but as several calls.

So, my question is - can this be done at all? My boss wants me to find out whether it’s possible, and, if it is, maybe there is an implemented application, or maybe we should just hire an Asterisk professional who can write the code for us.

I’d be really grateful for your advice.

I am sure that it can be done, but first we should clarify some terminology.

When you say ‘Non-Answered’ are you referring to a call that was presented to an agent, but the agent did not answer the call or one where the caller hung up before a call was answered? One is called a RINGNOANSWER and one is an ABANDON event.

How do you distinguish a call that is not answered because some is busy versus not doing their job well? If their job is answering calls only, then perhaps new calls should not be presented to the agent when they are busy on a call already. If they are wandering away from their desk, then maybe you should use the autopause feature.

When you say that a call keeps looping, are you saying ti drops out of the queue and you re-insert the call? I would propose that the process should be changed to let the queue handle that sort of thing. That way the call enters the queue once. It it is presented to an agent and the agent does not answer, it remains in the queue and the agent gets a RINGNOANSWER event. When the call is answered and completed, the times associated with wait and total time are recorded.

Thank you for your reply!

As far as I understand, the queues are organized the following way - as we have only 4 operators, each operator has 2 lines (probably so that if all the operators are busy, the client would be placed on hold). So even if the operator is talking to a client, another call may be received but not answered. So the problem can be described like this: the client is calling, no-one’s replying, and we have to understand whether it’s because all the operators were answering another call or just not answering at all.

Concerning looping - I’ll show you entries from cdr table to give an example:
Calldate Src Dst Dstchannel Billsec Disposition
2012-04-18 08:22:43 79296297001 1108 Local/1108@from-internal-4b39,2 89 ANSWERED
2012-04-18 08:22:52 79296297001 1108 IAX2/PBX_spbUser-12299 0 NO ANSWER
2012-04-18 08:23:02 79296297001 1108 IAX2/PBX_spbUser-2127 89 ANSWERED


Calldate Src Dst Dstchannel Billsec Disposition
2012-04-18 09:30:43 74996850035 1106 Local/1106@from-internal-cc3a,2 0 NO ANSWER
2012-04-18 09:30:54 74996850035 1108 Local/1108@from-internal-6fe0,2 0 NO ANSWER
2012-04-18 09:31:02 74996850035 1106 IAX2/PBX_spbUser-4543 0 NO ANSWER
2012-04-18 09:31:02 74996850035 4004 IAX2/PBX_spbUser-6548 0 NO ANSWER
2012-04-18 09:31:13 74996850035 3000 IAX2/PBX_spbUser-3898 0 NO ANSWER
2012-04-18 09:31:32 74996850035 1106 Local/1106@from-internal-bbd4,2 0 NO ANSWER
2012-04-18 09:31:32 74996850035 4004 Local/4004@from-internal-4d48,2 47 ANSWERED

I mean, it’s clearly the same call, but the statistical information about one operator (1106 for instance) we have at the moment will show that these were 3 non-answered calls.

I do apologize if I’m talking nonsense, but I’ve really had no experience with Asterisk before.

CDR is not always the best device to use for these kind of questions, and I believe you understand why.

If you are using the Queue() application, then Asterisk should be maintaining a queue_log file or possibly a table in a database. I use this information to generate statistics about what is happening with the queues. Each time a call is placed in queue, connected, abandoned and Ring No Answer, it is logged. Using a script I parse the data and generate summary stats.

For you a Ring No Answer would be what you are looking for.

You may find these links helpful. They describe the contents of the queue_log file/table … +queue_log

If you are not using queues, you may want to consider it.


Dale, thank you for the explanation and the links, I’ll pass this on to my boss.