[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