summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Jordan <mjordan@digium.com>2013-08-07 21:38:17 +0000
committerMatthew Jordan <mjordan@digium.com>2013-08-07 21:38:17 +0000
commit200ed6a405405497ba1e498c52fd27f5b84b43f7 (patch)
tree5eae10376961402f10b52c85d1cb09f26dd68e8e
parent860ab29dab3dcbe36460cc5ea108435e036396af (diff)
Perform Ring-No-Answer checks before processing Hangup logic
The rna() routine will raise a Stasis message involving both the caller and the agent. This doesn't work so well if we already hung up the agent channel, as the channel doesn't quite exist. Not surprisingly, this will crash. This patch properly runs the rna subroutine (performing all of the Ring-No-Answer logic) prior to hanging up the agent channel. (closes issue ASTERISK-22258) Reported by: Kiril Valchev Tested by: Kiril Valchev git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@396365 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--apps/app_queue.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/apps/app_queue.c b/apps/app_queue.c
index 737de9df8..7801584ce 100644
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -4584,10 +4584,10 @@ static struct callattempt *wait_for_answer(struct queue_ent *qe, struct callatte
case AST_CONTROL_BUSY:
ast_verb(3, "%s is busy\n", ochan_name);
ast_channel_publish_dial(qe->chan, o->chan, on, "BUSY");
- do_hang(o);
endtime = (long) time(NULL);
endtime -= starttime;
rna(endtime * 1000, qe, o->chan, on, membername, qe->parent->autopausebusy);
+ do_hang(o);
if (qe->parent->strategy != QUEUE_STRATEGY_RINGALL) {
if (qe->parent->timeoutrestart) {
start_time_tv = ast_tvnow();