diff options
author | Ivan Poddubny <ivan.poddubny@gmail.com> | 2017-06-27 11:37:11 +0200 |
---|---|---|
committer | Ivan Poddubny <ivan.poddubny@gmail.com> | 2017-06-27 11:54:06 +0200 |
commit | 78277555703ba3b58ab925040211a272011a9a12 (patch) | |
tree | e32e11b50e6508fbe9c77d1ff21e78e9404de0d4 /apps | |
parent | d59b0efabd811370540bbb70ee7073cb79d088a7 (diff) |
app_queue: Fix returning to dialplan when a queue is empty
The fix for ASTERISK-25665 introduced a regression.
The return value of queue_exec used to be 0 in case of leavewhenempty
but it was changed to -1 (returned from wait_our_turn and passed
transparently by queue_exec), thus leading to hangup instead of returning
back to dialplan.
This commit resets the value back to 0 in this case, restoring
original behavior.
ASTERISK-27065 #close
Reported by: Marek Cervenka
Change-Id: Id9c83b75aeda463250155e88c5004be52bbca5ac
Diffstat (limited to 'apps')
-rw-r--r-- | apps/app_queue.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/apps/app_queue.c b/apps/app_queue.c index f158a4caa..b306af1ae 100644 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -8301,6 +8301,9 @@ stop: } 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 (qe.valid_digits) { ast_queue_log(args.queuename, ast_channel_uniqueid(chan), "NONE", "EXITWITHKEY", |