[svn-commits] rmudgett: branch rmudgett/native_dahdi r394171 - in /team/rmudgett/native_dah...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Thu Jul 11 16:25:27 CDT 2013


Author: rmudgett
Date: Thu Jul 11 16:25:25 2013
New Revision: 394171

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=394171
Log:
Stub out the DAHDI native bridge technology.

Modified:
    team/rmudgett/native_dahdi/channels/chan_dahdi.c
    team/rmudgett/native_dahdi/channels/dahdi/bridge_native_dahdi.c
    team/rmudgett/native_dahdi/channels/dahdi/bridge_native_dahdi.h

Modified: team/rmudgett/native_dahdi/channels/chan_dahdi.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/native_dahdi/channels/chan_dahdi.c?view=diff&rev=394171&r1=394170&r2=394171
==============================================================================
--- team/rmudgett/native_dahdi/channels/chan_dahdi.c (original)
+++ team/rmudgett/native_dahdi/channels/chan_dahdi.c Thu Jul 11 16:25:25 2013
@@ -127,6 +127,7 @@
 #include "asterisk/bridging.h"
 #include "asterisk/stasis_channels.h"
 #include "chan_dahdi.h"
+#include "dahdi/bridge_native_dahdi.h"
 
 /*** DOCUMENTATION
 	<application name="DAHDISendKeypadFacility" language="en_US">
@@ -16564,6 +16565,8 @@
 	}
 #endif	/* defined(HAVE_SS7) */
 	ast_cond_destroy(&ss_thread_complete);
+
+	native_bridge_unload();
 
 	dahdi_tech.capabilities = ast_format_cap_destroy(dahdi_tech.capabilities);
 	STASIS_MESSAGE_TYPE_CLEANUP(dahdichannel_type);
@@ -18578,6 +18581,10 @@
 	ast_format_cap_add(dahdi_tech.capabilities, ast_format_set(&tmpfmt, AST_FORMAT_ULAW, 0));
 	ast_format_cap_add(dahdi_tech.capabilities, ast_format_set(&tmpfmt, AST_FORMAT_ALAW, 0));
 
+	if (native_bridge_load(ast_module_info->self, &dahdi_tech)) {
+		return AST_MODULE_LOAD_FAILURE;
+	}
+
 #ifdef HAVE_PRI
 	memset(pris, 0, sizeof(pris));
 	for (y = 0; y < NUM_SPANS; y++) {
@@ -18798,5 +18805,5 @@
 	.unload = unload_module,
 	.reload = reload,
 	.load_pri = AST_MODPRI_CHANNEL_DRIVER,
-		.nonoptreq = "res_smdi",
+	.nonoptreq = "res_smdi",
 	);

Modified: team/rmudgett/native_dahdi/channels/dahdi/bridge_native_dahdi.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/native_dahdi/channels/dahdi/bridge_native_dahdi.c?view=diff&rev=394171&r1=394170&r2=394171
==============================================================================
--- team/rmudgett/native_dahdi/channels/dahdi/bridge_native_dahdi.c (original)
+++ team/rmudgett/native_dahdi/channels/dahdi/bridge_native_dahdi.c Thu Jul 11 16:25:25 2013
@@ -43,7 +43,118 @@
 #include "../chan_dahdi.h"
 #include "asterisk/astobj.h"
 #include "bridge_native_dahdi.h"
+#include "asterisk/bridging.h"
+#include "asterisk/bridging_technology.h"
+#include "asterisk/frame.h"
 
 /* ------------------------------------------------------------------- */
 
+static const struct ast_channel_tech *dahdi_tech;
 
+static int native_bridge_create(struct ast_bridge *bridge)
+{
+	/*! \todo BUGBUG native_bridge_create() not written */
+	return -1;
+}
+
+static int native_bridge_start(struct ast_bridge *bridge)
+{
+	/*! \todo BUGBUG native_bridge_start() not written */
+	return -1;
+}
+
+static void native_bridge_stop(struct ast_bridge *bridge)
+{
+	/*! \todo BUGBUG native_bridge_stop() not written */
+}
+
+static void native_bridge_destroy(struct ast_bridge *bridge)
+{
+	/*! \todo BUGBUG native_bridge_destroy() not written */
+}
+
+static int native_bridge_join(struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel)
+{
+	/*! \todo BUGBUG native_bridge_join() not written */
+	return -1;
+}
+
+static void native_bridge_leave(struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel)
+{
+	/*! \todo BUGBUG native_bridge_leave() not written */
+}
+
+static void native_bridge_suspend(struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel)
+{
+	/*! \todo BUGBUG native_bridge_suspend() not written */
+}
+
+static void native_bridge_unsuspend(struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel)
+{
+	/*! \todo BUGBUG native_bridge_unsuspend() not written */
+}
+
+static int native_bridge_compatible(struct ast_bridge *bridge)
+{
+	/*! \todo BUGBUG native_bridge_compatible() not written */
+	return -1;
+}
+
+static int native_bridge_write(struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel, struct ast_frame *frame)
+{
+	return ast_bridge_queue_everyone_else(bridge, bridge_channel, frame);
+}
+
+static struct ast_bridge_technology native_bridge = {
+	.name = "dahdi_native",
+	.capabilities = AST_BRIDGE_CAPABILITY_NATIVE,
+	.preference = AST_BRIDGE_PREFERENCE_BASE_NATIVE,
+	.create = native_bridge_create,
+	.start = native_bridge_start,
+	.stop = native_bridge_stop,
+	.destroy = native_bridge_destroy,
+	.join = native_bridge_join,
+	.leave = native_bridge_leave,
+	.suspend = native_bridge_suspend,
+	.unsuspend = native_bridge_unsuspend,
+	.compatible = native_bridge_compatible,
+	.write = native_bridge_write,
+};
+
+/*!
+ * \internal
+ * \brief Destroy the DAHDI native bridge support.
+ * \since 12.0.0
+ *
+ * \return Nothing
+ */
+void native_bridge_unload(void)
+{
+	ast_format_cap_destroy(native_bridge.format_capabilities);
+	ast_bridge_technology_unregister(&native_bridge);
+}
+
+/*!
+ * \internal
+ * \brief Initialize the DAHDI native bridge support.
+ * \since 12.0.0
+ *
+ * \retval 0 on success.
+ * \retval -1 on error.
+ */
+int native_bridge_load(struct ast_module *mod, const struct ast_channel_tech *tech)
+{
+	struct ast_format format;
+
+	dahdi_tech = tech;
+
+	native_bridge.format_capabilities = ast_format_cap_alloc();
+	if (!native_bridge.format_capabilities) {
+		return -1;
+	}
+	ast_format_cap_add(native_bridge.format_capabilities, ast_format_set(&format, AST_FORMAT_SLINEAR, 0));
+	ast_format_cap_add(native_bridge.format_capabilities, ast_format_set(&format, AST_FORMAT_ULAW, 0));
+	ast_format_cap_add(native_bridge.format_capabilities, ast_format_set(&format, AST_FORMAT_ALAW, 0));
+
+	return __ast_bridge_technology_register(&native_bridge, mod);
+}

Modified: team/rmudgett/native_dahdi/channels/dahdi/bridge_native_dahdi.h
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/native_dahdi/channels/dahdi/bridge_native_dahdi.h?view=diff&rev=394171&r1=394170&r2=394171
==============================================================================
--- team/rmudgett/native_dahdi/channels/dahdi/bridge_native_dahdi.h (original)
+++ team/rmudgett/native_dahdi/channels/dahdi/bridge_native_dahdi.h Thu Jul 11 16:25:25 2013
@@ -35,7 +35,8 @@
 
 /* ------------------------------------------------------------------- */
 
-
+void native_bridge_unload(void);
+int native_bridge_load(struct ast_module *mod, const struct ast_channel_tech *tech);
 
 /* ------------------------------------------------------------------- */
 




More information about the svn-commits mailing list