]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
fixes attended transfer behavior when both transferee and transferer hung up
authorDavid Vossel <dvossel@digium.com>
Tue, 22 Jun 2010 15:46:22 +0000 (15:46 +0000)
committerDavid Vossel <dvossel@digium.com>
Tue, 22 Jun 2010 15:46:22 +0000 (15:46 +0000)
If both the transferer and transferee of a attended transfer hangup before
the new channel picks up, the new channel should be hung up as well as it
has no endpoint to talk to.  This mirrors the expected behavior used in 1.4.

(closes issue #17444)
Reported by: corruptor

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

main/features.c

index fff94feebfcaac13de569d837ef9a5202d91f832..a973004baec5516edc42aacb56a865d6d1f02189 100644 (file)
@@ -2117,6 +2117,11 @@ static int builtin_atxfer(struct ast_channel *chan, struct ast_channel *peer, st
        } else {
                /* Transferee hung up */
                finishup(transferee);
+               /* At this point both the transferer transferee have hungup,
+                * so if newchan is up, hang it up as it has no one to talk to */
+               if (newchan) {
+                       ast_hangup(newchan);
+               }
                return -1;
        }
 }