[asterisk-commits] bebuild: tag 1.8.17.0-rc3 r374527 - in /tags/1.8.17.0-rc3: ./ channels/

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Fri Oct 5 07:58:57 CDT 2012


Author: bebuild
Date: Fri Oct  5 07:58:53 2012
New Revision: 374527

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=374527
Log:
Merge 374456 for ASTERISK-20511

Removed:
    tags/1.8.17.0-rc3/asterisk-1.8.17.0-rc2-summary.html
    tags/1.8.17.0-rc3/asterisk-1.8.17.0-rc2-summary.txt
Modified:
    tags/1.8.17.0-rc3/   (props changed)
    tags/1.8.17.0-rc3/.version
    tags/1.8.17.0-rc3/ChangeLog
    tags/1.8.17.0-rc3/channels/chan_sip.c

Propchange: tags/1.8.17.0-rc3/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Oct  5 07:58:53 2012
@@ -1,1 +1,1 @@
-/branches/1.8:373165,373532,373878
+/branches/1.8:373165,373532,373878,374456

Modified: tags/1.8.17.0-rc3/.version
URL: http://svnview.digium.com/svn/asterisk/tags/1.8.17.0-rc3/.version?view=diff&rev=374527&r1=374526&r2=374527
==============================================================================
--- tags/1.8.17.0-rc3/.version (original)
+++ tags/1.8.17.0-rc3/.version Fri Oct  5 07:58:53 2012
@@ -1,1 +1,1 @@
-1.8.17.0-rc2
+1.8.17.0-rc3

Modified: tags/1.8.17.0-rc3/ChangeLog
URL: http://svnview.digium.com/svn/asterisk/tags/1.8.17.0-rc3/ChangeLog?view=diff&rev=374527&r1=374526&r2=374527
==============================================================================
--- tags/1.8.17.0-rc3/ChangeLog (original)
+++ tags/1.8.17.0-rc3/ChangeLog Fri Oct  5 07:58:53 2012
@@ -1,3 +1,24 @@
+2012-10-05  Asterisk Development Team <asteriskteam at digium.com>
+
+	* Asterisk 1.8.17.0-rc3 Released.
+
+	* Fix a regression from direct media ACLs where the directrtpsetup
+	  option no longer works.
+
+	  A check was added for direct media ACLs that immediately forced
+	  remote bridging if there was no bridged channel.  This caused
+	  directrtpsetup to no longer function as it needs this information
+	  before bridging actually occurs.
+
+	  Logic has now been adjusted so if there is no bridged channel a
+	  remote bridge will still be attempted.
+
+	  (closes issue ASTERISK-20511)
+	  Reported by: kristoff
+	  Tested by: kristoff
+
+	  Review: https://reviewboard.asterisk.org/r/2146
+
 2012-10-03  Asterisk Development Team <asteriskteam at digium.com>
 
 	* Asterisk 1.8.17.0-rc2 Released.

Modified: tags/1.8.17.0-rc3/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/tags/1.8.17.0-rc3/channels/chan_sip.c?view=diff&rev=374527&r1=374526&r2=374527
==============================================================================
--- tags/1.8.17.0-rc3/channels/chan_sip.c (original)
+++ tags/1.8.17.0-rc3/channels/chan_sip.c Fri Oct  5 07:58:53 2012
@@ -29330,22 +29330,22 @@
 		return AST_RTP_GLUE_RESULT_FORBID;
 	}
 
-	if (!(opp_chan = ast_bridged_channel(chan))) {
+	if ((opp_chan = ast_bridged_channel(chan)) && (((opp_chan->tech != &sip_tech) && (opp_chan->tech != &sip_tech_info)) ||
+						       (!(opp = opp_chan->tech_pvt)))) {
 		return AST_RTP_GLUE_RESULT_FORBID;
-	} else if (((opp_chan->tech != &sip_tech) && (opp_chan->tech != &sip_tech_info)) ||
-		   (!(opp = opp_chan->tech_pvt))) {
-		return AST_RTP_GLUE_RESULT_FORBID;
 	}
 
 	sip_pvt_lock(p);
-	while (sip_pvt_trylock(opp)) {
+	while (opp && sip_pvt_trylock(opp)) {
 		sip_pvt_unlock(p);
 		usleep(1);
 		sip_pvt_lock(p);
 	}
 
 	if (!(p->rtp)) {
-		sip_pvt_unlock(opp);
+		if (opp) {
+			sip_pvt_unlock(opp);
+		}
 		sip_pvt_unlock(p);
 		return AST_RTP_GLUE_RESULT_FORBID;
 	}
@@ -29355,7 +29355,7 @@
 
 	if (ast_test_flag(&p->flags[0], SIP_DIRECT_MEDIA)) {
 		res = AST_RTP_GLUE_RESULT_REMOTE;
-		if (!apply_directmedia_ha(p, opp, "audio")) {
+		if (opp && !apply_directmedia_ha(p, opp, "audio")) {
 			res = AST_RTP_GLUE_RESULT_FORBID;
 		}
 	} else if (ast_test_flag(&p->flags[0], SIP_DIRECT_MEDIA_NAT)) {
@@ -29364,7 +29364,9 @@
 		res = AST_RTP_GLUE_RESULT_FORBID;
 	}
 
-	sip_pvt_unlock(opp);
+	if (opp) {
+		sip_pvt_unlock(opp);
+	}
 
 	if (p->srtp) {
 		res = AST_RTP_GLUE_RESULT_FORBID;
@@ -29386,22 +29388,22 @@
 		return AST_RTP_GLUE_RESULT_FORBID;
 	}
 
-	if (!(opp_chan = ast_bridged_channel(chan))) {
+	if ((opp_chan = ast_bridged_channel(chan)) && (((opp_chan->tech != &sip_tech) && (opp_chan->tech != &sip_tech_info)) ||
+						       (!(opp = opp_chan->tech_pvt)))) {
 		return AST_RTP_GLUE_RESULT_FORBID;
-	} else if (((opp_chan->tech != &sip_tech) && (opp_chan->tech != &sip_tech_info)) ||
-		   (!(opp = opp_chan->tech_pvt))) {
-		return AST_RTP_GLUE_RESULT_FORBID;
 	}
 
 	sip_pvt_lock(p);
-	while (sip_pvt_trylock(opp)) {
+	while (opp && sip_pvt_trylock(opp)) {
 		sip_pvt_unlock(p);
 		usleep(1);
 		sip_pvt_lock(p);
 	}
 
 	if (!(p->vrtp)) {
-		sip_pvt_unlock(opp);
+		if (opp) {
+			sip_pvt_unlock(opp);
+		}
 		sip_pvt_unlock(p);
 		return AST_RTP_GLUE_RESULT_FORBID;
 	}
@@ -29411,12 +29413,14 @@
 
 	if (ast_test_flag(&p->flags[0], SIP_DIRECT_MEDIA)) {
 		res = AST_RTP_GLUE_RESULT_REMOTE;
-		if (!apply_directmedia_ha(p, opp, "video")) {
+		if (opp && !apply_directmedia_ha(p, opp, "video")) {
 			res = AST_RTP_GLUE_RESULT_FORBID;
 		}
 	}
 
-	sip_pvt_unlock(opp);
+	if (opp) {
+		sip_pvt_unlock(opp);
+	}
 	sip_pvt_unlock(p);
 
 	return res;
@@ -29433,22 +29437,22 @@
 		return AST_RTP_GLUE_RESULT_FORBID;
 	}
 
-	if (!(opp_chan = ast_bridged_channel(chan))) {
+	if ((opp_chan = ast_bridged_channel(chan)) && (((opp_chan->tech != &sip_tech) && (opp_chan->tech != &sip_tech_info)) ||
+						       (!(opp = opp_chan->tech_pvt)))) {
 		return AST_RTP_GLUE_RESULT_FORBID;
-	} else if (((opp_chan->tech != &sip_tech) && (opp_chan->tech != &sip_tech_info)) ||
-		   (!(opp = opp_chan->tech_pvt))) {
-		return AST_RTP_GLUE_RESULT_FORBID;
 	}
 
 	sip_pvt_lock(p);
-	while (sip_pvt_trylock(opp)) {
+	while (opp && sip_pvt_trylock(opp)) {
 		sip_pvt_unlock(p);
 		usleep(1);
 		sip_pvt_lock(p);
 	}
 
 	if (!(p->trtp)) {
-		sip_pvt_unlock(opp);
+		if (opp) {
+			sip_pvt_unlock(opp);
+		}
 		sip_pvt_unlock(p);
 		return AST_RTP_GLUE_RESULT_FORBID;
 	}
@@ -29458,12 +29462,14 @@
 
 	if (ast_test_flag(&p->flags[0], SIP_DIRECT_MEDIA)) {
 		res = AST_RTP_GLUE_RESULT_REMOTE;
-		if (!apply_directmedia_ha(p, opp, "text")) {
+		if (opp && !apply_directmedia_ha(p, opp, "text")) {
 			res = AST_RTP_GLUE_RESULT_FORBID;
 		}
 	}
 
-	sip_pvt_unlock(opp);
+	if (opp) {
+		sip_pvt_unlock(opp);
+	}
 	sip_pvt_unlock(p);
 
 	return res;




More information about the asterisk-commits mailing list