]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
add system application (MODAPP-14)
authorMichael Jerris <mike@jerris.com>
Fri, 15 Jun 2007 17:39:18 +0000 (17:39 +0000)
committerMichael Jerris <mike@jerris.com>
Fri, 15 Jun 2007 17:39:18 +0000 (17:39 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5375 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/applications/mod_dptools/mod_dptools.c

index babfc9937edfc9ed3b09edfbdf9c0470de605de3..27267ea9946ad8c26feb01feec4433dbb9d00afa 100644 (file)
@@ -668,6 +668,12 @@ static void fax_detect_session_function(switch_core_session_t *session, char *da
        switch_ivr_fax_detect_session(session);
 }
 
+static void system_session_function(switch_core_session_t *session, char *data)
+{
+    switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Executing command: %s\n",data);
+    system(data);
+}
+
 static void stop_fax_detect_session_function(switch_core_session_t *session, char *data)
 {
        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Disabling fax detection\n");
@@ -1012,6 +1018,15 @@ static switch_api_interface_t presence_api_interface = {
        /*.next */ &dptools_api_interface
 };
 
+static switch_application_interface_t system_application_interface = {
+    /*.interface_name */ "system",
+    /*.application_function */ system_session_function,
+    /* long_desc */ "Execute a system command",
+    /* short_desc */ "Execute a system command",
+    /* syntax */ "<command>",
+    /* flags */ SAF_NONE,
+    /*.next */ NULL
+};
 
 static switch_application_interface_t bridge_application_interface = {
        /*.interface_name */ "bridge",
@@ -1019,7 +1034,8 @@ static switch_application_interface_t bridge_application_interface = {
        /* long_desc */ "Bridge the audio between two sessions",
        /* short_desc */ "Bridge Audio",
        /* syntax */ "<channel_url>",
-       /* flags */ SAF_SUPPORT_NOMEDIA
+       /* flags */ SAF_SUPPORT_NOMEDIA,
+       /* next */ &system_application_interface
 };
 
 static switch_application_interface_t speak_application_interface = {