]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
add flush_dtmf app and uuid_flush_dtmf api command
authorAnthony Minessale <anthony.minessale@gmail.com>
Wed, 5 Nov 2008 17:25:54 +0000 (17:25 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Wed, 5 Nov 2008 17:25:54 +0000 (17:25 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@10252 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/applications/mod_commands/mod_commands.c
src/mod/applications/mod_dptools/mod_dptools.c

index f1ed508abe92e35aefbdbc13fe19ea390a5f2f04..ea41d04982d40d146bec4db8b067e5c7a7b475e7 100644 (file)
@@ -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 "<uuid> <var> <value>"
 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, "<uuid>");
        SWITCH_ADD_API(commands_api_interface, "md5", "md5", md5_function, "<data>");
        SWITCH_ADD_API(commands_api_interface, "hupall", "hupall", hupall_api_function, "<cause> [<var> <value>]");
        SWITCH_ADD_API(commands_api_interface, "strftime_tz", "strftime_tz", strftime_tz_api_function, "<Timezone_name> [format string]");
index bd1e4c166d6c8ca92fc1e472e0eb8e541eebd686..0b73da41d3b5d42db33cfe41aad8b052bb6a6582 100644 (file)
@@ -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, "<exten> [<dialplan> <context>]",