[svn-commits] dvossel: trunk r261316 - /trunk/channels/chan_sip.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Wed May 5 14:14:01 CDT 2010


Author: dvossel
Date: Wed May  5 14:13:57 2010
New Revision: 261316

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=261316
Log:
fixes sip native transfer

The Refer-To header field containing the Replaces header in the URI
was not being decoded properly.  This caused invalid parsing between
the caller id field and the domain resulting in a failed transfer.

(closes issue #17284)
Reported by: dvossel


Modified:
    trunk/channels/chan_sip.c

Modified: trunk/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/trunk/channels/chan_sip.c?view=diff&rev=261316&r1=261315&r2=261316
==============================================================================
--- trunk/channels/chan_sip.c (original)
+++ trunk/channels/chan_sip.c Wed May  5 14:13:57 2010
@@ -13737,6 +13737,7 @@
 		/* 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';
 		}
@@ -13754,7 +13755,6 @@
 				*to = '\0';
 			if ((to = strchr(ptr, ';')))
 				*to = '\0';
-			ast_uri_decode(ptr);
 			ast_copy_string(referdata->replaces_callid_totag, ptr, sizeof(referdata->replaces_callid_totag));
 		}
 		
@@ -13764,7 +13764,6 @@
 				*to = '\0';
 			if ((to = strchr(ptr, ';')))
 				*to = '\0';
-			ast_uri_decode(ptr);
 			ast_copy_string(referdata->replaces_callid_fromtag, ptr, sizeof(referdata->replaces_callid_fromtag));
 		}
 		




More information about the svn-commits mailing list