From 2ce061091ecb7bb867bb8b56d57381398185e0d1 Mon Sep 17 00:00:00 2001 From: Ivan Poddubny Date: Sun, 12 Aug 2018 18:04:42 +0200 Subject: [PATCH] app_queue: set QUEUESTATUS to LEAVEEMPTY instead of CONTINUE When a call leaves a queue on leaveempty condition, QUEUESTATUS must be set to LEAVEEMPTY, no matter whether Queue was executed with or without the "c" (continue) option. The regression was introduced in the fix for ASTERISK_25665. The following fix (ASTERISK_27065) was incomplete, as QUEUESTATUS was overwritten in case when "c" is set, regardless of what was the cause for leaving the queue. ASTERISK-27973 #close Reported-by: Valentin Safonov Change-Id: Iec013fe6a26a4e825ca572a1dda4f3cee5f6f80c --- apps/app_queue.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/app_queue.c b/apps/app_queue.c index 052d528b8b..ee252f99e2 100644 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -8471,12 +8471,12 @@ stop: "%d|%d|%ld", qe.pos, qe.opos, (long) (time(NULL) - qe.start)); res = -1; - } else if (qcontinue) { - reason = QUEUE_CONTINUE; - res = 0; } else if (reason == QUEUE_LEAVEEMPTY) { /* Return back to dialplan, don't hang up */ res = 0; + } else if (qcontinue) { + reason = QUEUE_CONTINUE; + res = 0; } } else if (qe.valid_digits) { ast_queue_log(args.queuename, ast_channel_uniqueid(chan), "NONE", "EXITWITHKEY",