[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