From d246f3a07b843083cd390d0ef2ea5bab6caa03b0 Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Mon, 29 Jan 2007 20:06:23 +0000 Subject: [PATCH] add queue_dtmf application, takes one param, a string of dtmf that will be queued to send from the channel. You could use this in the dialplan before a bridge to queue up dtmf to be sent to the other channel for example if you need to dial digits after answer for an fxo ata device. git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4085 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- .../applications/mod_dptools/mod_dptools.c | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/mod/applications/mod_dptools/mod_dptools.c b/src/mod/applications/mod_dptools/mod_dptools.c index 152d0a7d3c..c947026191 100644 --- a/src/mod/applications/mod_dptools/mod_dptools.c +++ b/src/mod/applications/mod_dptools/mod_dptools.c @@ -71,6 +71,16 @@ static void ringback_function(switch_core_session_t *session, char *data) switch_channel_ringback(channel); } +static void queue_dtmf_function(switch_core_session_t *session, char *data) +{ + switch_channel_t *channel; + if (!switch_strlen_zero(data)) { + channel = switch_core_session_get_channel(session); + assert(channel != NULL); + switch_channel_queue_dtmf(channel, data); + } +} + static void transfer_function(switch_core_session_t *session, char *data) { int argc; @@ -469,13 +479,22 @@ static switch_api_interface_t presence_api_interface = { /*.next */ &dptools_api_interface }; +static const switch_application_interface_t queuedtmf_application_interface = { + /*.interface_name */ "queue_dtmf", + /*.application_function */ queue_dtmf_function, + /* long_desc */ "Queue dtmf to be sent from a session", + /* short_desc */ "Queue dtmf to be sent", + /* syntax */ "", + /*.next */ NULL +}; + static const switch_application_interface_t redirect_application_interface = { /*.interface_name */ "redirect", /*.application_function */ redirect_function, /* long_desc */ "Send a redirect message to a session.", /* short_desc */ "Send session redirect", /* syntax */ "", - /*.next */ NULL + /*.next */ &queuedtmf_application_interface }; static const switch_application_interface_t ivr_application_interface = {