Make sure that callers kicked from queue because of joinempty and leavewhenempty have an event logged with regard to the reason for their departure. #6559 (Corydon76)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@24566 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.4
BJ Weschke 19 years ago
parent 944c8cc4a6
commit 80c34d2a91

@ -1960,6 +1960,7 @@ static int wait_our_turn(struct queue_ent *qe, int ringing, enum queue_result *r
/* leave the queue if no agents, if enabled */
if (qe->parent->leavewhenempty && (stat == QUEUE_NO_MEMBERS)) {
*reason = QUEUE_LEAVEEMPTY;
ast_queue_log(qe->parent->name, qe->chan->uniqueid, "NONE", "EXITEMPTY", "%d|%d|%ld", qe->pos, qe->opos, (long)time(NULL) - qe->start);
leave_queue(qe);
break;
}
@ -1967,6 +1968,7 @@ static int wait_our_turn(struct queue_ent *qe, int ringing, enum queue_result *r
/* leave the queue if no reachable agents, if enabled */
if ((qe->parent->leavewhenempty == QUEUE_EMPTY_STRICT) && (stat == QUEUE_NO_REACHABLE_MEMBERS)) {
*reason = QUEUE_LEAVEUNAVAIL;
ast_queue_log(qe->parent->name, qe->chan->uniqueid, "NONE", "EXITEMPTY", "%d|%d|%ld", qe->pos, qe->opos, (long)time(NULL) - qe->start);
leave_queue(qe);
break;
}
@ -2999,7 +3001,7 @@ check_turns:
if (res < 0) {
/* Record this abandoned call */
record_abandoned(&qe);
ast_queue_log(args.queuename, chan->uniqueid, "NONE", "ABANDON", "%d|%d|%ld", qe.pos, qe.opos, (long)time(NULL) - qe.start);
ast_queue_log(args.queuename, chan->uniqueid, "NONE", "ABANDON", "%d|%d|%ld", qe.pos, qe.opos, (long)time(NULL) - qe.start);
if (option_verbose > 2) {
ast_verbose(VERBOSE_PREFIX_3 "User disconnected from queue %s while waiting their turn\n", args.queuename);
}

@ -61,6 +61,14 @@ ENTERQUEUE(url|callerid)
A call has entered the queue. URL (if specified) and Caller*ID are placed
in the log.
EXITEMPTY(position|origposition|waittime)
The caller was exited from the queue forcefully because the queue had no
reachable members and it's configured to do that to callers when there
are no reachable members. The position is the caller's position in the
queue when they hungup, the origposition is the original position the
caller was when they first entered the queue, and the waittime is how
long the call had been waiting in the queue at the time of disconnect.
EXITWITHKEY(key|position)
The caller elected to use a menu key to exit the queue. The key and
the caller's position in the queue are recorded.

Loading…
Cancel
Save