<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p>i think i foud possible solution. can you confirm if i'm on
correct path?</p>
<p>sql data looks</p>
<p>+-----+----------------------------+-----------------+-----------+-------+---------+-------+-------+-------+-------+-------+<br>
| id | time | callid | queuename |
agent | event | data1 | data2 | data3 | data4 | data5 |<br>
| 165913 | 2016-12-14 11:01:20.965839 | 1481709660.56899 | queue1
| NONE | ABANDON | 1 | 1 | 9 | | |<br>
</p>
<p>data3 contains ringtime but agent is filled as "NONE"<br>
</p>
<p><br>
</p>
<p>in app_queue there are 2 places which fills ABANDON<br>
</p>
<p><br>
</p>
<p>function queue_exec<br>
</p>
<p>stop:<br>
if (res) {<br>
if (res < 0) {<br>
if (!qe.handled) {<br>
record_abandoned(&qe);<br>
<b> ast_queue_log(args.queuename,
ast_channel_uniqueid(chan), "NONE", "ABANDON", "%d|%d|%ld",
qe.pos, qe.opos, (long) (time(NULL) - qe.start));</b><br>
res = -1;<br>
} else if (qcontinue) {<br>
reason = QUEUE_CONTINUE;<br>
res = 0;<br>
}<br>
} else if (qe.valid_digits) {<br>
ast_queue_log(args.queuename,
ast_channel_uniqueid(chan), "NONE", "EXITWITHKEY",<br>
"%s|%d|%d|%ld", qe.digits, qe.pos, qe.opos, (long)
(time(NULL) - qe.start));<br>
}<br>
</p>
<p><br>
</p>
<p>BUT <br>
</p>
<p>in try_calling function<br>
</p>
<p>there is member filled</p>
<p>} else if (ast_check_hangup(qe->chan)) {<br>
/* Caller must have hung up just before being
connected */<br>
ast_log(LOG_NOTICE, "Caller was about to talk to
agent on %s but the caller hungup.\n", ast_channel_name(peer));<br>
<b> ast_queue_log(queuename,
ast_channel_uniqueid(qe->chan), member->membername,
"ABANDON", "%d|%d|%ld", qe->pos, qe->opos, (long)
(time(NULL) - qe->start));</b><br>
record_abandoned(qe);<br>
ast_channel_publish_dial(qe->chan, peer,
member->interface,
ast_hangup_cause_to_dial_status(ast_channel_hangupcause(peer)));<br>
ast_autoservice_chan_hangup_peer(qe->chan,
peer);<br>
ao2_ref(member, -1);<br>
return -1;<br>
}<br>
</p>
<p><br>
</p>
<p>why isnt used the try_calling to fill ABANDON?<br>
</p>
<p>is it safe fill member (if exist) in queue_exec?<br>
</p>
<br>
<br>
-------- Přeposlaná zpráva --------
<table class="moz-email-headers-table" border="0" cellpadding="0"
cellspacing="0">
<tbody>
<tr>
<th align="RIGHT" nowrap="nowrap" valign="BASELINE">Předmět: </th>
<td>app_queue missed calls per agent - caller hangup before
timeout</td>
</tr>
<tr>
<th align="RIGHT" nowrap="nowrap" valign="BASELINE">Datum: </th>
<td>Wed, 14 Dec 2016 14:26:21 +0100</td>
</tr>
<tr>
<th align="RIGHT" nowrap="nowrap" valign="BASELINE">Od: </th>
<td>marek cervenka <a class="moz-txt-link-rfc2396E" href="mailto:cervajs2@gmail.com"><cervajs2@gmail.com></a></td>
</tr>
<tr>
<th align="RIGHT" nowrap="nowrap" valign="BASELINE">Komu: </th>
<td>Asterisk Users Mailing List - Non-Commercial Discussion
<a class="moz-txt-link-rfc2396E" href="mailto:asterisk-users@lists.digium.com"><asterisk-users@lists.digium.com></a></td>
</tr>
</tbody>
</table>
<br>
<br>
<pre>hi,
i'm trying get report about missed calls per agent. i'm using queue_log
and RINGNOANSWER event
but i found problem described here
---
<a class="moz-txt-link-freetext" href="https://www.thirdlane.com/forum/queue-log-problem">https://www.thirdlane.com/forum/queue-log-problem</a>
RINGNOANSWER only happens if the call TIMES OUT ringing the agent and it
returns to the queue. If your agent has a 30 second timeout and the
caller ABANDONS the call in 5 seconds it will log an ABANDON not a
RINGNOANSWER.
This is the only time ast_queue_log is executed with RINGNOANSWER. The
subsequent code of this function goes on to autopause the agent/member
if autopause is enabled. Not something that happens when callers hang up
when ringing the agents.
/*! \brief RNA == Ring No Answer. Common code that is executed when we
try a queue member and they don't answer. */
static void rna(int rnatime, struct queue_ent *qe, char *interface, char
*membername)
{
if (option_verbose > 2)
ast_verbose( VERBOSE_PREFIX_3 "Nobody picked up in %d ms\n", rnatime);
ast_queue_log(qe->parent->name, qe->chan->uniqueid, membername,
"RINGNOANSWER", "%d", rnatime);
---
any tips howto detect missed calls where caller hangup before timeout?
tnx
Marek
</pre>
</body>
</html>