]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 181345 via svnmerge from
authorJoshua Colp <jcolp@digium.com>
Wed, 11 Mar 2009 17:29:45 +0000 (17:29 +0000)
committerJoshua Colp <jcolp@digium.com>
Wed, 11 Mar 2009 17:29:45 +0000 (17:29 +0000)
https://origsvn.digium.com/svn/asterisk/trunk

................
  r181345 | file | 2009-03-11 14:26:40 -0300 (Wed, 11 Mar 2009) | 21 lines

  Merged revisions 181328 via svnmerge from
  https://origsvn.digium.com/svn/asterisk/branches/1.4

  ........
    r181328 | file | 2009-03-11 14:22:52 -0300 (Wed, 11 Mar 2009) | 14 lines

    Fix issue where an attended transfer could not be completed under a rare scenario.

    When completing an attended transfer chan_sip does a check to make sure the extension
    in the URI portion of the Refer-To header is a local valid extension. We don't actually
    need to check this since we know for sure the other channel is already up and talking to
    the extension. Some devices do not put the extension in the Refer-To header either, which
    can cause the extension check to fail. We now no longer do this check if it is an attended
    transfer.

    (closes issue #14628)
    Reported by: sverre
    Patches:
          14628.diff uploaded by file (license 11)
  ........
................

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

channels/chan_sip.c

index b242a9930793f2b27cdbd53ac2f343a0c6f7dd41..99184661a5c8ef92473f0b3a24be0b8d7f283860 100644 (file)
@@ -11835,7 +11835,7 @@ static int get_refer_info(struct sip_pvt *transferer, struct sip_request *outgoi
        ast_copy_string(referdata->refer_to_context, transfer_context, sizeof(referdata->refer_to_context));
        
        /* Either an existing extension or the parking extension */
-       if (ast_exists_extension(NULL, transfer_context, refer_to, 1, NULL) ) {
+       if (referdata->attendedtransfer || ast_exists_extension(NULL, transfer_context, refer_to, 1, NULL) ) {
                if (sip_debug_test_pvt(transferer)) {
                        ast_verbose("SIP transfer to extension %s@%s by %s\n", refer_to, transfer_context, referred_by_uri);
                }