Merged revisions 69668 via svnmerge from
authorJoshua Colp <jcolp@digium.com>
Mon, 18 Jun 2007 16:06:17 +0000 (16:06 +0000)
committerJoshua Colp <jcolp@digium.com>
Mon, 18 Jun 2007 16:06:17 +0000 (16:06 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r69668 | file | 2007-06-18 12:04:55 -0400 (Mon, 18 Jun 2007) | 2 lines

Don't defer the BYE till later on a transfer when the transfer itself goes kaboom and has no hope of working.

........

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

channels/chan_sip.c

index 7cff8fb..69a5fbf 100644 (file)
@@ -14581,14 +14581,16 @@ static int local_attended_transfer(struct sip_pvt *transferer, struct sip_dual *
        sip_pvt_unlock(targetcall_pvt);
        if (res) {
                /* Failed transfer */
-               /* Could find better message, but they will get the point */
-               transmit_notify_with_sipfrag(transferer, seqno, "486 Busy", TRUE);
+               transmit_notify_with_sipfrag(transferer, seqno, "486 Busy Here", TRUE);
                append_history(transferer, "Xfer", "Refer failed");
+               transferer->refer->status = REFER_FAILED;
                if (targetcall_pvt->owner)
                        ast_channel_unlock(targetcall_pvt->owner);
                /* Right now, we have to hangup, sorry. Bridge is destroyed */
                if (res != -2)
                        ast_hangup(transferer->owner);
+               else
+                       ast_clear_flag(&transferer->flags[0], SIP_DEFER_BYE_ON_TRANSFER);
        } else {
                /* Transfer succeeded! */