[Asterisk-code-review] res agi: Improve documentation (asterisk[13])

Joshua Colp asteriskteam at digium.com
Mon Aug 15 16:38:44 CDT 2016


Joshua Colp has submitted this change and it was merged.

Change subject: res_agi: Improve documentation
......................................................................


res_agi: Improve documentation

* Groups of AGI commands that have similar functionality now reference
  each other, and all reference the AGI application for ease of wiki
  reference.

* The documentation for the AGI application has been improved, in
  particular noting the various AGI types and how they are invoked.

* A warning message has been added to DeadAGI, noting that it is
  deprecated.

Change-Id: I479ccdee8a7393f01b18692c3d4ab7e6bdd1875d
---
M res/res_agi.c
1 file changed, 370 insertions(+), 14 deletions(-)

Approvals:
  Mark Michelson: Looks good to me, approved
  Joshua Colp: Looks good to me, but someone else must approve; Verified



diff --git a/res/res_agi.c b/res/res_agi.c
index e3839dd..06df752 100644
--- a/res/res_agi.c
+++ b/res/res_agi.c
@@ -22,7 +22,6 @@
  *
  * \author Mark Spencer <markster at digium.com>
  *
- * \todo Convert the rest of the AGI commands over to XML documentation
  */
 
 /*** MODULEINFO
@@ -85,6 +84,7 @@
 		</description>
 		<see-also>
 			<ref type="agi">hangup</ref>
+			<ref type="application">AGI</ref>
 		</see-also>
 	</agi>
 	<agi name="asyncagi break" language="en_US">
@@ -98,6 +98,7 @@
 		</description>
 		<see-also>
 			<ref type="agi">hangup</ref>
+			<ref type="application">AGI</ref>
 		</see-also>
 	</agi>
 	<agi name="channel status" language="en_US">
@@ -138,6 +139,9 @@
 				</enum>
 			</enumlist>
 		</description>
+		<see-also>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="control stream file" language="en_US">
 		<synopsis>
@@ -188,6 +192,11 @@
 				</variable>
 			</variablelist>
 		</description>
+		<see-also>
+			<ref type="agi">get option</ref>
+			<ref type="agi">control stream file</ref>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="database del" language="en_US">
 		<synopsis>
@@ -203,6 +212,12 @@
 			<para>Returns <literal>1</literal> if successful, <literal>0</literal>
 			otherwise.</para>
 		</description>
+		<see-also>
+			<ref type="agi">database get</ref>
+			<ref type="agi">database put</ref>
+			<ref type="agi">database deltree</ref>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="database deltree" language="en_US">
 		<synopsis>
@@ -217,6 +232,12 @@
 			within a <replaceable>family</replaceable> in the Asterisk database.</para>
 			<para>Returns <literal>1</literal> if successful, <literal>0</literal> otherwise.</para>
 		</description>
+		<see-also>
+			<ref type="agi">database get</ref>
+			<ref type="agi">database put</ref>
+			<ref type="agi">database del</ref>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="database get" language="en_US">
 		<synopsis>
@@ -234,6 +255,12 @@
 			in parenthesis.</para>
 			<para>Example return code: 200 result=1 (testvariable)</para>
 		</description>
+		<see-also>
+			<ref type="agi">database put</ref>
+			<ref type="agi">database del</ref>
+			<ref type="agi">database deltree</ref>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="database put" language="en_US">
 		<synopsis>
@@ -250,6 +277,12 @@
 			<replaceable>value</replaceable>.</para>
 			<para>Returns <literal>1</literal> if successful, <literal>0</literal> otherwise.</para>
 		</description>
+		<see-also>
+			<ref type="agi">database get</ref>
+			<ref type="agi">database del</ref>
+			<ref type="agi">database deltree</ref>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="exec" language="en_US">
 		<synopsis>
@@ -265,6 +298,9 @@
 			<para>Returns whatever the <replaceable>application</replaceable> returns, or
 			<literal>-2</literal> on failure to find <replaceable>application</replaceable>.</para>
 		</description>
+		<see-also>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="get data" language="en_US">
 		<synopsis>
@@ -279,6 +315,9 @@
 			<para>Stream the given <replaceable>file</replaceable>, and receive DTMF data.</para>
 			<para>Returns the digits received from the channel at the other end.</para>
 		</description>
+		<see-also>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="get full variable" language="en_US">
 		<synopsis>
@@ -295,6 +334,11 @@
 			variables, unlike GET VARIABLE.</para>
 			<para>Example return code: 200 result=1 (testvariable)</para>
 		</description>
+		<see-also>
+			<ref type="agi">get variable</ref>
+			<ref type="agi">set variable</ref>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="get option" language="en_US">
 		<synopsis>
@@ -310,6 +354,8 @@
 		</description>
 		<see-also>
 			<ref type="agi">stream file</ref>
+			<ref type="agi">control stream file</ref>
+			<ref type="application">AGI</ref>
 		</see-also>
 	</agi>
 	<agi name="get variable" language="en_US">
@@ -325,6 +371,11 @@
 			the variable in parentheses.</para>
 			<para>Example return code: 200 result=1 (testvariable)</para>
 		</description>
+		<see-also>
+			<ref type="agi">get full variable</ref>
+			<ref type="agi">set variable</ref>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="hangup" language="en_US">
 		<synopsis>
@@ -337,6 +388,9 @@
 			<para>Hangs up the specified channel. If no channel name is given, hangs
 			up the current channel</para>
 		</description>
+		<see-also>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="noop" language="en_US">
 		<synopsis>
@@ -346,6 +400,9 @@
 		<description>
 			<para>Does nothing.</para>
 		</description>
+		<see-also>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="receive char" language="en_US">
 		<synopsis>
@@ -363,6 +420,10 @@
 			if one is received, or <literal>0</literal> if the channel does not support
 			text reception. Returns <literal>-1</literal> only on error/hangup.</para>
 		</description>
+		<see-also>
+			<ref type="agi">receive text</ref>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="receive text" language="en_US">
 		<synopsis>
@@ -379,6 +440,11 @@
 			do not support the reception of text. Returns <literal>-1</literal> for failure
 			or <literal>1</literal> for success, and the string in parenthesis.</para>
 		</description>
+		<see-also>
+			<ref type="agi">receive char</ref>
+			<ref type="agi">send text</ref>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="record file" language="en_US">
 		<synopsis>
@@ -404,6 +470,9 @@
 			lack of dtmf digits or reaching <replaceable>timeout</replaceable>. <replaceable>silence</replaceable>
 			value must be preceded by <literal>s=</literal> and is also optional.</para>
 		</description>
+		<see-also>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="say alpha" language="en_US">
 		<synopsis>
@@ -419,6 +488,15 @@
 			without a digit being pressed, or the ASCII numerical value of the digit if one
 			was pressed or <literal>-1</literal> on error/hangup.</para>
 		</description>
+		<see-also>
+			<ref type="agi">say digits</ref>
+			<ref type="agi">say number</ref>
+			<ref type="agi">say phonetic</ref>
+			<ref type="agi">say date</ref>
+			<ref type="agi">say time</ref>
+			<ref type="agi">say datetime</ref>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="say digits" language="en_US">
 		<synopsis>
@@ -434,6 +512,15 @@
 			without a digit being pressed, or the ASCII numerical value of the digit if one
 			was pressed or <literal>-1</literal> on error/hangup.</para>
 		</description>
+		<see-also>
+			<ref type="agi">say alpha</ref>
+			<ref type="agi">say number</ref>
+			<ref type="agi">say phonetic</ref>
+			<ref type="agi">say date</ref>
+			<ref type="agi">say time</ref>
+			<ref type="agi">say datetime</ref>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="say number" language="en_US">
 		<synopsis>
@@ -450,6 +537,15 @@
 			completes without a digit being pressed, or the ASCII numerical value of
 			the digit if one was pressed or <literal>-1</literal> on error/hangup.</para>
 		</description>
+		<see-also>
+			<ref type="agi">say alpha</ref>
+			<ref type="agi">say digits</ref>
+			<ref type="agi">say phonetic</ref>
+			<ref type="agi">say date</ref>
+			<ref type="agi">say time</ref>
+			<ref type="agi">say datetime</ref>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="say phonetic" language="en_US">
 		<synopsis>
@@ -465,6 +561,15 @@
 			playback completes without a digit pressed, the ASCII numerical value of the digit
 			if one was pressed, or <literal>-1</literal> on error/hangup.</para>
 		</description>
+		<see-also>
+			<ref type="agi">say alpha</ref>
+			<ref type="agi">say digits</ref>
+			<ref type="agi">say number</ref>
+			<ref type="agi">say date</ref>
+			<ref type="agi">say time</ref>
+			<ref type="agi">say datetime</ref>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="say date" language="en_US">
 		<synopsis>
@@ -483,6 +588,15 @@
 			completes without a digit being pressed, or the ASCII numerical value of the
 			digit if one was pressed or <literal>-1</literal> on error/hangup.</para>
 		</description>
+		<see-also>
+			<ref type="agi">say alpha</ref>
+			<ref type="agi">say digits</ref>
+			<ref type="agi">say number</ref>
+			<ref type="agi">say phonetic</ref>
+			<ref type="agi">say time</ref>
+			<ref type="agi">say datetime</ref>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="say time" language="en_US">
 		<synopsis>
@@ -501,6 +615,15 @@
 			without a digit being pressed, or the ASCII numerical value of the digit if
 			one was pressed or <literal>-1</literal> on error/hangup.</para>
 		</description>
+		<see-also>
+			<ref type="agi">say alpha</ref>
+			<ref type="agi">say digits</ref>
+			<ref type="agi">say number</ref>
+			<ref type="agi">say phonetic</ref>
+			<ref type="agi">say date</ref>
+			<ref type="agi">say datetime</ref>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="say datetime" language="en_US">
 		<synopsis>
@@ -528,6 +651,15 @@
 			completes without a digit being pressed, or the ASCII numerical value of the
 			digit if one was pressed or <literal>-1</literal> on error/hangup.</para>
 		</description>
+		<see-also>
+			<ref type="agi">say alpha</ref>
+			<ref type="agi">say digits</ref>
+			<ref type="agi">say number</ref>
+			<ref type="agi">say phonetic</ref>
+			<ref type="agi">say date</ref>
+			<ref type="agi">say time</ref>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="send image" language="en_US">
 		<synopsis>
@@ -542,6 +674,9 @@
 			the channel does not support image transmission.  Returns <literal>-1</literal>
 			only on error/hangup. Image names should not include extensions.</para>
 		</description>
+		<see-also>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="send text" language="en_US">
 		<synopsis>
@@ -559,6 +694,10 @@
 			channel does not support text transmission. Returns <literal>-1</literal> only
 			on error/hangup.</para>
 		</description>
+		<see-also>
+			<ref type="agi">receive text</ref>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="set autohangup" language="en_US">
 		<synopsis>
@@ -572,6 +711,9 @@
 			seconds in the future. Of course it can be hungup before then as well. Setting to
 			<literal>0</literal> will cause the autohangup feature to be disabled on this channel.</para>
 		</description>
+		<see-also>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="set callerid" language="en_US">
 		<synopsis>
@@ -583,6 +725,9 @@
 		<description>
 			<para>Changes the callerid of the current channel.</para>
 		</description>
+		<see-also>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="set context" language="en_US">
 		<synopsis>
@@ -594,6 +739,11 @@
 		<description>
 			<para>Sets the context for continuation upon exiting the application.</para>
 		</description>
+		<see-also>
+			<ref type="agi">set extension</ref>
+			<ref type="agi">set priority</ref>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="set extension" language="en_US">
 		<synopsis>
@@ -605,6 +755,11 @@
 		<description>
 			<para>Changes the extension for continuation upon exiting the application.</para>
 		</description>
+		<see-also>
+			<ref type="agi">set context</ref>
+			<ref type="agi">set priority</ref>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="set music" language="en_US">
 		<synopsis>
@@ -629,6 +784,9 @@
 			used. This generator will be stopped automatically when playing a file.</para>
 			<para>Always returns <literal>0</literal>.</para>
 		</description>
+		<see-also>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="set priority" language="en_US">
 		<synopsis>
@@ -641,6 +799,11 @@
 			<para>Changes the priority for continuation upon exiting the application.
 			The priority must be a valid priority or label.</para>
 		</description>
+		<see-also>
+			<ref type="agi">set context</ref>
+			<ref type="agi">set extension</ref>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="set variable" language="en_US">
 		<synopsis>
@@ -653,6 +816,11 @@
 		<description>
 			<para>Sets a variable to the current channel.</para>
 		</description>
+		<see-also>
+			<ref type="agi">get variable</ref>
+			<ref type="agi">get full variable</ref>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="stream file" language="en_US">
 		<synopsis>
@@ -690,6 +858,8 @@
 		</description>
 		<see-also>
 			<ref type="agi">control stream file</ref>
+			<ref type="agi">get option</ref>
+			<ref type="application">AGI</ref>
 		</see-also>
 	</agi>
 	<agi name="tdd mode" language="en_US">
@@ -708,6 +878,9 @@
 			<para>Enable/Disable TDD transmission/reception on a channel. Returns <literal>1</literal> if
 			successful, or <literal>0</literal> if channel is not TDD-capable.</para>
 		</description>
+		<see-also>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="verbose" language="en_US">
 		<synopsis>
@@ -722,6 +895,9 @@
 			message system. <replaceable>level</replaceable> is the verbose level (1-4).
 			Always returns <literal>1</literal></para>
 		</description>
+		<see-also>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="wait for digit" language="en_US">
 		<synopsis>
@@ -737,6 +913,9 @@
 			one is received. Use <literal>-1</literal> for the <replaceable>timeout</replaceable> value if
 			you desire the call to block indefinitely.</para>
 		</description>
+		<see-also>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="speech create" language="en_US">
 		<synopsis>
@@ -748,6 +927,16 @@
 		<description>
 			<para>Create a speech object to be used by the other Speech AGI commands.</para>
 		</description>
+		<see-also>
+			<ref type="agi">speech set</ref>
+			<ref type="agi">speech destroy</ref>
+			<ref type="agi">speech load grammar</ref>
+			<ref type="agi">speech unload grammar</ref>
+			<ref type="agi">speech activate grammar</ref>
+			<ref type="agi">speech deactivate grammar</ref>
+			<ref type="agi">speech recognize</ref>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="speech set" language="en_US">
 		<synopsis>
@@ -760,6 +949,16 @@
 		<description>
 			<para>Set an engine-specific setting.</para>
 		</description>
+		<see-also>
+			<ref type="agi">speech create</ref>
+			<ref type="agi">speech destroy</ref>
+			<ref type="agi">speech load grammar</ref>
+			<ref type="agi">speech unload grammar</ref>
+			<ref type="agi">speech activate grammar</ref>
+			<ref type="agi">speech deactivate grammar</ref>
+			<ref type="agi">speech recognize</ref>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="speech destroy" language="en_US">
 		<synopsis>
@@ -772,6 +971,13 @@
 		</description>
 		<see-also>
 			<ref type="agi">speech create</ref>
+			<ref type="agi">speech set</ref>
+			<ref type="agi">speech load grammar</ref>
+			<ref type="agi">speech unload grammar</ref>
+			<ref type="agi">speech activate grammar</ref>
+			<ref type="agi">speech deactivate grammar</ref>
+			<ref type="agi">speech recognize</ref>
+			<ref type="application">AGI</ref>
 		</see-also>
 	</agi>
 	<agi name="speech load grammar" language="en_US">
@@ -785,6 +991,16 @@
 		<description>
 			<para>Loads the specified grammar as the specified name.</para>
 		</description>
+		<see-also>
+			<ref type="agi">speech create</ref>
+			<ref type="agi">speech set</ref>
+			<ref type="agi">speech destroy</ref>
+			<ref type="agi">speech unload grammar</ref>
+			<ref type="agi">speech activate grammar</ref>
+			<ref type="agi">speech deactivate grammar</ref>
+			<ref type="agi">speech recognize</ref>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="speech unload grammar" language="en_US">
 		<synopsis>
@@ -796,6 +1012,16 @@
 		<description>
 			<para>Unloads the specified grammar.</para>
 		</description>
+		<see-also>
+			<ref type="agi">speech create</ref>
+			<ref type="agi">speech set</ref>
+			<ref type="agi">speech destroy</ref>
+			<ref type="agi">speech load grammar</ref>
+			<ref type="agi">speech activate grammar</ref>
+			<ref type="agi">speech deactivate grammar</ref>
+			<ref type="agi">speech recognize</ref>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="speech activate grammar" language="en_US">
 		<synopsis>
@@ -807,6 +1033,16 @@
 		<description>
 			<para>Activates the specified grammar on the speech object.</para>
 		</description>
+		<see-also>
+			<ref type="agi">speech create</ref>
+			<ref type="agi">speech set</ref>
+			<ref type="agi">speech destroy</ref>
+			<ref type="agi">speech load grammar</ref>
+			<ref type="agi">speech unload grammar</ref>
+			<ref type="agi">speech deactivate grammar</ref>
+			<ref type="agi">speech recognize</ref>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="speech deactivate grammar" language="en_US">
 		<synopsis>
@@ -818,6 +1054,16 @@
 		<description>
 			<para>Deactivates the specified grammar on the speech object.</para>
 		</description>
+		<see-also>
+			<ref type="agi">speech create</ref>
+			<ref type="agi">speech set</ref>
+			<ref type="agi">speech destroy</ref>
+			<ref type="agi">speech load grammar</ref>
+			<ref type="agi">speech unload grammar</ref>
+			<ref type="agi">speech activate grammar</ref>
+			<ref type="agi">speech recognize</ref>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<agi name="speech recognize" language="en_US">
 		<synopsis>
@@ -832,14 +1078,27 @@
 			<para>Plays back given <replaceable>prompt</replaceable> while listening for
 			speech and dtmf.</para>
 		</description>
+		<see-also>
+			<ref type="agi">speech create</ref>
+			<ref type="agi">speech set</ref>
+			<ref type="agi">speech destroy</ref>
+			<ref type="agi">speech load grammar</ref>
+			<ref type="agi">speech unload grammar</ref>
+			<ref type="agi">speech activate grammar</ref>
+			<ref type="agi">speech deactivate grammar</ref>
+			<ref type="application">AGI</ref>
+		</see-also>
 	</agi>
 	<application name="AGI" language="en_US">
 		<synopsis>
 			Executes an AGI compliant application.
 		</synopsis>
 		<syntax>
-			<parameter name="command" required="true" />
+			<parameter name="command" required="true">
+				<para>How AGI should be invoked on the channel.</para>
+			</parameter>
 			<parameter name="args">
+				<para>Arguments to pass to the AGI script or server.</para>
 				<argument name="arg1" required="true" />
 				<argument name="arg2" multiple="yes" />
 			</parameter>
@@ -848,21 +1107,72 @@
 			<para>Executes an Asterisk Gateway Interface compliant
 			program on a channel. AGI allows Asterisk to launch external programs written
 			in any language to control a telephony channel, play audio, read DTMF digits,
-			etc. by communicating with the AGI protocol on <emphasis>stdin</emphasis> and
-			<emphasis>stdout</emphasis>. As of <literal>1.6.0</literal>, this channel will
+			etc. by communicating with the AGI protocol.</para>
+			<para>The following variants of AGI exist, and are chosen based on the value
+			passed to <replaceable>command</replaceable>:</para>
+			<enumlist>
+				<enum name="AGI">
+					<para>The classic variant of AGI, this will launch the script
+					specified by <replaceable>command</replaceable> as a new process.
+					Communication with the script occurs on <literal>stdin</literal> and
+					<literal>stdout</literal>. If the full path to the script is not
+					provided, the <directory>astagidir</directory> specified in
+					<filename>asterisk.conf</filename> will be used.
+					</para>
+				</enum>
+				<enum name="FastAGI">
+					<para>Connect Asterisk to a FastAGI server using a TCP connection.
+					The URI to the FastAGI server should be given in the form
+					<literal>[scheme]://host.domain[:port][/script/name]</literal>,
+					where <replaceable>scheme</replaceable> is either <literal>agi</literal>
+					or <literal>hagi</literal>.</para>
+					<para>In the case of <literal>hagi</literal>, an SRV lookup will be
+					performed to try to connect to a list of FastAGI servers. The hostname in
+					the URI must be prefixed with <literal>_agi._tcp</literal>. prior to the DNS resolution. For
+					example, if you specify the URI <literal>hagi://agi.example.com/foo.agi</literal>
+					the DNS query would be for <literal>_agi._tcp.agi.example.com</literal>. You
+					will need to make sure this resolves correctly.</para>
+				</enum>
+				<enum name="AsyncAGI">
+					<para>Use AMI to control the channel in AGI. AGI commands can be invoked
+					using the <literal>AMI</literal> action, with a variety of AGI specific
+					events passed back over the AMI connection. AsyncAGI should be invoked
+					by passing <literal>agi:async</literal> to the <replaceable>command</replaceable>
+					parameter.</para>
+				</enum>
+			</enumlist>
+			<note>
+			<para>As of <literal>1.6.0</literal>, this channel will
 			not stop dialplan execution on hangup inside of this application. Dialplan
 			execution will continue normally, even upon hangup until the AGI application
 			signals a desire to stop (either by exiting or, in the case of a net script, by
-			closing the connection). A locally executed AGI script will receive SIGHUP on
-			hangup from the channel except when using DeadAGI. A fast AGI server will
-			correspondingly receive a HANGUP inline with the command dialog. Both of theses
-			signals may be disabled by setting the <variable>AGISIGHUP</variable> channel
-			variable to <literal>no</literal> before executing the AGI application.
+			closing the connection).</para>
+			<para>A locally executed AGI script will receive <literal>SIGHUP</literal> on
+			hangup from the channel except when using <literal>DeadAGI</literal>
+			(or when the channel is already hungup). A fast AGI server will
+			correspondingly receive a <literal>HANGUP</literal> inline with the command dialog.
+			Both of these signals may be disabled by setting the <variable>AGISIGHUP</variable>
+			channel variable to <literal>no</literal> before executing the AGI application.
 			Alternatively, if you would like the AGI application to exit immediately
 			after a channel hangup is detected, set the <variable>AGIEXITONHANGUP</variable>
 			variable to <literal>yes</literal>.</para>
-			<para>Use the CLI command <literal>agi show commands</literal> to list available agi
-			commands.</para>
+			</note>
+			<example title="AGI invocation examples">
+				; Start the AGI script /tmp/my-cool-script.sh, passing it the contents
+				; of the channel variable FOO
+				same => n,AGI(/tmp/my-cool-script.sh,${FOO})
+
+				; Start the AGI script my-cool-script.sh located in the astagidir
+				; directory, specified in asterisk.conf
+				same => n,AGI(my-cool-script.sh)
+
+				; Connect to the FastAGI server located at 127.0.0.1 and start the script
+				; awesome-script
+				same => n,AGI(agi://127.0.0.1/awesome-script)
+
+				; Start AsyncAGI
+				same => n,AGI(agi:async)
+			</example>
 			<para>This application sets the following channel variable upon completion:</para>
 			<variablelist>
 				<variable name="AGISTATUS">
@@ -876,8 +1186,12 @@
 			</variablelist>
 		</description>
 		<see-also>
+			<ref type="manager">AGI</ref>
+			<ref type="managerEvent">AsyncAGIStart</ref>
+			<ref type="managerEvent">AsyncAGIEnd</ref>
 			<ref type="application">EAGI</ref>
 			<ref type="application">DeadAGI</ref>
+			<ref type="filename">asterisk.conf</ref>
 		</see-also>
 	</application>
 	<application name="EAGI" language="en_US">
@@ -890,8 +1204,10 @@
 		</syntax>
 		<description>
 			<para>Using 'EAGI' provides enhanced AGI, with incoming audio available out of band
-			on file descriptor 3.</para>
-			<xi:include xpointer="xpointer(/docs/application[@name='AGI']/description/para)" />
+			on file descriptor 3. In all other respects, it behaves in the same fashion as
+			AGI. See the documentation for the <literal>AGI</literal> dialplan application for
+			more information on invoking AGI on a channel.</para>
+			<para>This application sets the following channel variable upon completion:</para>
 			<xi:include xpointer="xpointer(/docs/application[@name='AGI']/description/variablelist)" />
 		</description>
 		<see-also>
@@ -908,7 +1224,16 @@
 			<xi:include xpointer="xpointer(/docs/application[@name='AGI']/syntax/parameter[@name='args'])" />
 		</syntax>
 		<description>
-			<xi:include xpointer="xpointer(/docs/application[@name='AGI']/description/para)" />
+			<warning>
+				<para>This application is deprecated and may be removed in a future version
+				of Asterisk. Use the replacement application <literal>AGI</literal> instead
+				of <literal>DeadAGI</literal>.
+				</para>
+			</warning>
+			<para>Execute AGI on a 'dead' or hungup channel. See the documentation for the
+			<literal>AGI</literal> dialplan application for more information on invoking
+			AGI on a channel.</para>
+			<para>This application sets the following channel variable upon completion:</para>
 			<xi:include xpointer="xpointer(/docs/application[@name='AGI']/description/variablelist)" />
 		</description>
 		<see-also>
@@ -936,6 +1261,11 @@
 		<description>
 			<para>Add an AGI command to the execute queue of the channel in Async AGI.</para>
 		</description>
+		<see-also>
+			<ref type="managerEvent">AsyncAGIStart</ref>
+			<ref type="managerEvent">AsyncAGIExec</ref>
+			<ref type="managerEvent">AsyncAGIEnd</ref>
+		</see-also>
 	</manager>
 	<managerEvent language="en_US" name="AsyncAGIStart">
 		<managerEventInstance class="EVENT_FLAG_AGI">
@@ -946,6 +1276,12 @@
 					<para>URL encoded string read from the AsyncAGI server.</para>
 				</parameter>
 			</syntax>
+			<see-also>
+				<ref type="managerEvent">AsyncAGIEnd</ref>
+				<ref type="managerEvent">AsyncAGIExec</ref>
+				<ref type="application">AGI</ref>
+				<ref type="manager">AGI</ref>
+			</see-also>
 		</managerEventInstance>
 	</managerEvent>
 	<managerEvent language="en_US" name="AsyncAGIEnd">
@@ -954,6 +1290,12 @@
 			<syntax>
 				<channel_snapshot/>
 			</syntax>
+			<see-also>
+				<ref type="managerEvent">AsyncAGIStart</ref>
+				<ref type="managerEvent">AsyncAGIExec</ref>
+				<ref type="application">AGI</ref>
+				<ref type="manager">AGI</ref>
+			</see-also>
 		</managerEventInstance>
 	</managerEvent>
 	<managerEvent language="en_US" name="AsyncAGIExec">
@@ -968,6 +1310,12 @@
 					<para>URL encoded result string from the executed AGI command.</para>
 				</parameter>
 			</syntax>
+			<see-also>
+				<ref type="managerEvent">AsyncAGIStart</ref>
+				<ref type="managerEvent">AsyncAGIEnd</ref>
+				<ref type="application">AGI</ref>
+				<ref type="manager">AGI</ref>
+			</see-also>
 		</managerEventInstance>
 	</managerEvent>
 	<managerEvent language="en_US" name="AGIExecStart">
@@ -982,6 +1330,10 @@
 					<para>Random identification number assigned to the execution of this command.</para>
 				</parameter>
 			</syntax>
+			<see-also>
+				<ref type="managerEvent">AGIExecEnd</ref>
+				<ref type="application">AGI</ref>
+			</see-also>
 		</managerEventInstance>
 	</managerEvent>
 	<managerEvent language="en_US" name="AGIExecEnd">
@@ -997,6 +1349,10 @@
 					<para>The text result reason from AGI</para>
 				</parameter>
 			</syntax>
+			<see-also>
+				<ref type="managerEvent">AGIExecStart</ref>
+				<ref type="application">AGI</ref>
+			</see-also>
 		</managerEventInstance>
 	</managerEvent>
  ***/

-- 
To view, visit https://gerrit.asterisk.org/3529
To unsubscribe, visit https://gerrit.asterisk.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I479ccdee8a7393f01b18692c3d4ab7e6bdd1875d
Gerrit-PatchSet: 1
Gerrit-Project: asterisk
Gerrit-Branch: 13
Gerrit-Owner: Matt Jordan <mjordan at digium.com>
Gerrit-Reviewer: Anonymous Coward #1000019
Gerrit-Reviewer: Joshua Colp <jcolp at digium.com>
Gerrit-Reviewer: Mark Michelson <mmichelson at digium.com>



More information about the asterisk-code-review mailing list