Fix broken call pickup
authorJeff Peeler <jpeeler@digium.com>
Thu, 14 Jan 2010 18:03:31 +0000 (18:03 +0000)
committerJeff Peeler <jpeeler@digium.com>
Thu, 14 Jan 2010 18:03:31 +0000 (18:03 +0000)
The problem was the OUTGOING flag was not getting set properly on the channel,
resulting in pickup failing as ast_read thought the call was inbound. Refer to
170393 for a more verbose description as this is the same exact change.

(closes issue #16539)
Reported by: syspert
Patches:
      bug16539.patch uploaded by jpeeler (license 325)
Tested by: syspert

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

main/channel.c

index be396f8..657b053 100644 (file)
@@ -5357,7 +5357,7 @@ int ast_do_masquerade(struct ast_channel *original)
        /* XXX What about blocking, softhangup, blocker, and lock and blockproc? XXX */
        /* Application and data remain the same */
        /* Clone exception  becomes real one, as with fdno */
-       ast_copy_flags(original, clonechan, AST_FLAG_EXCEPTION | AST_FLAG_OUTGOING);
+       ast_set_flag(original, ast_test_flag(clonechan, AST_FLAG_EXCEPTION | AST_FLAG_OUTGOING));
        original->fdno = clonechan->fdno;
        /* Schedule context remains the same */
        /* Stream stuff stays the same */