From: Joshua Colp Date: Wed, 27 Jun 2007 22:43:11 +0000 (+0000) Subject: Fix issue where queue log events might be missing. (issue #7765 reported by mtryfoss) X-Git-Tag: 1.2.20~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5c8b322f8d50bfbcfd3b6903d793712fc55b62b8;p=thirdparty%2Fasterisk.git Fix issue where queue log events might be missing. (issue #7765 reported by mtryfoss) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@72327 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/apps/app_queue.c b/apps/app_queue.c index 74cee9c42c..730c1153f1 100644 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -2052,6 +2052,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; } @@ -2059,6 +2060,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; } @@ -3172,6 +3174,7 @@ check_turns: if (qe.parent->leavewhenempty && (stat == QUEUE_NO_MEMBERS)) { record_abandoned(&qe); reason = QUEUE_LEAVEEMPTY; + ast_queue_log(queuename, chan->uniqueid, "NONE", "EXITEMPTY", "%d|%d|%ld", qe.pos, qe.opos, (long)(time(NULL) - qe.start)); res = 0; break; } @@ -3180,6 +3183,7 @@ check_turns: if ((qe.parent->leavewhenempty == QUEUE_EMPTY_STRICT) && (stat == QUEUE_NO_REACHABLE_MEMBERS)) { record_abandoned(&qe); reason = QUEUE_LEAVEUNAVAIL; + ast_queue_log(queuename, chan->uniqueid, "NONE", "EXITEMPTY", "%d|%d|%ld", qe.pos, qe.opos, (long)(time(NULL) - qe.start)); res = 0; break; }