[asterisk-commits] bebuild: tag 10.9.0-rc3 r374528 - in /tags/10.9.0-rc3: ./ channels/

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


Author: bebuild
Date: Fri Oct  5 07:59:07 2012
New Revision: 374528

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

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

Propchange: tags/10.9.0-rc3/
------------------------------------------------------------------------------
Binary property 'branch-1.8-merged' - no diff available.

Propchange: tags/10.9.0-rc3/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Oct  5 07:59:07 2012
@@ -1,1 +1,1 @@
-/branches/10:373179,373533,373879
+/branches/10:373179,373533,373879,374457

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

Modified: tags/10.9.0-rc3/ChangeLog
URL: http://svnview.digium.com/svn/asterisk/tags/10.9.0-rc3/ChangeLog?view=diff&rev=374528&r1=374527&r2=374528
==============================================================================
--- tags/10.9.0-rc3/ChangeLog (original)
+++ tags/10.9.0-rc3/ChangeLog Fri Oct  5 07:59:07 2012
@@ -1,3 +1,24 @@
+2012-10-05  Asterisk Development Team <asteriskteam at digium.com>
+
+	* Asterisk 10.9.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 10.9.0-rc2 Released.

Modified: tags/10.9.0-rc3/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/tags/10.9.0-rc3/channels/chan_sip.c?view=diff&rev=374528&r1=374527&r2=374528
==============================================================================
--- tags/10.9.0-rc3/channels/chan_sip.c (original)
+++ tags/10.9.0-rc3/channels/chan_sip.c Fri Oct  5 07:59:07 2012
@@ -30262,22 +30262,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;
 	}
@@ -30287,7 +30287,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)) {
@@ -30296,7 +30296,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;
@@ -30318,22 +30320,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;
 	}
@@ -30343,12 +30345,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;
@@ -30365,22 +30369,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;
 	}
@@ -30390,12 +30394,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