Add support for setting the Reason header when cancelling a call in the queue
authorOlle Johansson <oej@edvina.net>
Thu, 15 Jan 2009 13:01:52 +0000 (13:01 +0000)
committerOlle Johansson <oej@edvina.net>
Thu, 15 Jan 2009 13:01:52 +0000 (13:01 +0000)
because someone else answered. Previously, only dial() was supported.

EDV-102

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@168636 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_queue.c

index 85d1588..ada7da8 100644 (file)
@@ -2228,9 +2228,13 @@ static void hangupcalls(struct callattempt *outgoing, struct ast_channel *except
        struct callattempt *oo;
 
        while (outgoing) {
+               /* If someone else answered the call we should indicate this in the CANCEL */
                /* Hangup any existing lines we have open */
-               if (outgoing->chan && (outgoing->chan != exception))
+               if (outgoing->chan && (outgoing->chan != exception)) {
+                       if (exception)
+                               ast_set_flag(outgoing->chan, AST_FLAG_ANSWERED_ELSEWHERE);
                        ast_hangup(outgoing->chan);
+               }
                oo = outgoing;
                outgoing = outgoing->q_next;
                if (oo->member)