From c3a3ab8628419b1b2cf521a12f22064ab8d3c66a Mon Sep 17 00:00:00 2001
From: Kfir Itzhak <mastertheknife@gmail.com>
Date: Wed, 26 Aug 2020 12:58:21 +0300
Subject: [PATCH] app_queue: Fix leave-empty not recording a call as abandoned

This fixes a bug introduced mistakenly in ASTERISK-25665:
If leave-empty is enabled, a call may sometimes be removed from
a queue without recording it as abandoned.
This causes Asterisk to not generate an abandon event for that
call, and for the queue abandoned counter to be incorrect.

ASTERISK-29043 #close

Change-Id: I1a71b81df78adff59af587f1d8483cf57df430c7
---
 apps/app_queue.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/apps/app_queue.c b/apps/app_queue.c
index ba206eb8dc..d94a8099aa 100644
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -5641,6 +5641,7 @@ static int wait_our_turn(struct queue_ent *qe, int ringing, enum queue_result *r
 			int status = 0;
 
 			if ((status = get_member_status(qe->parent, qe->max_penalty, qe->min_penalty, qe->raise_penalty, qe->parent->leavewhenempty, 0))) {
+				record_abandoned(qe);
 				*reason = QUEUE_LEAVEEMPTY;
 				ast_queue_log(qe->parent->name, ast_channel_uniqueid(qe->chan), "NONE", "EXITEMPTY", "%d|%d|%ld", qe->pos, qe->opos, (long) (time(NULL) - qe->start));
 				res = -1;
-- 
GitLab