ok. i understand
but the use case is
- the call is ringing to agent (queue member selected)
- caller hangs
- queue_log is run from queue_exec (but i expected queue_log from
try_calling)
i'll try investigate it deeper and fill bug if it looks like a bug
Dne 15/12/2016 v 23:11 Matthew Jordan napsal(a):
On Thu, Dec 15, 2016 at 10:17 AM, marek cervenka <[email protected]
<mailto:[email protected]>> wrote:
i think i foud possible solution. can you confirm if i'm on
correct path?
sql data looks
+-----+----------------------------+-----------------+-----------+-------+---------+-------+-------+-------+-------+-------+
| id | time | callid | queuename |
agent | event | data1 | data2 | data3 | data4 | data5 |
| 165913 | 2016-12-14 11:01:20.965839 | 1481709660.56899 | queue1
| NONE | ABANDON | 1 | 1 | 9 | | |
data3 contains ringtime but agent is filled as "NONE"
in app_queue there are 2 places which fills ABANDON
function queue_exec
stop:
if (res) {
if (res < 0) {
if (!qe.handled) {
record_abandoned(&qe);
* ast_queue_log(args.queuename,
ast_channel_uniqueid(chan), "NONE", "ABANDON", "%d|%d|%ld",
qe.pos, qe.opos, (long) (time(NULL) - qe.start));*
res = -1;
} else if (qcontinue) {
reason = QUEUE_CONTINUE;
res = 0;
}
} else if (qe.valid_digits) {
ast_queue_log(args.queuename,
ast_channel_uniqueid(chan), "NONE", "EXITWITHKEY",
"%s|%d|%d|%ld", qe.digits, qe.pos, qe.opos, (long)
(time(NULL) - qe.start));
}
BUT
in try_calling function
there is member filled
} else if (ast_check_hangup(qe->chan)) {
/* Caller must have hung up just before being
connected */
ast_log(LOG_NOTICE, "Caller was about to talk to
agent on %s but the caller hungup.\n", ast_channel_name(peer));
* ast_queue_log(queuename,
ast_channel_uniqueid(qe->chan), member->membername, "ABANDON",
"%d|%d|%ld", qe->pos, qe->opos, (long) (time(NULL) - qe->start));*
record_abandoned(qe);
ast_channel_publish_dial(qe->chan, peer,
member->interface,
ast_hangup_cause_to_dial_status(ast_channel_hangupcause(peer)));
ast_autoservice_chan_hangup_peer(qe->chan, peer);
ao2_ref(member, -1);
return -1;
}
why isnt used the try_calling to fill ABANDON?
is it safe fill member (if exist) in queue_exec?
These two locations are fulfilling two different purposes.
The first, in queue_exec, handles the case where the caller abandons
the queue prior to any queue member being selected. The second, as the
comment suggests, handles the case where the caller abandons the queue
after the queue member has been selected but before the two parties
have been connected.
As such, no, you cannot get a queue member name in queue_exec, as
there is no queue member that has been chosen.
-------- Přeposlaná zpráva --------
Předmět: app_queue missed calls per agent - caller hangup before
timeout
Datum: Wed, 14 Dec 2016 14:26:21 +0100
Od: marek cervenka <[email protected]> <mailto:[email protected]>
Komu: Asterisk Users Mailing List - Non-Commercial Discussion
<[email protected]>
<mailto:[email protected]>
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
---
https://www.thirdlane.com/forum/queue-log-problem
<https://www.thirdlane.com/forum/queue-log-problem>
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
--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com
-- asterisk-dev mailing list To UNSUBSCRIBE or update options
visit: http://lists.digium.com/mailman/listinfo/asterisk-dev
<http://lists.digium.com/mailman/listinfo/asterisk-dev>
--
Matthew Jordan Digium, Inc. | CTO 445 Jan Davis Drive NW - Huntsville,
AL 35806 - USA Check us out at: http://digium.com & http://asterisk.org
--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-dev