Index: apps/app_jack.c
===================================================================
--- apps/app_jack.c	(revision 128565)
+++ apps/app_jack.c	(working copy)
@@ -68,8 +68,41 @@
 "                running.\n" \
 "    c(<name>) - By default, Asterisk will use the channel name for the jack client\n" \
 "                name.  Use this option to specify a custom client name.\n"
-
+/*** DOCUMENTATION
+	<application name="JACK" language="en">
+		<synopsis>
+			Jack Audio Connection Kit
+		</synopsis>
+		<description>
+			When executing this application, two jack ports will be created; 
+			one input and one output. Other applications can be hooked up to 
+			these ports to access audio coming from, or being send to the channel.
+		</description>
+		<option name="s">
+			<variable name="name" required="true">
+				Connect to the specified jack server name
+			</variable>
+		</option>
+		<option name="i">
+			<variable name="name" required="true">
+				Connect the output port that gets created to the specified jack input port
+			</variable>
+		</option>
+		<option name="o">
+			<variable name="name" required="true">
+				Connect the input port that gets created to the specified jack output port
+			</variable>
+		</option>
+		<option name="c">
+			<variable name="name" required="true">
+				By default, Asterisk will use the channel name for the jack client name.
+				Use this option to specify a custom client name.
+			</variable>
+		</option>
+	</application>
+ ***/
 static char *jack_app = "JACK";
+/*
 static char *jack_synopsis = 
 "JACK (Jack Audio Connection Kit) Application";
 static char *jack_desc = 
@@ -80,6 +113,7 @@
 "  Valid options:\n"
 COMMON_OPTIONS
 "";
+*/
 
 struct jack_data {
 	AST_DECLARE_STRING_FIELDS(
Index: apps/app_senddtmf.c
===================================================================
--- apps/app_senddtmf.c	(revision 128565)
+++ apps/app_senddtmf.c	(working copy)
@@ -35,8 +35,25 @@
 #include "asterisk/manager.h"
 #include "asterisk/channel.h"
 
+/*** DOCUMENTATION
+	<application name="SendDTMF" language="en">
+		<synopsis>
+			Sends arbitrary DTMF digits
+		</synopsis>
+		<description>
+			DTMF digits sent to a channel with half second pause
+			It will pass all digits or terminate if it encounters an error.
+		</description>
+		<option name="digits" required="true">
+			List of digits 0-9,*#,abcd
+		</option>
+		<option name="timeout_ms">
+			Amount of time to wait in ms between tones
+		</option>
+	</application>
+ ***/
 static char *app = "SendDTMF";
-
+/*
 static char *synopsis = "Sends arbitrary DTMF digits";
 
 static char *descrip = 
@@ -44,8 +61,8 @@
 " Accepted digits: 0-9, *#abcd, w (.5s pause)\n"
 " The application will either pass the assigned digits or terminate if it\n"
 " encounters an error.\n";
+*/
 
-
 static int senddtmf_exec(struct ast_channel *chan, void *vdata)
 {
 	int res = 0;
Index: apps/app_morsecode.c
===================================================================
--- apps/app_morsecode.c	(revision 128565)
+++ apps/app_morsecode.c	(working copy)
@@ -34,8 +34,27 @@
 #include "asterisk/module.h"
 #include "asterisk/indications.h"
 
+/*** DOCUMENTATION
+	<application name="Morsecode" language="en">
+		<synopsis>
+			Plays morse code
+		</synopsis>
+		<description>
+			Plays the Morse code equivalent of the passed string.
+		</description>
+		<variable name="MORSEDITLEN">
+			Use this value in (ms) for length of dit
+		</variable>
+		<variable name="MORSETONE">
+			The pitch of the tone in (Hz), default is 800
+		</variable>
+		<option name="string" required="true">
+			String to playback as morse code to channel
+		</option>
+	</application>
+ ***/	
 static char *app_morsecode = "Morsecode";
-
+/*
 static char *morsecode_synopsis = "Plays morse code";
 
 static char *morsecode_descrip =
@@ -44,8 +63,8 @@
 "MORSEDITLEN is set, it will use that value for the length (in ms) of the dit\n"
 "(defaults to 80).  Additionally, if MORSETONE is set, it will use that tone\n"
 "(in Hz).  The tone default is 800.\n";
+*/
 
-
 static char *morsecode[] = {
 	"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", /*  0-15 */
 	"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", /* 16-31 */
Index: apps/app_page.c
===================================================================
--- apps/app_page.c	(revision 128565)
+++ apps/app_page.c	(working copy)
@@ -44,8 +44,42 @@
 #include "asterisk/devicestate.h"
 #include "asterisk/dial.h"
 
+/*** DOCUMENTATION
+	<application name="Page" language="en">
+		<synopsis>
+			Page series of phones
+		</synopsis>
+		<description>
+			Places outbound calls to the given technology / resource and dumps
+			them into a conference bridge as muted participants. The original
+			caller is dumped into conference as a speaker and the room is
+			destroyed when the original callers leaves.
+		</descripton>
+		<option name="Technology/Resource" required="true" argsep="&amp;">
+			<argument name="Technology2/Resource2">
+				Optional extra 'devices' to dial.
+				If you need more then one enter them like this:
+				Technology2/Resource2&amp;Technology3/Resourse3&amp;.....
+			</argument>
+			Device to dial
+		</option>
+		<option name="d">
+			Full duplex audio
+		</option>
+		<option name="q">
+			Quiet, do not play beep to caller
+		</option>
+		<option name="r">
+			record the page into file (meetme option 'r')
+		</option>
+		<option name="s">
+			Only dial channel if devicestate says its 'notinuse'
+		</option>
+	</application>
+ ***/
 static const char *app_page= "Page";
 
+/*
 static const char *page_synopsis = "Pages phones";
 
 static const char *page_descrip =
@@ -58,7 +92,7 @@
 "        q - quiet, do not play beep to caller\n"
 "        r - record the page into a file (see 'r' for app_meetme)\n"
 "        s - only dial channel if devicestate says it is not in use\n";
-
+*/
 enum {
 	PAGE_DUPLEX = (1 << 0),
 	PAGE_QUIET = (1 << 1),
Index: apps/app_echo.c
===================================================================
--- apps/app_echo.c	(revision 128565)
+++ apps/app_echo.c	(working copy)
@@ -33,16 +33,28 @@
 #include "asterisk/module.h"
 #include "asterisk/channel.h"
 
+/*** DOCUMENTATION
+	<application name="Echo" language="en">
+		<synopsis>
+			Echo audio, video, DTMF back to the calling party
+		</synopsis>
+		<description>
+			Echos back any audio, video or DTMF frames read from the calling 
+			channel back to itself. Note: If '#' detected application exits
+		</description>
+	</application>
+ ***/
+
 static char *app = "Echo";
-
+/*
 static char *synopsis = "Echo audio, video, or DTMF back to the calling party";
 
 static char *descrip =
 "  Echo(): This application will echo any audio, video, or DTMF frames read from\n"
 "the calling channel back to itself. If the DTMF digit '#' is received, the\n"
 "application will exit.\n";
+*/
 
-
 static int echo_exec(struct ast_channel *chan, void *data)
 {
 	int res = -1;
Index: apps/app_amd.c
===================================================================
--- apps/app_amd.c	(revision 128565)
+++ apps/app_amd.c	(working copy)
@@ -39,8 +39,80 @@
 #include "asterisk/config.h"
 #include "asterisk/app.h"
 
+/*** DOCUMENTATION
+	<application name="AMD" language="en">
+		<synopsis>
+			Attempt to detect answering machines
+		</synopsis>
+		<description>
+			This application attempts to detect answering machines at the beginning 
+			of outbound calls. Simply call this application after the call 
+			has been answered (outbound only, of course).
+			When loaded, AMD reads amd.conf and uses the parameters specified as 
+			default values. Those default values get overwritten when the calling AMD 
+			with parameters.
+		</description>
+		<variable name="AMDSTATUS">
+			This is the status of the answering machine detection
+			<value name="MACHINE" />
+			<value name="HUMAN" />
+			<value name="NOTSURE" />
+			<value name="HANGUP" />
+		</variable>
+		<variable name="AMDCAUSE">
+			Indicates the cause that led to the conclusion
+			<value name="TOOLONG">
+				Total Time
+			</value>
+			<value name="INITIALSILENCE">
+				Silence Duration - Initial Silence
+			</value>
+			<value name="HUMAN">
+				Silence Duration - afterGreetingSilence
+			</value>
+			<value name="LONGGREETING">
+				Voice Duration - Greeting
+			</value>
+			<value name="MAXWORDLENGTH">
+				Word Count - maximum number of words
+			</value>	
+		<option name="initialSilence">
+			Is maximum initial silence duration before greeting.
+			If this is exceeded set as MACHINE
+		</option>
+		<option name="greeting">
+			is the maximum length of a greeting.
+			If this is exceeded set as MACHINE
+		<option name="afterGreetingSilence">
+			Is the silence after detecting a greeting.
+			If this is exceeded set as HUMAN
+		</option>
+		<option name="totalAnalysis Time">
+			Is the maximum time allowed for the algorithm
+			to decide HUMAN or MACHINE
+		</option>
+		<option name="miniumWordLength">
+			Is the minimum duration of Voice considered to be a word
+		</option>
+		<option name="betweenWordSilence">
+			Is the minimum duration of silence after a word to
+			consider the audio that follows to be a new word
+		</option>
+		<option name="maximumNumberOfWords">
+			Is the maximum number of words in a greeting
+			If this is exceeded set as MACHINE
+		<option name="silenceThreshold">
+			How long do we consider silence
+		</option>
+		<option name="maximumWordLength">
+			Is the maximum duration of a word to accept.
+			If exceeded set as MACHINE
+		</option>
+	</application>
 
+ ***/
 static char *app = "AMD";
+/*
 static char *synopsis = "Attempts to detect answering machines";
 static char *descrip =
 "  AMD([initialSilence],[greeting],[afterGreetingSilence],[totalAnalysisTime]\n"
@@ -78,7 +150,7 @@
 "               MAXWORDS-<%d wordsCount>-<%d maximumNumberOfWords>\n"
 "               LONGGREETING-<%d voiceDuration>-<%d greeting>\n"
 "               MAXWORDLENGTH-<%d consecutiveVoiceDuration>\n";
-
+*/
 #define STATE_IN_WORD       1
 #define STATE_IN_SILENCE    2
 
Index: apps/app_fax.c
===================================================================
--- apps/app_fax.c	(revision 128565)
+++ apps/app_fax.c	(working copy)
@@ -40,8 +40,56 @@
 #include "asterisk/module.h"
 #include "asterisk/manager.h"
 
+/*** DOCUMENTATION
+	<application name="SendFAX" language="en">
+		<synopsis>
+			Send a Fax
+		</synopsis>
+		<description>
+			Send a given TIFF file to the channel as a FAX.
+		</description>
+		<variable name="LOCALSTATIONID">
+			To identify itself to the remote end
+		</variable>
+		<variable name="LOCALHEADERINFO">
+			To generate a header line on each page
+		</variable>
+		<variable name="FAXSTATUS">
+			<value name="SUCCESS"/>
+			<value name="FAILED"/>
+		</variable>
+		<variable name="FAXERROR">
+			Cause of failure
+		</variable>
+		<variable name="REMOTESTATIONID">
+			The CSID of the remote side
+		</variable>
+		<variable name="FAXPAGES">
+			Number of pages sent
+		</variable>
+		<variable name="FAXBITRATE">
+			Transmission rate
+		</variable>
+		<variable name="FAXRESOLUTION">
+			Resolution of sent fax
+		</variable>
+		<option name="filename" required="true">
+			Filename of TIFF file to fax
+		</option>
+		<option name="a">
+			Makes the application behave as the answering machine 
+			(Default behavior is as calling machine)
+		</option>
+		<return>
+	   		<value name="0">Success</value>
+			<value name="1">Failure</value>
+		</return>
+	</application>
+ ***/
+
 static char *app_sndfax_name = "SendFAX";
 static char *app_sndfax_synopsis = "Send a FAX";
+/*
 static char *app_sndfax_desc = 
 "  SendFAX(filename[|options]):\n"
 "Send a given TIFF file to the channel as a FAX.\n"
@@ -64,9 +112,60 @@
 "\n"
 "Returns -1 in case of user hang up or any channel error.\n"
 "Returns 0 on success.\n";
+*/
 
+/*** DOCUMENTATION
+	<application name="ReceiveFAX" language="en">
+		<synopsis>
+			Receive a Fax
+		</synopsis>
+		<description>
+			Receives a FAX from the channel into the given filename 
+			overwriting the file if it already exists. 
+			File created will be in TIFF format.
+		</description>
+		<variable name="LOCALSTATIONID">
+			To identify itself to the remote end
+		</variable>
+		<variable name="LOCALHEADERINFO">
+			To generate a header line on each page
+		</variable>
+		<variable name="FAXSTATUS">
+			<value name="SUCCESS"/>
+			<value name="FAILED"/>
+		</variable>
+		<variable name="FAXERROR">
+			Cause of failure
+		</variable>
+		<variable name="REMOTESTATIONID">
+			The CSID of the remote side
+		</variable>
+		<variable name="FAXPAGES">
+			Number of pages sent
+		</variable>
+		<variable name="FAXBITRATE">
+			Transmission rate
+		</variable>
+		<variable name="FAXRESOLUTION">
+			Resolution of sent fax
+		</variable>
+		<option name="filename" required="true">
+			Filename of TIFF file save incoming fax
+		</option>
+		<option name="c">
+			Makes the application behave as the calling machine 
+			(Default behavior is as answering machine)
+		</option>
+		<return>
+	   		<value name="0">Success</value>
+			<value name="-1">Failure if user hangup or channel error</value>
+		</return>
+	</application>
+ ***/
+
 static char *app_rcvfax_name = "ReceiveFAX";
 static char *app_rcvfax_synopsis = "Receive a FAX";
+/*
 static char *app_rcvfax_desc = 
 "  ReceiveFAX(filename[|options]):\n"
 "Receives a fax from the channel into the given filename overwriting\n"
@@ -90,7 +189,7 @@
 "\n"
 "Returns -1 in case of user hang up or any channel error.\n"
 "Returns 0 on success.\n";
-
+*/
 #define MAX_SAMPLES 240
 
 /* Watchdog. I have seen situations when remote fax disconnects (because of poor line
