From: Ivan Poddubny Date: Sun, 12 Aug 2018 16:04:42 +0000 (+0200) Subject: app_queue: set QUEUESTATUS to LEAVEEMPTY instead of CONTINUE X-Git-Tag: 13.23.0-rc1~25 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f48761907a3c3ac18f987f2fdf5e7f79347624b7;p=thirdparty%2Fasterisk.git 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 --- diff --git a/apps/app_queue.c b/apps/app_queue.c index f783ac94de..31580b46b4 100644 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -8172,12 +8172,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",