[asterisk-commits] may: branch may/ooh323_qsig r397849 - in /team/may/ooh323_qsig: ./ apps/ apps...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed Aug 28 03:40:40 CDT 2013


Author: may
Date: Wed Aug 28 03:40:29 2013
New Revision: 397849

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=397849
Log: (empty)

Modified:
    team/may/ooh323_qsig/   (props changed)
    team/may/ooh323_qsig/apps/app_bridgewait.c
    team/may/ooh323_qsig/apps/app_confbridge.c
    team/may/ooh323_qsig/apps/app_queue.c
    team/may/ooh323_qsig/apps/app_voicemail.c
    team/may/ooh323_qsig/apps/confbridge/conf_config_parser.c
    team/may/ooh323_qsig/bridges/bridge_softmix.c
    team/may/ooh323_qsig/cel/cel_custom.c
    team/may/ooh323_qsig/cel/cel_manager.c
    team/may/ooh323_qsig/cel/cel_odbc.c
    team/may/ooh323_qsig/cel/cel_pgsql.c
    team/may/ooh323_qsig/cel/cel_radius.c
    team/may/ooh323_qsig/cel/cel_sqlite3_custom.c
    team/may/ooh323_qsig/cel/cel_tds.c
    team/may/ooh323_qsig/channels/chan_dahdi.c
    team/may/ooh323_qsig/channels/chan_iax2.c
    team/may/ooh323_qsig/channels/chan_mgcp.c
    team/may/ooh323_qsig/channels/chan_misdn.c
    team/may/ooh323_qsig/channels/chan_sip.c
    team/may/ooh323_qsig/channels/chan_skinny.c
    team/may/ooh323_qsig/channels/chan_unistim.c
    team/may/ooh323_qsig/channels/chan_vpb.cc
    team/may/ooh323_qsig/channels/sig_analog.c
    team/may/ooh323_qsig/channels/sig_pri.c
    team/may/ooh323_qsig/channels/sig_pri.h
    team/may/ooh323_qsig/configs/features.conf.sample
    team/may/ooh323_qsig/funcs/func_presencestate.c
    team/may/ooh323_qsig/include/asterisk/_private.h
    team/may/ooh323_qsig/include/asterisk/astobj2.h
    team/may/ooh323_qsig/include/asterisk/bridge.h
    team/may/ooh323_qsig/include/asterisk/bridge_channel.h
    team/may/ooh323_qsig/include/asterisk/bridge_channel_internal.h
    team/may/ooh323_qsig/include/asterisk/cel.h
    team/may/ooh323_qsig/include/asterisk/channel.h
    team/may/ooh323_qsig/include/asterisk/devicestate.h
    team/may/ooh323_qsig/include/asterisk/doxygen/architecture.h
    team/may/ooh323_qsig/include/asterisk/event.h
    team/may/ooh323_qsig/include/asterisk/event_defs.h
    team/may/ooh323_qsig/include/asterisk/lock.h
    team/may/ooh323_qsig/include/asterisk/parking.h
    team/may/ooh323_qsig/include/asterisk/security_events_defs.h
    team/may/ooh323_qsig/include/asterisk/utils.h
    team/may/ooh323_qsig/main/asterisk.c
    team/may/ooh323_qsig/main/bridge.c
    team/may/ooh323_qsig/main/bridge_channel.c
    team/may/ooh323_qsig/main/ccss.c
    team/may/ooh323_qsig/main/cdr.c
    team/may/ooh323_qsig/main/cel.c
    team/may/ooh323_qsig/main/channel.c
    team/may/ooh323_qsig/main/cli.c
    team/may/ooh323_qsig/main/config_options.c
    team/may/ooh323_qsig/main/data.c
    team/may/ooh323_qsig/main/db.c
    team/may/ooh323_qsig/main/devicestate.c
    team/may/ooh323_qsig/main/event.c
    team/may/ooh323_qsig/main/features.c
    team/may/ooh323_qsig/main/file.c
    team/may/ooh323_qsig/main/format.c
    team/may/ooh323_qsig/main/hashtab.c
    team/may/ooh323_qsig/main/indications.c
    team/may/ooh323_qsig/main/loader.c
    team/may/ooh323_qsig/main/manager.c
    team/may/ooh323_qsig/main/message.c
    team/may/ooh323_qsig/main/parking.c
    team/may/ooh323_qsig/main/pbx.c
    team/may/ooh323_qsig/main/pickup.c
    team/may/ooh323_qsig/main/presencestate.c
    team/may/ooh323_qsig/main/rtp_engine.c
    team/may/ooh323_qsig/main/security_events.c
    team/may/ooh323_qsig/main/sounds_index.c
    team/may/ooh323_qsig/main/stasis.c
    team/may/ooh323_qsig/main/stasis_cache.c
    team/may/ooh323_qsig/main/stasis_cache_pattern.c
    team/may/ooh323_qsig/main/stasis_channels.c
    team/may/ooh323_qsig/main/utils.c
    team/may/ooh323_qsig/main/xmldoc.c
    team/may/ooh323_qsig/res/parking/parking_applications.c
    team/may/ooh323_qsig/res/parking/parking_bridge_features.c
    team/may/ooh323_qsig/res/parking/parking_manager.c
    team/may/ooh323_qsig/res/parking/parking_tests.c
    team/may/ooh323_qsig/res/parking/parking_ui.c
    team/may/ooh323_qsig/res/parking/res_parking.h
    team/may/ooh323_qsig/res/res_corosync.c
    team/may/ooh323_qsig/res/res_jabber.c
    team/may/ooh323_qsig/res/res_parking.c
    team/may/ooh323_qsig/res/res_pjsip.c
    team/may/ooh323_qsig/res/res_rtp_asterisk.c
    team/may/ooh323_qsig/res/res_security_log.c
    team/may/ooh323_qsig/res/res_stasis.c
    team/may/ooh323_qsig/res/res_xmpp.c
    team/may/ooh323_qsig/tests/test_abstract_jb.c
    team/may/ooh323_qsig/tests/test_cdr.c
    team/may/ooh323_qsig/tests/test_cel.c
    team/may/ooh323_qsig/tests/test_event.c
    team/may/ooh323_qsig/tests/test_hashtab_thrash.c
    team/may/ooh323_qsig/tests/test_jitterbuf.c
    team/may/ooh323_qsig/tests/test_stasis.c
    team/may/ooh323_qsig/tests/test_voicemail_api.c

Propchange: team/may/ooh323_qsig/
------------------------------------------------------------------------------
Binary property 'branch-11-merged' - no diff available.

Propchange: team/may/ooh323_qsig/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Wed Aug 28 03:40:29 2013
@@ -1,1 +1,1 @@
-/trunk:1-380157,380165-391000,391012,391016-393400,393410-393530,393542-393834,393843-394050,394065-394089,394103-394600,394623-394881,394894-395298,395316-395900,395906-396568
+/trunk:1-380157,380165-391000,391012,391016-393400,393410-393530,393542-393834,393843-394050,394065-394089,394103-394600,394623-394881,394894-395298,395316-395900,395906-396568,396581-396915

Modified: team/may/ooh323_qsig/apps/app_bridgewait.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/apps/app_bridgewait.c?view=diff&rev=397849&r1=397848&r2=397849
==============================================================================
--- team/may/ooh323_qsig/apps/app_bridgewait.c (original)
+++ team/may/ooh323_qsig/apps/app_bridgewait.c Wed Aug 28 03:40:29 2013
@@ -349,10 +349,16 @@
 		return wrapper;
 	}
 
+	/*
+	 * Holding bridges can allow local channel move/swap
+	 * optimization to the bridge.  However, we cannot allow it for
+	 * this holding bridge because the call will lose the channel
+	 * roles and dialplan location as a result.
+	 */
 	bridge = ast_bridge_base_new(AST_BRIDGE_CAPABILITY_HOLDING,
 		AST_BRIDGE_FLAG_MERGE_INHIBIT_TO | AST_BRIDGE_FLAG_MERGE_INHIBIT_FROM
-		| AST_BRIDGE_FLAG_SWAP_INHIBIT_FROM | AST_BRIDGE_FLAG_TRANSFER_PROHIBITED
-		| AST_BRIDGE_FLAG_DISSOLVE_EMPTY);
+		| AST_BRIDGE_FLAG_SWAP_INHIBIT_TO | AST_BRIDGE_FLAG_SWAP_INHIBIT_FROM
+		| AST_BRIDGE_FLAG_TRANSFER_PROHIBITED | AST_BRIDGE_FLAG_DISSOLVE_EMPTY);
 
 	if (!bridge) {
 		return NULL;

Modified: team/may/ooh323_qsig/apps/app_confbridge.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/apps/app_confbridge.c?view=diff&rev=397849&r1=397848&r2=397849
==============================================================================
--- team/may/ooh323_qsig/apps/app_confbridge.c (original)
+++ team/may/ooh323_qsig/apps/app_confbridge.c Wed Aug 28 03:40:29 2013
@@ -1587,6 +1587,8 @@
 	/* Set if DTMF should pass through for this user or not */
 	if (ast_test_flag(&user.u_profile, USER_OPT_DTMF_PASS)) {
 		user.features.dtmf_passthrough = 1;
+	} else {
+		user.features.dtmf_passthrough = 0;
 	}
 
 	/* Set dsp threshold values if present */

Modified: team/may/ooh323_qsig/apps/app_queue.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/apps/app_queue.c?view=diff&rev=397849&r1=397848&r2=397849
==============================================================================
--- team/may/ooh323_qsig/apps/app_queue.c (original)
+++ team/may/ooh323_qsig/apps/app_queue.c Wed Aug 28 03:40:29 2013
@@ -96,7 +96,6 @@
 #include "asterisk/astdb.h"
 #include "asterisk/devicestate.h"
 #include "asterisk/stringfields.h"
-#include "asterisk/event.h"
 #include "asterisk/astobj2.h"
 #include "asterisk/strings.h"
 #include "asterisk/global_datastores.h"
@@ -2060,7 +2059,8 @@
 }
 
 /*!
- * \internal \brief Determine if a queue member is available
+ * \internal
+ * \brief Determine if a queue member is available
  * \retval 1 if the member is available
  * \retval 0 if the member is not available
  */

Modified: team/may/ooh323_qsig/apps/app_voicemail.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/apps/app_voicemail.c?view=diff&rev=397849&r1=397848&r2=397849
==============================================================================
--- team/may/ooh323_qsig/apps/app_voicemail.c (original)
+++ team/may/ooh323_qsig/apps/app_voicemail.c Wed Aug 28 03:40:29 2013
@@ -131,7 +131,6 @@
 #include "asterisk/strings.h"
 #include "asterisk/smdi.h"
 #include "asterisk/astobj2.h"
-#include "asterisk/event.h"
 #include "asterisk/taskprocessor.h"
 #include "asterisk/test.h"
 

Modified: team/may/ooh323_qsig/apps/confbridge/conf_config_parser.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/apps/confbridge/conf_config_parser.c?view=diff&rev=397849&r1=397848&r2=397849
==============================================================================
--- team/may/ooh323_qsig/apps/confbridge/conf_config_parser.c (original)
+++ team/may/ooh323_qsig/apps/confbridge/conf_config_parser.c Wed Aug 28 03:40:29 2013
@@ -1922,7 +1922,7 @@
 	/* This option should only be used with the CONFBRIDGE dialplan function */
 	aco_option_register_custom(&cfg_info, "template", ACO_EXACT, user_types, NULL, user_template_handler, 0);
 
-/* BUGBUG need a user supplied bridge merge_priority to merge ConfBridges (default = 1, range 1-INT_MAX) */
+/* XXX ASTERISK-21271 need a user supplied bridge merge_priority to merge ConfBridges (default = 1, range 1-INT_MAX) */
 	/* Bridge options */
 	aco_option_register(&cfg_info, "type", ACO_EXACT, bridge_types, NULL, OPT_NOOP_T, 0, 0);
 	aco_option_register(&cfg_info, "jitterbuffer", ACO_EXACT, bridge_types, "no", OPT_BOOLFLAG_T, 1, FLDSET(struct bridge_profile, flags), USER_OPT_JITTERBUFFER);

Modified: team/may/ooh323_qsig/bridges/bridge_softmix.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/bridges/bridge_softmix.c?view=diff&rev=397849&r1=397848&r2=397849
==============================================================================
--- team/may/ooh323_qsig/bridges/bridge_softmix.c (original)
+++ team/may/ooh323_qsig/bridges/bridge_softmix.c Wed Aug 28 03:40:29 2013
@@ -594,8 +594,10 @@
  */
 static int softmix_bridge_write_control(struct ast_bridge *bridge, struct ast_bridge_channel *bridge_channel, struct ast_frame *frame)
 {
-/* BUGBUG need to look at channel roles to determine what to do with control frame. */
-	/*! \todo BUGBUG softmix_bridge_write_control() not written */
+	/*
+	 * XXX Softmix needs to use channel roles to determine what to
+	 * do with control frames.
+	 */
 	return 0;
 }
 
@@ -622,6 +624,11 @@
 		return 0;
 	}
 
+	/*
+	 * XXX Softmix needs to use channel roles to determine who gets
+	 * what frame.  Possible roles: announcer, recorder, agent,
+	 * supervisor.
+	 */
 	switch (frame->frametype) {
 	case AST_FRAME_NULL:
 		/* "Accept" the frame and discard it. */
@@ -820,6 +827,10 @@
 		goto softmix_cleanup;
 	}
 
+	/*
+	 * XXX Softmix needs to use channel roles to determine who gets
+	 * what audio mixed.
+	 */
 	while (!softmix_data->stop && bridge->num_active) {
 		struct ast_bridge_channel *bridge_channel;
 		int timeout = -1;

Modified: team/may/ooh323_qsig/cel/cel_custom.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/cel/cel_custom.c?view=diff&rev=397849&r1=397848&r2=397849
==============================================================================
--- team/may/ooh323_qsig/cel/cel_custom.c (original)
+++ team/may/ooh323_qsig/cel/cel_custom.c Wed Aug 28 03:40:29 2013
@@ -64,7 +64,7 @@
 	AST_RWLIST_ENTRY(cel_config) list;
 };
 
-static struct ast_event_sub *event_sub = NULL;
+#define CUSTOM_BACKEND_NAME "CEL Custom CSV Logging"
 
 static AST_RWLIST_HEAD_STATIC(sinks, cel_config);
 
@@ -116,7 +116,7 @@
 	return res;
 }
 
-static void custom_log(const struct ast_event *event, void *userdata)
+static void custom_log(struct ast_event *event)
 {
 	struct ast_channel *dummy;
 	struct ast_str *str;
@@ -167,19 +167,15 @@
 
 static int unload_module(void)
 {
-	if (event_sub) {
-		event_sub = ast_event_unsubscribe(event_sub);
-	}
 
 	if (AST_RWLIST_WRLOCK(&sinks)) {
-		event_sub = ast_event_subscribe(AST_EVENT_CEL, custom_log, "CEL Custom CSV Logging",
-			NULL, AST_EVENT_IE_END);
 		ast_log(LOG_ERROR, "Unable to lock sink list.  Unload failed.\n");
 		return -1;
 	}
 
 	free_config();
 	AST_RWLIST_UNLOCK(&sinks);
+	ast_cel_backend_unregister(CUSTOM_BACKEND_NAME);
 	return 0;
 }
 
@@ -193,8 +189,9 @@
 	load_config();
 	AST_RWLIST_UNLOCK(&sinks);
 
-	event_sub = ast_event_subscribe(AST_EVENT_CEL, custom_log, "CEL Custom CSV Logging",
-		NULL, AST_EVENT_IE_END);
+	if (ast_cel_backend_register(CUSTOM_BACKEND_NAME, custom_log)) {
+		return AST_MODULE_LOAD_FAILURE;
+	}
 	return AST_MODULE_LOAD_SUCCESS;
 }
 

Modified: team/may/ooh323_qsig/cel/cel_manager.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/cel/cel_manager.c?view=diff&rev=397849&r1=397848&r2=397849
==============================================================================
--- team/may/ooh323_qsig/cel/cel_manager.c (original)
+++ team/may/ooh323_qsig/cel/cel_manager.c Wed Aug 28 03:40:29 2013
@@ -57,12 +57,12 @@
 /*! \brief show_user_def is off by default */
 #define CEL_SHOW_USERDEF_DEFAULT	0
 
+#define MANAGER_BACKEND_NAME "Manager Event Logging"
+
 /*! TRUE if we should set the EventName header to USER_DEFINED on user events. */
 static unsigned char cel_show_user_def;
 
-static struct ast_event_sub *event_sub;
-
-static void manager_log(const struct ast_event *event, void *userdata)
+static void manager_log(struct ast_event *event)
 {
 	struct ast_tm timeresult;
 	char start_time[80] = "";
@@ -180,12 +180,9 @@
 
 	cel_show_user_def = new_cel_show_user_def;
 	if (enablecel && !newenablecel) {
-		if (event_sub) {
-			event_sub = ast_event_unsubscribe(event_sub);
-		}
+		ast_cel_backend_unregister(MANAGER_BACKEND_NAME);
 	} else if (!enablecel && newenablecel) {
-		event_sub = ast_event_subscribe(AST_EVENT_CEL, manager_log, "Manager Event Logging", NULL, AST_EVENT_IE_END);
-		if (!event_sub) {
+		if (ast_cel_backend_register(MANAGER_BACKEND_NAME, manager_log)) {
 			ast_log(LOG_ERROR, "Unable to register Asterisk Call Manager CEL handling\n");
 		}
 	}
@@ -196,9 +193,7 @@
 
 static int unload_module(void)
 {
-	if (event_sub) {
-		event_sub = ast_event_unsubscribe(event_sub);
-	}
+	ast_cel_backend_unregister(MANAGER_BACKEND_NAME);
 	return 0;
 }
 

Modified: team/may/ooh323_qsig/cel/cel_odbc.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/cel/cel_odbc.c?view=diff&rev=397849&r1=397848&r2=397849
==============================================================================
--- team/may/ooh323_qsig/cel/cel_odbc.c (original)
+++ team/may/ooh323_qsig/cel/cel_odbc.c Wed Aug 28 03:40:29 2013
@@ -51,7 +51,8 @@
 #include "asterisk/module.h"
 
 #define	CONFIG	"cel_odbc.conf"
-static struct ast_event_sub *event_sub = NULL;
+
+#define ODBC_BACKEND_NAME "ODBC CEL backend"
 
 /*! \brief show_user_def is off by default */
 #define CEL_SHOW_USERDEF_DEFAULT	0
@@ -367,7 +368,7 @@
 				}																\
 			} while (0)
 
-static void odbc_log(const struct ast_event *event, void *userdata)
+static void odbc_log(struct ast_event *event)
 {
 	struct tables *tableptr;
 	struct columns *entry;
@@ -789,18 +790,12 @@
 
 static int unload_module(void)
 {
-	if (event_sub) {
-		event_sub = ast_event_unsubscribe(event_sub);
-	}
 	if (AST_RWLIST_WRLOCK(&odbc_tables)) {
-		event_sub = ast_event_subscribe(AST_EVENT_CEL, odbc_log, "ODBC CEL backend", NULL, AST_EVENT_IE_END);
-		if (!event_sub) {
-			ast_log(LOG_ERROR, "Unable to subscribe to CEL events\n");
-		}
 		ast_log(LOG_ERROR, "Unable to lock column list.  Unload failed.\n");
 		return -1;
 	}
 
+	ast_cel_backend_unregister(ODBC_BACKEND_NAME);
 	free_config();
 	AST_RWLIST_UNLOCK(&odbc_tables);
 	AST_RWLIST_HEAD_DESTROY(&odbc_tables);
@@ -814,13 +809,13 @@
 
 	if (AST_RWLIST_WRLOCK(&odbc_tables)) {
 		ast_log(LOG_ERROR, "Unable to lock column list.  Load failed.\n");
-		return 0;
+		return AST_MODULE_LOAD_FAILURE;
 	}
 	load_config();
 	AST_RWLIST_UNLOCK(&odbc_tables);
-	event_sub = ast_event_subscribe(AST_EVENT_CEL, odbc_log, "ODBC CEL backend", NULL, AST_EVENT_IE_END);
-	if (!event_sub) {
+	if (ast_cel_backend_register(ODBC_BACKEND_NAME, odbc_log)) {
 		ast_log(LOG_ERROR, "Unable to subscribe to CEL events\n");
+		return AST_MODULE_LOAD_FAILURE;
 	}
 	return AST_MODULE_LOAD_SUCCESS;
 }
@@ -829,7 +824,7 @@
 {
 	if (AST_RWLIST_WRLOCK(&odbc_tables)) {
 		ast_log(LOG_ERROR, "Unable to lock column list.  Reload failed.\n");
-		return -1;
+		return AST_MODULE_LOAD_FAILURE;
 	}
 
 	free_config();
@@ -838,7 +833,7 @@
 	return AST_MODULE_LOAD_SUCCESS;
 }
 
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "ODBC CEL backend",
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, ODBC_BACKEND_NAME,
 	.load = load_module,
 	.unload = unload_module,
 	.reload = reload,

Modified: team/may/ooh323_qsig/cel/cel_pgsql.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/cel/cel_pgsql.c?view=diff&rev=397849&r1=397848&r2=397849
==============================================================================
--- team/may/ooh323_qsig/cel/cel_pgsql.c (original)
+++ team/may/ooh323_qsig/cel/cel_pgsql.c Wed Aug 28 03:40:29 2013
@@ -58,6 +58,8 @@
 
 #define DATE_FORMAT "%Y-%m-%d %T.%6q"
 
+#define PGSQL_BACKEND_NAME "CEL PGSQL backend"
+
 static char *config = "cel_pgsql.conf";
 static char *pghostname = NULL, *pgdbname = NULL, *pgdbuser = NULL, *pgpassword = NULL, *pgdbport = NULL, *table = NULL;
 static int connected = 0;
@@ -73,7 +75,6 @@
 
 static PGconn	*conn = NULL;
 static PGresult	*result = NULL;
-static struct ast_event_sub *event_sub = NULL;
 
 struct columns {
 	char *name;
@@ -113,7 +114,7 @@
 		} \
 	} while (0)
 
-static void pgsql_log(const struct ast_event *event, void *userdata)
+static void pgsql_log(struct ast_event *event)
 {
 	struct ast_tm tm;
 	char timestr[128];
@@ -346,10 +347,7 @@
 {
 	struct columns *current;
 	AST_RWLIST_WRLOCK(&psql_columns);
-	if (event_sub) {
-		event_sub = ast_event_unsubscribe(event_sub);
-		event_sub = NULL;
-	}
+	ast_cel_backend_unregister(PGSQL_BACKEND_NAME);
 	if (conn) {
 		PQfinish(conn);
 		conn = NULL;
@@ -561,9 +559,7 @@
 	process_my_load_module(cfg);
 	ast_config_destroy(cfg);
 
-	event_sub = ast_event_subscribe(AST_EVENT_CEL, pgsql_log, "CEL PGSQL backend", NULL, AST_EVENT_IE_END);
-
-	if (!event_sub) {
+	if (ast_cel_backend_register(PGSQL_BACKEND_NAME, pgsql_log)) {
 		ast_log(LOG_WARNING, "Unable to subscribe to CEL events for pgsql\n");
 		return AST_MODULE_LOAD_DECLINE;
 	}

Modified: team/may/ooh323_qsig/cel/cel_radius.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/cel/cel_radius.c?view=diff&rev=397849&r1=397848&r2=397849
==============================================================================
--- team/may/ooh323_qsig/cel/cel_radius.c (original)
+++ team/may/ooh323_qsig/cel/cel_radius.c Wed Aug 28 03:40:29 2013
@@ -84,7 +84,8 @@
 static struct ast_flags global_flags = { RADIUS_FLAG_USEGMTIME | RADIUS_FLAG_LOGUNIQUEID | RADIUS_FLAG_LOGUSERFIELD };
 
 static rc_handle *rh = NULL;
-static struct ast_event_sub *event_sub = NULL;
+
+#define RADIUS_BACKEND_NAME "CEL Radius Logging"
 
 #define ADD_VENDOR_CODE(x,y) (rc_avpair_add(rh, send, x, &y, strlen(y), VENDOR_CODE))
 
@@ -174,7 +175,7 @@
 	return 0;
 }
 
-static void radius_log(const struct ast_event *event, void *userdata)
+static void radius_log(struct ast_event *event)
 {
 	int result = ERROR_RC;
 	VALUE_PAIR *send = NULL;
@@ -204,9 +205,7 @@
 
 static int unload_module(void)
 {
-	if (event_sub) {
-		event_sub = ast_event_unsubscribe(event_sub);
-	}
+	ast_cel_backend_unregister(RADIUS_BACKEND_NAME);
 	if (rh) {
 		rc_destroy(rh);
 		rh = NULL;
@@ -256,8 +255,7 @@
 		return AST_MODULE_LOAD_DECLINE;
 	}
 
-	event_sub = ast_event_subscribe(AST_EVENT_CEL, radius_log, "CEL Radius Logging", NULL, AST_EVENT_IE_END);
-	if (!event_sub) {
+	if (ast_cel_backend_register(RADIUS_BACKEND_NAME, radius_log)) {
 		rc_destroy(rh);
 		rh = NULL;
 		return AST_MODULE_LOAD_DECLINE;

Modified: team/may/ooh323_qsig/cel/cel_sqlite3_custom.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/cel/cel_sqlite3_custom.c?view=diff&rev=397849&r1=397848&r2=397849
==============================================================================
--- team/may/ooh323_qsig/cel/cel_sqlite3_custom.c (original)
+++ team/may/ooh323_qsig/cel/cel_sqlite3_custom.c Wed Aug 28 03:40:29 2013
@@ -57,6 +57,8 @@
 #include "asterisk/options.h"
 #include "asterisk/stringfields.h"
 
+#define SQLITE_BACKEND_NAME "CEL sqlite3 custom backend"
+
 AST_MUTEX_DEFINE_STATIC(lock);
 
 static const char config_file[] = "cel_sqlite3_custom.conf";
@@ -69,7 +71,6 @@
  * \bug Handling of this var is crash prone on reloads
  */
 static char *columns;
-static struct ast_event_sub *event_sub = NULL;
 
 struct values {
 	char *expression;
@@ -229,7 +230,7 @@
 	}
 }
 
-static void write_cel(const struct ast_event *event, void *userdata)
+static void write_cel(struct ast_event *event)
 {
 	char *error = NULL;
 	char *sql = NULL;
@@ -293,9 +294,7 @@
 
 static int unload_module(void)
 {
-	if (event_sub) {
-		event_sub = ast_event_unsubscribe(event_sub);
-	}
+	ast_cel_backend_unregister(SQLITE_BACKEND_NAME);
 
 	free_config();
 
@@ -339,8 +338,7 @@
 		}
 	}
 
-	event_sub = ast_event_subscribe(AST_EVENT_CEL, write_cel, "CEL sqlite3 custom backend", NULL, AST_EVENT_IE_END);
-	if (!event_sub) {
+	if (ast_cel_backend_register(SQLITE_BACKEND_NAME, write_cel)) {
 		ast_log(LOG_ERROR, "Unable to register custom SQLite3 CEL handling\n");
 		free_config();
 		return AST_MODULE_LOAD_DECLINE;

Modified: team/may/ooh323_qsig/cel/cel_tds.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/cel/cel_tds.c?view=diff&rev=397849&r1=397848&r2=397849
==============================================================================
--- team/may/ooh323_qsig/cel/cel_tds.c (original)
+++ team/may/ooh323_qsig/cel/cel_tds.c Wed Aug 28 03:40:29 2013
@@ -81,9 +81,9 @@
 
 #define DATE_FORMAT "%Y/%m/%d %T"
 
+#define TDS_BACKEND_NAME "CEL TDS logging backend"
+
 static char *config = "cel_tds.conf";
-
-static struct ast_event_sub *event_sub = NULL;
 
 struct cel_tds_config {
 	AST_DECLARE_STRING_FIELDS(
@@ -112,7 +112,7 @@
 static int mssql_connect(void);
 static int mssql_disconnect(void);
 
-static void tds_log(const struct ast_event *event, void *userdata)
+static void tds_log(struct ast_event *event)
 {
 	char start[80];
 	char *accountcode_ai, *clidnum_ai, *exten_ai, *context_ai, *clid_ai, *channel_ai, *app_ai, *appdata_ai, *uniqueid_ai, *linkedid_ai, *cidani_ai, *cidrdnis_ai, *ciddnid_ai, *peer_ai, *userfield_ai;
@@ -397,9 +397,7 @@
 
 static int tds_unload_module(void)
 {
-	if (event_sub) {
-		event_sub = ast_event_unsubscribe(event_sub);
-	}
+	ast_cel_backend_unregister(TDS_BACKEND_NAME);
 
 	if (settings) {
 		ast_mutex_lock(&tds_lock);
@@ -561,8 +559,7 @@
 	}
 
 	/* Register MSSQL CEL handler */
-	event_sub = ast_event_subscribe(AST_EVENT_CEL, tds_log, "CEL TDS logging backend", NULL, AST_EVENT_IE_END);
-	if (!event_sub) {
+	if (ast_cel_backend_register(TDS_BACKEND_NAME, tds_log)) {
 		ast_log(LOG_ERROR, "Unable to register MSSQL CEL handling\n");
 		ast_string_field_free_memory(settings);
 		ast_free(settings);

Modified: team/may/ooh323_qsig/channels/chan_dahdi.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/channels/chan_dahdi.c?view=diff&rev=397849&r1=397848&r2=397849
==============================================================================
--- team/may/ooh323_qsig/channels/chan_dahdi.c (original)
+++ team/may/ooh323_qsig/channels/chan_dahdi.c Wed Aug 28 03:40:29 2013
@@ -119,7 +119,6 @@
 #include "asterisk/abstract_jb.h"
 #include "asterisk/smdi.h"
 #include "asterisk/astobj.h"
-#include "asterisk/event.h"
 #include "asterisk/devicestate.h"
 #include "asterisk/paths.h"
 #include "asterisk/ccss.h"
@@ -9246,10 +9245,6 @@
 	int idx;
 	struct ast_format tmpfmt;
 	RAII_VAR(struct ast_features_pickup_config *, pickup_cfg, NULL, ao2_cleanup);
-	RAII_VAR(struct ast_parking_bridge_feature_fn_table *, parking_provider,
-		ast_parking_get_bridge_features(),
-		ao2_cleanup);
-	int is_exten_parking;
 	const char *pickupexten;
 
 	ast_mutex_lock(&ss_thread_lock);
@@ -9563,6 +9558,8 @@
 		if (p->subs[SUB_THREEWAY].owner)
 			timeout = 999999;
 		while (len < AST_MAX_EXTENSION-1) {
+			int is_exten_parking = 0;
+
 			/* Read digit unless it's supposed to be immediate, in which case the
 			   only answer is 's' */
 			if (p->immediate)
@@ -9585,7 +9582,9 @@
 			} else {
 				tone_zone_play_tone(p->subs[idx].dfd, DAHDI_TONE_DIALTONE);
 			}
-			is_exten_parking = (parking_provider ? parking_provider->parking_is_exten_park(ast_channel_context(chan), exten) : 0);
+			if (ast_parking_provider_registered()) {
+				is_exten_parking = ast_parking_is_exten_park(ast_channel_context(chan), exten);
+			}
 			if (ast_exists_extension(chan, ast_channel_context(chan), exten, 1, p->cid_num) && !is_exten_parking) {
 				if (!res || !ast_matchmore_extension(chan, ast_channel_context(chan), exten, 1, p->cid_num)) {
 					if (getforward) {
@@ -9730,7 +9729,7 @@
 				ast_channel_lock(chan);
 				bridge_channel = ast_channel_get_bridge_channel(chan);
 				ast_channel_unlock(chan);
-				if (bridge_channel && !parking_provider->parking_blind_transfer_park(bridge_channel, ast_channel_context(chan), exten)) {
+				if (bridge_channel && !ast_parking_blind_transfer_park(bridge_channel, ast_channel_context(chan), exten)) {
 					ast_verb(3, "Parking call to '%s'\n", ast_channel_name(chan));
 				}
 				break;

Modified: team/may/ooh323_qsig/channels/chan_iax2.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/channels/chan_iax2.c?view=diff&rev=397849&r1=397848&r2=397849
==============================================================================
--- team/may/ooh323_qsig/channels/chan_iax2.c (original)
+++ team/may/ooh323_qsig/channels/chan_iax2.c Wed Aug 28 03:40:29 2013
@@ -37,6 +37,18 @@
 
 /*! \page iax.conf iax.conf
  * \verbinclude iax.conf.sample
+ */
+
+/*!
+ * \todo XXX The IAX2 channel driver needs its native bridge
+ * code converted to the new bridge technology scheme.
+ *
+ * \note The chan_dahdi native bridge code can be used as an
+ * example.  It also appears that chan_iax2 also has a native
+ * transfer check like chan_dahdi to eliminate tromboned calls.
+ *
+ * \note The existing native bridge code is marked with the
+ * IAX2_NATIVE_BRIDGING conditional.
  */
 
 /*** MODULEINFO
@@ -93,7 +105,6 @@
 #include "asterisk/netsock.h"
 #include "asterisk/stringfields.h"
 #include "asterisk/linkedlists.h"
-#include "asterisk/event.h"
 #include "asterisk/astobj2.h"
 #include "asterisk/timing.h"
 #include "asterisk/taskprocessor.h"
@@ -1213,7 +1224,6 @@
 	ast_verbose("%s", buf);
 }
 
-static enum ast_bridge_result iax2_bridge(struct ast_channel *c0, struct ast_channel *c1, int flags, struct ast_frame **fo, struct ast_channel **rc, int timeoutms);
 static int expire_registry(const void *data);
 static int iax2_answer(struct ast_channel *c);
 static int iax2_call(struct ast_channel *c, const char *dest, int timeout);
@@ -1263,7 +1273,6 @@
 static void network_change_stasis_cb(void *data, struct stasis_subscription *sub, struct stasis_topic *topic, struct stasis_message *message);
 static void acl_change_stasis_cb(void *data, struct stasis_subscription *sub, struct stasis_topic *topic, struct stasis_message *message);
 
-/* BUGBUG The IAX2 channel driver needs its own native bridge technology. */
 static struct ast_channel_tech iax2_tech = {
 	.type = "IAX2",
 	.description = tdesc,
@@ -1284,7 +1293,6 @@
 	.indicate = iax2_indicate,
 	.setoption = iax2_setoption,
 	.queryoption = iax2_queryoption,
-	.bridge = iax2_bridge,
 	.transfer = iax2_transfer,
 	.fixup = iax2_fixup,
 	.func_channel_read = acf_channel_read,
@@ -5326,6 +5334,7 @@
 	return res;
 }
 
+#if defined(IAX2_NATIVE_BRIDGING)
 static int iax2_start_transfer(unsigned short callno0, unsigned short callno1, int mediaonly)
 {
 	int res;
@@ -5360,7 +5369,9 @@
 	iaxs[callno1]->transferring = mediaonly ? TRANSFER_MBEGIN : TRANSFER_BEGIN;
 	return 0;
 }
-
+#endif	/* defined(IAX2_NATIVE_BRIDGING) */
+
+#if defined(IAX2_NATIVE_BRIDGING)
 static void lock_both(unsigned short callno0, unsigned short callno1)
 {
 	ast_mutex_lock(&iaxsl[callno0]);
@@ -5368,13 +5379,17 @@
 		DEADLOCK_AVOIDANCE(&iaxsl[callno0]);
 	}
 }
-
+#endif	/* defined(IAX2_NATIVE_BRIDGING) */
+
+#if defined(IAX2_NATIVE_BRIDGING)
 static void unlock_both(unsigned short callno0, unsigned short callno1)
 {
 	ast_mutex_unlock(&iaxsl[callno1]);
 	ast_mutex_unlock(&iaxsl[callno0]);
 }
-
+#endif	/* defined(IAX2_NATIVE_BRIDGING) */
+
+#if defined(IAX2_NATIVE_BRIDGING)
 static enum ast_bridge_result iax2_bridge(struct ast_channel *c0, struct ast_channel *c1, int flags, struct ast_frame **fo, struct ast_channel **rc, int timeoutms)
 {
 	struct ast_channel *cs[3];
@@ -5497,8 +5512,7 @@
 		if ((f->frametype == AST_FRAME_CONTROL)) {
 			if (f->subclass.integer == AST_CONTROL_PVT_CAUSE_CODE) {
 				ast_channel_hangupcause_hash_set(other, f->data.ptr, f->datalen);
-			} else if (!(flags & AST_BRIDGE_IGNORE_SIGS)
-				&& (f->subclass.integer != AST_CONTROL_SRCUPDATE)) {
+			} else if (f->subclass.integer != AST_CONTROL_SRCUPDATE) {
 				*fo = f;
 				*rc = who;
 				res =  AST_BRIDGE_COMPLETE;
@@ -5539,6 +5553,7 @@
 	unlock_both(callno0, callno1);
 	return res;
 }
+#endif	/* defined(IAX2_NATIVE_BRIDGING) */
 
 static int iax2_answer(struct ast_channel *c)
 {

Modified: team/may/ooh323_qsig/channels/chan_mgcp.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/channels/chan_mgcp.c?view=diff&rev=397849&r1=397848&r2=397849
==============================================================================
--- team/may/ooh323_qsig/channels/chan_mgcp.c (original)
+++ team/may/ooh323_qsig/channels/chan_mgcp.c Wed Aug 28 03:40:29 2013
@@ -79,7 +79,6 @@
 #include "asterisk/devicestate.h"
 #include "asterisk/stringfields.h"
 #include "asterisk/abstract_jb.h"
-#include "asterisk/event.h"
 #include "asterisk/chanvars.h"
 #include "asterisk/pktccops.h"
 #include "asterisk/stasis.h"
@@ -2981,9 +2980,6 @@
 	int getforward = 0;
 	int loop_pause = 100;
 	RAII_VAR(struct ast_features_pickup_config *, pickup_cfg, NULL, ao2_cleanup);
-	RAII_VAR(struct ast_parking_bridge_feature_fn_table *, parking_provider,
-		ast_parking_get_bridge_features(),
-		ao2_cleanup);
 	const char *pickupexten;
 
 	len = strlen(p->dtmf_buf);
@@ -3152,7 +3148,7 @@
 			getforward = 0;
 			memset(p->dtmf_buf, 0, sizeof(p->dtmf_buf));
 			len = 0;
-		} else if (parking_provider && parking_provider->parking_is_exten_park(ast_channel_context(chan), p->dtmf_buf) &&
+		} else if (ast_parking_provider_registered() && ast_parking_is_exten_park(ast_channel_context(chan), p->dtmf_buf) &&
 			sub->next->owner) {
 			RAII_VAR(struct ast_bridge_channel *, bridge_channel, NULL, ao2_cleanup);
 			/* This is a three way call, the main call being a real channel,
@@ -3160,7 +3156,7 @@
 			ast_channel_lock(chan);
 			bridge_channel = ast_channel_get_bridge_channel(chan);
 			ast_channel_unlock(chan);
-			if (bridge_channel && !parking_provider->parking_blind_transfer_park(bridge_channel, ast_channel_context(chan), p->dtmf_buf)) {
+			if (bridge_channel && !ast_parking_blind_transfer_park(bridge_channel, ast_channel_context(chan), p->dtmf_buf)) {
 				ast_verb(3, "Parking call to '%s'\n", ast_channel_name(chan));
 			}
 			break;

Modified: team/may/ooh323_qsig/channels/chan_misdn.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/channels/chan_misdn.c?view=diff&rev=397849&r1=397848&r2=397849
==============================================================================
--- team/may/ooh323_qsig/channels/chan_misdn.c (original)
+++ team/may/ooh323_qsig/channels/chan_misdn.c Wed Aug 28 03:40:29 2013
@@ -56,6 +56,21 @@
 
 /* Define to enable cli commands to generate canned CCBS messages. */
 // #define CCBS_TEST_MESSAGES	1
+
+/*
+ * XXX The mISDN channel driver needs its native bridge code
+ * converted to the new bridge technology scheme.  The
+ * chan_dahdi native bridge code can be used as an example.  It
+ * is unlikely that this will ever get done.  Support for this
+ * channel driver is dwindling because the supported version of
+ * mISDN does not support newer kernels.
+ *
+ * Without native bridge support, the following config file
+ * parameters have no effect: bridging.
+ *
+ * The existing native bridge code is marked with the
+ * mISDN_NATIVE_BRIDGING conditional.
+ */
 
 /*** MODULEINFO
 	<depend>isdnnet</depend>
@@ -750,6 +765,7 @@
 	return 0;
 }
 
+#if defined(mISDN_NATIVE_BRIDGING)
 /*! Returns a reference to the found chan_list. */
 static struct chan_list *get_chan_by_ast(struct ast_channel *ast)
 {
@@ -767,6 +783,7 @@
 
 	return NULL;
 }
+#endif	/* defined(mISDN_NATIVE_BRIDGING) */
 
 /*! Returns a reference to the found chan_list. */
 static struct chan_list *get_chan_by_ast_name(const char *name)
@@ -7557,6 +7574,7 @@
 	return 0;
 }
 
+#if defined(mISDN_NATIVE_BRIDGING)
 static enum ast_bridge_result misdn_bridge(struct ast_channel *c0,
 	struct ast_channel *c1, int flags,
 	struct ast_frame **fo,
@@ -7570,14 +7588,20 @@
 	int p1_b, p2_b;
 	int bridging;
 
+	misdn_cfg_get(0, MISDN_GEN_BRIDGING, &bridging, sizeof(bridging));
+	if (!bridging) {
+		/* Native mISDN bridging globally disabled. */
+		return AST_BRIDGE_FAILED_NOWARN;
+	}
+
 	ch1 = get_chan_by_ast(c0);
 	if (!ch1) {
-		return -1;
+		return AST_BRIDGE_FAILED;
 	}
 	ch2 = get_chan_by_ast(c1);
 	if (!ch2) {
 		chan_list_unref(ch1, "Failed to find ch2");
-		return -1;
+		return AST_BRIDGE_FAILED;
 	}
 
 	carr[0] = c0;
@@ -7585,20 +7609,16 @@
 
 	misdn_cfg_get(ch1->bc->port, MISDN_CFG_BRIDGING, &p1_b, sizeof(p1_b));
 	misdn_cfg_get(ch2->bc->port, MISDN_CFG_BRIDGING, &p2_b, sizeof(p2_b));
-
-	if (! p1_b || ! p2_b) {
+	if (!p1_b || !p2_b) {
 		ast_log(LOG_NOTICE, "Falling back to Asterisk bridging\n");
 		chan_list_unref(ch1, "Bridge fallback ch1");
 		chan_list_unref(ch2, "Bridge fallback ch2");
-		return AST_BRIDGE_FAILED;
-	}
-
-	misdn_cfg_get(0, MISDN_GEN_BRIDGING, &bridging, sizeof(bridging));
-	if (bridging) {
-		/* trying to make a mISDN_dsp conference */
-		chan_misdn_log(1, ch1->bc->port, "I SEND: Making conference with Number:%d\n", ch1->bc->pid + 1);
-		misdn_lib_bridge(ch1->bc, ch2->bc);
-	}
+		return AST_BRIDGE_FAILED_NOWARN;
+	}
+
+	/* make a mISDN_dsp conference */
+	chan_misdn_log(1, ch1->bc->port, "I SEND: Making conference with Number:%d\n", ch1->bc->pid + 1);
+	misdn_lib_bridge(ch1->bc, ch2->bc);
 
 	ast_verb(3, "Native bridging %s and %s\n", ast_channel_name(c0), ast_channel_name(c1));
 
@@ -7671,6 +7691,7 @@
 	chan_list_unref(ch2, "Bridge complete ch2");
 	return AST_BRIDGE_COMPLETE;
 }
+#endif	/* defined(mISDN_NATIVE_BRIDGING) */
 
 /** AST INDICATIONS END **/
 
@@ -8097,26 +8118,7 @@
 	return 0;
 }
 
-/* BUGBUG The mISDN channel driver needs its own native bridge technology. (More like just never give it one.) */
 static struct ast_channel_tech misdn_tech = {
-	.type = misdn_type,
-	.description = "Channel driver for mISDN Support (Bri/Pri)",
-	.requester = misdn_request,
-	.send_digit_begin = misdn_digit_begin,
-	.send_digit_end = misdn_digit_end,
-	.call = misdn_call,
-	.bridge = misdn_bridge,
-	.hangup = misdn_hangup,
-	.answer = misdn_answer,
-	.read = misdn_read,
-	.write = misdn_write,
-	.indicate = misdn_indication,
-	.fixup = misdn_fixup,
-	.send_text = misdn_send_text,
-	.properties = 0,
-};
-
-static struct ast_channel_tech misdn_tech_wo_bridge = {
 	.type = misdn_type,
 	.description = "Channel driver for mISDN Support (Bri/Pri)",
 	.requester = misdn_request,
@@ -8167,7 +8169,6 @@
 	char *cid_num = NULL;
 	int chan_offset = 0;
 	int tmp_port = misdn_cfg_get_next_port(0);
-	int bridging;
 	struct ast_format tmpfmt;
 
 	for (; tmp_port > 0; tmp_port = misdn_cfg_get_next_port(tmp_port)) {
@@ -8200,8 +8201,7 @@
 		MISDN_ASTERISK_TECH_PVT_SET(tmp, chlist);
 		chlist->ast = tmp;
 
-		misdn_cfg_get(0, MISDN_GEN_BRIDGING, &bridging, sizeof(bridging));
-		ast_channel_tech_set(tmp, bridging ? &misdn_tech : &misdn_tech_wo_bridge);
+		ast_channel_tech_set(tmp, &misdn_tech);
 
 		ast_channel_priority_set(tmp, 1);
 
@@ -11270,7 +11270,6 @@
 	misdn_cc_destroy();
 #endif	/* defined(AST_MISDN_ENHANCEMENTS) */
 	misdn_tech.capabilities = ast_format_cap_destroy(misdn_tech.capabilities);
-	misdn_tech_wo_bridge.capabilities = ast_format_cap_destroy(misdn_tech_wo_bridge.capabilities);
 
 	return 0;
 }
@@ -11302,12 +11301,8 @@
 	if (!(misdn_tech.capabilities = ast_format_cap_alloc())) {
 		return AST_MODULE_LOAD_DECLINE;
 	}
-	if (!(misdn_tech_wo_bridge.capabilities = ast_format_cap_alloc())) {
-		return AST_MODULE_LOAD_DECLINE;
-	}
 	ast_format_set(&prefformat, AST_FORMAT_ALAW, 0);
 	ast_format_cap_add(misdn_tech.capabilities, &prefformat);
-	ast_format_cap_add(misdn_tech_wo_bridge.capabilities, &prefformat);
 
 	max_ports = misdn_lib_maxports_get();
 

Modified: team/may/ooh323_qsig/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/team/may/ooh323_qsig/channels/chan_sip.c?view=diff&rev=397849&r1=397848&r2=397849
==============================================================================
--- team/may/ooh323_qsig/channels/chan_sip.c (original)
+++ team/may/ooh323_qsig/channels/chan_sip.c Wed Aug 28 03:40:29 2013
@@ -276,7 +276,6 @@
 #include "asterisk/threadstorage.h"
 #include "asterisk/translate.h"
 #include "asterisk/ast_version.h"
-#include "asterisk/event.h"
 #include "asterisk/data.h"
 #include "asterisk/aoc.h"
 #include "asterisk/message.h"
@@ -7724,7 +7723,10 @@
 	return res;
 }
 
-/*! \internal \brief Create and initialize UDPTL for the specified dialog
+/*!
+ * \internal
+ * \brief Create and initialize UDPTL for the specified dialog
+ *
  * \param p SIP private structure to create UDPTL object for
  * \pre p is locked
  * \pre p->owner is locked
@@ -14443,7 +14445,10 @@
 	return 0;
 }
 
-/*! \internal \brief Find the channel that is causing the RINGING update, ref'd */
+/*!
+ * \internal
+ * \brief Find the channel that is causing the RINGING update, ref'd
+ */
 static struct ast_channel *find_ringing_channel(struct ao2_container *device_state_info, struct sip_pvt *p)
 {
 	struct ao2_iterator citer;
@@ -16148,7 +16153,7 @@
 	if (ast_apply_acl(sip_cfg.contact_acl, &peer->addr, "SIP contact ACL: ") != AST_SENSE_ALLOW ||
 			ast_apply_acl(peer->contactacl, &peer->addr, "SIP contact ACL: ") != AST_SENSE_ALLOW) {
 		ast_log(LOG_WARNING, "Domain '%s' disallowed by contact ACL (violating IP %s)\n", hostport,
-			ast_sockaddr_stringify_addr(&testsa));
+				ast_sockaddr_stringify_addr(&peer->addr));
 		ast_string_field_set(peer, fullcontact, "");
 		ast_string_field_set(pvt, our_contact, "");
 		return PARSE_REGISTER_DENIED;
@@ -16386,7 +16391,10 @@
 	}
 }
 
-/*! \internal \brief Create a new route
+/*!
+ * \internal
+ * \brief Create a new route
+ *
  * \retval NULL on error
  * \retval sip_route on success
  */
@@ -16415,7 +16423,10 @@
 	return route;
 }
 
-/*! \internal \brief copy route-set
+/*!
+ * \internal
+ * \brief copy route-set
+ *
  * \retval non-zero on failure
  * \retval 0 on success
  */
@@ -17045,7 +17056,9 @@
 	ast_sockaddr_split_hostport(*hostport, hostport, &dont_care, PARSE_PORT_IGNORE);
 }
 
-/*! \internal \brief Helper function to update a peer's lastmsgssent value
+/*!
+ * \internal
+ * \brief Helper function to update a peer's lastmsgssent value
  */
 static void update_peer_lastmsgssent(struct sip_peer *peer, int value, int locked)
 {
@@ -17059,13 +17072,16 @@
 }
 
 
-/*! \brief Verify registration of user
-	- Registration is done in several steps, first a REGISTER without auth

[... 9924 lines stripped ...]



More information about the asterisk-commits mailing list