From 64bc419497364e32aae817fd914cb377d59fd05c Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 2 Jan 2007 18:56:39 +0000 Subject: [PATCH] add hangup dp app git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3893 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- .../applications/mod_dptools/mod_dptools.c | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/mod/applications/mod_dptools/mod_dptools.c b/src/mod/applications/mod_dptools/mod_dptools.c index 92e2badc67..d2b3d97adc 100644 --- a/src/mod/applications/mod_dptools/mod_dptools.c +++ b/src/mod/applications/mod_dptools/mod_dptools.c @@ -128,10 +128,27 @@ static void phrase_function(switch_core_session_t *session, char *data) } + +static void hangup_function(switch_core_session_t *session, char *data) +{ + switch_channel_t *channel; + switch_call_cause_t cause = SWITCH_CAUSE_NORMAL_CLEARING; + + channel = switch_core_session_get_channel(session); + assert(channel != NULL); + + if (!switch_strlen_zero((char *) data)) { + cause = switch_channel_str2cause((char *) data); + } + + switch_channel_hangup(channel, cause); +} + static void answer_function(switch_core_session_t *session, char *data) { switch_channel_t *channel; channel = switch_core_session_get_channel(session); + assert(channel != NULL); switch_channel_answer(channel); } @@ -468,13 +485,24 @@ static const switch_application_interface_t log_application_interface = { /*.next */ &info_application_interface }; + +static const switch_application_interface_t hangup_application_interface = { + /*.interface_name */ "hangup", + /*.application_function */ hangup_function, + /* long_desc */ "Hangup the call for a channel.", + /* short_desc */ "Hangup the call", + /* syntax */ "[]", + /*.next */ &log_application_interface + +}; + static const switch_application_interface_t answer_application_interface = { /*.interface_name */ "answer", /*.application_function */ answer_function, /* long_desc */ "Answer the call for a channel.", /* short_desc */ "Answer the call", /* syntax */ "", - /*.next */ &log_application_interface + /*.next */ &hangup_application_interface };