From 869302e302514a55d5569088603b964a3088f2ae Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Wed, 5 Nov 2008 17:25:54 +0000 Subject: [PATCH] add flush_dtmf app and uuid_flush_dtmf api command git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@10252 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/applications/mod_commands/mod_commands.c | 16 ++++++++++++++++ src/mod/applications/mod_dptools/mod_dptools.c | 6 ++++++ 2 files changed, 22 insertions(+) diff --git a/src/mod/applications/mod_commands/mod_commands.c b/src/mod/applications/mod_commands/mod_commands.c index f1ed508abe..ea41d04982 100644 --- a/src/mod/applications/mod_commands/mod_commands.c +++ b/src/mod/applications/mod_commands/mod_commands.c @@ -2477,6 +2477,21 @@ SWITCH_STANDARD_API(uuid_session_heartbeat_function) } +SWITCH_STANDARD_API(uuid_flush_dtmf_function) +{ + switch_core_session_t *fsession; + + if (!switch_strlen_zero(cmd) && (fsession = switch_core_session_locate(cmd))) { + switch_channel_flush_dtmf(switch_core_session_get_channel(fsession)); + switch_core_session_rwunlock(fsession); + stream->write_function(stream, "+OK\n"); + } else { + stream->write_function(stream, "-ERR no such session\n"); + } + + return SWITCH_STATUS_SUCCESS; +} + #define SETVAR_SYNTAX " " SWITCH_STANDARD_API(uuid_setvar_function) { @@ -2815,6 +2830,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_commands_load) switch_api_interface_t *commands_api_interface; *module_interface = switch_loadable_module_create_module_interface(pool, modname); + SWITCH_ADD_API(commands_api_interface, "uuid_flush_dtmf", "Flush dtmf on a given uuid", uuid_flush_dtmf_function, ""); SWITCH_ADD_API(commands_api_interface, "md5", "md5", md5_function, ""); SWITCH_ADD_API(commands_api_interface, "hupall", "hupall", hupall_api_function, " [ ]"); SWITCH_ADD_API(commands_api_interface, "strftime_tz", "strftime_tz", strftime_tz_api_function, " [format string]"); diff --git a/src/mod/applications/mod_dptools/mod_dptools.c b/src/mod/applications/mod_dptools/mod_dptools.c index bd1e4c166d..0b73da41d3 100644 --- a/src/mod/applications/mod_dptools/mod_dptools.c +++ b/src/mod/applications/mod_dptools/mod_dptools.c @@ -411,6 +411,11 @@ SWITCH_STANDARD_APP(check_acl_function) } +SWITCH_STANDARD_APP(flush_dtmf_function) +{ + switch_channel_flush_dtmf(switch_core_session_get_channel(session)); +} + SWITCH_STANDARD_APP(transfer_function) { int argc; @@ -2279,6 +2284,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_dptools_load) SWITCH_ADD_APP(app_interface, "privacy", "Set privacy on calls", "Set caller privacy on calls.", privacy_function, "off|on|name|full|number", SAF_SUPPORT_NOMEDIA); + SWITCH_ADD_APP(app_interface, "flush_dtmf", "flush any queued dtmf", "flush any queued dtmf", flush_dtmf_function, "", SAF_SUPPORT_NOMEDIA); SWITCH_ADD_APP(app_interface, "hold", "Send a hold message", "Send a hold message", hold_function, HOLD_SYNTAX, SAF_SUPPORT_NOMEDIA); SWITCH_ADD_APP(app_interface, "unhold", "Send a un-hold message", "Send a un-hold message", unhold_function, UNHOLD_SYNTAX, SAF_SUPPORT_NOMEDIA); SWITCH_ADD_APP(app_interface, "transfer", "Transfer a channel", TRANSFER_LONG_DESC, transfer_function, " [ ]",