]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
add hangup dp app
authorAnthony Minessale <anthony.minessale@gmail.com>
Tue, 2 Jan 2007 18:56:39 +0000 (18:56 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Tue, 2 Jan 2007 18:56:39 +0000 (18:56 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3893 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/applications/mod_dptools/mod_dptools.c

index 92e2badc6717f5639a120150284f39e71d9bbda5..d2b3d97adc70f68da7dfb5168757f6839a28ad77 100644 (file)
@@ -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 */ "[<cause>]",
+       /*.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
 
 };