diff --git a/addons/chan_ooh323.c b/addons/chan_ooh323.c
index 7e50bbfa59602ed95de6259dee29e1c21ea2afcf..127ba0c8fe74e7ee3e3d8be307c181dfd472b4b9 100644
--- a/addons/chan_ooh323.c
+++ b/addons/chan_ooh323.c
@@ -22,6 +22,54 @@
 	<support_level>extended</support_level>
  ***/
 
+/*** DOCUMENTATION
+<info name="OOH323CHANNEL" language="en_US" tech="OOH323">
+	<enumlist>
+		<enum name="faxdetect">
+			<para>R/W Fax Detect</para>
+			<para>Returns 0 or 1</para>
+			<para>Write yes or no</para>
+		</enum>
+		<enum name="t38support">
+			<para>R/W t38support</para>
+			<para>Returns 0 or 1</para>
+			<para>Write yes or no</para>
+		</enum>
+		<enum name="h323id_url">
+			<para>R/0 Returns caller URL</para>
+			</enum>
+		<enum name="caller_h323id">
+			<para>R/0 Returns caller h323id</para>
+		</enum>
+		<enum name="caller_dialeddigits">
+			<para>R/0 Returns caller dialed digits</para>
+		</enum>
+		<enum name="caller_email">
+			<para>R/0 Returns caller email</para>
+		</enum>
+		<enum name="callee_email">
+			<para>R/0 Returns callee email</para>
+		</enum>
+		<enum name="callee_dialeddigits">
+			<para>R/0 Returns callee dialed digits</para>
+		</enum>
+		<enum name="caller_url">
+			<para>R/0 Returns caller URL</para>
+		</enum>
+		<enum name="max_forwards">
+			<para>R/W Get or set the maximum number of call forwards for this channel.
+
+			This number describes the number of times a call may be forwarded by this channel
+			before the call fails. "Forwards" in this case refers to redirects by phones as well
+			as calls to local channels.
+
+			Note that this has no relation to the SIP Max-Forwards header.
+			</para>
+		</enum>
+	</enumlist>
+</info>
+ ***/
+
 #include "chan_ooh323.h"
 #include <math.h>
 
diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c
index 7a3c31fd56b6bb842e134e9097c7fe03fef39e88..cbe7dba545ba9f41526fef99f49a9231cf713d49 100644
--- a/channels/chan_dahdi.c
+++ b/channels/chan_dahdi.c
@@ -178,6 +178,60 @@ ASTERISK_REGISTER_FILE()
 			<para>This application will Accept the R2 call either with charge or no charge.</para>
 		</description>
 	</application>
+	<info name="DAHDICHANNEL" language="en_US" tech="DAHDI">
+		<enumlist>
+			<enum name="dahdi_channel">
+				<para>R/O DAHDI channel related to this channel.</para>
+			</enum>
+			<enum name="dahdi_span">
+				<para>R/O DAHDI span related to this channel.</para>
+			</enum>
+			<enum name="dahdi_type">
+				<para>R/O DAHDI channel type, one of:</para>
+				<enumlist>
+					<enum name="analog" />
+					<enum name="mfc/r2" />
+					<enum name="pri" />
+					<enum name="pseudo" />
+					<enum name="ss7" />
+				</enumlist>
+			</enum>
+			<enum name="keypad_digits">
+				<para>R/O PRI Keypad digits that came in with the SETUP message.</para>
+			</enum>
+			<enum name="reversecharge">
+				<para>R/O PRI Reverse Charging Indication, one of:</para>
+				<enumlist>
+					<enum name="-1"> <para>None</para></enum>
+					<enum name=" 1"> <para>Reverse Charging Requested</para></enum>
+				</enumlist>
+			</enum>
+			<enum name="no_media_path">
+				<para>R/O PRI Nonzero if the channel has no B channel.
+				The channel is either on hold or a call waiting call.</para>
+			</enum>
+			<enum name="buffers">
+				<para>W/O Change the channel's buffer policy (for the current call only)</para>
+				<para>This option takes two arguments:</para>
+				<para>	Number of buffers,</para>
+				<para>	Buffer policy being one of:</para>
+				<para>	    <literal>full</literal></para>
+				<para>	    <literal>immediate</literal></para>
+				<para>	    <literal>half</literal></para>
+			</enum>
+			<enum name="echocan_mode">
+				<para>W/O Change the configuration of the active echo
+				canceller on the channel (if any), for the current call
+				only.</para>
+				<para>Possible values are:</para>
+				<para>	<literal>on</literal>	Normal mode (the echo canceller is actually reinitalized)</para>
+				<para>	<literal>off</literal>	Disabled</para>
+				<para>	<literal>fax</literal>	FAX/data mode (NLP disabled if possible, otherwise
+					completely disabled)</para>
+				<para>	<literal>voice</literal>	Voice mode (returns from FAX mode, reverting the changes that were made)</para>
+			</enum>
+		</enumlist>
+	</info>
 	<manager name="DAHDITransfer" language="en_US">
 		<synopsis>
 			Transfer DAHDI Channel.
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 721da9a044a0144ddb4184cdeb6cae95c1cfaf7c..1b3e287af471edd8464c0855913c6f2976133ccc 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -212,6 +212,25 @@ ASTERISK_REGISTER_FILE()
 			<para>Gets or sets a variable that is sent to a remote IAX2 peer during call setup.</para>
 		</description>
 	</function>
+	<info name="IAXCHANNEL" language="en_US" tech="IAX">
+		<enumlist>
+			<enum name="osptoken">
+				<para>R/O Get the peer's osptoken.</para>
+			</enum>
+			<enum name="peerip">
+				<para>R/O Get the peer's ip address.</para>
+			</enum>
+			<enum name="peername">
+				<para>R/O Get the peer's username.</para>
+			</enum>
+			<enum name="secure_signaling">
+				<para>R/O Get the if the IAX channel is secured.</para>
+			</enum>
+			<enum name="secure_media">
+				<para>R/O Get the if the IAX channel is secured.</para>
+			</enum>
+		</enumlist>
+	</info>
 	<manager name="IAXpeers" language="en_US">
 		<synopsis>
 			List IAX peers.
diff --git a/channels/pjsip/dialplan_functions.c b/channels/pjsip/dialplan_functions.c
index c1a3873d04c21b765d1e5391f94e8a397df41244..322f56483daca12c8792052017f5a5d27b48a762 100644
--- a/channels/pjsip/dialplan_functions.c
+++ b/channels/pjsip/dialplan_functions.c
@@ -411,6 +411,19 @@
 		</enum>
 	</enumlist>
 </info>
+<info name="PJSIPCHANNEL_EXAMPLES" language="en_US" tech="PJSIP">
+	<example title="PJSIP specific CHANNEL examples">
+		; Log the current Call-ID
+		same => n,Log(NOTICE, ${CHANNEL(pjsip,call-id)})
+
+		; Log the destination address of the audio stream
+		same => n,Log(NOTICE, ${CHANNEL(rtp,dest)})
+
+		; Store the round-trip time associated with a
+		; video stream in the CDR field video-rtt
+		same => n,Set(CDR(video-rtt)=${CHANNEL(rtcp,rtt,video)})
+	</example>
+</info>
 ***/
 
 #include "asterisk.h"
diff --git a/channels/sip/dialplan_functions.c b/channels/sip/dialplan_functions.c
index 644da38529211d0215e617940e8fa8c2c132ed05..988378835fa6691f09a75bc8e7d61cf745ee460f 100644
--- a/channels/sip/dialplan_functions.c
+++ b/channels/sip/dialplan_functions.c
@@ -23,6 +23,88 @@
 	<support_level>extended</support_level>
  ***/
 
+/*** DOCUMENTATION
+<info name="SIPCHANNEL" language="en_US" tech="SIP">
+	<enumlist>
+		<enum name="peerip">
+			<para>R/O Get the IP address of the peer.</para>
+		</enum>
+		<enum name="recvip">
+			<para>R/O Get the source IP address of the peer.</para>
+		</enum>
+		<enum name="recvport">
+			<para>R/O Get the source port of the peer.</para>
+		</enum>
+		<enum name="from">
+			<para>R/O Get the URI from the From: header.</para>
+		</enum>
+		<enum name="uri">
+			<para>R/O Get the URI from the Contact: header.</para>
+		</enum>
+		<enum name="useragent">
+			<para>R/O Get the useragent.</para>
+		</enum>
+		<enum name="peername">
+			<para>R/O Get the name of the peer.</para>
+		</enum>
+		<enum name="t38passthrough">
+			<para>R/O <literal>1</literal> if T38 is offered or enabled in this channel,
+			otherwise <literal>0</literal></para>
+		</enum>
+		<enum name="rtpqos">
+			<para>R/O Get QOS information about the RTP stream</para>
+			<para>    This option takes two additional arguments:</para>
+			<para>    Argument 1:</para>
+			<para>     <literal>audio</literal>             Get data about the audio stream</para>
+			<para>     <literal>video</literal>             Get data about the video stream</para>
+			<para>     <literal>text</literal>              Get data about the text stream</para>
+			<para>    Argument 2:</para>
+			<para>     <literal>local_ssrc</literal>        Local SSRC (stream ID)</para>
+			<para>     <literal>local_lostpackets</literal> Local lost packets</para>
+			<para>     <literal>local_jitter</literal>      Local calculated jitter</para>
+			<para>     <literal>local_maxjitter</literal>   Local calculated jitter (maximum)</para>
+			<para>     <literal>local_minjitter</literal>   Local calculated jitter (minimum)</para>
+			<para>     <literal>local_normdevjitter</literal>Local calculated jitter (normal deviation)</para>
+			<para>     <literal>local_stdevjitter</literal> Local calculated jitter (standard deviation)</para>
+			<para>     <literal>local_count</literal>       Number of received packets</para>
+			<para>     <literal>remote_ssrc</literal>       Remote SSRC (stream ID)</para>
+			<para>     <literal>remote_lostpackets</literal>Remote lost packets</para>
+			<para>     <literal>remote_jitter</literal>     Remote reported jitter</para>
+			<para>     <literal>remote_maxjitter</literal>  Remote calculated jitter (maximum)</para>
+			<para>     <literal>remote_minjitter</literal>  Remote calculated jitter (minimum)</para>
+			<para>     <literal>remote_normdevjitter</literal>Remote calculated jitter (normal deviation)</para>
+			<para>     <literal>remote_stdevjitter</literal>Remote calculated jitter (standard deviation)</para>
+			<para>     <literal>remote_count</literal>      Number of transmitted packets</para>
+			<para>     <literal>rtt</literal>               Round trip time</para>
+			<para>     <literal>maxrtt</literal>            Round trip time (maximum)</para>
+			<para>     <literal>minrtt</literal>            Round trip time (minimum)</para>
+			<para>     <literal>normdevrtt</literal>        Round trip time (normal deviation)</para>
+			<para>     <literal>stdevrtt</literal>          Round trip time (standard deviation)</para>
+			<para>     <literal>all</literal>               All statistics (in a form suited to logging,
+			but not for parsing)</para>
+		</enum>
+		<enum name="rtpdest">
+			<para>R/O Get remote RTP destination information.</para>
+			<para>   This option takes one additional argument:</para>
+			<para>    Argument 1:</para>
+			<para>     <literal>audio</literal>             Get audio destination</para>
+			<para>     <literal>video</literal>             Get video destination</para>
+			<para>     <literal>text</literal>              Get text destination</para>
+			<para>   Defaults to <literal>audio</literal> if unspecified.</para>
+		</enum>
+		<enum name="rtpsource">
+			<para>R/O Get source RTP destination information.</para>
+			<para>   This option takes one additional argument:</para>
+			<para>    Argument 1:</para>
+			<para>     <literal>audio</literal>             Get audio destination</para>
+			<para>     <literal>video</literal>             Get video destination</para>
+			<para>     <literal>text</literal>              Get text destination</para>
+			<para>   Defaults to <literal>audio</literal> if unspecified.</para>
+		</enum>
+	</enumlist>
+</info>
+ ***/
+
 #include "asterisk.h"
 
 ASTERISK_REGISTER_FILE()
diff --git a/doc/appdocsxml.dtd b/doc/appdocsxml.dtd
index 511930fe26ac448ccde58c8a83bab8d192999c6a..21f1b9d528edf33fdef214d3730d3d76bf1b0ea7 100644
--- a/doc/appdocsxml.dtd
+++ b/doc/appdocsxml.dtd
@@ -67,7 +67,7 @@
   <!ELEMENT field (#PCDATA)>
   <!ATTLIST field name CDATA #REQUIRED>
 
-  <!ELEMENT info (para|note|warning|variablelist|enumlist|info|xi:include)*>
+  <!ELEMENT info (para|example|note|warning|variablelist|enumlist|info|xi:include)*>
   <!ATTLIST info name CDATA #REQUIRED>
   <!ATTLIST info language CDATA #REQUIRED>
   <!ATTLIST info tech CDATA #REQUIRED>
diff --git a/funcs/func_channel.c b/funcs/func_channel.c
index 39d7499c78f3f5c950ddff144e3d03410d075a5e..9831dd71fd5aa40719ab64fef1a8bd35ef4b6efd 100644
--- a/funcs/func_channel.c
+++ b/funcs/func_channel.c
@@ -232,207 +232,41 @@ ASTERISK_REGISTER_FILE()
 					<enum name="linkedid">
 						<para>R/O returns the linkedid if available, otherwise returns the uniqueid.</para>
 					</enum>
-				</enumlist>
-				<para><emphasis>chan_sip</emphasis> provides the following additional options:</para>
-				<enumlist>
-					<enum name="peerip">
-						<para>R/O Get the IP address of the peer.</para>
-					</enum>
-					<enum name="recvip">
-						<para>R/O Get the source IP address of the peer.</para>
-					</enum>
-					<enum name="recvport">
-						<para>R/O Get the source port of the peer.</para>
-					</enum>
-					<enum name="from">
-						<para>R/O Get the URI from the From: header.</para>
-					</enum>
-					<enum name="uri">
-						<para>R/O Get the URI from the Contact: header.</para>
-					</enum>
-					<enum name="useragent">
-						<para>R/O Get the useragent.</para>
-					</enum>
-					<enum name="peername">
-						<para>R/O Get the name of the peer.</para>
-					</enum>
-					<enum name="t38passthrough">
-						<para>R/O <literal>1</literal> if T38 is offered or enabled in this channel,
-						otherwise <literal>0</literal></para>
-					</enum>
-					<enum name="rtpqos">
-						<para>R/O Get QOS information about the RTP stream</para>
-						<para>    This option takes two additional arguments:</para>
-						<para>    Argument 1:</para>
-						<para>     <literal>audio</literal>             Get data about the audio stream</para>
-						<para>     <literal>video</literal>             Get data about the video stream</para>
-						<para>     <literal>text</literal>              Get data about the text stream</para>
-						<para>    Argument 2:</para>
-						<para>     <literal>local_ssrc</literal>        Local SSRC (stream ID)</para>
-						<para>     <literal>local_lostpackets</literal> Local lost packets</para>
-						<para>     <literal>local_jitter</literal>      Local calculated jitter</para>
-						<para>     <literal>local_maxjitter</literal>   Local calculated jitter (maximum)</para>
-						<para>     <literal>local_minjitter</literal>   Local calculated jitter (minimum)</para>
-						<para>     <literal>local_normdevjitter</literal>Local calculated jitter (normal deviation)</para>
-						<para>     <literal>local_stdevjitter</literal> Local calculated jitter (standard deviation)</para>
-						<para>     <literal>local_count</literal>       Number of received packets</para>
-						<para>     <literal>remote_ssrc</literal>       Remote SSRC (stream ID)</para>
-						<para>     <literal>remote_lostpackets</literal>Remote lost packets</para>
-						<para>     <literal>remote_jitter</literal>     Remote reported jitter</para>
-						<para>     <literal>remote_maxjitter</literal>  Remote calculated jitter (maximum)</para>
-						<para>     <literal>remote_minjitter</literal>  Remote calculated jitter (minimum)</para>
-						<para>     <literal>remote_normdevjitter</literal>Remote calculated jitter (normal deviation)</para>
-						<para>     <literal>remote_stdevjitter</literal>Remote calculated jitter (standard deviation)</para>
-						<para>     <literal>remote_count</literal>      Number of transmitted packets</para>
-						<para>     <literal>rtt</literal>               Round trip time</para>
-						<para>     <literal>maxrtt</literal>            Round trip time (maximum)</para>
-						<para>     <literal>minrtt</literal>            Round trip time (minimum)</para>
-						<para>     <literal>normdevrtt</literal>        Round trip time (normal deviation)</para>
-						<para>     <literal>stdevrtt</literal>          Round trip time (standard deviation)</para>
-						<para>     <literal>all</literal>               All statistics (in a form suited to logging,
-						but not for parsing)</para>
-					</enum>
-					<enum name="rtpdest">
-						<para>R/O Get remote RTP destination information.</para>
-						<para>   This option takes one additional argument:</para>
-						<para>    Argument 1:</para>
-						<para>     <literal>audio</literal>             Get audio destination</para>
-						<para>     <literal>video</literal>             Get video destination</para>
-						<para>     <literal>text</literal>              Get text destination</para>
-						<para>   Defaults to <literal>audio</literal> if unspecified.</para>
-					</enum>
-					<enum name="rtpsource">
-						<para>R/O Get source RTP destination information.</para>
-						<para>   This option takes one additional argument:</para>
-						<para>    Argument 1:</para>
-						<para>     <literal>audio</literal>             Get audio destination</para>
-						<para>     <literal>video</literal>             Get video destination</para>
-						<para>     <literal>text</literal>              Get text destination</para>
-						<para>   Defaults to <literal>audio</literal> if unspecified.</para>
-					</enum>
-				</enumlist>
-				<xi:include xpointer="xpointer(/docs/info[@name='PJSIPCHANNEL'])" />
-				<para><emphasis>chan_iax2</emphasis> provides the following additional options:</para>
-				<enumlist>
-					<enum name="osptoken">
-						<para>R/O Get the peer's osptoken.</para>
-					</enum>
-					<enum name="peerip">
-						<para>R/O Get the peer's ip address.</para>
-					</enum>
-					<enum name="peername">
-						<para>R/O Get the peer's username.</para>
-					</enum>
-					<enum name="secure_signaling">
-						<para>R/O Get the if the IAX channel is secured.</para>
-					</enum>
-					<enum name="secure_media">
-						<para>R/O Get the if the IAX channel is secured.</para>
-					</enum>
-				</enumlist>
-				<para><emphasis>chan_dahdi</emphasis> provides the following additional options:</para>
-				<enumlist>
-					<enum name="dahdi_channel">
-						<para>R/O DAHDI channel related to this channel.</para>
-					</enum>
-					<enum name="dahdi_span">
-						<para>R/O DAHDI span related to this channel.</para>
-					</enum>
-					<enum name="dahdi_type">
-						<para>R/O DAHDI channel type, one of:</para>
-						<enumlist>
-							<enum name="analog" />
-							<enum name="mfc/r2" />
-							<enum name="pri" />
-							<enum name="pseudo" />
-							<enum name="ss7" />
-						</enumlist>
-					</enum>
-					<enum name="keypad_digits">
-						<para>R/O PRI Keypad digits that came in with the SETUP message.</para>
-					</enum>
-					<enum name="reversecharge">
-						<para>R/O PRI Reverse Charging Indication, one of:</para>
-						<enumlist>
-							<enum name="-1"> <para>None</para></enum>
-							<enum name=" 1"> <para>Reverse Charging Requested</para></enum>
-						</enumlist>
-					</enum>
-					<enum name="no_media_path">
-						<para>R/O PRI Nonzero if the channel has no B channel.
-						The channel is either on hold or a call waiting call.</para>
-					</enum>
-					<enum name="buffers">
-						<para>W/O Change the channel's buffer policy (for the current call only)</para>
-						<para>This option takes two arguments:</para>
-						<para>	Number of buffers,</para>
-						<para>	Buffer policy being one of:</para>
-						<para>	    <literal>full</literal></para>
-						<para>	    <literal>immediate</literal></para>
-						<para>	    <literal>half</literal></para>
-					</enum>
-					<enum name="echocan_mode">
-						<para>W/O Change the configuration of the active echo
-						canceller on the channel (if any), for the current call
-						only.</para>
-						<para>Possible values are:</para>
-						<para>	<literal>on</literal>	Normal mode (the echo canceller is actually reinitalized)</para>
-						<para>	<literal>off</literal>	Disabled</para>
-						<para>	<literal>fax</literal>	FAX/data mode (NLP disabled if possible, otherwise
-							completely disabled)</para>
-						<para>	<literal>voice</literal>	Voice mode (returns from FAX mode, reverting the changes that were made)</para>
-					</enum>
-				</enumlist>
-				<para><emphasis>chan_ooh323</emphasis> provides the following additional options:</para>
-				<enumlist>
-					<enum name="faxdetect">
-						<para>R/W Fax Detect</para>
-						<para>Returns 0 or 1</para>
-						<para>Write yes or no</para>
-					</enum>
-					<enum name="t38support">
-						<para>R/W t38support</para>
-						<para>Returns 0 or 1</para>
-						<para>Write yes or no</para>
-					</enum>
-					<enum name="h323id_url">
-						<para>R/0 Returns caller URL</para>
- 					</enum>
-					<enum name="caller_h323id">
-						<para>R/0 Returns caller h323id</para>
-					</enum>
-					<enum name="caller_dialeddigits">
-						<para>R/0 Returns caller dialed digits</para>
-					</enum>
-					<enum name="caller_email">
-						<para>R/0 Returns caller email</para>
-					</enum>
-					<enum name="callee_email">
-						<para>R/0 Returns callee email</para>
-					</enum>
-					<enum name="callee_dialeddigits">
-						<para>R/0 Returns callee dialed digits</para>
-					</enum>
-					<enum name="caller_url">
-						<para>R/0 Returns caller URL</para>
-					</enum>
 					<enum name="max_forwards">
-						<para>R/W Get or set the maximum number of call forwards for this channel.
-
-						This number describes the number of times a call may be forwarded by this channel
-						before the call fails. "Forwards" in this case refers to redirects by phones as well
-						as calls to local channels.
-
-						Note that this has no relation to the SIP Max-Forwards header.
-						</para>
+						<para>R/W The maximum number of forwards allowed.</para>
 					</enum>
 				</enumlist>
+				<xi:include xpointer="xpointer(/docs/info[@name='SIPCHANNEL'])" />
+				<xi:include xpointer="xpointer(/docs/info[@name='PJSIPCHANNEL'])" />
+				<xi:include xpointer="xpointer(/docs/info[@name='IAXCHANNEL'])" />
+				<xi:include xpointer="xpointer(/docs/info[@name='DAHDICHANNEL'])" />
+				<xi:include xpointer="xpointer(/docs/info[@name='OOH323CHANNEL'])" />
 			</parameter>
 		</syntax>
 		<description>
 			<para>Gets/sets various pieces of information about the channel, additional <replaceable>item</replaceable> may
 			be available from the channel driver; see its documentation for details. Any <replaceable>item</replaceable>
 			requested that is not available on the current channel will return an empty string.</para>
+			<example title="Standard CHANNEL item examples">
+				; Push a hangup handler subroutine existing at dialplan
+				; location default,s,1 onto the current channel
+				same => n,Set(CHANNEL(hangup_handler_push)=default,s,1)
+
+				; Set the current tonezone to Germany (de)
+				same => n,Set(CHANNEL(tonezone)=de)
+
+				; Set the allowed maximum number of forwarding attempts
+				same => n,Set(CHANNEL(max_forwards)=10)
+
+				; If this channel is ejected from its next bridge, and if
+				; the channel is not hung up, begin executing dialplan at
+				; location default,after-bridge,1
+				same => n,Set(CHANNEL(after_bridge_goto)=default,after-bridge,1)
+
+				; Log the current state of the channel
+				same => n,Log(NOTICE, This channel is: ${CHANNEL(state)})
+			</example>
+			<xi:include xpointer="xpointer(/docs/info[@name='PJSIPCHANNEL_EXAMPLES'])" />
 		</description>
 	</function>
  ***/