[asterisk-commits] jpeeler: trunk r289702 - in /trunk: ./ channels/chan_sip.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Fri Oct 1 11:23:20 CDT 2010


Author: jpeeler
Date: Fri Oct  1 11:23:16 2010
New Revision: 289702

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=289702
Log:
Merged revisions 289701 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r289701 | jpeeler | 2010-10-01 11:22:19 -0500 (Fri, 01 Oct 2010) | 28 lines
  
  Merged revisions 289700 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.6.2
  
  ................
    r289700 | jpeeler | 2010-10-01 11:21:04 -0500 (Fri, 01 Oct 2010) | 21 lines
    
    Merged revisions 289699 via svnmerge from 
    https://origsvn.digium.com/svn/asterisk/branches/1.4
    
    ........
      r289699 | jpeeler | 2010-10-01 11:20:00 -0500 (Fri, 01 Oct 2010) | 14 lines
      
      Ensure user portion of SIP URI matches dialplan when using encoded characters.
      
      This commit takes a simliar approach to 288112 and checks the dialplan to
      determine the proper action for an incoming contact header as to whether or not
      it should be decoded or not. sip_new was blindly always decoding the extension,
      which also caused the outgoing contact header to be incorrect as well as failing
      to match the encoded extension in the dialplan.
      
      (closes issue #17892)
      Reported by: wdoekes
      Patches: 
            bug17892-1.patch uploaded by jpeeler (license 325)
      Tested by: wdoekes
    ........
  ................
................

Modified:
    trunk/   (props changed)
    trunk/channels/chan_sip.c

Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-1.8-merged' - no diff available.

Modified: trunk/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/trunk/channels/chan_sip.c?view=diff&rev=289702&r1=289701&r2=289702
==============================================================================
--- trunk/channels/chan_sip.c (original)
+++ trunk/channels/chan_sip.c Fri Oct  1 11:23:16 2010
@@ -6658,9 +6658,14 @@
 	 * we should decode the uri before storing it in the channel, but leave it encoded in the sip_pvt
 	 * structure so that there aren't issues when forming URI's
 	 */
-	decoded_exten = ast_strdupa(i->exten);
-	ast_uri_decode(decoded_exten);
-	ast_copy_string(tmp->exten, decoded_exten, sizeof(tmp->exten));
+	if (ast_exists_extension(NULL, i->context, i->exten, 1, i->cid_num)) {
+		/* encoded in dialplan, so keep extension encoded */
+		ast_copy_string(tmp->exten, i->exten, sizeof(tmp->exten));
+	} else {
+		decoded_exten = ast_strdupa(i->exten);
+		ast_uri_decode(decoded_exten);
+		ast_copy_string(tmp->exten, decoded_exten, sizeof(tmp->exten));
+	}
 
 	/* Don't use ast_set_callerid() here because it will
 	 * generate an unnecessary NewCallerID event  */




More information about the asterisk-commits mailing list