From 80c34d2a914e066d87420f324d8c65ee672167ad Mon Sep 17 00:00:00 2001 From: BJ Weschke <bweschke@btwtech.com> Date: Wed, 3 May 2006 20:47:34 +0000 Subject: [PATCH] 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 --- apps/app_queue.c | 4 +++- doc/queuelog.txt | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/apps/app_queue.c b/apps/app_queue.c index 3123427487..7f8c86aa6d 100644 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -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); } diff --git a/doc/queuelog.txt b/doc/queuelog.txt index aa6365e369..fa8cb48e85 100644 --- a/doc/queuelog.txt +++ b/doc/queuelog.txt @@ -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. -- GitLab