Merged revisions 173967-173968 via svnmerge from
[asterisk/asterisk.git] / channels / chan_sip.c
index 98a3a75..365bd5b 100644 (file)
@@ -12450,49 +12450,46 @@ static int get_refer_info(struct sip_pvt *transferer, struct sip_request *outgoi
        }
 
        /* Check for arguments in the refer_to header */
-       if ((ptr = strchr(refer_to, '?'))) { /* Search for arguments */
-               *ptr++ = '\0';
-               if (!strncasecmp(ptr, "REPLACES=", 9)) {
-                       char *to = NULL, *from = NULL;
-
-                       /* This is an attended transfer */
-                       referdata->attendedtransfer = 1;
-                       ast_copy_string(referdata->replaces_callid, ptr+9, sizeof(referdata->replaces_callid));
-                       ast_uri_decode(referdata->replaces_callid);
-                       if ((ptr = strchr(referdata->replaces_callid, ';')))    /* Find options */ {
-                               *ptr++ = '\0';
-                       }
-
-                       if (ptr) {
-                               /* Find the different tags before we destroy the string */
-                               to = strcasestr(ptr, "to-tag=");
-                               from = strcasestr(ptr, "from-tag=");
-                       }
-
-                       /* Grab the to header */
-                       if (to) {
-                               ptr = to + 7;
-                               if ((to = strchr(ptr, '&')))
-                                       *to = '\0';
-                               if ((to = strchr(ptr, ';')))
-                                       *to = '\0';
-                               ast_copy_string(referdata->replaces_callid_totag, ptr, sizeof(referdata->replaces_callid_totag));
-                       }
-
-                       if (from) {
-                               ptr = from + 9;
-                               if ((to = strchr(ptr, '&')))
-                                       *to = '\0';
-                               if ((to = strchr(ptr, ';')))
-                                       *to = '\0';
-                               ast_copy_string(referdata->replaces_callid_fromtag, ptr, sizeof(referdata->replaces_callid_fromtag));
-                       }
-
-                       if (!sip_cfg.pedanticsipchecking)
-                               ast_debug(2, "Attended transfer: Will use Replace-Call-ID : %s (No check of from/to tags)\n", referdata->replaces_callid );
-                       else
-                               ast_debug(2, "Attended transfer: Will use Replace-Call-ID : %s F-tag: %s T-tag: %s\n", referdata->replaces_callid, referdata->replaces_callid_fromtag ? referdata->replaces_callid_fromtag : "<none>", referdata->replaces_callid_totag ? referdata->replaces_callid_totag : "<none>" );
+       if ((ptr = strcasestr(refer_to, "replaces="))) {
+               char *to = NULL, *from = NULL;
+               
+               /* This is an attended transfer */
+               referdata->attendedtransfer = 1;
+               ast_copy_string(referdata->replaces_callid, ptr+9, sizeof(referdata->replaces_callid));
+               ast_uri_decode(referdata->replaces_callid);
+               if ((ptr = strchr(referdata->replaces_callid, ';')))    /* Find options */ {
+                       *ptr++ = '\0';
+               }
+               
+               if (ptr) {
+                       /* Find the different tags before we destroy the string */
+                       to = strcasestr(ptr, "to-tag=");
+                       from = strcasestr(ptr, "from-tag=");
+               }
+               
+               /* Grab the to header */
+               if (to) {
+                       ptr = to + 7;
+                       if ((to = strchr(ptr, '&')))
+                               *to = '\0';
+                       if ((to = strchr(ptr, ';')))
+                               *to = '\0';
+                       ast_copy_string(referdata->replaces_callid_totag, ptr, sizeof(referdata->replaces_callid_totag));
                }
+               
+               if (from) {
+                       ptr = from + 9;
+                       if ((to = strchr(ptr, '&')))
+                               *to = '\0';
+                       if ((to = strchr(ptr, ';')))
+                               *to = '\0';
+                       ast_copy_string(referdata->replaces_callid_fromtag, ptr, sizeof(referdata->replaces_callid_fromtag));
+               }
+               
+               if (!sip_cfg.pedanticsipchecking)
+                       ast_debug(2, "Attended transfer: Will use Replace-Call-ID : %s (No check of from/to tags)\n", referdata->replaces_callid );
+               else
+                       ast_debug(2, "Attended transfer: Will use Replace-Call-ID : %s F-tag: %s T-tag: %s\n", referdata->replaces_callid, referdata->replaces_callid_fromtag ? referdata->replaces_callid_fromtag : "<none>", referdata->replaces_callid_totag ? referdata->replaces_callid_totag : "<none>" );
        }
        
        if ((ptr = strchr(refer_to, '@'))) {    /* Separate domain */