[Freeswitch-svn] [commit] r5399 - freeswitch/trunk/src/mod/applications/mod_dptools

Freeswitch SVN mikej at freeswitch.org
Wed Jun 20 01:15:07 EDT 2007


Author: mikej
Date: Wed Jun 20 01:15:07 2007
New Revision: 5399

Modified:
   freeswitch/trunk/src/mod/applications/mod_dptools/mod_dptools.c

Log:
move mod_dptools to use new module loader interfaces.

Modified: freeswitch/trunk/src/mod/applications/mod_dptools/mod_dptools.c
==============================================================================
--- freeswitch/trunk/src/mod/applications/mod_dptools/mod_dptools.c	(original)
+++ freeswitch/trunk/src/mod/applications/mod_dptools/mod_dptools.c	Wed Jun 20 01:15:07 2007
@@ -37,9 +37,7 @@
 SWITCH_MODULE_LOAD_FUNCTION(mod_dptools_load);
 SWITCH_MODULE_DEFINITION(mod_dptools, mod_dptools_load, NULL, NULL);
 
-static switch_application_interface_t detect_speech_application_interface;
-static switch_application_interface_t exe_application_interface;
-
+#define DETECT_SPEECH_SYNTAX "<mod_name> <gram_name> <gram_path> [<addr>] OR grammar <gram_name> [<path>] OR pause OR resume"
 static void detect_speech_function(switch_core_session_t *session, char *data)
 {
 	char *argv[4];
@@ -62,11 +60,12 @@
 			switch_ivr_detect_speech(session, argv[0], argv[1], argv[2], argv[3], NULL);
 		}
 	} else {
-		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Usage: %s\n", detect_speech_application_interface.syntax);
+		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Usage: %s\n", DETECT_SPEECH_SYNTAX);
 	}
 
 }
 
+#define EXE_SYNTAX "<extension> <dialplan> <context>"
 static void exe_function(switch_core_session_t *session, char *data)
 {
 	char *argv[4];
@@ -83,7 +82,7 @@
 		context = argv[2];
 		switch_core_session_execute_exten(session, extension, dialplan, context);
 	} else {
-		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Usage: %s\n", exe_application_interface.syntax);
+		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Usage: %s\n", EXE_SYNTAX);
 	}
 }
 
@@ -651,7 +650,7 @@
 }
 
 
-static void dtm_session_function(switch_core_session_t *session, char *data)
+static void dtmf_session_function(switch_core_session_t *session, char *data)
 {
 	switch_ivr_inband_dtmf_session(session);
 }
@@ -1046,470 +1045,73 @@
 	}
 }
 
-static switch_api_interface_t strepoch_api_interface = {
-	/*.interface_name */ "strepoch",
-	/*.desc */ "Convert a date string into epoch time",
-	/*.function */ strepoch_api_function,
-	/*.syntax */ "<string>",
-	/*.next */ NULL
-};
-
-static switch_api_interface_t chat_api_interface = {
-	/*.interface_name */ "chat",
-	/*.desc */ "chat",
-	/*.function */ chat_api_function,
-	/*.syntax */ "<proto>|<from>|<to>|<message>",
-	/*.next */ &strepoch_api_interface
-};
-
-static switch_api_interface_t dptools_api_interface = {
-	/*.interface_name */ "strftime",
-	/*.desc */ "strftime",
-	/*.function */ strftime_api_function,
-	/*.syntax */ "<format_string>",
-	/*.next */ &chat_api_interface
-};
-
-static switch_api_interface_t presence_api_interface = {
-	/*.interface_name */ "presence",
-	/*.desc */ "presence",
-	/*.function */ presence_api_function,
-	/*.syntax */ "<user> <rpid> <message>",
-	/*.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",
-	/*.application_function */ audio_bridge_function,
-	/* long_desc */ "Bridge the audio between two sessions",
-	/* short_desc */ "Bridge Audio",
-	/* syntax */ "<channel_url>",
-	/* flags */ SAF_SUPPORT_NOMEDIA,
-	/* next */ &system_application_interface
-};
-
-static switch_application_interface_t speak_application_interface = {
-	/*.interface_name */ "speak",
-	/*.application_function */ speak_function,
-	/* long_desc */ "Speak text to a channel via the tts interface",
-	/* short_desc */ "Speak text",
-	/* syntax */ "<engine>|<voice>|<text>",
-	/* flags */ SAF_NONE,
-	&bridge_application_interface
-};
-
-static switch_application_interface_t displace_application_interface = {
-	/*.interface_name */ "displace_session",
-	/*.application_function */ displace_session_function,
-	/* long_desc */ "Displace audio from a file to the channels input",
-	/* short_desc */ "Displace File",
-	/* syntax */ "<path> [+time_limit_ms] [mux]",
-	/* flags */ SAF_NONE,
-	&speak_application_interface
-};
-
-static switch_application_interface_t stop_displace_application_interface = {
-	/*.interface_name */ "stop_displace_session",
-	/*.application_function */ stop_displace_session_function,
-	/* long_desc */ "Stop Displacing to a file",
-	/* short_desc */ "Stop Displace File",
-	/* syntax */ "<path>",
-	/* flags */ SAF_NONE,
-	&displace_application_interface
-};
-
-static switch_application_interface_t record_application_interface = {
-	/*.interface_name */ "record",
-	/*.application_function */ record_function,
-	/* long_desc */ "Record a file from the channels input",
-	/* short_desc */ "Record File",
-	/* syntax */ "<path> [+time_limit_ms]",
-	/* flags */ SAF_NONE,
-	&stop_displace_application_interface
-};
-
-
-static switch_application_interface_t record_session_application_interface = {
-	/*.interface_name */ "record_session",
-	/*.application_function */ record_session_function,
-	/* long_desc */ "Starts a background recording of the entire session",
-	/* short_desc */ "Record Session",
-	/* syntax */ "<path>",
-	/* flags */ SAF_NONE,
-	&record_application_interface
-};
-
-
-static switch_application_interface_t stop_record_session_application_interface = {
-	/*.interface_name */ "stop_record_session",
-	/*.application_function */ stop_record_session_function,
-	/* long_desc */ "Stops a background recording of the entire session",
-	/* short_desc */ "Stop Record Session",
-	/* syntax */ "<path>",
-	/* flags */ SAF_NONE,
-	&record_session_application_interface
-};
-
-static switch_application_interface_t playback_application_interface = {
-	/*.interface_name */ "playback",
-	/*.application_function */ playback_function,
-	/* long_desc */ "Playback a file to the channel",
-	/* short_desc */ "Playback File",
-	/* syntax */ "<path>",
-	/* flags */ SAF_NONE,
-	/*.next */ &stop_record_session_application_interface
-};
-
-static switch_application_interface_t gentones_application_interface = {
-	/*.interface_name */ "gentones",
-	/*.application_function */ gentones_function,
-	/* long_desc */ "Generate tones to the channel",
-	/* short_desc */ "Generate Tones",
-	/* syntax */ "<tgml_script>[|<loops>]",
-	/* flags */ SAF_NONE,
-	/*.next */ &playback_application_interface
-};
-
-static switch_application_interface_t park_application_interface = {
-	/*.interface_name */ "park",
-	/*.application_function */ park_function,
-	/* long_desc */ NULL,
-	/* short_desc */ NULL,
-	/* syntax */ NULL,
-	/* flags */ SAF_NONE,
-	/*.next */ &gentones_application_interface
-};
-
-static switch_application_interface_t echo_application_interface = {
-	/*.interface_name */ "echo",
-	/*.application_function */ echo_function,
-	/* long_desc */ "Perform an echo test against the calling channel",
-	/* short_desc */ "Echo",
-	/* syntax */ "",
-	/* flags */ SAF_NONE,
-	/*.next */ &park_application_interface
-};
-
-
-static switch_application_interface_t tone_detect_application_interface = {
-	/*.interface_name */ "tone_detect",
-	/*.application_function */ tone_detect_session_function,
-	/* long_desc */ "Detect tones",
-	/* short_desc */ "Detect tones",
-	/* syntax */ "",
-	/* flags */ SAF_NONE,
-	/*.next */ &echo_application_interface
-};
-
-static switch_application_interface_t fax_detect_application_interface = {
-	/*.interface_name */ "fax_detect",
-	/*.application_function */ fax_detect_session_function,
-	/* long_desc */ "Detect fax send tone",
-	/* short_desc */ "Detect faxes",
-	/* syntax */ "",
-	/* flags */ SAF_NONE,
-	/*.next */ &tone_detect_application_interface
-};
-
-static switch_application_interface_t stop_tone_detect_application_interface = {
-	/*.interface_name */ "stop_tone_detect",
-	/*.application_function */ stop_fax_detect_session_function,
-	/* long_desc */ "Stop detecting tones",
-	/* short_desc */ "stop detecting tones",
-	/* syntax */ "",
-	/* flags */ SAF_NONE,
-	/* next */ &fax_detect_application_interface
-};
-
-static switch_application_interface_t dtmf_application_interface = {
-	/*.interface_name */ "start_dtmf",
-	/*.application_function */ dtm_session_function,
-	/* long_desc */ "Detect inband dtmf on the session",
-	/* short_desc */ "Detect dtmf",
-	/* syntax */ "",
-	/* flags */ SAF_NONE,
-	/* next */ &stop_tone_detect_application_interface
-};
-
-static switch_application_interface_t stop_dtmf_application_interface = {
-	/*.interface_name */ "stop_dtmf",
-	/*.application_function */ stop_dtmf_session_function,
-	/* long_desc */ "Stop detecting inband dtmf.",
-	/* short_desc */ "stop inband dtmf.",
-	/* syntax */ "",
-	/* flags */ SAF_NONE,
-	&dtmf_application_interface
-};
-
-static switch_application_interface_t exe_application_interface = {
-	/*.interface_name */ "execute_extension",
-	/*.application_function */ exe_function,
-	/*.long_desc */ "Execute an extension",
-	/*.short_desc */ "Execute an extension",
-	/*.syntax */ "<extension> <dialplan> <context>",
-	/* flags */ SAF_SUPPORT_NOMEDIA,
-	/*.next */ &stop_dtmf_application_interface
-};
-
-static switch_application_interface_t sched_transfer_application_interface = {
-	/*.interface_name */ "sched_transfer",
-	/*.application_function */ sched_transfer_function,
-	/*.long_desc */ "Schedule a transfer in the future",
-	/*.short_desc */ "Schedule a transfer in the future",
-	/*.syntax */ "[+]<time> <extension> <dialplan> <context>",
-	/* flags */ SAF_SUPPORT_NOMEDIA,
-	/*.next */ &exe_application_interface
-};
-
-static switch_application_interface_t sched_broadcast_application_interface = {
-	/*.interface_name */ "sched_broadcast",
-	/*.application_function */ sched_broadcast_function,
-	/*.long_desc */ "Schedule a broadcast in the future",
-	/*.short_desc */ "Schedule a broadcast in the future",
-	/*.syntax */ "[+]<time> <path> [aleg|bleg|both]",
-	/* flags */ SAF_SUPPORT_NOMEDIA,
-	/*.next */ &sched_transfer_application_interface
-};
-
-static switch_application_interface_t sched_hangup_application_interface = {
-	/*.interface_name */ "sched_hangup",
-	/*.application_function */ sched_hangup_function,
-	/*.long_desc */ "Schedule a hangup in the future",
-	/*.short_desc */ "Schedule a hangup in the future",
-	/*.syntax */ "[+]<time> [<cause>]",
-	/* flags */ SAF_SUPPORT_NOMEDIA,
-	/*.next */ &sched_broadcast_application_interface
-};
-
-
-static 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 */ "<dtmf_data>",
-	/* flags */ SAF_SUPPORT_NOMEDIA,
-	/*.next */ &sched_hangup_application_interface
-};
-
-static switch_application_interface_t reject_application_interface = {
-	/*.interface_name */ "reject",
-	/*.application_function */ reject_function,
-	/* long_desc */ "Send a reject message to a session.",
-	/* short_desc */ "Send session reject",
-	/* syntax */ "<reject_data>",
-	/* flags */ SAF_SUPPORT_NOMEDIA,
-	/*.next */ &queuedtmf_application_interface
-};
-
-static 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 */ "<redirect_data>",
-	/* flags */ SAF_SUPPORT_NOMEDIA,
-	/*.next */ &reject_application_interface
-};
-
-static switch_application_interface_t ivr_application_interface = {
-	/*.interface_name */ "ivr",
-	/*.application_function */ ivr_application_function,
-	/* long_desc */ "Run an ivr menu.",
-	/* short_desc */ "Run an ivr menu",
-	/* syntax */ "<menu_name>",
-	/* flags */ SAF_NONE,
-	/*.next */ &redirect_application_interface
-};
-
-static switch_application_interface_t detect_speech_application_interface = {
-	/*.interface_name */ "detect_speech",
-	/*.application_function */ detect_speech_function,
-	/* long_desc */ "Detect speech on a channel.",
-	/* short_desc */ "Detect speech",
-	/* syntax */ "<mod_name> <gram_name> <gram_path> [<addr>] OR grammar <gram_name> [<path>] OR pause OR resume",
-	/* flags */ SAF_NONE,
-	/*.next */ &ivr_application_interface
-};
-
-static switch_application_interface_t ring_ready_application_interface = {
-	/*.interface_name */ "ring_ready",
-	/*.application_function */ ring_ready_function,
-	/* long_desc */ "Indicate Ring_Ready on a channel.",
-	/* short_desc */ "Indicate Ring_Ready",
-	/* syntax */ "",
-	/* flags */ SAF_SUPPORT_NOMEDIA,
-	/*.next */ &detect_speech_application_interface
-};
-
-static switch_application_interface_t unset_application_interface = {
-	/*.interface_name */ "unset",
-	/*.application_function */ unset_function,
-	/* long_desc */ "Unset a channel varaible for the channel calling the application.",
-	/* short_desc */ "Unset a channel varaible",
-	/* syntax */ "<varname>",
-	/* flags */ SAF_SUPPORT_NOMEDIA,
-	/*.next */ &ring_ready_application_interface
-};
-
-static switch_application_interface_t set_application_interface = {
-	/*.interface_name */ "set",
-	/*.application_function */ set_function,
-	/* long_desc */ "Set a channel varaible for the channel calling the application.",
-	/* short_desc */ "Set a channel varaible",
-	/* syntax */ "<varname>=<value>",
-	/* flags */ SAF_SUPPORT_NOMEDIA,
-	/*.next */ &unset_application_interface
-};
-
-static switch_application_interface_t export_application_interface = {
-	/*.interface_name */ "export",
-	/*.application_function */ export_function,
-	/* long_desc */ "Set and export a channel varaible for the channel calling the application.",
-	/* short_desc */ "Export a channel varaible across a bridge",
-	/* syntax */ "<varname>=<value>",
-	/* flags */ SAF_SUPPORT_NOMEDIA,
-	/*.next */ &set_application_interface
-};
-
-static switch_application_interface_t info_application_interface = {
-	/*.interface_name */ "info",
-	/*.application_function */ info_function,
-	/* long_desc */ "Display Call Info",
-	/* short_desc */ "Display Call Info",
-	/* syntax */ "",
-	/* flags */ SAF_SUPPORT_NOMEDIA,
-	/*.next */ &export_application_interface
-};
-
-static switch_application_interface_t log_application_interface = {
-	/*.interface_name */ "log",
-	/*.application_function */ log_function,
-	/* long_desc */ "Logs a channel varaible for the channel calling the application.",
-	/* short_desc */ "Logs a channel varaible",
-	/* syntax */ "<varname>",
-	/* flags */ SAF_SUPPORT_NOMEDIA,
-	/*.next */ &info_application_interface
-};
-
-
-static 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>]",
-	/* flags */ SAF_SUPPORT_NOMEDIA,
-	/*.next */ &log_application_interface
-};
-
-static 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 */ "",
-	/* flags */ SAF_SUPPORT_NOMEDIA,
-	/*.next */ &hangup_application_interface
-};
-
-static switch_application_interface_t pre_answer_application_interface = {
-	/*.interface_name */ "pre_answer",
-	/*.application_function */ pre_answer_function,
-	/* long_desc */ "Pre-Answer the call for a channel.",
-	/* short_desc */ "Pre-Answer the call",
-	/* syntax */ "",
-	/* flags */ SAF_SUPPORT_NOMEDIA,
-	/*.next */ &answer_application_interface
-};
-
-static switch_application_interface_t eval_application_interface = {
-	/*.interface_name */ "eval",
-	/*.application_function */ eval_function,
-	/* long_desc */ "Do Nothing",
-	/* short_desc */ "Do Nothing",
-	/* syntax */ "",
-	/* flags */ SAF_SUPPORT_NOMEDIA,
-	/*.next */ &pre_answer_application_interface
-};
-
-static switch_application_interface_t phrase_application_interface = {
-	/*.interface_name */ "phrase",
-	/*.application_function */ phrase_function,
-	/* long_desc */ "Say a Phrase",
-	/* short_desc */ "Say a Phrase",
-	/* syntax */ "<macro_name>,<data>",
-	/* flags */ SAF_NONE,
-	/*.next */ &eval_application_interface
-};
-
-static switch_application_interface_t strftime_application_interface = {
-	/*.interface_name */ "strftime",
-	/*.application_function */ strftime_function,
-	/* long_desc */ NULL,
-	/* short_desc */ NULL,
-	/* syntax */ NULL,
-	/* flags */ SAF_SUPPORT_NOMEDIA,
-	/*.next */ &phrase_application_interface
-};
-
-static switch_application_interface_t sleep_application_interface = {
-	/*.interface_name */ "sleep",
-	/*.application_function */ sleep_function,
-	/* long_desc */
-	"Pause the channel for a given number of milliseconds, consuming the audio for that period of time.",
-	/* short_desc */ "Pause a channel",
-	/* syntax */ "<pausemilliseconds>",
-	/* flags */ SAF_NONE,
-	/* next */ &strftime_application_interface
-};
-
-static switch_application_interface_t transfer_application_interface = {
-	/*.interface_name */ "transfer",
-	/*.application_function */ transfer_function,
-	/* long_desc */ "Immediatly transfer the calling channel to a new extension",
-	/* short_desc */ "Transfer a channel",
-	/* syntax */ "<exten> [<dialplan> <context>]",
-	/* flags */ SAF_SUPPORT_NOMEDIA,
-	/* next */ &sleep_application_interface
-};
-
-static switch_application_interface_t privacy_application_interface = {
-	/*.interface_name */ "privacy",
-	/*.application_function */ privacy_function,
-	/* long_desc */ "Set caller privacy on calls.",
-	/* short_desc */ "Set privacy on calls",
-	/* syntax */ "off|on|name|full|number",
-	/* flags */ SAF_SUPPORT_NOMEDIA,
-	/*.next */ &transfer_application_interface
-};
-
-static switch_loadable_module_interface_t dptools_module_interface = {
-	/*.module_name = */ modname,
-	/*.endpoint_interface = */ NULL,
-	/*.timer_interface = */ NULL,
-	/*.dialplan_interface = */ NULL,
-	/*.codec_interface = */ NULL,
-	/*.application_interface */ &privacy_application_interface,
-	/*.api_interface */ &presence_api_interface
-};
 
+#define SPEAK_DESC "Speak text to a channel via the tts interface"
+#define DISPLACE_DESC "Displace audio from a file to the channels input"
+#define SESS_REC_DESC "Starts a background recording of the entire session"
+#define STOP_SESS_REC_DESC "Stops a background recording of the entire session"
+#define SCHED_TRANSF_DESCR "Schedule a transfer in the future"
+#define SCHED_BROADCAST_DESCR "Schedule a broadcast in the future"
+#define SCHED_HANGUP_DESCR "Schedule a hangup in the future"
+#define UNSET_LONG_DESC "Unset a channel varaible for the channel calling the application."
+#define SET_LONG_DESC "Set a channel varaible for the channel calling the application."
+#define EXPORT_LONG_DESC "Set and export a channel varaible for the channel calling the application."
+#define LOG_LONG_DESC "Logs a channel varaible for the channel calling the application."
+#define TRANSFER_LONG_DESC "Immediatly transfer the calling channel to a new extension"
+#define SLEEP_LONG_DESC "Pause the channel for a given number of milliseconds, consuming the audio for that period of time."
 SWITCH_MODULE_LOAD_FUNCTION(mod_dptools_load)
 {
+	switch_api_interface_t *api_interface;
+	switch_application_interface_t *app_interface;
 
 	/* connect my internal structure to the blank pointer passed to me */
-	*module_interface = &dptools_module_interface;
+	*module_interface = switch_loadable_module_create_module_interface(pool, modname);
 
+ 	SWITCH_ADD_API(api_interface, "strepoch", "Convert a date string into epoch time", strepoch_api_function, "<string>");
+	SWITCH_ADD_API(api_interface, "chat", "chat", chat_api_function, "<proto>|<from>|<to>|<message>");
+	SWITCH_ADD_API(api_interface, "strftime", "strftime", strftime_api_function, "<format_string>");
+	SWITCH_ADD_API(api_interface, "presence", "presence", presence_api_function, "<user> <rpid> <message>");
+	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, "transfer", "Transfer a channel", TRANSFER_LONG_DESC, transfer_function, "<exten> [<dialplan> <context>]", SAF_SUPPORT_NOMEDIA);
+	SWITCH_ADD_APP(app_interface, "sleep", "Pause a channel", SLEEP_LONG_DESC, sleep_function, "<pausemilliseconds>", SAF_NONE);
+	SWITCH_ADD_APP(app_interface, "strftime", NULL, NULL, strftime_function, NULL, SAF_SUPPORT_NOMEDIA);
+	SWITCH_ADD_APP(app_interface, "phrase", "Say a Phrase", "Say a Phrase", phrase_function, "<macro_name>,<data>", SAF_NONE);
+	SWITCH_ADD_APP(app_interface, "eval", "Do Nothing", "Do Nothing", eval_function, "", SAF_SUPPORT_NOMEDIA);
+	SWITCH_ADD_APP(app_interface, "pre_answer", "Pre-Answer the call", "Pre-Answer the call for a channel.", pre_answer_function, "", SAF_SUPPORT_NOMEDIA);
+	SWITCH_ADD_APP(app_interface, "answer", "Answer the call", "Answer the call for a channel.", answer_function, "", SAF_SUPPORT_NOMEDIA);
+	SWITCH_ADD_APP(app_interface, "hangup", "Hangup the call", "Hangup the call for a channel.", hangup_function, "[<cause>]", SAF_SUPPORT_NOMEDIA);
+	SWITCH_ADD_APP(app_interface, "log", "Logs a channel varaible", LOG_LONG_DESC, log_function, "<varname>", SAF_SUPPORT_NOMEDIA);
+	SWITCH_ADD_APP(app_interface, "info", "Display Call Info", "Display Call Info", info_function, "", SAF_SUPPORT_NOMEDIA);
+	SWITCH_ADD_APP(app_interface, "export", "Export a channel varaible across a bridge", EXPORT_LONG_DESC, export_function, "<varname>=<value>", SAF_SUPPORT_NOMEDIA);
+	SWITCH_ADD_APP(app_interface, "set", "Set a channel varaible", SET_LONG_DESC, set_function, "<varname>=<value>", SAF_SUPPORT_NOMEDIA);
+	SWITCH_ADD_APP(app_interface, "unset", "Unset a channel varaible", UNSET_LONG_DESC, unset_function, "<varname>", SAF_SUPPORT_NOMEDIA);
+	SWITCH_ADD_APP(app_interface, "ring_ready", "Indicate Ring_Ready", "Indicate Ring_Ready on a channel.", ring_ready_function, "", SAF_SUPPORT_NOMEDIA);
+	SWITCH_ADD_APP(app_interface, "detect_speech", "Detect speech", "Detect speech on a channel.", detect_speech_function, DETECT_SPEECH_SYNTAX, SAF_NONE);
+	SWITCH_ADD_APP(app_interface, "ivr", "Run an ivr menu", "Run an ivr menu.", ivr_application_function, "<menu_name>", SAF_NONE);
+	SWITCH_ADD_APP(app_interface, "redirect", "Send session redirect", "Send a redirect message to a session.", redirect_function, "<redirect_data>", SAF_SUPPORT_NOMEDIA);
+	SWITCH_ADD_APP(app_interface, "reject", "Send session reject", "Send a reject message to a session.", reject_function, "<reject_data>", SAF_SUPPORT_NOMEDIA);
+	SWITCH_ADD_APP(app_interface, "queue_dtmf", "Queue dtmf to be sent", "Queue dtmf to be sent from a session", queue_dtmf_function, "<dtmf_data>", SAF_SUPPORT_NOMEDIA);
+	SWITCH_ADD_APP(app_interface, "sched_hangup", SCHED_HANGUP_DESCR, SCHED_HANGUP_DESCR, sched_hangup_function, "[+]<time> [<cause>]", SAF_SUPPORT_NOMEDIA);
+	SWITCH_ADD_APP(app_interface, "sched_broadcast", SCHED_BROADCAST_DESCR, SCHED_BROADCAST_DESCR, sched_broadcast_function, "[+]<time> <path> [aleg|bleg|both]", SAF_SUPPORT_NOMEDIA);
+	SWITCH_ADD_APP(app_interface, "sched_transfer", SCHED_TRANSF_DESCR, SCHED_TRANSF_DESCR, sched_transfer_function, "[+]<time> <extension> <dialplan> <context>", SAF_SUPPORT_NOMEDIA);
+	SWITCH_ADD_APP(app_interface, "execute_extension", "Execute an extension", "Execute an extension", exe_function, EXE_SYNTAX, SAF_SUPPORT_NOMEDIA);
+	SWITCH_ADD_APP(app_interface, "stop_dtmf", "stop inband dtmf", "Stop detecting inband dtmf.", stop_dtmf_session_function, "", SAF_NONE);
+	SWITCH_ADD_APP(app_interface, "start_dtmf", "Detect dtmf", "Detect inband dtmf on the session", dtmf_session_function, "", SAF_NONE);
+	SWITCH_ADD_APP(app_interface, "stop_tone_detect", "stop detecting tones", "Stop detecting tones", stop_fax_detect_session_function, "", SAF_NONE);
+	SWITCH_ADD_APP(app_interface, "fax_detect", "Detect faxes", "Detect fax send tone", fax_detect_session_function, "", SAF_NONE);
+	SWITCH_ADD_APP(app_interface, "tone_detect", "Detect tones", "Detect tones", tone_detect_session_function, "", SAF_NONE);
+	SWITCH_ADD_APP(app_interface, "echo", "Echo", "Perform an echo test against the calling channel", echo_function, "", SAF_NONE);
+	SWITCH_ADD_APP(app_interface, "park", NULL, NULL, park_function, NULL, SAF_NONE);
+	SWITCH_ADD_APP(app_interface, "gentones", "Generate Tones", "Generate tones to the channel", gentones_function, "<tgml_script>[|<loops>]", SAF_NONE);
+	SWITCH_ADD_APP(app_interface, "playback", "Playback File", "Playback a file to the channel", playback_function, "<path>", SAF_NONE);
+	SWITCH_ADD_APP(app_interface, "stop_record_session", "Stop Record Session", STOP_SESS_REC_DESC, stop_record_session_function, "<path>", SAF_NONE);
+	SWITCH_ADD_APP(app_interface, "record_session", "Record Session", SESS_REC_DESC, record_session_function, "<path>", SAF_NONE);
+	SWITCH_ADD_APP(app_interface, "record", "Record File", "Record a file from the channels input", record_function, "<path> [+time_limit_ms]", SAF_NONE);
+	SWITCH_ADD_APP(app_interface, "stop_displace_session", "Stop Displace File", "Stop Displacing to a file", stop_displace_session_function, "<path>", SAF_NONE);
+	SWITCH_ADD_APP(app_interface, "displace_session", "Displace File", DISPLACE_DESC, displace_session_function, "<path> [+time_limit_ms] [mux]", SAF_NONE);
+	SWITCH_ADD_APP(app_interface, "speak", "Speak text", SPEAK_DESC, speak_function, "<engine>|<voice>|<text>", SAF_NONE);
+	SWITCH_ADD_APP(app_interface, "bridge", "Bridge Audio", "Bridge the audio between two sessions", audio_bridge_function, "<channel_url>", SAF_SUPPORT_NOMEDIA);
+	SWITCH_ADD_APP(app_interface, "system", "Execute a system command", "Execute a system command", system_session_function, "<command>", SAF_SUPPORT_NOMEDIA);
 
 	/* indicate that the module should continue to be loaded */
 	return SWITCH_STATUS_SUCCESS;



More information about the Freeswitch-svn mailing list