aboutsummaryrefslogtreecommitdiffstats
path: root/apps/app_exec.c
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2008-11-01 21:10:07 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2008-11-01 21:10:07 +0000
commitb1f91b97d2085cc845d0f57bd9907de50c995105 (patch)
tree9c836ac808552d20be6bd2baa3a3c29f642eda53 /apps/app_exec.c
parentc5d084051f21e943fcbcc347fc80b166885f298d (diff)
Merge changes from team/group/appdocsxml
This commit introduces the first phase of an effort to manage documentation of the interfaces in Asterisk in an XML format. Currently, a new format is available for applications and dialplan functions. A good number of conversions to the new format are also included. For more information, see the following message to asterisk-dev: http://lists.digium.com/pipermail/asterisk-dev/2008-October/034968.html git-svn-id: http://svn.digium.com/svn/asterisk/trunk@153365 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps/app_exec.c')
-rw-r--r--apps/app_exec.c107
1 files changed, 77 insertions, 30 deletions
diff --git a/apps/app_exec.c b/apps/app_exec.c
index 285b8b2f0..b4a66962e 100644
--- a/apps/app_exec.c
+++ b/apps/app_exec.c
@@ -36,6 +36,80 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
#include "asterisk/module.h"
#include "asterisk/app.h"
+/*** DOCUMENTATION
+ <application name="Exec" language="en_US">
+ <synopsis>
+ Executes dialplan application.
+ </synopsis>
+ <syntax>
+ <parameter name="appname" required="true" hasparams="true">
+ <para>Application name and arguments of the dialplan application to execute.</para>
+ <argument name="arguments" required="true" />
+ </parameter>
+ </syntax>
+ <description>
+ <para>Allows an arbitrary application to be invoked even when not
+ hardcoded into the dialplan. If the underlying application
+ terminates the dialplan, or if the application cannot be found,
+ Exec will terminate the dialplan.</para>
+ <para>To invoke external applications, see the application System.
+ If you would like to catch any error instead, see TryExec.</para>
+ </description>
+ </application>
+ <application name="TryExec" language="en_US">
+ <synopsis>
+ Executes dialplan application, always returning.
+ </synopsis>
+ <syntax>
+ <parameter name="appname" required="true" hasparams="true">
+ <argument name="arguments" required="true" />
+ </parameter>
+ </syntax>
+ <description>
+ <para>Allows an arbitrary application to be invoked even when not
+ hardcoded into the dialplan. To invoke external applications
+ see the application System. Always returns to the dialplan.
+ The channel variable TRYSTATUS will be set to one of:
+ </para>
+ <variablelist>
+ <variable name="TRYSTATUS">
+ <value name="SUCCESS">
+ If the application returned zero.
+ </value>
+ <value name="FAILED">
+ If the application returned non-zero.
+ </value>
+ <value name="NOAPP">
+ If the application was not found or was not specified.
+ </value>
+ </variable>
+ </variablelist>
+ </description>
+ </application>
+ <application name="ExecIf" language="en_US">
+ <synopsis>
+ Executes dialplan application, conditionally.
+ </synopsis>
+ <syntax argsep="?">
+ <parameter name="expression" required="true" />
+ <parameter name="execapp" required="true" argsep=":">
+ <argument name="appiftrue" required="true" hasparams="true">
+ <argument name="args" required="true" />
+ </argument>
+ <argument name="appiffalse" required="false" hasparams="true">
+ <argument name="args" required="true" />
+ </argument>
+ </parameter>
+ </syntax>
+ <description>
+ <para>If <replaceable>expr</replaceable> is true, execute and return the
+ result of <replaceable>appiftrue(args)</replaceable>.</para>
+ <para>If <replaceable>expr</replaceable> is true, but <replaceable>appiftrue</replaceable> is not found,
+ then the application will return a non-zero value.</para>
+ </description>
+ </application>
+ ***/
+
/* Maximum length of any variable */
#define MAXRESULT 1024
@@ -52,35 +126,8 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
*/
static char *app_exec = "Exec";
-static char *exec_synopsis = "Executes dialplan application";
-static char *exec_descrip =
-" Exec(appname(arguments)):\n"
-"Allows an arbitrary application to be invoked even when not\n"
-"hardcoded into the dialplan. If the underlying application\n"
-"terminates the dialplan, or if the application cannot be found,\n"
-"Exec will terminate the dialplan.\n"
-" To invoke external applications, see the application System.\n"
-" If you would like to catch any error instead, see TryExec.\n";
-
static char *app_tryexec = "TryExec";
-static char *tryexec_synopsis = "Executes dialplan application, always returning";
-static char *tryexec_descrip =
-" TryExec(appname(arguments)):\n"
-"Allows an arbitrary application to be invoked even when not\n"
-"hardcoded into the dialplan. To invoke external applications\n"
-"see the application System. Always returns to the dialplan.\n"
-"The channel variable TRYSTATUS will be set to one of:\n"
-" SUCCESS if the application returned zero\n"
-" FAILED if the application returned non-zero\n"
-" NOAPP if the application was not found or was not specified\n";
-
static char *app_execif = "ExecIf";
-static char *execif_synopsis = "Executes dialplan application, conditionally";
-static char *execif_descrip =
-" ExecIF (<expr>?<appiftrue>(<args>)[:<appiffalse>(<args>)])\n"
-"If <expr> is true, execute and return the result of <appiftrue>(<args>).\n"
-"If <expr> is true, but <appiftrue> is not found, then the application\n"
-"will return a non-zero value.\n";
static int exec_exec(struct ast_channel *chan, void *data)
{
@@ -237,9 +284,9 @@ static int unload_module(void)
static int load_module(void)
{
- int res = ast_register_application(app_exec, exec_exec, exec_synopsis, exec_descrip);
- res |= ast_register_application(app_tryexec, tryexec_exec, tryexec_synopsis, tryexec_descrip);
- res |= ast_register_application(app_execif, execif_exec, execif_synopsis, execif_descrip);
+ int res = ast_register_application_xml(app_exec, exec_exec);
+ res |= ast_register_application_xml(app_tryexec, tryexec_exec);
+ res |= ast_register_application_xml(app_execif, execif_exec);
return res;
}