[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