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

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Jan 10 13:31:37 CST 2013


Author: rmudgett
Date: Thu Jan 10 13:31:33 2013
New Revision: 378911

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=378911
Log:
Save some notes.

Modified:
    team/rmudgett/bridge_phase/bridges/bridge_builtin_features.c
    team/rmudgett/bridge_phase/main/bridging.c

Modified: team/rmudgett/bridge_phase/bridges/bridge_builtin_features.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/bridge_phase/bridges/bridge_builtin_features.c?view=diff&rev=378911&r1=378910&r2=378911
==============================================================================
--- team/rmudgett/bridge_phase/bridges/bridge_builtin_features.c (original)
+++ team/rmudgett/bridge_phase/bridges/bridge_builtin_features.c Thu Jan 10 13:31:33 2013
@@ -204,6 +204,8 @@
 
 	/* Before we join setup a features structure with the hangup option, just in case they want to use DTMF */
 	ast_bridge_features_init(&caller_features);
+/* BUGBUG bridging API features does not support features.conf featuremap */
+/* BUGBUG bridging API features does not support the features.conf atxfer bounce between C & B channels */
 	ast_bridge_features_enable(&caller_features, AST_BRIDGE_BUILTIN_HANGUP,
 				   (attended_transfer && !ast_strlen_zero(attended_transfer->complete) ? attended_transfer->complete : "*1"), NULL);
 	ast_bridge_features_hook(&caller_features, (attended_transfer && !ast_strlen_zero(attended_transfer->threeway) ? attended_transfer->threeway : "*2"),

Modified: team/rmudgett/bridge_phase/main/bridging.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/bridge_phase/main/bridging.c?view=diff&rev=378911&r1=378910&r2=378911
==============================================================================
--- team/rmudgett/bridge_phase/main/bridging.c (original)
+++ team/rmudgett/bridge_phase/main/bridging.c Thu Jan 10 13:31:33 2013
@@ -254,6 +254,7 @@
 /*! \brief Internal function used to determine whether a control frame should be dropped or not */
 static int bridge_drop_control_frame(int subclass)
 {
+/* BUGBUG I think this code should be removed. Let the bridging tech determine what to do with control frames. */
 	switch (subclass) {
 	case AST_CONTROL_ANSWER:
 	case -1:
@@ -302,6 +303,13 @@
 				bridge->technology->write(bridge, bridge_channel, frame);
 			}
 		} else {
+/* BUGBUG looks like the place to handle the control frame exchange between 1-1 bridge participants is the bridge tech write callback. */
+/* BUGBUG make a 1-1 bridge write handler for control frames. */
+/* BUGBUG make bridge_channel thread run the CONNECTED_LINE and REDIRECTING interception macros. */
+/* BUGBUG should we assume that all parties need to be already answered when bridged? */
+/* BUGBUG should make AST_CONTROL_ANSWER do an ast_indicate(-1) to the bridge peer if it is not UP as well as a connected line update. */
+/* BUGBUG bridge join or impart needs to do CONNECTED_LINE updates if the channels are being swapped and it is a 1-1 bridge. */
+/* BUGBUG could make a queue of things the bridge_channel thread needs to handle in case it gets behind on processing because of the interception macros. */
 			/* Simply write the frame out to the bridge technology if it still exists */
 			bridge->technology->write(bridge, bridge_channel, frame);
 		}
@@ -461,6 +469,7 @@
 	if (flags & AST_BRIDGE_FLAG_SMART) {
 		struct ast_bridge *other_bridge;
 
+/* BUGBUG why cannot find_best_technology() do this? */
 		if (!(other_bridge = ast_bridge_new((capabilities & AST_BRIDGE_CAPABILITY_1TO1MIX) ? AST_BRIDGE_CAPABILITY_MULTIMIX : AST_BRIDGE_CAPABILITY_1TO1MIX, 0))) {
 			return NULL;
 		}
@@ -526,6 +535,7 @@
 	ao2_lock(bridge);
 
 	if (bridge->callid) {
+/* BUGBUG the bridge callid needs to be verified. */
 		bridge->callid = ast_callid_unref(bridge->callid);
 	}
 




More information about the asterisk-commits mailing list