[asterisk-commits] rmudgett: branch rmudgett/bridge_phase r398800 - in /team/rmudgett/bridge_pha...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Tue Sep 10 16:32:35 CDT 2013


Author: rmudgett
Date: Tue Sep 10 16:32:33 2013
New Revision: 398800

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=398800
Log:
Bridge API: Make AST_BRIDGE_JOIN_INHIBIT_JOIN_COLP and AST_BRIDGE_IMPART_INHIBIT_JOIN_COLP do something.

Modified:
    team/rmudgett/bridge_phase/include/asterisk/bridge_channel.h
    team/rmudgett/bridge_phase/main/bridge.c
    team/rmudgett/bridge_phase/main/bridge_channel.c

Modified: team/rmudgett/bridge_phase/include/asterisk/bridge_channel.h
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/bridge_phase/include/asterisk/bridge_channel.h?view=diff&rev=398800&r1=398799&r2=398800
==============================================================================
--- team/rmudgett/bridge_phase/include/asterisk/bridge_channel.h (original)
+++ team/rmudgett/bridge_phase/include/asterisk/bridge_channel.h Tue Sep 10 16:32:33 2013
@@ -122,6 +122,8 @@
 	unsigned int just_joined:1;
 	/*! TRUE if the channel is suspended from the bridge. */
 	unsigned int suspended:1;
+	/*! TRUE if the COLP update on initial join is inhibited. */
+	unsigned int inhibit_colp:1;
 	/*! TRUE if the channel must wait for an ast_bridge_depart to reclaim the channel. */
 	unsigned int depart_wait:1;
 	/* ^-- These flags change while the bridge is locked or before the channel is in the bridge. */

Modified: team/rmudgett/bridge_phase/main/bridge.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/bridge_phase/main/bridge.c?view=diff&rev=398800&r1=398799&r2=398800
==============================================================================
--- team/rmudgett/bridge_phase/main/bridge.c (original)
+++ team/rmudgett/bridge_phase/main/bridge.c Tue Sep 10 16:32:33 2013
@@ -1468,6 +1468,7 @@
 	bridge_channel->chan = chan;
 	bridge_channel->swap = swap;
 	bridge_channel->features = features;
+	bridge_channel->inhibit_colp = !!(flags & AST_BRIDGE_JOIN_INHIBIT_JOIN_COLP);
 
 	if (!res) {
 		res = bridge_channel_internal_join(bridge_channel);
@@ -1589,7 +1590,8 @@
 	bridge_channel->chan = chan;
 	bridge_channel->swap = swap;
 	bridge_channel->features = features;
-	bridge_channel->depart_wait = (flags & AST_BRIDGE_IMPART_INDEPENDENT) ? 0 : 1;
+	bridge_channel->inhibit_colp = !!(flags & AST_BRIDGE_IMPART_INHIBIT_JOIN_COLP);
+	bridge_channel->depart_wait = !(flags & AST_BRIDGE_IMPART_INDEPENDENT);
 	bridge_channel->callid = ast_read_threadstorage_callid();
 
 	/* Actually create the thread that will handle the channel */

Modified: team/rmudgett/bridge_phase/main/bridge_channel.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/bridge_phase/main/bridge_channel.c?view=diff&rev=398800&r1=398799&r2=398800
==============================================================================
--- team/rmudgett/bridge_phase/main/bridge_channel.c (original)
+++ team/rmudgett/bridge_phase/main/bridge_channel.c Tue Sep 10 16:32:33 2013
@@ -2000,7 +2000,7 @@
 			BRIDGE_CHANNEL_STATE_END_NO_DISSOLVE, bridge_channel->bridge->cause);
 		res = -1;
 	}
-	bridge_reconfigured(bridge_channel->bridge, 1);
+	bridge_reconfigured(bridge_channel->bridge, !bridge_channel->inhibit_colp);
 
 	if (bridge_channel->state == BRIDGE_CHANNEL_STATE_WAIT) {
 		/*




More information about the asterisk-commits mailing list