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
This commit is contained in:
Ivan Poddubny 2018-08-12 18:04:42 +02:00 committed by Richard Mudgett
parent 661273a078
commit fce68efbbe
1 changed files with 3 additions and 3 deletions

View File

@ -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",