[svn-commits] bebuild: tag 11.8.0-rc2 r409150 - in /tags/11.8.0-rc2: ./ res/

SVN commits to the Digium repositories svn-commits at lists.digium.com
Thu Feb 27 15:39:32 CST 2014


Author: bebuild
Date: Thu Feb 27 15:39:30 2014
New Revision: 409150

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=409150
Log:
res_rtp_asterisk: Fix checklist creatingh problems in ICE sessions

Modified:
    tags/11.8.0-rc2/   (props changed)
    tags/11.8.0-rc2/ChangeLog
    tags/11.8.0-rc2/res/res_rtp_asterisk.c

Propchange: tags/11.8.0-rc2/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu Feb 27 15:39:30 2014
@@ -1,1 +1,2 @@
+/branches/11:409053,409129-409130
 /certified/branches/1.8.15:382389

Modified: tags/11.8.0-rc2/ChangeLog
URL: http://svnview.digium.com/svn/asterisk/tags/11.8.0-rc2/ChangeLog?view=diff&rev=409150&r1=409149&r2=409150
==============================================================================
--- tags/11.8.0-rc2/ChangeLog (original)
+++ tags/11.8.0-rc2/ChangeLog Thu Feb 27 15:39:30 2014
@@ -1,3 +1,24 @@
+2014-02-27  Asterisk Development Team <asteriskteam at digium.com>
+
+	* Asterisk 11.8.0-rc2 Released.
+
+	* res_rtp_asterisk: Fix checklist creating problems in ICE sessions
+
+	  Prior to this patch, local candidate lists including SRFLX would
+	  fail to start properly when building ICE candidate check lists. This
+	  patch fixes that problem by making sure that each SRFLX candidate is
+	  associated with the proper base address so that the check list can
+	  create matches properly. This patch was written by jcolp. Note that
+	  the issue will be left open to await testing by the issue
+	  participants.
+
+	  (issue ASTERISK-23213)
+	  Reported by: Andrea Suisani
+	  Review: https://reviewboard.asterisk.org/r/3256
+
+	  revisions 409129,409130 from
+	  https://svn.asterisk.org/svn/asterisk/branches/11
+
 2014-01-14  Asterisk Development Team <asteriskteam at digium.com>
 
 	* Asterisk 11.8.0-rc1 Released.

Modified: tags/11.8.0-rc2/res/res_rtp_asterisk.c
URL: http://svnview.digium.com/svn/asterisk/tags/11.8.0-rc2/res/res_rtp_asterisk.c?view=diff&rev=409150&r1=409149&r2=409150
==============================================================================
--- tags/11.8.0-rc2/res/res_rtp_asterisk.c (original)
+++ tags/11.8.0-rc2/res/res_rtp_asterisk.c Thu Feb 27 15:39:30 2014
@@ -678,7 +678,7 @@
 		return;
 	}
 
-	if (pj_ice_sess_add_cand(rtp->ice, comp_id, transport_id, type, local_pref, &foundation, addr, addr, rel_addr, addr_len, NULL) != PJ_SUCCESS) {
+	if (pj_ice_sess_add_cand(rtp->ice, comp_id, transport_id, type, local_pref, &foundation, addr, base_addr, rel_addr, addr_len, NULL) != PJ_SUCCESS) {
 		ao2_ref(candidate, -1);
 		return;
 	}
@@ -1683,15 +1683,19 @@
 	}
 
 	/* If configured to use a STUN server to get our external mapped address do so */
-	if (stunaddr.sin_addr.s_addr && ast_sockaddr_is_ipv4(addr)) {
+	if (stunaddr.sin_addr.s_addr && ast_sockaddr_is_ipv4(addr) && count) {
 		struct sockaddr_in answer;
 
-		if (!ast_stun_request(rtp->s, &stunaddr, NULL, &answer)) {
+		if (!ast_stun_request(component == AST_RTP_ICE_COMPONENT_RTCP ? rtp->rtcp->s : rtp->s, &stunaddr, NULL, &answer)) {
+			pj_sockaddr base;
 			pj_str_t mapped = pj_str(ast_strdupa(ast_inet_ntoa(answer.sin_addr)));
 
+			/* Use the first local host candidate as the base */
+			pj_sockaddr_cp(&base, &address[0]);
+
 			pj_sockaddr_init(pj_AF_INET(), &address[0], &mapped, ntohs(answer.sin_port));
 
-			ast_rtp_ice_add_cand(rtp, component, transport, PJ_ICE_CAND_TYPE_SRFLX, 65535, &address[0], &address[0],
+			ast_rtp_ice_add_cand(rtp, component, transport, PJ_ICE_CAND_TYPE_SRFLX, 65535, &address[0], &base,
 					     NULL, pj_sockaddr_get_len(&address[0]));
 		}
 	}




More information about the svn-commits mailing list