diff --git a/Makefile b/Makefile
index 2526db1cfcf5c04129677d9e2904fdc27caf1094..a2485541313b0cfa12b936a16ec606d857403aaa 100644
--- a/Makefile
+++ b/Makefile
@@ -475,60 +475,24 @@ endif
 		$(INSTALL) -m 644 $$x "$(DESTDIR)$(ASTDATADIR)/rest-api" ; \
 	done
 
-ifeq ($(GREP),)
-else ifeq ($(GREP),:)
-else
-  XML_core_en_US = $(foreach dir,$(MOD_SUBDIRS),$(shell $(GREP) -l "language=\"en_US\"" $(dir)/*.c $(dir)/*.cc 2>/dev/null))
-endif
-
+DOC_MOD_SUBDIRS := $(filter-out third-party,$(MOD_SUBDIRS))
+XML_core_en_US := $(shell build_tools/make_xml_documentation --command=print_dependencies --source-tree=. --mod-subdirs="$(DOC_MOD_SUBDIRS)")
+# core-en_US.xml is the normal documentation created with asterisk builds.
 doc/core-en_US.xml: makeopts .lastclean $(XML_core_en_US)
-	@printf "Building Documentation For: "
-	@echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" > $@
-	@echo "<!DOCTYPE docs SYSTEM \"appdocsxml.dtd\">" >> $@
-	@echo "<?xml-stylesheet type=\"text/xsl\" href=\"appdocsxml.xslt\"?>" >> $@
-	@echo "<docs xmlns:xi=\"http://www.w3.org/2001/XInclude\">" >> $@
-	@for x in $(MOD_SUBDIRS); do \
-		printf "$$x " ; \
-		for i in `find $$x -name '*.c'`; do \
-			MODULEINFO=$$($(AWK) -f build_tools/get_moduleinfo $$i) ; \
-			if [ -n "$$MODULEINFO" ] ; \
-			then \
-				echo "<module language=\"en_US\" name=\"`$(BASENAME) $$i .c`\">" >> $@ ; \
-				echo "$$MODULEINFO" >> $@ ; \
-				echo "</module>" >> $@ ; \
-			fi ; \
-			$(AWK) -f build_tools/get_documentation $$i >> $@ ; \
-		done ; \
-	done
-	@echo
-	@echo "</docs>" >> $@
+	@build_tools/make_xml_documentation --command=create_xml --source-tree=. --mod-subdirs="$(DOC_MOD_SUBDIRS)" \
+		--with-moduleinfo --validate --output-file=$@
 
-ifeq ($(GREP),)
-else ifeq ($(GREP),:)
-else
-  XML_full_en_US = $(foreach dir,$(MOD_SUBDIRS),$(shell $(GREP) -l "language=\"en_US\"" $(dir)/*.c $(dir)/*.cc 2>/dev/null))
-endif
-
-doc/full-en_US.xml: makeopts .lastclean $(XML_full_en_US)
+# The full-en_US.xml target is only called by the wiki documentation generation process
+# and does special post-processing in preparation for uploading to the wiki.
+# It creates full-en_US.xml but then re-creates core-en_US.xml as well.
+doc/full-en_US.xml: makeopts .lastclean $(XML_core_en_US)
 ifeq ($(PYTHON),:)
 	@echo "--------------------------------------------------------------------------"
 	@echo "---        Please install python to build full documentation           ---"
 	@echo "--------------------------------------------------------------------------"
 else
-	@printf "Building Documentation For: "
-	@echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" > $@
-	@echo "<!DOCTYPE docs SYSTEM \"appdocsxml.dtd\">" >> $@
-	@echo "<?xml-stylesheet type=\"text/xsl\" href=\"appdocsxml.xslt\"?>" >> $@
-	@echo "<docs xmlns:xi=\"http://www.w3.org/2001/XInclude\">" >> $@
-	@for x in $(filter-out third-party,$(MOD_SUBDIRS)); do \
-		printf "$$x " ; \
-		for i in `find $$x -name '*.c'`; do \
-			$(PYTHON) build_tools/get_documentation.py < $$i >> $@ ; \
-		done ; \
-	done
-	@echo
-	@echo "</docs>" >> $@
-	@$(PYTHON) build_tools/post_process_documentation.py -i $@ -o "doc/core-en_US.xml"
+	@build_tools/make_xml_documentation --command=create_xml --source-tree=. --mod-subdirs="$(DOC_MOD_SUBDIRS)" \
+		--for-wiki --validate --output-file=$@ --core-output-file=./doc/core-en_US.xml
 endif
 
 validate-docs: doc/core-en_US.xml
diff --git a/build_tools/get_sourceable_makeopts b/build_tools/get_sourceable_makeopts
new file mode 100755
index 0000000000000000000000000000000000000000..fbf4c38fc65574713adc84f5b1d92f1234c0ded1
--- /dev/null
+++ b/build_tools/get_sourceable_makeopts
@@ -0,0 +1,54 @@
+#!/bin/sh
+PROGNAME="${0##*/}"
+
+if [ "$1" = "-h"  ] || [ "$1" = "--help" ] ; then
+	cat <<-EOF
+		Usage: ${PROGNAME}: [ <input_file> ] [ <output_file> ]
+
+		This script takes an Asterisk makeopts file, or any file containing
+		"make" style variable assignments, and converts it into a format
+		that can be directly 'sourced' by shell scripts.
+
+		* Any spaces around the equals sign are removed.
+		* The variable value is quoted.
+		* The "make" "or" command is evaluated.
+
+		Both input and output files are optional and will default to
+		stdin and stdout respectively.
+
+		NOTE: This script relies on NO external commands and only POSIX
+		constructs.  It should be runnable by any shell.
+	EOF
+	exit 1
+fi
+
+input_file="/dev/stdin"
+if [ "$1" != "" ] ; then
+	input_file="$1"
+fi
+
+output_file="/dev/stdout"
+if [ "$2" != "" ] ; then
+	output_file="$2"
+fi
+
+# orfunc is a code fragment to be added to the outp[ut file.
+# We don't WANT the variables evaluated.
+# shellcheck disable=SC2016
+orfunc='or (){ before="${1%,*}" ; after="${1#*,}" ; if [ "$before" = "" ] ; then echo "${after}" ; else echo "${before}" ; fi ; }'
+echo "${orfunc}" >"${output_file}"
+
+while read -r LINE ; do
+	var="${LINE%%=*}"
+	if [ "${var}" != "" ] ; then
+		val="${LINE#*=}"
+		if [ "${val}" != "${var}" ] ; then
+			if [ "${val%% *}" = "" ] ; then
+				echo "${var% *}=\"${val#* }\""
+			else
+				echo "${var% *}=\"${val}\""
+			fi
+		fi
+	fi
+done <"${input_file}"  >>"${output_file}"
+
diff --git a/build_tools/make_xml_documentation b/build_tools/make_xml_documentation
new file mode 100755
index 0000000000000000000000000000000000000000..fafb81c376e10da9adb82e400ce18db5570847a6
--- /dev/null
+++ b/build_tools/make_xml_documentation
@@ -0,0 +1,247 @@
+#!/bin/sh
+# The GREP, SED, FIND, etc variables are all set at run time from
+# makeopts.
+# shellcheck disable=SC2154
+
+PROGNAME="${0##*/}"
+PROGDIR="${0%/*}"
+
+# Fail on errors
+set -e
+
+usage() {
+cat <<-EOF
+	Usage: ${PROGNAME} --command=(create_xml | print_dependencies)
+	--source-tree=<asterisk_source_tree> [ --mod-subdirs=<subdir_search_list> ]
+	[ --with-moduleinfo ] [--for-wiki ] [ --validate ]
+	[ --output-file=<output_xml_file> ]
+	[ --core-output-file=<core_output_xml_file> ]
+
+	command:
+	       print_dependencies:  Print the source files that have documentation
+	                            for use by "make" as dependencies.
+	       create_xml:          Create the actual XML output file.
+
+	source-tree:      The path to the Asterisk source tree.
+
+	mod-subdirs:      A quoted, space-separated list of module sub-directories
+	                  to search for documentation.  Defaults to
+	                  "channels pbx apps codecs formats cdr cel bridges funcs tests main res addons"
+
+	with-moduleinfo:  Include the "MODULEINFO" block from source files.
+	                  Default is to not include MODULEINFO
+
+	for-wiki:         Perform special post processing for wiki documentation.
+	                  This creates two output files and therefore needs both
+	                  <output-file> and <core-output-file>.
+	                  Default is to not perform wiki post-processing.
+
+	validate:         Run xmllint or xmlstarlet to validate output-file.
+
+	output-file:      The XML file to write to if the command was
+	                  "create_xml".
+
+	core-output-file: The additional XML file to write to if the command was
+	                  "create_xml" with "for-wiki".
+
+EOF
+}
+
+with_moduleinfo=0
+for_wiki=0
+validate=0
+command=""
+mod_subdirs="channels pbx apps codecs formats cdr cel bridges funcs tests main res addons"
+source_tree=""
+output_file=""
+core_output_file=""
+
+for arg in "$@" ; do
+	case ${arg} in
+	--for-wiki)
+		for_wiki=1
+		;;
+	--with-moduleinfo)
+		with_moduleinfo=1
+		;;
+	--validate)
+		validate=1
+		;;
+	--command=*)
+		command=${arg#*=}
+		;;
+	--source-tree=*)
+		source_tree=${arg#*=}
+		;;
+	--mod-subdirs=*)
+		mod_subdirs="${arg#*=}"
+		;;
+	--output-file=*)
+		output_file=${arg#*=}
+		;;
+	--core-output-file=*)
+		core_output_file=${arg#*=}
+		;;
+	-h|--help)
+		usage
+		exit 0
+		;;
+	*)
+		echo "unknown option '${arg}'."
+		usage
+		exit 1
+		;;
+	esac
+done
+
+if [ "${command}" = "" ] ; then
+	echo "No command specified"
+	usage
+	exit 1
+fi
+
+if [ "${source_tree}" = "" ] ; then
+	echo "No source-tree specified"
+	usage
+	exit 1;
+fi
+
+if [ ! -d "${source_tree}" ] ; then
+	echo "Asterisk source tree '${source_tree}' doesn't exist."
+	exit 1
+fi
+
+if [ ! -f "${source_tree}/Makefile" ] ; then
+	echo "There's no 'Makefile' in '${source_tree}'."
+	exit 1
+fi
+
+if [ ! -f "${source_tree}/makeopts" ] ; then
+	echo "There's no 'makeopts' in '${source_tree}'.  Maybe you need to run ./configure?"
+	exit 1
+fi
+
+# This will get the paths to the utilities we need, all
+# of which will be in makeopts.  We need to convert the
+# format so it's sourceable.
+tmpname="/tmp/ast_makeopts.$$.env"
+trap 'rm "$tmpname" >/dev/null 2>&1' INT QUIT TERM EXIT
+"${PROGDIR}/get_sourceable_makeopts" "${source_tree}/makeopts" >"${tmpname}"
+# The file to be sourced is generated at run time and can't be checked.
+# shellcheck disable=SC1090
+. "${tmpname}"
+rm "${tmpname}" > /dev/null 2>&1 || :
+trap - INT QUIT TERM EXIT
+
+# Make sure we have everything we need.
+for c in GREP FIND AWK DIRNAME BASENAME SED CAT ; do
+	bin=$(eval "echo \${${c}}")
+	if [ "${bin}" = "" ] ; then
+		echo "The '${c}' utility was not found."
+		exit 1
+	fi
+done
+
+if [ "${for_wiki}" -eq "1" ] || [ "${validate}" -eq "1" ]; then
+	if [ "${XMLLINT}${XMLSTARLET}" = "::" ] ; then
+		echo "Either xmllint or xmlstarlet is required for wiki post-processing or validation."
+		exit 1
+	fi
+fi
+
+if [ "${command}" = "print_dependencies" ] ; then
+	for subdir in ${mod_subdirs} ; do
+		subpath="${source_tree}/${subdir}"
+		# We WANT word splitting in the following line.
+		# shellcheck disable=SC2046
+		${GREP} -l -E '(language="en_US"|appdocsxml.dtd)' $(${FIND} "${subpath}" -name '*.c' -or -name '*.cc' -or -name '*.xml') || :
+	done
+	exit
+fi
+
+if [ "${command}" != "create_xml" ] ; then
+	echo "Command '${command}' is invalid."
+	usage
+	exit 1
+fi
+
+if [ "${output_file}" = "" ] ; then
+	echo "output-file is required for command '${command}'."
+	usage
+	exit 1;
+fi
+
+output_dir=$(${DIRNAME} "${output_file}")
+if [ ! -d "${output_dir}" ] ; then
+	echo "output destination directory '${output_dir}' doesn't exist."
+	exit 1
+fi
+
+if [ "${for_wiki}" -eq "1" ] && [ "${core_output_file}" = "" ] ; then
+	echo "core-output-file is required for command '${command}' and 'for-wiki'."
+	usage
+	exit 1;
+fi
+
+core_output_dir=$(${DIRNAME} "${core_output_file}")
+if [ ! -d "${core_output_dir}" ] ; then
+	echo "core destination directory '${core_output_dir}' doesn't exist."
+	exit 1
+fi
+
+${CAT} > "${output_file}" <<-EOF
+	<?xml version="1.0" encoding="UTF-8"?>
+	<!DOCTYPE docs SYSTEM "appdocsxml.dtd">
+	<?xml-stylesheet type="text/xsl" href="appdocsxml.xslt"?>
+	<docs xmlns:xi="http://www.w3.org/2001/XInclude">
+EOF
+
+printf "Building Documentation For: "
+
+for subdir in ${mod_subdirs} ; do
+	printf "%s " "${subdir}"
+	subdir_path="${source_tree}/${subdir}"
+	for i in $(${FIND} "${subdir_path}" -name '*.c' -or -name '*.cc'); do
+		if [ "${with_moduleinfo}" -eq "1" ] ; then
+			MODULEINFO=$(${AWK} -f "${source_tree}/build_tools/get_moduleinfo" "${i}")
+			if [ "${MODULEINFO}" != "" ] ; then
+				${CAT} >> "${output_file}" <<-EOF
+				<module language="en_US" name="$(${BASENAME} "${i}" .c)">
+				${MODULEINFO}
+				</module>
+				EOF
+			fi
+		fi
+		if [ "${for_wiki}" -eq "1" ] ; then
+			${PYTHON} build_tools/get_documentation.py < "${i}" >> "${output_file}"
+		else
+			${AWK} -f "${source_tree}/build_tools/get_documentation" "${i}" >> "${output_file}"
+		fi
+	done
+	for i in $(${FIND} "${subdir_path}" -name '*.xml') ; do
+		${GREP} -q "appdocsxml.dtd" "${i}" || continue
+		if [ "${validate}" -eq "1" ] ;then
+			if [ "${XMLLINT}" != ":" ] ; then
+				${XMLLINT} --dtdvalid "${source_tree}/doc/appdocsxml.dtd" --path "${source_tree}/doc" --noout "${i}" || { echo "" ; exit 1 ; }
+			else
+				${XMLSTARLET} val -d "${source_tree}/doc/appdocsxml.dtd" "${i}" || { echo "" ; exit 1 ; }
+			fi
+		fi
+		${SED} -r "/^\s*(<[?]xml|<.DOCTYPE|<.?docs)/d" "${i}" >> "${output_file}"
+	done
+done
+echo "</docs>" >> "${output_file}"
+echo ""
+
+if [ "${for_wiki}" -eq "1" ] ; then
+	${PYTHON} build_tools/post_process_documentation.py -i "${output_file}" -o "${core_output_file}"
+fi
+
+if [ "${validate}" -eq "1" ] ;then
+	if [ "${XMLLINT}" != ":" ] ; then
+		${XMLLINT} --dtdvalid "${source_tree}/doc/appdocsxml.dtd" --path "${source_tree}/doc" --noout "${output_file}" || exit 1
+	else
+		${XMLSTARLET} val -d "${source_tree}/doc/appdocsxml.dtd" "${output_file}" || exit 1
+	fi
+fi
+
diff --git a/makeopts.in b/makeopts.in
index e5730bfcfa40d49abdfd4e9921df9240e7cc9332..1cecce846b4902e42d237d90faa5b99c17eb7456 100644
--- a/makeopts.in
+++ b/makeopts.in
@@ -46,6 +46,8 @@ SED=@SED@
 NM=@NM@
 CAT=@CAT@
 CUT=@CUT@
+REALPATH=@REALPATH@
+DIRNAME=@DIRNAME@
 
 BUILD_PLATFORM=@BUILD_PLATFORM@
 BUILD_CPU=@BUILD_CPU@
diff --git a/res/res_pjsip.c b/res/res_pjsip.c
index 3d1f68c0298f144d5893fc5ee59df9c85fb9288f..78226450e4ef2bde009ecf324001fe31251aaa45 100644
--- a/res/res_pjsip.c
+++ b/res/res_pjsip.c
@@ -56,3248 +56,6 @@
 	<support_level>core</support_level>
  ***/
 
-/*** DOCUMENTATION
-	<configInfo name="res_pjsip" language="en_US">
-		<synopsis>SIP Resource using PJProject</synopsis>
-		<configFile name="pjsip.conf">
-			<configObject name="endpoint">
-				<synopsis>Endpoint</synopsis>
-				<description><para>
-					The <emphasis>Endpoint</emphasis> is the primary configuration object.
-					It contains the core SIP related options only, endpoints are <emphasis>NOT</emphasis>
-					dialable entries of their own. Communication with another SIP device is
-					accomplished via Addresses of Record (AoRs) which have one or more
-					contacts associated with them. Endpoints <emphasis>NOT</emphasis> configured to
-					use a <literal>transport</literal> will default to first transport found
-					in <filename>pjsip.conf</filename> that matches its type.
-					</para>
-					<para>Example: An Endpoint has been configured with no transport.
-					When it comes time to call an AoR, PJSIP will find the
-					first transport that matches the type. A SIP URI of <literal>sip:5000@[11::33]</literal>
-					will use the first IPv6 transport and try to send the request.
-					</para>
-					<para>If the anonymous endpoint identifier is in use an endpoint with the name
-					"anonymous@domain" will be searched for as a last resort. If this is not found
-					it will fall back to searching for "anonymous". If neither endpoints are found
-					the anonymous endpoint identifier will not return an endpoint and anonymous
-					calling will not be possible.
-					</para>
-				</description>
-				<configOption name="100rel" default="yes">
-					<synopsis>Allow support for RFC3262 provisional ACK tags</synopsis>
-					<description>
-						<enumlist>
-							<enum name="no" />
-							<enum name="required" />
-							<enum name="yes" />
-						</enumlist>
-					</description>
-				</configOption>
-				<configOption name="aggregate_mwi" default="yes">
-					<synopsis>Condense MWI notifications into a single NOTIFY.</synopsis>
-					<description><para>When enabled, <replaceable>aggregate_mwi</replaceable> condenses message
-					waiting notifications from multiple mailboxes into a single NOTIFY. If it is disabled,
-					individual NOTIFYs are sent for each mailbox.</para></description>
-				</configOption>
-				<configOption name="allow">
-					<synopsis>Media Codec(s) to allow</synopsis>
-				</configOption>
-				<configOption name="codec_prefs_incoming_offer">
-					<synopsis>Codec negotiation prefs for incoming offers.</synopsis>
-					<description>
-						<para>
-							This is a string that describes how the codecs
-							specified on an incoming SDP offer (pending) are reconciled with the codecs specified
-							on an endpoint (configured) before being sent to the Asterisk core.
-							The string actually specifies 4 <literal>name:value</literal> pair parameters
-							separated by commas. Whitespace is ignored and they may be specified in any order.
-							Note that this option is reserved for future functionality.
-
-						</para>
-						<para>
-							Parameters:
-						</para>
-						<enumlist>
-							<enum name="prefer: &lt; pending | configured &gt;">
-								<para>
-								</para>
-								<enumlist>
-									<enum name="pending"><para>The codec list from the caller. (default)</para></enum>
-									<enum name="configured"><para>The codec list from the endpoint.</para></enum>
-								</enumlist>
-							</enum>
-							<enum name="operation : &lt; intersect | only_preferred | only_nonpreferred &gt;">
-								<para>
-								</para>
-								<enumlist>
-									<enum name="intersect"><para>Only common codecs with the preferred codecs first. (default)</para></enum>
-									<enum name="only_preferred"><para>Use only the preferred codecs.</para></enum>
-									<enum name="only_nonpreferred"><para>Use only the non-preferred codecs.</para></enum>
-								</enumlist>
-							</enum>
-							<enum name="keep : &lt; all | first &gt;">
-								<para>
-								</para>
-								<enumlist>
-									<enum name="all"><para>After the operation, keep all codecs. (default)</para></enum>
-									<enum name="first"><para>After the operation, keep only the first codec.</para></enum>
-								</enumlist>
-							</enum>
-							<enum name="transcode : &lt; allow | prevent &gt;">
-								<para>
-								</para>
-								<enumlist>
-									<enum name="allow"><para>Allow transcoding. (default)</para></enum>
-									<enum name="prevent"><para>Prevent transcoding.</para></enum>
-								</enumlist>
-							</enum>
-						</enumlist>
-						<para>
-						</para>
-						<example>
-							codec_prefs_incoming_offer = prefer: pending, operation: intersect, keep: all, transcode: allow
-						</example>
-						<para>
-							Prefer the codecs coming from the caller.  Use only the ones that are common.
-							keeping the order of the preferred list. Keep all codecs in the result. Allow transcoding.
-						</para>
-					</description>
-				</configOption>
-				<configOption name="codec_prefs_outgoing_offer">
-					<synopsis>Codec negotiation prefs for outgoing offers.</synopsis>
-					<description>
-						<para>
-							This is a string that describes how the codecs specified in the topology that
-							comes from the Asterisk core (pending) are reconciled with the codecs specified on an
-							endpoint (configured) when sending an SDP offer.
-							The string actually specifies 4 <literal>name:value</literal> pair parameters
-							separated by commas. Whitespace is ignored and they may be specified in any order.
-							Note that this option is reserved for future functionality.
-
-						</para>
-						<para>
-							Parameters:
-						</para>
-						<enumlist>
-							<enum name="prefer: &lt; pending | configured &gt;">
-								<para>
-								</para>
-								<enumlist>
-									<enum name="pending"><para>The codec list from the core. (default)</para></enum>
-									<enum name="configured"><para>The codec list from the endpoint.</para></enum>
-								</enumlist>
-							</enum>
-							<enum name="operation : &lt; union | intersect | only_preferred | only_nonpreferred &gt;">
-								<para>
-								</para>
-								<enumlist>
-									<enum name="union"><para>Merge the lists with the preferred codecs first. (default)</para></enum>
-									<enum name="intersect"><para>Only common codecs with the preferred codecs first. (default)</para></enum>
-									<enum name="only_preferred"><para>Use only the preferred codecs.</para></enum>
-									<enum name="only_nonpreferred"><para>Use only the non-preferred codecs.</para></enum>
-								</enumlist>
-							</enum>
-							<enum name="keep : &lt; all | first &gt;">
-								<para>
-								</para>
-								<enumlist>
-									<enum name="all"><para>After the operation, keep all codecs. (default)</para></enum>
-									<enum name="first"><para>After the operation, keep only the first codec.</para></enum>
-								</enumlist>
-							</enum>
-							<enum name="transcode : &lt; allow | prevent &gt;">
-								<para>
-								</para>
-								<enumlist>
-									<enum name="allow"><para>Allow transcoding. (default)</para></enum>
-									<enum name="prevent"><para>Prevent transcoding.</para></enum>
-								</enumlist>
-							</enum>
-						</enumlist>
-						<para>
-						</para>
-						<example>
-						codec_prefs_outgoing_offer = prefer: configured, operation: union, keep: first, transcode: prevent
-						</example>
-						<para>
-						Prefer the codecs coming from the endpoint.  Merge them with the codecs from the core
-						keeping the order of the preferred list. Keep only the first one. No transcoding allowed.
-						</para>
-					</description>
-				</configOption>
-				<configOption name="codec_prefs_incoming_answer">
-					<synopsis>Codec negotiation prefs for incoming answers.</synopsis>
-					<description>
-						<para>
-							This is a string that describes how the codecs specified in an incoming SDP answer
-							(pending) are reconciled with the codecs specified on an endpoint (configured)
-							when receiving an SDP answer.
-							The string actually specifies 4 <literal>name:value</literal> pair parameters
-							separated by commas. Whitespace is ignored and they may be specified in any order.
-							Note that this option is reserved for future functionality.
-
-						</para>
-						<para>
-							Parameters:
-						</para>
-						<enumlist>
-							<enum name="prefer: &lt; pending | configured &gt;">
-								<para>
-								</para>
-								<enumlist>
-									<enum name="pending"><para>The codec list in the received SDP answer. (default)</para></enum>
-									<enum name="configured"><para>The codec list from the endpoint.</para></enum>
-								</enumlist>
-							</enum>
-							<enum name="operation : &lt; union | intersect | only_preferred | only_nonpreferred &gt;">
-								<para>
-								</para>
-								<enumlist>
-									<enum name="union"><para>Merge the lists with the preferred codecs first.</para></enum>
-									<enum name="intersect"><para>Only common codecs with the preferred codecs first. (default)</para></enum>
-									<enum name="only_preferred"><para>Use only the preferred codecs.</para></enum>
-									<enum name="only_nonpreferred"><para>Use only the non-preferred codecs.</para></enum>
-								</enumlist>
-							</enum>
-							<enum name="keep : &lt; all | first &gt;">
-								<para>
-								</para>
-								<enumlist>
-									<enum name="all"><para>After the operation, keep all codecs. (default)</para></enum>
-									<enum name="first"><para>After the operation, keep only the first codec.</para></enum>
-								</enumlist>
-							</enum>
-							<enum name="transcode : &lt; allow | prevent &gt;">
-								<para>
-								The transcode parameter is ignored when processing answers.
-								</para>
-							</enum>
-						</enumlist>
-						<para>
-						</para>
-						<example>
-						codec_prefs_incoming_answer = keep: first
-						</example>
-						<para>
-						Use the defaults but keep oinly the first codec.
-						</para>
-					</description>
-				</configOption>
-				<configOption name="codec_prefs_outgoing_answer">
-					<synopsis>Codec negotiation prefs for outgoing answers.</synopsis>
-					<description>
-						<para>
-							This is a string that describes how the codecs that come from the core (pending)
-							are reconciled with the codecs specified on an endpoint (configured)
-							when sending an SDP answer.
-							The string actually specifies 4 <literal>name:value</literal> pair parameters
-							separated by commas. Whitespace is ignored and they may be specified in any order.
-							Note that this option is reserved for future functionality.
-
-						</para>
-						<para>
-							Parameters:
-						</para>
-						<enumlist>
-							<enum name="prefer: &lt; pending | configured &gt;">
-								<para>
-								</para>
-								<enumlist>
-									<enum name="pending"><para>The codec list that came from the core. (default)</para></enum>
-									<enum name="configured"><para>The codec list from the endpoint.</para></enum>
-								</enumlist>
-							</enum>
-							<enum name="operation : &lt; union | intersect | only_preferred | only_nonpreferred &gt;">
-								<para>
-								</para>
-								<enumlist>
-									<enum name="union"><para>Merge the lists with the preferred codecs first.</para></enum>
-									<enum name="intersect"><para>Only common codecs with the preferred codecs first. (default)</para></enum>
-									<enum name="only_preferred"><para>Use only the preferred codecs.</para></enum>
-									<enum name="only_nonpreferred"><para>Use only the non-preferred codecs.</para></enum>
-								</enumlist>
-							</enum>
-							<enum name="keep : &lt; all | first &gt;">
-								<para>
-								</para>
-								<enumlist>
-									<enum name="all"><para>After the operation, keep all codecs. (default)</para></enum>
-									<enum name="first"><para>After the operation, keep only the first codec.</para></enum>
-								</enumlist>
-							</enum>
-							<enum name="transcode : &lt; allow | prevent &gt;">
-								<para>
-								The transcode parameter is ignored when processing answers.
-								</para>
-							</enum>
-						</enumlist>
-						<para>
-						</para>
-						<example>
-						codec_prefs_incoming_answer = keep: first
-						</example>
-						<para>
-						Use the defaults but keep oinly the first codec.
-						</para>
-					</description>
-				</configOption>
-				<configOption name="allow_overlap" default="yes">
-					<synopsis>Enable RFC3578 overlap dialing support.</synopsis>
-				</configOption>
-				<configOption name="aors">
-					<synopsis>AoR(s) to be used with the endpoint</synopsis>
-					<description><para>
-						List of comma separated AoRs that the endpoint should be associated with.
-					</para></description>
-				</configOption>
-				<configOption name="auth">
-					<synopsis>Authentication Object(s) associated with the endpoint</synopsis>
-					<description><para>
-						This is a comma-delimited list of <replaceable>auth</replaceable> sections defined
-						in <filename>pjsip.conf</filename> to be used to verify inbound connection attempts.
-						</para><para>
-						Endpoints without an authentication object
-						configured will allow connections without verification.</para>
-						<note><para>
-						Using the same auth section for inbound and outbound
-						authentication is not recommended.  There is a difference in
-						meaning for an empty realm setting between inbound and outbound
-						authentication uses.  See the auth realm description for details.
-						</para></note>
-					</description>
-				</configOption>
-				<configOption name="callerid">
-					<synopsis>CallerID information for the endpoint</synopsis>
-					<description><para>
-						Must be in the format <literal>Name &lt;Number&gt;</literal>,
-						or only <literal>&lt;Number&gt;</literal>.
-					</para></description>
-				</configOption>
-				<configOption name="callerid_privacy">
-					<synopsis>Default privacy level</synopsis>
-					<description>
-						<enumlist>
-							<enum name="allowed_not_screened" />
-							<enum name="allowed_passed_screen" />
-							<enum name="allowed_failed_screen" />
-							<enum name="allowed" />
-							<enum name="prohib_not_screened" />
-							<enum name="prohib_passed_screen" />
-							<enum name="prohib_failed_screen" />
-							<enum name="prohib" />
-							<enum name="unavailable" />
-						</enumlist>
-					</description>
-				</configOption>
-				<configOption name="callerid_tag">
-					<synopsis>Internal id_tag for the endpoint</synopsis>
-				</configOption>
-				<configOption name="context">
-					<synopsis>Dialplan context for inbound sessions</synopsis>
-				</configOption>
-				<configOption name="direct_media_glare_mitigation" default="none">
-					<synopsis>Mitigation of direct media (re)INVITE glare</synopsis>
-					<description>
-						<para>
-						This setting attempts to avoid creating INVITE glare scenarios
-						by disabling direct media reINVITEs in one direction thereby allowing
-						designated servers (according to this option) to initiate direct
-						media reINVITEs without contention and significantly reducing call
-						setup time.
-						</para>
-						<para>
-						A more detailed description of how this option functions can be found on
-						the Asterisk wiki https://wiki.asterisk.org/wiki/display/AST/SIP+Direct+Media+Reinvite+Glare+Avoidance
-						</para>
-						<enumlist>
-							<enum name="none" />
-							<enum name="outgoing" />
-							<enum name="incoming" />
-						</enumlist>
-					</description>
-				</configOption>
-				<configOption name="direct_media_method" default="invite">
-					<synopsis>Direct Media method type</synopsis>
-					<description>
-						<para>Method for setting up Direct Media between endpoints.</para>
-						<enumlist>
-							<enum name="invite" />
-							<enum name="reinvite">
-								<para>Alias for the <literal>invite</literal> value.</para>
-							</enum>
-							<enum name="update" />
-						</enumlist>
-					</description>
-				</configOption>
-				<configOption name="trust_connected_line">
-					<synopsis>Accept Connected Line updates from this endpoint</synopsis>
-				</configOption>
-				<configOption name="send_connected_line">
-					<synopsis>Send Connected Line updates to this endpoint</synopsis>
-				</configOption>
-				<configOption name="connected_line_method" default="invite">
-					<synopsis>Connected line method type</synopsis>
-					<description>
-						<para>Method used when updating connected line information.</para>
-						<enumlist>
-							<enum name="invite">
-							<para>When set to <literal>invite</literal>, check the remote's Allow header and
-							if UPDATE is allowed, send UPDATE instead of INVITE to avoid SDP
-							renegotiation.  If UPDATE is not Allowed, send INVITE.</para>
-							</enum>
-							<enum name="reinvite">
-								<para>Alias for the <literal>invite</literal> value.</para>
-							</enum>
-							<enum name="update">
-							<para>If set to <literal>update</literal>, send UPDATE regardless of what the remote
-							Allows. </para>
-							</enum>
-						</enumlist>
-					</description>
-				</configOption>
-				<configOption name="direct_media" default="yes">
-					<synopsis>Determines whether media may flow directly between endpoints.</synopsis>
-				</configOption>
-				<configOption name="disable_direct_media_on_nat" default="no">
-					<synopsis>Disable direct media session refreshes when NAT obstructs the media session</synopsis>
-				</configOption>
-				<configOption name="disallow">
-					<synopsis>Media Codec(s) to disallow</synopsis>
-				</configOption>
-				<configOption name="dtmf_mode" default="rfc4733">
-					<synopsis>DTMF mode</synopsis>
-					<description>
-						<para>This setting allows to choose the DTMF mode for endpoint communication.</para>
-						<enumlist>
-							<enum name="rfc4733">
-								<para>DTMF is sent out of band of the main audio stream.  This
-								supercedes the older <emphasis>RFC-2833</emphasis> used within
-								the older <literal>chan_sip</literal>.</para>
-							</enum>
-							<enum name="inband">
-								<para>DTMF is sent as part of audio stream.</para>
-							</enum>
-							<enum name="info">
-								<para>DTMF is sent as SIP INFO packets.</para>
-							</enum>
-							<enum name="auto">
-								<para>DTMF is sent as RFC 4733 if the other side supports it or as INBAND if not.</para>
-							</enum>
-							<enum name="auto_info">
-								<para>DTMF is sent as RFC 4733 if the other side supports it or as SIP INFO if not.</para>
-							</enum>
-						</enumlist>
-					</description>
-				</configOption>
-				<configOption name="media_address">
-					<synopsis>IP address used in SDP for media handling</synopsis>
-					<description><para>
-						At the time of SDP creation, the IP address defined here will be used as
-						the media address for individual streams in the SDP.
-					</para>
-					<note><para>
-						Be aware that the <literal>external_media_address</literal> option, set in Transport
-						configuration, can also affect the final media address used in the SDP.
-					</para></note>
-					</description>
-				</configOption>
-				<configOption name="bind_rtp_to_media_address">
-					<synopsis>Bind the RTP instance to the media_address</synopsis>
-					<description><para>
-						If media_address is specified, this option causes the RTP instance to be bound to the
-						specified ip address which causes the packets to be sent from that address.
-					</para>
-					</description>
-				</configOption>
-				<configOption name="force_rport" default="yes">
-					<synopsis>Force use of return port</synopsis>
-				</configOption>
-				<configOption name="ice_support" default="no">
-					<synopsis>Enable the ICE mechanism to help traverse NAT</synopsis>
-				</configOption>
-				<configOption name="identify_by">
-					<synopsis>Way(s) for the endpoint to be identified</synopsis>
-					<description>
-						<para>Endpoints and AORs can be identified in multiple ways.  This
-						option is a comma separated list of methods the endpoint can be
-						identified.
-						</para>
-						<note><para>
-						This option controls both how an endpoint is matched for incoming
-						traffic and also how an AOR is determined if a registration
-						occurs.  You must list at least one method that also matches for
-						AORs or the registration will fail.
-						</para></note>
-						<enumlist>
-							<enum name="username">
-								<para>Matches the endpoint or AOR ID based on the username
-								and domain in the From header (or To header for AORs).  If
-								an exact match on both username and domain/realm fails, the
-								match is retried with just the username.
-								</para>
-							</enum>
-							<enum name="auth_username">
-								<para>Matches the endpoint or AOR ID based on the username
-								and realm in the Authentication header.  If an exact match
-								on both username and domain/realm fails, the match is
-								retried with just the username.
-								</para>
-								<note><para>This method of identification has some security
-								considerations because an Authentication header is not
-								present on the first message of a dialog when digest
-								authentication is used.  The client can't generate it until
-								the server sends the challenge in a 401 response.  Since
-								Asterisk normally sends a security event when an incoming
-								request can't be matched to an endpoint, using this method
-								requires that the security event be deferred until a request
-								is received with the Authentication header and only
-								generated if the username doesn't result in a match.  This
-								may result in a delay before an attack is recognized.  You
-								can control how many unmatched requests are received from
-								a single ip address before a security event is generated
-								using the <literal>unidentified_request</literal>
-								parameters in the "global" configuration object.
-								</para></note>
-							</enum>
-							<enum name="ip">
-								<para>Matches the endpoint based on the source IP address.
-								</para>
-								<para>This method of identification is not configured here
-								but simply allowed by this configuration option.  See the
-								documentation for the <literal>identify</literal>
-								configuration section for more details on this method of
-								endpoint identification.
-								</para>
-							</enum>
-							<enum name="header">
-								<para>Matches the endpoint based on a configured SIP header
-								value.
-								</para>
-								<para>This method of identification is not configured here
-								but simply allowed by this configuration option.  See the
-								documentation for the <literal>identify</literal>
-								configuration section for more details on this method of
-								endpoint identification.
-								</para>
-							</enum>
-						</enumlist>
-					</description>
-				</configOption>
-				<configOption name="redirect_method">
-					<synopsis>How redirects received from an endpoint are handled</synopsis>
-					<description><para>
-						When a redirect is received from an endpoint there are multiple ways it can be handled.
-						If this option is set to <literal>user</literal> the user portion of the redirect target
-						is treated as an extension within the dialplan and dialed using a Local channel. If this option
-						is set to <literal>uri_core</literal> the target URI is returned to the dialing application
-						which dials it using the PJSIP channel driver and endpoint originally used. If this option is
-						set to <literal>uri_pjsip</literal> the redirect occurs within chan_pjsip itself and is not exposed
-						to the core at all. The <literal>uri_pjsip</literal> option has the benefit of being more efficient
-						and also supporting multiple potential redirect targets. The con is that since redirection occurs
-						within chan_pjsip redirecting information is not forwarded and redirection can not be
-						prevented.
-						</para>
-						<enumlist>
-							<enum name="user" />
-							<enum name="uri_core" />
-							<enum name="uri_pjsip" />
-						</enumlist>
-					</description>
-				</configOption>
-				<configOption name="mailboxes">
-					<synopsis>NOTIFY the endpoint when state changes for any of the specified mailboxes</synopsis>
-					<description><para>
-						Asterisk will send unsolicited MWI NOTIFY messages to the endpoint when state
-						changes happen for any of the specified mailboxes. More than one mailbox can be
-						specified with a comma-delimited string. app_voicemail mailboxes must be specified
-						as mailbox@context; for example: mailboxes=6001@default. For mailboxes provided by
-						external sources, such as through the res_mwi_external module, you must specify
-						strings supported by the external system.
-					</para><para>
-						For endpoints that SUBSCRIBE for MWI, use the <literal>mailboxes</literal> option in your AOR
-						configuration.
-					</para></description>
-				</configOption>
-				<configOption name="mwi_subscribe_replaces_unsolicited">
-					<synopsis>An MWI subscribe will replace sending unsolicited NOTIFYs</synopsis>
-				</configOption>
-				<configOption name="voicemail_extension">
-					<synopsis>The voicemail extension to send in the NOTIFY Message-Account header</synopsis>
-				</configOption>
-				<configOption name="moh_suggest" default="default">
-					<synopsis>Default Music On Hold class</synopsis>
-				</configOption>
-				<configOption name="outbound_auth">
-					<synopsis>Authentication object(s) used for outbound requests</synopsis>
-					<description><para>
-						This is a comma-delimited list of <replaceable>auth</replaceable>
-						sections defined in <filename>pjsip.conf</filename> used to respond
-						to outbound connection authentication challenges.</para>
-						<note><para>
-						Using the same auth section for inbound and outbound
-						authentication is not recommended.  There is a difference in
-						meaning for an empty realm setting between inbound and outbound
-						authentication uses.  See the auth realm description for details.
-						</para></note>
-					</description>
-				</configOption>
-				<configOption name="outbound_proxy">
-					<synopsis>Full SIP URI of the outbound proxy used to send requests</synopsis>
-				</configOption>
-				<configOption name="rewrite_contact">
-					<synopsis>Allow Contact header to be rewritten with the source IP address-port</synopsis>
-					<description><para>
-						On inbound SIP messages from this endpoint, the Contact header or an
-						appropriate Record-Route header will be changed to have the source IP
-						address and port.  This option does not affect outbound messages sent to
-						this endpoint.  This option helps servers communicate with endpoints
-						that are behind NATs.  This option also helps reuse reliable transport
-						connections such as TCP and TLS.
-					</para></description>
-				</configOption>
-				<configOption name="rtp_ipv6" default="no">
-					<synopsis>Allow use of IPv6 for RTP traffic</synopsis>
-				</configOption>
-				<configOption name="rtp_symmetric" default="no">
-					<synopsis>Enforce that RTP must be symmetric</synopsis>
-				</configOption>
-				<configOption name="send_diversion" default="yes">
-					<synopsis>Send the Diversion header, conveying the diversion
-					information to the called user agent</synopsis>
-				</configOption>
-				<configOption name="send_history_info" default="no">
-					<synopsis>Send the History-Info header, conveying the diversion
-					information to the called and calling user agents</synopsis>
-				</configOption>
-				<configOption name="send_pai" default="no">
-					<synopsis>Send the P-Asserted-Identity header</synopsis>
-				</configOption>
-				<configOption name="send_rpid" default="no">
-					<synopsis>Send the Remote-Party-ID header</synopsis>
-				</configOption>
-				<configOption name="rpid_immediate" default="no">
-					<synopsis>Immediately send connected line updates on unanswered incoming calls.</synopsis>
-					<description>
-						<para>When enabled, immediately send <emphasis>180 Ringing</emphasis>
-						or <emphasis>183 Progress</emphasis> response messages to the
-						caller if the connected line information is updated before
-						the call is answered.  This can send a <emphasis>180 Ringing</emphasis>
-						response before the call has even reached the far end.  The
-						caller can start hearing ringback before the far end even gets
-						the call.  Many phones tend to grab the first connected line
-						information and refuse to update the display if it changes.  The
-						first information is not likely to be correct if the call
-						goes to an endpoint not under the control of this Asterisk
-						box.</para>
-						<para>When disabled, a connected line update must wait for
-						another reason to send a message with the connected line
-						information to the caller before the call is answered.  You can
-						trigger the sending of the information by using an appropriate
-						dialplan application such as <emphasis>Ringing</emphasis>.</para>
-					</description>
-				</configOption>
-				<configOption name="timers_min_se" default="90">
-					<synopsis>Minimum session timers expiration period</synopsis>
-					<description><para>
-						Minimum session timer expiration period. Time in seconds.
-					</para></description>
-				</configOption>
-				<configOption name="timers" default="yes">
-					<synopsis>Session timers for SIP packets</synopsis>
-					<description>
-						<enumlist>
-							<enum name="no" />
-							<enum name="yes" />
-							<enum name="required" />
-							<enum name="always" />
-							<enum name="forced"><para>Alias of always</para></enum>
-						</enumlist>
-					</description>
-				</configOption>
-				<configOption name="timers_sess_expires" default="1800">
-					<synopsis>Maximum session timer expiration period</synopsis>
-					<description><para>
-						Maximum session timer expiration period. Time in seconds.
-					</para></description>
-				</configOption>
-				<configOption name="transport">
-					<synopsis>Explicit transport configuration to use</synopsis>
-					<description>
-						<para>This will <emphasis>force</emphasis> the endpoint to use the
-						specified transport configuration to send SIP messages.  You need
-						to already know what kind of transport (UDP/TCP/IPv4/etc) the
-						endpoint device will use.
-						</para>
-						<note><para>Not specifying a transport will select the first
-						configured transport in <filename>pjsip.conf</filename> which is
-						compatible with the URI we are trying to contact.
-						</para></note>
-						<warning><para>Transport configuration is not affected by reloads. In order to
-						change transports, a full Asterisk restart is required</para></warning>
-					</description>
-				</configOption>
-				<configOption name="trust_id_inbound" default="no">
-					<synopsis>Accept identification information received from this endpoint</synopsis>
-					<description><para>This option determines whether Asterisk will accept
-					identification from the endpoint from headers such as P-Asserted-Identity
-					or Remote-Party-ID header. This option applies both to calls originating from the
-					endpoint and calls originating from Asterisk. If <literal>no</literal>, the
-					configured Caller-ID from pjsip.conf will always be used as the identity for
-					the endpoint.</para></description>
-				</configOption>
-				<configOption name="trust_id_outbound" default="no">
-					<synopsis>Send private identification details to the endpoint.</synopsis>
-					<description><para>This option determines whether res_pjsip will send private
-					identification information to the endpoint. If <literal>no</literal>,
-					private Caller-ID information will not be forwarded to the endpoint.
-					"Private" in this case refers to any method of restricting identification.
-					Example: setting <replaceable>callerid_privacy</replaceable> to any
-					<literal>prohib</literal> variation.
-					Example: If <replaceable>trust_id_inbound</replaceable> is set to
-					<literal>yes</literal>, the presence of a <literal>Privacy: id</literal>
-					header in a SIP request or response would indicate the identification
-					provided in the request is private.</para></description>
-				</configOption>
-				<configOption name="type">
-					<synopsis>Must be of type 'endpoint'.</synopsis>
-				</configOption>
-				<configOption name="use_ptime" default="no">
-					<synopsis>Use Endpoint's requested packetization interval</synopsis>
-				</configOption>
-				<configOption name="use_avpf" default="no">
-					<synopsis>Determines whether res_pjsip will use and enforce usage of AVPF for this
-					endpoint.</synopsis>
-					<description><para>
-						If set to <literal>yes</literal>, res_pjsip will use the AVPF or SAVPF RTP
-						profile for all media offers on outbound calls and media updates and will
-						decline media offers not using the AVPF or SAVPF profile.
-					</para><para>
-						If set to <literal>no</literal>, res_pjsip will use the AVP or SAVP RTP
-						profile for all media offers on outbound calls and media updates, and will
-						decline media offers not using the AVP or SAVP profile.
-					</para></description>
-				</configOption>
-				<configOption name="force_avp" default="no">
-					<synopsis>Determines whether res_pjsip will use and enforce usage of AVP,
-					regardless of the RTP profile in use for this endpoint.</synopsis>
-					<description><para>
-						If set to <literal>yes</literal>, res_pjsip will use the AVP, AVPF, SAVP, or
-						SAVPF RTP profile for all media offers on outbound calls and media updates including
-						those for DTLS-SRTP streams.
-					</para><para>
-						If set to <literal>no</literal>, res_pjsip will use the respective RTP profile
-						depending on configuration.
-					</para></description>
-				</configOption>
-				<configOption name="media_use_received_transport" default="no">
-					<synopsis>Determines whether res_pjsip will use the media transport received in the
-					offer SDP in the corresponding answer SDP.</synopsis>
-					<description><para>
-						If set to <literal>yes</literal>, res_pjsip will use the received media transport.
-					</para><para>
-						If set to <literal>no</literal>, res_pjsip will use the respective RTP profile
-						depending on configuration.
-					</para></description>
-				</configOption>
-				<configOption name="media_encryption" default="no">
-					<synopsis>Determines whether res_pjsip will use and enforce usage of media encryption
-					for this endpoint.</synopsis>
-					<description>
-						<enumlist>
-							<enum name="no"><para>
-								res_pjsip will offer no encryption and allow no encryption to be setup.
-							</para></enum>
-							<enum name="sdes"><para>
-								res_pjsip will offer standard SRTP setup via in-SDP keys. Encrypted SIP
-								transport should be used in conjunction with this option to prevent
-								exposure of media encryption keys.
-							</para></enum>
-							<enum name="dtls"><para>
-								res_pjsip will offer DTLS-SRTP setup.
-							</para></enum>
-						</enumlist>
-					</description>
-				</configOption>
-				<configOption name="media_encryption_optimistic" default="no">
-					<synopsis>Determines whether encryption should be used if possible but does not terminate the
-					session if not achieved.</synopsis>
-					<description><para>
-						This option only applies if <replaceable>media_encryption</replaceable> is
-						set to <literal>sdes</literal> or <literal>dtls</literal>.
-					</para></description>
-				</configOption>
-				<configOption name="g726_non_standard" default="no">
-					<synopsis>Force g.726 to use AAL2 packing order when negotiating g.726 audio</synopsis>
-					<description><para>
-						When set to "yes" and an endpoint negotiates g.726 audio then use g.726 for AAL2
-						packing order instead of what is recommended by RFC3551. Since this essentially
-						replaces the underlying 'g726' codec with 'g726aal2' then 'g726aal2' needs to be
-						specified in the endpoint's allowed codec list.
-					</para></description>
-				</configOption>
-				<configOption name="inband_progress" default="no">
-					<synopsis>Determines whether chan_pjsip will indicate ringing using inband
-						progress.</synopsis>
-					<description><para>
-						If set to <literal>yes</literal>, chan_pjsip will send a 183 Session Progress
-						when told to indicate ringing and will immediately start sending ringing
-						as audio.
-					</para><para>
-						If set to <literal>no</literal>, chan_pjsip will send a 180 Ringing when told
-						to indicate ringing and will NOT send it as audio.
-					</para></description>
-				</configOption>
-				<configOption name="call_group">
-					<synopsis>The numeric pickup groups for a channel.</synopsis>
-					<description><para>
-						Can be set to a comma separated list of numbers or ranges between the values
-						of 0-63 (maximum of 64 groups).
-					</para></description>
-				</configOption>
-				<configOption name="pickup_group">
-					<synopsis>The numeric pickup groups that a channel can pickup.</synopsis>
-					<description><para>
-						Can be set to a comma separated list of numbers or ranges between the values
-						of 0-63 (maximum of 64 groups).
-					</para></description>
-				</configOption>
-				<configOption name="named_call_group">
-					<synopsis>The named pickup groups for a channel.</synopsis>
-					<description><para>
-						Can be set to a comma separated list of case sensitive strings limited by
-						supported line length.
-					</para></description>
-				</configOption>
-				<configOption name="named_pickup_group">
-					<synopsis>The named pickup groups that a channel can pickup.</synopsis>
-					<description><para>
-						Can be set to a comma separated list of case sensitive strings limited by
-						supported line length.
-					</para></description>
-				</configOption>
-				<configOption name="device_state_busy_at" default="0">
-					<synopsis>The number of in-use channels which will cause busy to be returned as device state</synopsis>
-					<description><para>
-						When the number of in-use channels for the endpoint matches the devicestate_busy_at setting the
-						PJSIP channel driver will return busy as the device state instead of in use.
-					</para></description>
-				</configOption>
-				<configOption name="t38_udptl" default="no">
-					<synopsis>Whether T.38 UDPTL support is enabled or not</synopsis>
-					<description><para>
-						If set to yes T.38 UDPTL support will be enabled, and T.38 negotiation requests will be accepted
-						and relayed.
-					</para></description>
-				</configOption>
-				<configOption name="t38_udptl_ec" default="none">
-					<synopsis>T.38 UDPTL error correction method</synopsis>
-					<description>
-						<enumlist>
-							<enum name="none"><para>
-								No error correction should be used.
-							</para></enum>
-							<enum name="fec"><para>
-								Forward error correction should be used.
-							</para></enum>
-							<enum name="redundancy"><para>
-								Redundancy error correction should be used.
-							</para></enum>
-						</enumlist>
-					</description>
-				</configOption>
-				<configOption name="t38_udptl_maxdatagram" default="0">
-					<synopsis>T.38 UDPTL maximum datagram size</synopsis>
-					<description><para>
-						This option can be set to override the maximum datagram of a remote endpoint for broken
-						endpoints.
-					</para></description>
-				</configOption>
-				<configOption name="fax_detect" default="no">
-					<synopsis>Whether CNG tone detection is enabled</synopsis>
-					<description><para>
-						This option can be set to send the session to the fax extension when a CNG tone is
-						detected.
-					</para></description>
-				</configOption>
-				<configOption name="fax_detect_timeout">
-					<synopsis>How long into a call before fax_detect is disabled for the call</synopsis>
-					<description><para>
-						The option determines how many seconds into a call before the
-						fax_detect option is disabled for the call.  Setting the value
-						to zero disables the timeout.
-					</para></description>
-				</configOption>
-				<configOption name="t38_udptl_nat" default="no">
-					<synopsis>Whether NAT support is enabled on UDPTL sessions</synopsis>
-					<description><para>
-						When enabled the UDPTL stack will send UDPTL packets to the source address of
-						received packets.
-					</para></description>
-				</configOption>
-				<configOption name="t38_udptl_ipv6" default="no">
-					<synopsis>Whether IPv6 is used for UDPTL Sessions</synopsis>
-					<description><para>
-						When enabled the UDPTL stack will use IPv6.
-					</para></description>
-				</configOption>
-				<configOption name="t38_bind_udptl_to_media_address" default="no">
-					<synopsis>Bind the UDPTL instance to the media_adress</synopsis>
-					<description><para>
-						If media_address is specified, this option causes the UDPTL instance to be bound to
-						the specified ip address which causes the packets to be sent from that address.
-					</para></description>
-				</configOption>
-				<configOption name="tone_zone">
-					<synopsis>Set which country's indications to use for channels created for this endpoint.</synopsis>
-				</configOption>
-				<configOption name="language">
-					<synopsis>Set the default language to use for channels created for this endpoint.</synopsis>
-				</configOption>
-				<configOption name="one_touch_recording" default="no">
-					<synopsis>Determines whether one-touch recording is allowed for this endpoint.</synopsis>
-					<see-also>
-						<ref type="configOption">record_on_feature</ref>
-						<ref type="configOption">record_off_feature</ref>
-					</see-also>
-				</configOption>
-				<configOption name="record_on_feature" default="automixmon">
-					<synopsis>The feature to enact when one-touch recording is turned on.</synopsis>
-					<description>
-						<para>When an INFO request for one-touch recording arrives with a Record header set to "on", this
-						feature will be enabled for the channel. The feature designated here can be any built-in
-						or dynamic feature defined in features.conf.</para>
-						<note><para>This setting has no effect if the endpoint's one_touch_recording option is disabled</para></note>
-					</description>
-					<see-also>
-						<ref type="configOption">one_touch_recording</ref>
-						<ref type="configOption">record_off_feature</ref>
-					</see-also>
-				</configOption>
-				<configOption name="record_off_feature" default="automixmon">
-					<synopsis>The feature to enact when one-touch recording is turned off.</synopsis>
-					<description>
-						<para>When an INFO request for one-touch recording arrives with a Record header set to "off", this
-						feature will be enabled for the channel. The feature designated here can be any built-in
-						or dynamic feature defined in features.conf.</para>
-						<note><para>This setting has no effect if the endpoint's one_touch_recording option is disabled</para></note>
-					</description>
-					<see-also>
-						<ref type="configOption">one_touch_recording</ref>
-						<ref type="configOption">record_on_feature</ref>
-					</see-also>
-				</configOption>
-				<configOption name="rtp_engine" default="asterisk">
-					<synopsis>Name of the RTP engine to use for channels created for this endpoint</synopsis>
-				</configOption>
-				<configOption name="allow_transfer" default="yes">
-					<synopsis>Determines whether SIP REFER transfers are allowed for this endpoint</synopsis>
-				</configOption>
-				<configOption name="user_eq_phone" default="no">
-					<synopsis>Determines whether a user=phone parameter is placed into the request URI if the user is determined to be a phone number</synopsis>
-				</configOption>
-				<configOption name="moh_passthrough" default="no">
-					<synopsis>Determines whether hold and unhold will be passed through using re-INVITEs with recvonly and sendrecv to the remote side</synopsis>
-				</configOption>
-				<configOption name="sdp_owner" default="-">
-					<synopsis>String placed as the username portion of an SDP origin (o=) line.</synopsis>
-				</configOption>
-				<configOption name="sdp_session" default="Asterisk">
-					<synopsis>String used for the SDP session (s=) line.</synopsis>
-				</configOption>
-				<configOption name="tos_audio">
-					<synopsis>DSCP TOS bits for audio streams</synopsis>
-					<description><para>
-						See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service for more information about QoS settings
-					</para></description>
-				</configOption>
-				<configOption name="tos_video">
-					<synopsis>DSCP TOS bits for video streams</synopsis>
-					<description><para>
-						See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service for more information about QoS settings
-					</para></description>
-				</configOption>
-				<configOption name="cos_audio">
-					<synopsis>Priority for audio streams</synopsis>
-					<description><para>
-						See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service for more information about QoS settings
-					</para></description>
-				</configOption>
-				<configOption name="cos_video">
-					<synopsis>Priority for video streams</synopsis>
-					<description><para>
-						See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service for more information about QoS settings
-					</para></description>
-				</configOption>
-				<configOption name="allow_subscribe" default="yes">
-					<synopsis>Determines if endpoint is allowed to initiate subscriptions with Asterisk.</synopsis>
-				</configOption>
-				<configOption name="sub_min_expiry" default="60">
-					<synopsis>The minimum allowed expiry time for subscriptions initiated by the endpoint.</synopsis>
-				</configOption>
-				<configOption name="from_user">
-					<synopsis>Username to use in From header for requests to this endpoint.</synopsis>
-				</configOption>
-				<configOption name="mwi_from_user">
-					<synopsis>Username to use in From header for unsolicited MWI NOTIFYs to this endpoint.</synopsis>
-				</configOption>
-				<configOption name="from_domain">
-					<synopsis>Domain to user in From header for requests to this endpoint.</synopsis>
-				</configOption>
-				<configOption name="dtls_verify">
-					<synopsis>Verify that the provided peer certificate is valid</synopsis>
-					<description><para>
-						This option only applies if <replaceable>media_encryption</replaceable> is
-						set to <literal>dtls</literal>.
-						</para><para>
-						It can be one of the following values:
-						</para><enumlist>
-							<enum name="no"><para>
-								meaning no verification is done.
-							</para></enum>
-							<enum name="fingerprint"><para>
-								meaning to verify the remote fingerprint.
-							</para></enum>
-							<enum name="certificate"><para>
-								meaning to verify the remote certificate.
-							</para></enum>
-							<enum name="yes"><para>
-								meaning to verify both the remote fingerprint and certificate.
-							</para></enum>
-						</enumlist>
-					</description>
-				</configOption>
-				<configOption name="dtls_rekey">
-					<synopsis>Interval at which to renegotiate the TLS session and rekey the SRTP session</synopsis>
-					<description><para>
-						This option only applies if <replaceable>media_encryption</replaceable> is
-						set to <literal>dtls</literal>.
-					</para><para>
-						If this is not set or the value provided is 0 rekeying will be disabled.
-					</para></description>
-				</configOption>
-				<configOption name="dtls_auto_generate_cert" default="no">
-					<synopsis>Whether or not to automatically generate an ephemeral X.509 certificate</synopsis>
-					<description>
-						<para>
-							If enabled, Asterisk will generate an X.509 certificate for each DTLS session.
-							This option only applies if <replaceable>media_encryption</replaceable> is set
-							to <literal>dtls</literal>. This option will be automatically enabled if
-							<literal>webrtc</literal> is enabled and <literal>dtls_cert_file</literal> is
-							not specified.
-						</para>
-					</description>
-				</configOption>
-				<configOption name="dtls_cert_file">
-					<synopsis>Path to certificate file to present to peer</synopsis>
-					<description><para>
-						This option only applies if <replaceable>media_encryption</replaceable> is
-						set to <literal>dtls</literal>.
-					</para></description>
-				</configOption>
-				<configOption name="dtls_private_key">
-					<synopsis>Path to private key for certificate file</synopsis>
-					<description><para>
-						This option only applies if <replaceable>media_encryption</replaceable> is
-						set to <literal>dtls</literal>.
-					</para></description>
-				</configOption>
-				<configOption name="dtls_cipher">
-					<synopsis>Cipher to use for DTLS negotiation</synopsis>
-					<description><para>
-						This option only applies if <replaceable>media_encryption</replaceable> is
-						set to <literal>dtls</literal>.
-					</para>
-					<para>Many options for acceptable ciphers. See link for more:</para>
-					<para>http://www.openssl.org/docs/apps/ciphers.html#CIPHER_STRINGS
-					</para></description>
-				</configOption>
-				<configOption name="dtls_ca_file">
-					<synopsis>Path to certificate authority certificate</synopsis>
-					<description><para>
-						This option only applies if <replaceable>media_encryption</replaceable> is
-						set to <literal>dtls</literal>.
-					</para></description>
-				</configOption>
-				<configOption name="dtls_ca_path">
-					<synopsis>Path to a directory containing certificate authority certificates</synopsis>
-					<description><para>
-						This option only applies if <replaceable>media_encryption</replaceable> is
-						set to <literal>dtls</literal>.
-					</para></description>
-				</configOption>
-				<configOption name="dtls_setup">
-					<synopsis>Whether we are willing to accept connections, connect to the other party, or both.</synopsis>
-					<description>
-						<para>
-							This option only applies if <replaceable>media_encryption</replaceable> is
-							set to <literal>dtls</literal>.
-						</para>
-						<enumlist>
-							<enum name="active"><para>
-								res_pjsip will make a connection to the peer.
-							</para></enum>
-							<enum name="passive"><para>
-								res_pjsip will accept connections from the peer.
-							</para></enum>
-							<enum name="actpass"><para>
-								res_pjsip will offer and accept connections from the peer.
-							</para></enum>
-						</enumlist>
-					</description>
-				</configOption>
-				<configOption name="dtls_fingerprint">
-					<synopsis>Type of hash to use for the DTLS fingerprint in the SDP.</synopsis>
-					<description>
-						<para>
-							This option only applies if <replaceable>media_encryption</replaceable> is
-							set to <literal>dtls</literal>.
-						</para>
-						<enumlist>
-							<enum name="SHA-256"></enum>
-							<enum name="SHA-1"></enum>
-						</enumlist>
-					</description>
-				</configOption>
-				<configOption name="srtp_tag_32">
-					<synopsis>Determines whether 32 byte tags should be used instead of 80 byte tags.</synopsis>
-					<description><para>
-						This option only applies if <replaceable>media_encryption</replaceable> is
-						set to <literal>sdes</literal> or <literal>dtls</literal>.
-					</para></description>
-				</configOption>
-				<configOption name="set_var">
-					<synopsis>Variable set on a channel involving the endpoint.</synopsis>
-					<description><para>
-						When a new channel is created using the endpoint set the specified
-						variable(s) on that channel. For multiple channel variables specify
-						multiple 'set_var'(s).
-					</para></description>
-				</configOption>
-				<configOption name="message_context">
-					<synopsis>Context to route incoming MESSAGE requests to.</synopsis>
-					<description><para>
-						If specified, incoming MESSAGE requests will be routed to the indicated
-						dialplan context. If no <replaceable>message_context</replaceable> is
-						specified, then the <replaceable>context</replaceable> setting is used.
-					</para></description>
-				</configOption>
-				<configOption name="accountcode">
-					<synopsis>An accountcode to set automatically on any channels created for this endpoint.</synopsis>
-					<description><para>
-						If specified, any channel created for this endpoint will automatically
-						have this accountcode set on it.
-					</para></description>
-				</configOption>
-				<configOption name="preferred_codec_only" default="no">
-					<synopsis>Respond to a SIP invite with the single most preferred codec (DEPRECATED)</synopsis>
-					<description><para>Respond to a SIP invite with the single most preferred codec
-					rather than advertising all joint codec capabilities. This limits the other side's codec
-					choice to exactly what we prefer.</para>
-					<warning><para>This option has been deprecated in favor of
-					<literal>incoming_call_offer_pref</literal>.  Setting both options is unsupported.</para>
-					</warning>
-					</description>
-					<see-also>
-						<ref type="configOption">incoming_call_offer_pref</ref>
-					</see-also>
-				</configOption>
-				<configOption name="incoming_call_offer_pref" default="local">
-					<synopsis>Preferences for selecting codecs for an incoming call.</synopsis>
-					<description>
-						<para>Based on this setting, a joint list of preferred codecs between those
-						received in an incoming SDP offer (remote), and those specified in the
-						endpoint's "allow" parameter (local) es created and is passed to the Asterisk
-						core. </para>
-						<note><para>This list will consist of only those codecs found in both lists.</para></note>
-						<enumlist>
-							<enum name="local"><para>
-								Include all codecs in the local list that are also in the remote list
-								preserving the local order.  (default).
-							</para></enum>
-							<enum name="local_first"><para>
-								Include only the first codec in the local list that is also in the remote list.
-							</para></enum>
-							<enum name="remote"><para>
-								Include all codecs in the remote list that are also in the local list
-								preserving the remote order.
-							</para></enum>
-							<enum name="remote_first"><para>
-								Include only the first codec in the remote list that is also in the local list.
-							</para></enum>
-						</enumlist>
-					</description>
-				</configOption>
-				<configOption name="outgoing_call_offer_pref" default="remote_merge">
-					<synopsis>Preferences for selecting codecs for an outgoing call.</synopsis>
-					<description>
-						<para>Based on this setting, a joint list of preferred codecs between
-						those received from the Asterisk core (remote), and those specified in
-						the endpoint's "allow" parameter (local) is created and is used to create
-						the outgoing SDP offer.</para>
-						<enumlist>
-							<enum name="local"><para>
-								Include all codecs in the local list that are also in the remote list
-								preserving the local order.
-							</para></enum>
-							<enum name="local_merge"><para>
-								Include all codecs in the local list preserving the local order.
-							</para></enum>
-							<enum name="local_first"><para>
-								Include only the first codec in the local list.
-							</para></enum>
-							<enum name="remote"><para>
-								Include all codecs in the remote list that are also in the local list
-								preserving the remote order.
-							</para></enum>
-							<enum name="remote_merge"><para>
-                                                                Include all codecs in the local list preserving the remote order. (default)
-							</para></enum>
-							<enum name="remote_first"><para>
-								Include only the first codec in the remote list that is also in the local list.
-							</para></enum>
-						</enumlist>
-					</description>
-				</configOption>
-				<configOption name="rtp_keepalive">
-					<synopsis>Number of seconds between RTP comfort noise keepalive packets.</synopsis>
-					<description><para>
-						At the specified interval, Asterisk will send an RTP comfort noise frame. This may
-						be useful for situations where Asterisk is behind a NAT or firewall and must keep
-						a hole open in order to allow for media to arrive at Asterisk.
-					</para></description>
-				</configOption>
-				<configOption name="rtp_timeout" default="0">
-					<synopsis>Maximum number of seconds without receiving RTP (while off hold) before terminating call.</synopsis>
-					<description><para>
-						This option configures the number of seconds without RTP (while off hold) before
-						considering a channel as dead. When the number of seconds is reached the underlying
-						channel is hung up. By default this option is set to 0, which means do not check.
-					</para></description>
-				</configOption>
-				<configOption name="rtp_timeout_hold" default="0">
-					<synopsis>Maximum number of seconds without receiving RTP (while on hold) before terminating call.</synopsis>
-					<description><para>
-						This option configures the number of seconds without RTP (while on hold) before
-						considering a channel as dead. When the number of seconds is reached the underlying
-						channel is hung up. By default this option is set to 0, which means do not check.
-					</para></description>
-				</configOption>
-				<configOption name="acl">
-					<synopsis>List of IP ACL section names in acl.conf</synopsis>
-					<description><para>
-						This matches sections configured in <literal>acl.conf</literal>. The value is
-						defined as a list of comma-delimited section names.
-					</para></description>
-				</configOption>
-				<configOption name="deny">
-					<synopsis>List of IP addresses to deny access from</synopsis>
-					<description><para>
-						The value is a comma-delimited list of IP addresses. IP addresses may
-						have a subnet mask appended. The subnet mask may be written in either
-						CIDR or dotted-decimal notation. Separate the IP address and subnet
-						mask with a slash ('/')
-					</para></description>
-				</configOption>
-				<configOption name="permit">
-					<synopsis>List of IP addresses to permit access from</synopsis>
-					<description><para>
-						The value is a comma-delimited list of IP addresses. IP addresses may
-						have a subnet mask appended. The subnet mask may be written in either
-						CIDR or dotted-decimal notation. Separate the IP address and subnet
-						mask with a slash ('/')
-					</para></description>
-				</configOption>
-				<configOption name="contact_acl">
-					<synopsis>List of Contact ACL section names in acl.conf</synopsis>
-					<description><para>
-						This matches sections configured in <literal>acl.conf</literal>. The value is
-						defined as a list of comma-delimited section names.
-					</para></description>
-				</configOption>
-				<configOption name="contact_deny">
-					<synopsis>List of Contact header addresses to deny</synopsis>
-					<description><para>
-						The value is a comma-delimited list of IP addresses. IP addresses may
-						have a subnet mask appended. The subnet mask may be written in either
-						CIDR or dotted-decimal notation. Separate the IP address and subnet
-						mask with a slash ('/')
-					</para></description>
-				</configOption>
-				<configOption name="contact_permit">
-					<synopsis>List of Contact header addresses to permit</synopsis>
-					<description><para>
-						The value is a comma-delimited list of IP addresses. IP addresses may
-						have a subnet mask appended. The subnet mask may be written in either
-						CIDR or dotted-decimal notation. Separate the IP address and subnet
-						mask with a slash ('/')
-					</para></description>
-				</configOption>
-				<configOption name="subscribe_context">
-					<synopsis>Context for incoming MESSAGE requests.</synopsis>
-					<description><para>
-						If specified, incoming SUBSCRIBE requests will be searched for the matching
-						extension in the indicated context.
-						If no <replaceable>subscribe_context</replaceable> is specified,
-						then the <replaceable>context</replaceable> setting is used.
-					</para></description>
-				</configOption>
-				<configOption name="contact_user" default="">
-					<synopsis>Force the user on the outgoing Contact header to this value.</synopsis>
-					<description><para>
-						On outbound requests, force the user portion of the Contact header to this value.
-					</para></description>
-				</configOption>
-				<configOption name="asymmetric_rtp_codec" default="no">
-					<synopsis>Allow the sending and receiving RTP codec to differ</synopsis>
-					<description><para>
-						When set to "yes" the codec in use for sending will be allowed to differ from
-						that of the received one. PJSIP will not automatically switch the sending one
-						to the receiving one.
-					</para></description>
-				</configOption>
-				<configOption name="rtcp_mux" default="no">
-					<synopsis>Enable RFC 5761 RTCP multiplexing on the RTP port</synopsis>
-					<description><para>
-						With this option enabled, Asterisk will attempt to negotiate the use of the "rtcp-mux"
-						attribute on all media streams. This will result in RTP and RTCP being sent and received
-						on the same port. This shifts the demultiplexing logic to the application rather than
-						the transport layer. This option is useful when interoperating with WebRTC endpoints
-						since they mandate this option's use.
-					</para></description>
-				</configOption>
-				<configOption name="refer_blind_progress" default="yes">
-					<synopsis>Whether to notifies all the progress details on blind transfer</synopsis>
-					<description><para>
-						Some SIP phones (Mitel/Aastra, Snom) expect a sip/frag "200 OK"
-						after REFER has been accepted. If set to <literal>no</literal> then asterisk
-						will not send the progress details, but immediately will send "200 OK".
-					</para></description>
-				</configOption>
-				<configOption name="notify_early_inuse_ringing" default="no">
-					<synopsis>Whether to notifies dialog-info 'early' on InUse&amp;Ringing state</synopsis>
-					<description><para>
-						Control whether dialog-info subscriptions get 'early' state
-						on Ringing when already INUSE.
-					</para></description>
-				</configOption>
-				<configOption name="max_audio_streams" default="1">
-					<synopsis>The maximum number of allowed audio streams for the endpoint</synopsis>
-					<description><para>
-						This option enforces a limit on the maximum simultaneous negotiated audio
-						streams allowed for the endpoint.
-					</para></description>
-				</configOption>
-				<configOption name="max_video_streams" default="1">
-					<synopsis>The maximum number of allowed video streams for the endpoint</synopsis>
-					<description><para>
-						This option enforces a limit on the maximum simultaneous negotiated video
-						streams allowed for the endpoint.
-					</para></description>
-				</configOption>
-				<configOption name="bundle" default="no">
-					<synopsis>Enable RTP bundling</synopsis>
-					<description><para>
-						With this option enabled, Asterisk will attempt to negotiate the use of bundle.
-						If negotiated this will result in multiple RTP streams being carried over the same
-						underlying transport. Note that enabling bundle will also enable the rtcp_mux option.
-					</para></description>
-				</configOption>
-				<configOption name="webrtc" default="no">
-					<synopsis>Defaults and enables some options that are relevant to WebRTC</synopsis>
-					<description><para>
-						When set to "yes" this also enables the following values that are needed in
-						order for basic WebRTC support to work: rtcp_mux, use_avpf, ice_support, and
-						use_received_transport. The following configuration settings also get defaulted
-						as follows:</para>
-						<para>media_encryption=dtls</para>
-						<para>dtls_auto_generate_cert=yes (if dtls_cert_file is not set)</para>
-						<para>dtls_verify=fingerprint</para>
-						<para>dtls_setup=actpass</para>
-					</description>
-				</configOption>
-				<configOption name="incoming_mwi_mailbox">
-					<synopsis>Mailbox name to use when incoming MWI NOTIFYs are received</synopsis>
-					<description><para>
-						If an MWI NOTIFY is received <emphasis>from</emphasis> this endpoint,
-						this mailbox will be used when notifying other modules of MWI status
-						changes.  If not set, incoming MWI NOTIFYs are ignored.
-					</para></description>
-				</configOption>
-				<configOption name="follow_early_media_fork">
-					<synopsis>Follow SDP forked media when To tag is different</synopsis>
-					<description><para>
-						On outgoing calls, if the UAS responds with different SDP attributes
-						on subsequent 18X or 2XX responses (such as a port update) AND the
-						To tag on the subsequent response is different than that on the previous
-						one, follow it. This usually happens when the INVITE is forked to multiple
-						UASs and more than one sends an SDP answer.
-						</para>
-						<note><para>
-							This option must also be enabled in the <literal>system</literal>
-							section for it to take effect here.
-						</para></note>
-					</description>
-				</configOption>
-				<configOption name="accept_multiple_sdp_answers" default="no">
-					<synopsis>Accept multiple SDP answers on non-100rel responses</synopsis>
-					<description><para>
-						On outgoing calls, if the UAS responds with different SDP attributes
-						on non-100rel 18X or 2XX responses (such as a port update) AND the
-						To tag on the subsequent response is the same as that on the previous one,
-						process the updated SDP.  This can happen when the UAS needs to change ports
-						for some reason such as using a separate port for custom ringback.
-						</para>
-						<note><para>
-							This option must also be enabled in the <literal>system</literal>
-							section for it to take effect here.
-						</para></note>
-					</description>
-				</configOption>
-				<configOption name="suppress_q850_reason_headers" default="no">
-					<synopsis>Suppress Q.850 Reason headers for this endpoint</synopsis>
-					<description><para>
-						Some devices can't accept multiple Reason headers and get confused
-						when both 'SIP' and 'Q.850' Reason headers are received.  This
-						option allows the 'Q.850' Reason header to be suppressed.</para>
-					</description>
-				</configOption>
-				<configOption name="ignore_183_without_sdp" default="no">
-					<synopsis>Do not forward 183 when it doesn't contain SDP</synopsis>
-					<description><para>
-						Certain SS7 internetworking scenarios can result in a 183
-						to be generated for reasons other than early media.  Forwarding
-						this 183 can cause loss of ringback tone.  This flag emulates
-						the behavior of chan_sip and prevents these 183 responses from
-						being forwarded.</para>
-					</description>
-				</configOption>
-				<configOption name="stir_shaken" default="no">
-					<synopsis>Enable STIR/SHAKEN support on this endpoint</synopsis>
-					<description><para>
-						Enable STIR/SHAKEN support on this endpoint. On incoming INVITEs,
-						the Identity header will be checked for validity. On outgoing
-						INVITEs, an Identity header will be added.</para>
-					</description>
-				</configOption>
-				<configOption name="allow_unauthenticated_options" default="no">
-					<synopsis>Skip authentication when receiving OPTIONS requests</synopsis>
-					<description><para>
-						RFC 3261 says that the response to an OPTIONS request MUST be the
-						same had the request been an INVITE. Some UAs use OPTIONS requests
-						like a 'ping' and the expectation is that they will return a
-						200 OK.</para>
-						<para>Enabling <literal>allow_unauthenticated_options</literal>
-						will skip authentication of OPTIONS requests for the given
-						endpoint.</para>
-						<para>There are security implications to enabling this setting as
-						it can allow information disclosure to occur - specifically, if
-						enabled, an external party could enumerate and find the endpoint
-						name by sending OPTIONS requests and examining the
-						responses.</para>
-					</description>
-				</configOption>
-			</configObject>
-			<configObject name="auth">
-				<synopsis>Authentication type</synopsis>
-				<description><para>
-					Authentication objects hold the authentication information for use
-					by other objects such as <literal>endpoints</literal> or <literal>registrations</literal>.
-					This also allows for multiple objects to use a single auth object. See
-					the <literal>auth_type</literal> config option for password style choices.
-				</para></description>
-				<configOption name="auth_type" default="userpass">
-					<synopsis>Authentication type</synopsis>
-					<description><para>
-						This option specifies which of the password style config options should be read
-						when trying to authenticate an endpoint inbound request. If set to <literal>userpass</literal>
-						then we'll read from the 'password' option. For <literal>md5</literal> we'll read
-						from 'md5_cred'. If set to <literal>google_oauth</literal> then we'll read from the
-						refresh_token/oauth_clientid/oauth_secret fields. The following values are valid:
-						</para>
-						<enumlist>
-							<enum name="md5"/>
-							<enum name="userpass"/>
-							<enum name="google_oauth"/>
-						</enumlist>
-						<para>
-						</para>
-						<note>
-							<para>
-								This setting only describes whether the password is in
-								plain text or has been pre-hashed with MD5.  It doesn't describe
-								the acceptable digest algorithms we'll accept in a received
-								challenge.
-							</para>
-						</note>
-					</description>
-				</configOption>
-				<configOption name="nonce_lifetime" default="32">
-					<synopsis>Lifetime of a nonce associated with this authentication config.</synopsis>
-				</configOption>
-				<configOption name="md5_cred" default="">
-					<synopsis>MD5 Hash used for authentication.</synopsis>
-					<description><para>
-						Only used when auth_type is <literal>md5</literal>.
-						As an alternative to specifying a plain text password,
-						you can hash the username, realm and password
-						together one time and place the hash value here.
-						The input to the hash function must be in the
-						following format:
-						</para>
-						<para>
-						</para>
-						<para>
-						&lt;username&gt;:&lt;realm&gt;:&lt;password&gt;
-						</para>
-						<para>
-						</para>
-						<para>
-						For incoming authentication (asterisk is the server),
-						the realm must match either the realm set in this object
-						or the <variable>default_realm</variable> set in in the
-						<replaceable>global</replaceable> object.
-						</para>
-						<para>
-						</para>
-						<para>
-						For outgoing authentication (asterisk is the UAC),
-						the realm must match what the server will be sending
-						in their WWW-Authenticate header.  It can't be blank
-						unless you expect the server to be sending a blank
-						realm in the header.  You can't use pre-hashed
-						passwords with a wildcard auth object.
-						You can generate the hash with the following shell
-						command:
-						</para>
-						<para>
-						</para>
-						<para>
-						$ echo -n "myname:myrealm:mypassword" | md5sum
-						</para>
-						<para>
-						</para>
-						<para>
-						Note the '-n'.  You don't want a newline to be part
-						of the hash.
-					</para></description>
-				</configOption>
-				<configOption name="password">
-					<synopsis>Plain text password used for authentication.</synopsis>
-					<description><para>Only used when auth_type is <literal>userpass</literal>.</para></description>
-				</configOption>
-				<configOption name="refresh_token">
-					<synopsis>OAuth 2.0 refresh token</synopsis>
-				</configOption>
-				<configOption name="oauth_clientid">
-					<synopsis>OAuth 2.0 application's client id</synopsis>
-				</configOption>
-				<configOption name="oauth_secret">
-					<synopsis>OAuth 2.0 application's secret</synopsis>
-				</configOption>
-				<configOption name="realm" default="">
-					<synopsis>SIP realm for endpoint</synopsis>
-					<description><para>
-						For incoming authentication (asterisk is the UAS),
-						this is the realm to be sent on WWW-Authenticate
-						headers.  If not specified, the <replaceable>global</replaceable>
-						object's <variable>default_realm</variable> will be used.
-						</para>
-						<para>
-						</para>
-						<para>
-						For outgoing authentication (asterisk is the UAC), this
-						must either be the realm the server is expected to send,
-						or left blank or contain a single '*' to automatically
-						use the realm sent by the server. If you have multiple
-						auth objects for an endpoint, the realm is also used to
-						match the auth object to the realm the server sent.
-						</para>
-						<para>
-						</para>
-						<note>
-						<para>
-						Using the same auth section for inbound and outbound
-						authentication is not recommended.  There is a difference in
-						meaning for an empty realm setting between inbound and outbound
-						authentication uses.
-						</para>
-						</note>
-						<para>
-						</para>
-						<note>
-							<para>
-								If more than one auth object with the same realm or
-								more than one wildcard auth object associated to
-								an endpoint, we can only use the first one of
-								each defined on the endpoint.
-							</para>
-						</note>
-					</description>
-				</configOption>
-				<configOption name="type">
-					<synopsis>Must be 'auth'</synopsis>
-				</configOption>
-				<configOption name="username">
-					<synopsis>Username to use for account</synopsis>
-				</configOption>
-			</configObject>
-			<configObject name="domain_alias">
-				<synopsis>Domain Alias</synopsis>
-				<description><para>
-					Signifies that a domain is an alias. If the domain on a session is
-					not found to match an AoR then this object is used to see if we have
-					an alias for the AoR to which the endpoint is binding. This objects
-					name as defined in configuration should be the domain alias and a
-					config option is provided to specify the domain to be aliased.
-				</para></description>
-				<configOption name="type">
-					<synopsis>Must be of type 'domain_alias'.</synopsis>
-				</configOption>
-				<configOption name="domain">
-					<synopsis>Domain to be aliased</synopsis>
-				</configOption>
-			</configObject>
-			<configObject name="transport">
-				<synopsis>SIP Transport</synopsis>
-				<description><para>
-					<emphasis>Transports</emphasis>
-					</para>
-					<para>There are different transports and protocol derivatives
-						supported by <literal>res_pjsip</literal>. They are in order of
-						preference: UDP, TCP, and WebSocket (WS).</para>
-					<note><para>Changes to transport configuration in pjsip.conf will only be
-						effected on a complete restart of Asterisk. A module reload
-						will not suffice.</para></note>
-				</description>
-				<configOption name="async_operations" default="1">
-					<synopsis>Number of simultaneous Asynchronous Operations</synopsis>
-				</configOption>
-				<configOption name="bind">
-					<synopsis>IP Address and optional port to bind to for this transport</synopsis>
-				</configOption>
-				<configOption name="ca_list_file">
-					<synopsis>File containing a list of certificates to read (TLS ONLY, not WSS)</synopsis>
-				</configOption>
-				<configOption name="ca_list_path">
-					<synopsis>Path to directory containing a list of certificates to read (TLS ONLY, not WSS)</synopsis>
-				</configOption>
-				<configOption name="cert_file">
-					<synopsis>Certificate file for endpoint (TLS ONLY, not WSS)</synopsis>
-					<description><para>
-						A path to a .crt or .pem file can be provided.  However, only
-						the certificate is read from the file, not the private key.
-						The <literal>priv_key_file</literal> option must supply a
-						matching key file.
-					</para></description>
-				</configOption>
-				<configOption name="cipher">
-					<synopsis>Preferred cryptography cipher names (TLS ONLY, not WSS)</synopsis>
-					<description>
-					<para>Comma separated list of cipher names or numeric equivalents.
-						Numeric equivalents can be either decimal or hexadecimal (0xX).
-					</para>
-					<para>There are many cipher names.  Use the CLI command
-						<literal>pjsip list ciphers</literal> to see a list of cipher
-						names available for your installation.  See link for more:</para>
-					<para>http://www.openssl.org/docs/apps/ciphers.html#CIPHER_SUITE_NAMES
-					</para>
-					</description>
-				</configOption>
-				<configOption name="domain">
-					<synopsis>Domain the transport comes from</synopsis>
-				</configOption>
-				<configOption name="external_media_address">
-					<synopsis>External IP address to use in RTP handling</synopsis>
-					<description><para>
-						When a request or response is sent out, if the destination of the
-						message is outside the IP network defined in the option <literal>localnet</literal>,
-						and the media address in the SDP is within the localnet network, then the
-						media address in the SDP will be rewritten to the value defined for
-						<literal>external_media_address</literal>.
-					</para></description>
-				</configOption>
-				<configOption name="external_signaling_address">
-					<synopsis>External address for SIP signalling</synopsis>
-				</configOption>
-				<configOption name="external_signaling_port" default="0">
-					<synopsis>External port for SIP signalling</synopsis>
-				</configOption>
-				<configOption name="method">
-					<synopsis>Method of SSL transport (TLS ONLY, not WSS)</synopsis>
-					<description>
-						<enumlist>
-							<enum name="default">
-								<para>The default as defined by PJSIP. This is currently TLSv1, but may change with future releases.</para>
-							</enum>
-							<enum name="unspecified">
-								<para>This option is equivalent to setting 'default'</para>
-							</enum>
-							<enum name="tlsv1" />
-							<enum name="tlsv1_1" />
-							<enum name="tlsv1_2" />
-							<enum name="sslv2" />
-							<enum name="sslv3" />
-							<enum name="sslv23" />
-						</enumlist>
-					</description>
-				</configOption>
-				<configOption name="local_net">
-					<synopsis>Network to consider local (used for NAT purposes).</synopsis>
-					<description><para>This must be in CIDR or dotted decimal format with the IP
-					and mask separated with a slash ('/').</para></description>
-				</configOption>
-				<configOption name="password">
-					<synopsis>Password required for transport</synopsis>
-				</configOption>
-				<configOption name="priv_key_file">
-					<synopsis>Private key file (TLS ONLY, not WSS)</synopsis>
-				</configOption>
-				<configOption name="protocol" default="udp">
-					<synopsis>Protocol to use for SIP traffic</synopsis>
-					<description>
-						<enumlist>
-							<enum name="udp" />
-							<enum name="tcp" />
-							<enum name="tls" />
-							<enum name="ws" />
-							<enum name="wss" />
-							<enum name="flow" />
-						</enumlist>
-					</description>
-				</configOption>
-				<configOption name="require_client_cert" default="false">
-					<synopsis>Require client certificate (TLS ONLY, not WSS)</synopsis>
-				</configOption>
-				<configOption name="type">
-					<synopsis>Must be of type 'transport'.</synopsis>
-				</configOption>
-				<configOption name="verify_client" default="false">
-					<synopsis>Require verification of client certificate (TLS ONLY, not WSS)</synopsis>
-				</configOption>
-				<configOption name="verify_server" default="false">
-					<synopsis>Require verification of server certificate (TLS ONLY, not WSS)</synopsis>
-				</configOption>
-				<configOption name="tos" default="false">
-					<synopsis>Enable TOS for the signalling sent over this transport</synopsis>
-					<description>
-					<para>See <literal>https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service</literal>
-					for more information on this parameter.</para>
-					<note><para>This option does not apply to the <replaceable>ws</replaceable>
-					or the <replaceable>wss</replaceable> protocols.</para></note>
-					</description>
-				</configOption>
-				<configOption name="cos" default="false">
-					<synopsis>Enable COS for the signalling sent over this transport</synopsis>
-					<description>
-					<para>See <literal>https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service</literal>
-					for more information on this parameter.</para>
-					<note><para>This option does not apply to the <replaceable>ws</replaceable>
-					or the <replaceable>wss</replaceable> protocols.</para></note>
-					</description>
-				</configOption>
-				<configOption name="websocket_write_timeout" default="100">
-					<synopsis>The timeout (in milliseconds) to set on WebSocket connections.</synopsis>
-					<description>
-						<para>If a websocket connection accepts input slowly, the timeout
-						for writes to it can be increased to keep it from being disconnected.
-						Value is in milliseconds.</para>
-					</description>
-				</configOption>
-				<configOption name="allow_reload" default="no">
-					<synopsis>Allow this transport to be reloaded.</synopsis>
-					<description>
-						<para>Allow this transport to be reloaded when res_pjsip is reloaded.
-						This option defaults to "no" because reloading a transport may disrupt
-						in-progress calls.</para>
-					</description>
-				</configOption>
-				<configOption name="symmetric_transport" default="no">
-					<synopsis>Use the same transport for outgoing requests as incoming ones.</synopsis>
-					<description>
-						<para>When a request from a dynamic contact
-							comes in on a transport with this option set to 'yes',
-							the transport name will be saved and used for subsequent
-							outgoing requests like OPTIONS, NOTIFY and INVITE.  It's
-							saved as a contact uri parameter named 'x-ast-txp' and will
-							display with the contact uri in CLI, AMI, and ARI output.
-							On the outgoing request, if a transport wasn't explicitly
-							set on the endpoint AND the request URI is not a hostname,
-							the saved transport will be used and the 'x-ast-txp'
-							parameter stripped from the outgoing packet.
-						</para>
-					</description>
-				</configOption>
-			</configObject>
-			<configObject name="contact">
-				<synopsis>A way of creating an aliased name to a SIP URI</synopsis>
-				<description><para>
-					Contacts are a way to hide SIP URIs from the dialplan directly.
-					They are also used to make a group of contactable parties when
-					in use with <literal>AoR</literal> lists.
-				</para></description>
-				<configOption name="type">
-					<synopsis>Must be of type 'contact'.</synopsis>
-				</configOption>
-				<configOption name="uri">
-					<synopsis>SIP URI to contact peer</synopsis>
-				</configOption>
-				<configOption name="expiration_time">
-					<synopsis>Time to keep alive a contact</synopsis>
-					<description><para>
-						Time to keep alive a contact. String style specification.
-					</para></description>
-				</configOption>
-				<configOption name="qualify_frequency" default="0">
-					<synopsis>Interval at which to qualify a contact</synopsis>
-					<description><para>
-						Interval between attempts to qualify the contact for reachability.
-						If <literal>0</literal> never qualify. Time in seconds.
-					</para></description>
-				</configOption>
-				<configOption name="qualify_timeout" default="3.0">
-					<synopsis>Timeout for qualify</synopsis>
-					<description><para>
-						If the contact doesn't respond to the OPTIONS request before the timeout,
-						the contact is marked unavailable.
-						If <literal>0</literal> no timeout. Time in fractional seconds.
-					</para></description>
-				</configOption>
-				<configOption name="authenticate_qualify">
-					<synopsis>Authenticates a qualify challenge response if needed</synopsis>
-					<description>
-						<para>If true and a qualify request receives a challenge response then
-						authentication is attempted before declaring the contact available.
-						</para>
-						<note><para>This option does nothing as we will always complete
-						the challenge response authentication if the qualify request is
-						challenged.
-						</para></note>
-					</description>
-				</configOption>
-				<configOption name="outbound_proxy">
-					<synopsis>Outbound proxy used when sending OPTIONS request</synopsis>
-					<description><para>
-						If set the provided URI will be used as the outbound proxy when an
-						OPTIONS request is sent to a contact for qualify purposes.
-					</para></description>
-				</configOption>
-				<configOption name="path">
-					<synopsis>Stored Path vector for use in Route headers on outgoing requests.</synopsis>
-				</configOption>
-				<configOption name="user_agent">
-					<synopsis>User-Agent header from registration.</synopsis>
-					<description><para>
-						The User-Agent is automatically stored based on data present in incoming SIP
-						REGISTER requests and is not intended to be configured manually.
-					</para></description>
-				</configOption>
-				<configOption name="endpoint">
-					<synopsis>Endpoint name</synopsis>
-					<description><para>
-						The name of the endpoint this contact belongs to
-					</para></description>
-				</configOption>
-				<configOption name="reg_server">
-					<synopsis>Asterisk Server name</synopsis>
-					<description><para>
-						Asterisk Server name on which SIP endpoint registered.
-					</para></description>
-				</configOption>
-				<configOption name="via_addr">
-					<synopsis>IP-address of the last Via header from registration.</synopsis>
-					<description><para>
-						The last Via header should contain the address of UA which sent the request.
-						The IP-address of the last Via header is automatically stored based on data present
-						in incoming SIP REGISTER requests and is not intended to be configured manually.
-					</para></description>
-				</configOption>
-				<configOption name="via_port">
-					<synopsis>IP-port of the last Via header from registration.</synopsis>
-					<description><para>
-						The IP-port of the last Via header is automatically stored based on data present
-						in incoming SIP REGISTER requests and is not intended to be configured manually.
-					</para></description>
-				</configOption>
-				<configOption name="call_id">
-					<synopsis>Call-ID header from registration.</synopsis>
-					<description><para>
-						The Call-ID header is automatically stored based on data present
-						in incoming SIP REGISTER requests and is not intended to be configured manually.
-					</para></description>
-				</configOption>
-				<configOption name="prune_on_boot">
-					<synopsis>A contact that cannot survive a restart/boot.</synopsis>
-					<description><para>
-						The option is set if the incoming SIP REGISTER contact is rewritten
-						on a reliable transport and is not intended to be configured manually.
-					</para></description>
-				</configOption>
-			</configObject>
-			<configObject name="aor">
-				<synopsis>The configuration for a location of an endpoint</synopsis>
-				<description><para>
-					An AoR is what allows Asterisk to contact an endpoint via res_pjsip. If no
-					AoRs are specified, an endpoint will not be reachable by Asterisk.
-					Beyond that, an AoR has other uses within Asterisk, such as inbound
-					registration.
-					</para><para>
-					An <literal>AoR</literal> is a way to allow dialing a group
-					of <literal>Contacts</literal> that all use the same
-					<literal>endpoint</literal> for calls.
-					</para><para>
-					This can be used as another way of grouping a list of contacts to dial
-					rather than specifying them each directly when dialing via the dialplan.
-					This must be used in conjunction with the <literal>PJSIP_DIAL_CONTACTS</literal>.
-					</para><para>
-					Registrations: For Asterisk to match an inbound registration to an endpoint,
-					the AoR object name must match the user portion of the SIP URI in the "To:"
-					header of the inbound SIP registration. That will usually be equivalent
-					to the "user name" set in your hard or soft phones configuration.
-				</para></description>
-				<configOption name="contact">
-					<synopsis>Permanent contacts assigned to AoR</synopsis>
-					<description><para>
-						Contacts specified will be called whenever referenced
-						by <literal>chan_pjsip</literal>.
-						</para><para>
-						Use a separate "contact=" entry for each contact required. Contacts
-						are specified using a SIP URI.
-					</para></description>
-				</configOption>
-				<configOption name="default_expiration" default="3600">
-					<synopsis>Default expiration time in seconds for contacts that are dynamically bound to an AoR.</synopsis>
-				</configOption>
-				<configOption name="mailboxes">
-					<synopsis>Allow subscriptions for the specified mailbox(es)</synopsis>
-					<description><para>This option applies when an external entity subscribes to an AoR
-						for Message Waiting Indications. The mailboxes specified will be subscribed to.
-						More than one mailbox can be specified with a comma-delimited string.
-						app_voicemail mailboxes must be specified as mailbox@context;
-						for example: mailboxes=6001@default. For mailboxes provided by external sources,
-						such as through the res_mwi_external module, you must specify strings supported by
-						the external system.
-					</para><para>
-						For endpoints that cannot SUBSCRIBE for MWI, you can set the <literal>mailboxes</literal> option in your
-						endpoint configuration section to enable unsolicited MWI NOTIFYs to the endpoint.
-					</para></description>
-				</configOption>
-				<configOption name="voicemail_extension">
-					<synopsis>The voicemail extension to send in the NOTIFY Message-Account header</synopsis>
-				</configOption>
-				<configOption name="maximum_expiration" default="7200">
-					<synopsis>Maximum time to keep an AoR</synopsis>
-					<description><para>
-						Maximum time to keep a peer with explicit expiration. Time in seconds.
-					</para></description>
-				</configOption>
-				<configOption name="max_contacts" default="0">
-					<synopsis>Maximum number of contacts that can bind to an AoR</synopsis>
-					<description><para>
-						Maximum number of contacts that can associate with this AoR. This value does
-						not affect the number of contacts that can be added with the "contact" option.
-						It only limits contacts added through external interaction, such as
-						registration.
-						</para>
-						<note><para>The <replaceable>rewrite_contact</replaceable> option
-						registers the source address as the contact address to help with
-						NAT and reusing connection oriented transports such as TCP and
-						TLS.  Unfortunately, refreshing a registration may register a
-						different contact address and exceed
-						<replaceable>max_contacts</replaceable>.  The
-						<replaceable>remove_existing</replaceable> and
-						<replaceable>remove_unavailable</replaceable> options can help by
-						removing either the soonest to expire or unavailable contact(s) over
-						<replaceable>max_contacts</replaceable> which is likely the
-						old <replaceable>rewrite_contact</replaceable> contact source
-						address being refreshed.
-						</para></note>
-						<note><para>This should be set to <literal>1</literal> and
-						<replaceable>remove_existing</replaceable> set to <literal>yes</literal> if you
-						wish to stick with the older <literal>chan_sip</literal> behaviour.
-						</para></note>
-					</description>
-				</configOption>
-				<configOption name="minimum_expiration" default="60">
-					<synopsis>Minimum keep alive time for an AoR</synopsis>
-					<description><para>
-						Minimum time to keep a peer with an explicit expiration. Time in seconds.
-					</para></description>
-				</configOption>
-				<configOption name="remove_existing" default="no">
-					<synopsis>Determines whether new contacts replace existing ones.</synopsis>
-					<description><para>
-						On receiving a new registration to the AoR should it remove enough
-						existing contacts not added or updated by the registration to
-						satisfy <replaceable>max_contacts</replaceable>?  Any removed
-						contacts will expire the soonest.
-						</para>
-						<note><para>The <replaceable>rewrite_contact</replaceable> option
-						registers the source address as the contact address to help with
-						NAT and reusing connection oriented transports such as TCP and
-						TLS.  Unfortunately, refreshing a registration may register a
-						different contact address and exceed
-						<replaceable>max_contacts</replaceable>.  The
-						<replaceable>remove_existing</replaceable> option can help by
-						removing the soonest to expire contact(s) over
-						<replaceable>max_contacts</replaceable> which is likely the
-						old <replaceable>rewrite_contact</replaceable> contact source
-						address being refreshed.
-						</para></note>
-						<note><para>This should be set to <literal>yes</literal> and
-						<replaceable>max_contacts</replaceable> set to <literal>1</literal> if you
-						wish to stick with the older <literal>chan_sip</literal> behaviour.
-						</para></note>
-					</description>
-				</configOption>
-				<configOption name="remove_unavailable" default="no">
-					<synopsis>Determines whether new contacts should replace unavailable ones.</synopsis>
-					<description><para>
-						The effect of this setting depends on the setting of
-						<replaceable>remove_existing</replaceable>.</para>
-						<para>If <replaceable>remove_existing</replaceable> is set to
-						<literal>no</literal> (default), setting remove_unavailable to
-						<literal>yes</literal> will remove only unavailable contacts that exceed
-						<replaceable>max_contacts</replaceable>	to allow an incoming
-						REGISTER to complete sucessfully.</para>
-						<para>If <replaceable>remove_existing</replaceable> is set to
-						<literal>yes</literal>, setting remove_unavailable to
-						<literal>yes</literal> will prioritize unavailable contacts for removal
-						instead of just removing the contact that expires the soonest.</para>
-						<note><para>See <replaceable>remove_existing</replaceable> and
-						<replaceable>max_contacts</replaceable> for further information about how
-						these 3 settings interact.
-						</para></note>
-					</description>
-				</configOption>
-				<configOption name="type">
-					<synopsis>Must be of type 'aor'.</synopsis>
-				</configOption>
-				<configOption name="qualify_frequency" default="0">
-					<synopsis>Interval at which to qualify an AoR</synopsis>
-					<description><para>
-						Interval between attempts to qualify the AoR for reachability.
-						If <literal>0</literal> never qualify. Time in seconds.
-					</para></description>
-				</configOption>
-				<configOption name="qualify_timeout" default="3.0">
-					<synopsis>Timeout for qualify</synopsis>
-					<description><para>
-						If the contact doesn't respond to the OPTIONS request before the timeout,
-						the contact is marked unavailable.
-						If <literal>0</literal> no timeout. Time in fractional seconds.
-					</para></description>
-				</configOption>
-				<configOption name="authenticate_qualify">
-					<synopsis>Authenticates a qualify challenge response if needed</synopsis>
-					<description>
-						<para>If true and a qualify request receives a challenge response then
-						authentication is attempted before declaring the contact available.
-						</para>
-						<note><para>This option does nothing as we will always complete
-						the challenge response authentication if the qualify request is
-						challenged.
-						</para></note>
-					</description>
-				</configOption>
-				<configOption name="outbound_proxy">
-					<synopsis>Outbound proxy used when sending OPTIONS request</synopsis>
-					<description><para>
-						If set the provided URI will be used as the outbound proxy when an
-						OPTIONS request is sent to a contact for qualify purposes.
-					</para></description>
-				</configOption>
-				<configOption name="support_path">
-					<synopsis>Enables Path support for REGISTER requests and Route support for other requests.</synopsis>
-					<description><para>
-						When this option is enabled, the Path headers in register requests will be saved
-						and its contents will be used in Route headers for outbound out-of-dialog requests
-						and in Path headers for outbound 200 responses. Path support will also be indicated
-						in the Supported header.
-					</para></description>
-				</configOption>
-			</configObject>
-			<configObject name="system">
-				<synopsis>Options that apply to the SIP stack as well as other system-wide settings</synopsis>
-				<description><para>
-					The settings in this section are global. In addition to being global, the values will
-					not be re-evaluated when a reload is performed. This is because the values must be set
-					before the SIP stack is initialized. The only way to reset these values is to either
-					restart Asterisk, or unload res_pjsip.so and then load it again.
-				</para></description>
-				<configOption name="timer_t1" default="500">
-					<synopsis>Set transaction timer T1 value (milliseconds).</synopsis>
-					<description><para>
-						Timer T1 is the base for determining how long to wait before retransmitting
-						requests that receive no response when using an unreliable transport (e.g. UDP).
-						For more information on this timer, see RFC 3261, Section 17.1.1.1.
-					</para></description>
-				</configOption>
-				<configOption name="timer_b" default="32000">
-					<synopsis>Set transaction timer B value (milliseconds).</synopsis>
-					<description><para>
-						Timer B determines the maximum amount of time to wait after sending an INVITE
-						request before terminating the transaction. It is recommended that this be set
-						to 64 * Timer T1, but it may be set higher if desired. For more information on
-						this timer, see RFC 3261, Section 17.1.1.1.
-					</para></description>
-				</configOption>
-				<configOption name="compact_headers" default="no">
-					<synopsis>Use the short forms of common SIP header names.</synopsis>
-				</configOption>
-				<configOption name="threadpool_initial_size" default="0">
-					<synopsis>Initial number of threads in the res_pjsip threadpool.</synopsis>
-				</configOption>
-				<configOption name="threadpool_auto_increment" default="5">
-					<synopsis>The amount by which the number of threads is incremented when necessary.</synopsis>
-				</configOption>
-				<configOption name="threadpool_idle_timeout" default="60">
-					<synopsis>Number of seconds before an idle thread should be disposed of.</synopsis>
-				</configOption>
-				<configOption name="threadpool_max_size" default="0">
-					<synopsis>Maximum number of threads in the res_pjsip threadpool.
-					A value of 0 indicates no maximum.</synopsis>
-				</configOption>
-				<configOption name="disable_tcp_switch" default="yes">
-					<synopsis>Disable automatic switching from UDP to TCP transports.</synopsis>
-					<description><para>
-						Disable automatic switching from UDP to TCP transports if outgoing
-						request is too large.  See RFC 3261 section 18.1.1.
-					</para></description>
-				</configOption>
-				<configOption name="follow_early_media_fork">
-					<synopsis>Follow SDP forked media when To tag is different</synopsis>
-					<description><para>
-						On outgoing calls, if the UAS responds with different SDP attributes
-						on subsequent 18X or 2XX responses (such as a port update) AND the
-						To tag on the subsequent response is different than that on the previous
-						one, follow it.
-						</para>
-						<note><para>
-							This option must also be enabled on endpoints that require
-							this functionality.
-						</para></note>
-					</description>
-				</configOption>
-				<configOption name="accept_multiple_sdp_answers">
-					<synopsis>Follow SDP forked media when To tag is the same</synopsis>
-					<description><para>
-						On outgoing calls, if the UAS responds with different SDP attributes
-						on non-100rel 18X or 2XX responses (such as a port update) AND the
-						To tag on the subsequent response is the same as that on the previous one,
-						process the updated SDP.
-						</para>
-						<note><para>
-							This option must also be enabled on endpoints that require
-							this functionality.
-						</para></note>
-					</description>
-				</configOption>
-				<configOption name="disable_rport" default="no">
-					<synopsis>Disable the use of rport in outgoing requests.</synopsis>
-					<description><para>
-						Remove "rport" parameter from the outgoing requests.
-					</para></description>
-				</configOption>
-				<configOption name="type">
-					<synopsis>Must be of type 'system' UNLESS the object name is 'system'.</synopsis>
-				</configOption>
-			</configObject>
-			<configObject name="global">
-				<synopsis>Options that apply globally to all SIP communications</synopsis>
-				<description><para>
-					The settings in this section are global. Unlike options in the <literal>system</literal>
-					section, these options can be refreshed by performing a reload.
-				</para></description>
-				<configOption name="max_forwards" default="70">
-					<synopsis>Value used in Max-Forwards header for SIP requests.</synopsis>
-				</configOption>
-				<configOption name="keep_alive_interval" default="90">
-					<synopsis>The interval (in seconds) to send keepalives to active connection-oriented transports.</synopsis>
-				</configOption>
-				<configOption name="contact_expiration_check_interval" default="30">
-					<synopsis>The interval (in seconds) to check for expired contacts.</synopsis>
-				</configOption>
-				<configOption name="disable_multi_domain" default="no">
-					<synopsis>Disable Multi Domain support</synopsis>
-					<description><para>
-						If disabled it can improve realtime performance by reducing the number of database requests.
-					</para></description>
-				</configOption>
-				<configOption name="max_initial_qualify_time" default="0">
-					<synopsis>The maximum amount of time from startup that qualifies should be attempted on all contacts.
-					If greater than the qualify_frequency for an aor, qualify_frequency will be used instead.</synopsis>
-				</configOption>
-				<configOption name="unidentified_request_period" default="5">
-					<synopsis>The number of seconds over which to accumulate unidentified requests.</synopsis>
-					<description><para>
-					If <literal>unidentified_request_count</literal> unidentified requests are received
-					during <literal>unidentified_request_period</literal>, a security event will be generated.
-					</para></description>
-				</configOption>
-				<configOption name="unidentified_request_count" default="5">
-					<synopsis>The number of unidentified requests from a single IP to allow.</synopsis>
-					<description><para>
-					If <literal>unidentified_request_count</literal> unidentified requests are received
-					during <literal>unidentified_request_period</literal>, a security event will be generated.
-					</para></description>
-				</configOption>
-				<configOption name="unidentified_request_prune_interval" default="30">
-					<synopsis>The interval at which unidentified requests are older than
-					twice the unidentified_request_period are pruned.</synopsis>
-				</configOption>
-				<configOption name="type">
-					<synopsis>Must be of type 'global' UNLESS the object name is 'global'.</synopsis>
-				</configOption>
-				<configOption name="user_agent" default="Asterisk &lt;Asterisk Version&gt;">
-					<synopsis>Value used in User-Agent header for SIP requests and Server header for SIP responses.</synopsis>
-				</configOption>
-				<configOption name="regcontext" default="">
-					<synopsis>When set, Asterisk will dynamically create and destroy a NoOp priority 1 extension for a given
-						peer who registers or unregisters with us.</synopsis>
-				</configOption>
-				<configOption name="default_outbound_endpoint" default="default_outbound_endpoint">
-					<synopsis>Endpoint to use when sending an outbound request to a URI without a specified endpoint.</synopsis>
-				</configOption>
-				<configOption name="default_voicemail_extension">
-					<synopsis>The voicemail extension to send in the NOTIFY Message-Account header if not specified on endpoint or aor</synopsis>
-				</configOption>
-				<configOption name="debug" default="no">
-					<synopsis>Enable/Disable SIP debug logging.  Valid options include yes, no, or
-						a host address</synopsis>
-				</configOption>
-				<configOption name="endpoint_identifier_order">
-					<synopsis>The order by which endpoint identifiers are processed and checked.
-						Identifier names are usually derived from and can be found in the endpoint
-						identifier module itself (res_pjsip_endpoint_identifier_*).
-						You can use the CLI command "pjsip show identifiers" to see the
-						identifiers currently available.</synopsis>
-					<description>
-						<note><para>
-						One of the identifiers is "auth_username" which matches on the username in
-						an Authentication header.  This method has some security considerations because an
-						Authentication header is not present on the first message of a dialog when
-						digest authentication is used.  The client can't generate it until the server
-						sends the challenge in a 401 response.  Since Asterisk normally sends a security
-						event when an incoming request can't be matched to an endpoint, using auth_username
-						requires that the security event be deferred until a request is received with
-						the Authentication header and only generated if the username doesn't result in a
-						match.  This may result in a delay before an attack is recognized.  You can control
-						how many unmatched requests are received from a single ip address before a security
-						event is generated using the unidentified_request parameters.
-						</para></note>
-					</description>
-				</configOption>
-				<configOption name="default_from_user" default="asterisk">
-					<synopsis>When Asterisk generates an outgoing SIP request, the From header username will be
-						set to this value if there is no better option (such as CallerID) to be
-						used.</synopsis>
-				</configOption>
-				<configOption name="default_realm" default="asterisk">
-					<synopsis>When Asterisk generates a challenge, the digest realm will be
-						set to this value if there is no better option (such as auth/realm) to be
-						used.</synopsis>
-				</configOption>
-				<configOption name="mwi_tps_queue_high" default="500">
-					<synopsis>MWI taskprocessor high water alert trigger level.</synopsis>
-					<description>
-						<para>On a heavily loaded system you may need to adjust the
-						taskprocessor queue limits.  If any taskprocessor queue size
-						reaches its high water level then pjsip will stop processing
-						new requests until the alert is cleared.  The alert clears
-						when all alerting taskprocessor queues have dropped to their
-						low water clear level.
-						</para>
-					</description>
-				</configOption>
-				<configOption name="mwi_tps_queue_low" default="-1">
-					<synopsis>MWI taskprocessor low water clear alert level.</synopsis>
-					<description>
-						<para>On a heavily loaded system you may need to adjust the
-						taskprocessor queue limits.  If any taskprocessor queue size
-						reaches its high water level then pjsip will stop processing
-						new requests until the alert is cleared.  The alert clears
-						when all alerting taskprocessor queues have dropped to their
-						low water clear level.
-						</para>
-						<note><para>Set to -1 for the low water level to be 90% of
-						the high water level.</para></note>
-					</description>
-				</configOption>
-				<configOption name="mwi_disable_initial_unsolicited" default="no">
-					<synopsis>Enable/Disable sending unsolicited MWI to all endpoints on startup.</synopsis>
-					<description>
-						<para>When the initial unsolicited MWI notification are
-						enabled on startup then the initial notifications
-						get sent at startup.  If you have a lot of endpoints
-						(thousands) that use unsolicited MWI then you may
-						want to consider disabling the initial startup
-						notifications.
-						</para>
-						<para>When the initial unsolicited MWI notifications are
-						disabled on startup then the notifications will start
-						on the endpoint's next contact update.
-						</para>
-					</description>
-				</configOption>
-				<configOption name="ignore_uri_user_options">
-					<synopsis>Enable/Disable ignoring SIP URI user field options.</synopsis>
-					<description>
-						<para>If you have this option enabled and there are semicolons
-						in the user field of a SIP URI then the field is truncated
-						at the first semicolon.  This effectively makes the semicolon
-						a non-usable character for PJSIP endpoint names, extensions,
-						and AORs.  This can be useful for improving compatibility with
-						an ITSP that likes to use user options for whatever reason.
-						</para>
-						<example title="Sample SIP URI">
-							sip:1235557890;phone-context=national@x.x.x.x;user=phone
-						</example>
-						<example title="Sample SIP URI user field">
-							1235557890;phone-context=national
-						</example>
-						<example title="Sample SIP URI user field truncated">
-							1235557890
-						</example>
-						<note><para>The caller-id and redirecting number strings
-						obtained from incoming SIP URI user fields are always truncated
-						at the first semicolon.</para></note>
-					</description>
-				</configOption>
-				<configOption name="use_callerid_contact" default="no">
-					<synopsis>Place caller-id information into Contact header</synopsis>
-					<description><para>
-						This option will cause Asterisk to place caller-id information into
-						generated Contact headers.</para>
-					</description>
-				</configOption>
-				<configOption name="send_contact_status_on_update_registration" default="no">
-					<synopsis>Enable sending AMI ContactStatus event when a device refreshes its registration.</synopsis>
-				</configOption>
-				<configOption name="taskprocessor_overload_trigger">
-					<synopsis>Trigger scope for taskprocessor overloads</synopsis>
-					<description><para>
-						This option specifies the trigger the distributor will use for
-						detecting taskprocessor overloads.  When it detects an overload condition,
-						the distrubutor will stop accepting new requests until the overload is
-						cleared.
-						</para>
-						<enumlist>
-							<enum name="global"><para>(default) Any taskprocessor overload will trigger.</para></enum>
-							<enum name="pjsip_only"><para>Only pjsip taskprocessor overloads will trigger.</para></enum>
-							<enum name="none"><para>No overload detection will be performed.</para></enum>
-						</enumlist>
-						<warning><para>
-						The "none" and "pjsip_only" options should be used
-						with extreme caution and only to mitigate specific issues.
-						Under certain conditions they could make things worse.
-						</para></warning>
-					</description>
-				</configOption>
-				<configOption name="norefersub" default="yes">
-					<synopsis>Advertise support for RFC4488 REFER subscription suppression</synopsis>
-				</configOption>
-			</configObject>
-		</configFile>
-	</configInfo>
-	<manager name="PJSIPQualify" language="en_US">
-		<synopsis>
-			Qualify a chan_pjsip endpoint.
-		</synopsis>
-		<syntax>
-			<xi:include xpointer="xpointer(/docs/manager[@name='Login']/syntax/parameter[@name='ActionID'])" />
-			<parameter name="Endpoint" required="true">
-				<para>The endpoint you want to qualify.</para>
-			</parameter>
-		</syntax>
-		<description>
-			<para>Qualify a chan_pjsip endpoint.</para>
-		</description>
-	</manager>
-	<managerEvent language="en_US" name="IdentifyDetail">
-		<managerEventInstance class="EVENT_FLAG_COMMAND">
-			<synopsis>Provide details about an identify section.</synopsis>
-			<syntax>
-				<parameter name="ObjectType">
-					<para>The object's type. This will always be 'identify'.</para>
-				</parameter>
-				<parameter name="ObjectName">
-					<para>The name of this object.</para>
-				</parameter>
-				<parameter name="Endpoint">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip_endpoint_identifier_ip']/configFile[@name='pjsip.conf']/configObject[@name='identify']/configOption[@name='endpoint']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="SrvLookups">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip_endpoint_identifier_ip']/configFile[@name='pjsip.conf']/configObject[@name='identify']/configOption[@name='srv_lookups']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="Match">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip_endpoint_identifier_ip']/configFile[@name='pjsip.conf']/configObject[@name='identify']/configOption[@name='match']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="MatchHeader">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip_endpoint_identifier_ip']/configFile[@name='pjsip.conf']/configObject[@name='identify']/configOption[@name='match_header']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="EndpointName">
-					<para>The name of the endpoint associated with this information.</para>
-				</parameter>
-			</syntax>
-		</managerEventInstance>
-	</managerEvent>
-	<managerEvent language="en_US" name="AorDetail">
-		<managerEventInstance class="EVENT_FLAG_COMMAND">
-			<synopsis>Provide details about an Address of Record (AoR) section.</synopsis>
-			<syntax>
-				<parameter name="ObjectType">
-					<para>The object's type. This will always be 'aor'.</para>
-				</parameter>
-				<parameter name="ObjectName">
-					<para>The name of this object.</para>
-				</parameter>
-				<parameter name="MinimumExpiration">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='minimum_expiration']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="MaximumExpiration">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='maximum_expiration']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="DefaultExpiration">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='default_expiration']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="QualifyFrequency">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='qualify_frequency']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="AuthenticateQualify">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='authenticate_qualify']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="MaxContacts">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='max_contacts']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="RemoveExisting">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='remove_existing']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="RemoveUnavailable">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='remove_unavailable']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="Mailboxes">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='mailboxes']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="OutboundProxy">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='outbound_proxy']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="SupportPath">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='support_path']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="TotalContacts">
-					<para>The total number of contacts associated with this AoR.</para>
-				</parameter>
-				<parameter name="ContactsRegistered">
-					<para>The number of non-permanent contacts associated with this AoR.</para>
-				</parameter>
-				<parameter name="EndpointName">
-					<para>The name of the endpoint associated with this information.</para>
-				</parameter>
-			</syntax>
-		</managerEventInstance>
-	</managerEvent>
-	<managerEvent language="en_US" name="AuthDetail">
-		<managerEventInstance class="EVENT_FLAG_COMMAND">
-			<synopsis>Provide details about an authentication section.</synopsis>
-			<syntax>
-				<parameter name="ObjectType">
-					<para>The object's type. This will always be 'auth'.</para>
-				</parameter>
-				<parameter name="ObjectName">
-					<para>The name of this object.</para>
-				</parameter>
-				<parameter name="Username">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='auth']/configOption[@name='username']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="Password">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='auth']/configOption[@name='username']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="Md5Cred">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='auth']/configOption[@name='md5_cred']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="Realm">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='auth']/configOption[@name='realm']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="NonceLifetime">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='auth']/configOption[@name='nonce_lifetime']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="AuthType">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='auth']/configOption[@name='auth_type']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="EndpointName">
-					<para>The name of the endpoint associated with this information.</para>
-				</parameter>
-			</syntax>
-		</managerEventInstance>
-	</managerEvent>
-	<managerEvent language="en_US" name="TransportDetail">
-		<managerEventInstance class="EVENT_FLAG_COMMAND">
-			<synopsis>Provide details about an authentication section.</synopsis>
-			<syntax>
-				<parameter name="ObjectType">
-					<para>The object's type. This will always be 'transport'.</para>
-				</parameter>
-				<parameter name="ObjectName">
-					<para>The name of this object.</para>
-				</parameter>
-				<parameter name="Protocol">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='protocol']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="Bind">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='bind']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="AsycOperations">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='async_operations']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="CaListFile">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='ca_list_file']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="CaListPath">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='ca_list_path']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="CertFile">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='cert_file']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="PrivKeyFile">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='priv_key_file']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="Password">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='password']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="ExternalSignalingAddress">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='external_signaling_address']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="ExternalSignalingPort">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='external_signaling_port']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="ExternalMediaAddress">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='external_media_address']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="Domain">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='domain']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="VerifyServer">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='verify_server']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="VerifyClient">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='verify_client']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="RequireClientCert">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='require_client_cert']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="Method">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='method']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="Cipher">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='cipher']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="LocalNet">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='local_net']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="Tos">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='tos']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="Cos">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='cos']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="WebsocketWriteTimeout">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='websocket_write_timeout']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="EndpointName">
-					<para>The name of the endpoint associated with this information.</para>
-				</parameter>
-			</syntax>
-		</managerEventInstance>
-	</managerEvent>
-	<managerEvent language="en_US" name="EndpointDetail">
-		<managerEventInstance class="EVENT_FLAG_COMMAND">
-			<synopsis>Provide details about an endpoint section.</synopsis>
-			<syntax>
-				<parameter name="ObjectType">
-					<para>The object's type. This will always be 'endpoint'.</para>
-				</parameter>
-				<parameter name="ObjectName">
-					<para>The name of this object.</para>
-				</parameter>
-				<parameter name="Context">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='context']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="Disallow">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='disallow']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="Allow">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='allow']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="DtmfMode">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='dtmf_mode']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="RtpIpv6">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='rtp_ipv6']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="RtpSymmetric">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='rtp_symmetric']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="IceSupport">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='ice_support']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="UsePtime">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='use_ptime']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="ForceRport">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='force_rport']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="RewriteContact">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='rewrite_contact']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="Transport">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='transport']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="OutboundProxy">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='outbound_proxy']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="MohSuggest">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='moh_suggest']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="100rel">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='100rel']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="Timers">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='timers']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="TimersMinSe">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='timers_min_se']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="TimersSessExpires">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='timers_sess_expires']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="Auth">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='auth']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="OutboundAuth">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='outbound_auth']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="Aors">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='aors']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="MediaAddress">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='media_address']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="IdentifyBy">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='identify_by']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="DirectMedia">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='direct_media']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="DirectMediaMethod">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='direct_media_method']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="TrustConnectedLine">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='trust_connected_line']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="SendConnectedLine">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='send_connected_line']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="ConnectedLineMethod">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='connected_line_method']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="DirectMediaGlareMitigation">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='direct_media_glare_mitigation']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="DisableDirectMediaOnNat">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='disable_direct_media_on_nat']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="Callerid">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='callerid']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="CalleridPrivacy">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='callerid_privacy']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="CalleridTag">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='callerid_tag']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="TrustIdInbound">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='trust_id_inbound']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="TrustIdOutbound">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='trust_id_outbound']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="SendPai">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='send_pai']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="SendRpid">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='send_rpid']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="SendDiversion">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='send_diversion']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="Mailboxes">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='mailboxes']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="AggregateMwi">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='aggregate_mwi']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="MediaEncryption">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='media_encryption']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="MediaEncryptionOptimistic">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='media_encryption_optimistic']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="UseAvpf">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='use_avpf']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="ForceAvp">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='force_avp']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="MediaUseReceivedTransport">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='media_use_received_transport']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="OneTouchRecording">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='one_touch_recording']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="InbandProgress">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='inband_progress']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="CallGroup">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='call_group']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="PickupGroup">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='pickup_group']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="NamedCallGroup">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='named_call_group']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="NamedPickupGroup">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='named_pickup_group']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="DeviceStateBusyAt">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='device_state_busy_at']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="T38Udptl">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='t38_udptl']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="T38UdptlEc">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='t38_udptl_ec']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="T38UdptlMaxdatagram">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='t38_udptl_maxdatagram']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="FaxDetect">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='fax_detect']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="T38UdptlNat">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='t38_udptl_nat']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="T38UdptlIpv6">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='t38_udptl_ipv6']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="T38BindUdptlToMediaAddress">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='t38_bind_udptl_to_media_address']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="ToneZone">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='tone_zone']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="Language">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='language']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="RecordOnFeature">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='record_on_feature']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="RecordOffFeature">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='record_off_feature']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="AllowTransfer">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='allow_transfer']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="UserEqPhone">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='user_eq_phone']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="MohPassthrough">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='moh_passthrough']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="SdpOwner">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='sdp_owner']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="SdpSession">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='sdp_session']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="TosAudio">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='tos_audio']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="TosVideo">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='tos_video']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="CosAudio">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='cos_audio']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="CosVideo">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='cos_video']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="AllowSubscribe">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='allow_subscribe']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="SubMinExpiry">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='sub_min_expiry']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="FromUser">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='from_user']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="FromDomain">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='from_domain']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="MwiFromUser">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='mwi_from_user']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="RtpEngine">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='rtp_engine']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="DtlsVerify">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='dtls_verify']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="DtlsRekey">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='dtls_rekey']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="DtlsCertFile">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='dtls_cert_file']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="DtlsPrivateKey">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='dtls_private_key']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="DtlsCipher">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='dtls_cipher']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="DtlsCaFile">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='dtls_ca_file']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="DtlsCaPath">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='dtls_ca_path']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="DtlsSetup">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='dtls_setup']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="SrtpTag32">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='srtp_tag_32']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="RedirectMethod">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='redirect_method']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="SetVar">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='set_var']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="MessageContext">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='message_context']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="Accountcode">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='accountcode']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="PreferredCodecOnly">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='preferred_codec_only']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="DeviceState">
-					<para>The aggregate device state for this endpoint.</para>
-				</parameter>
-				<parameter name="ActiveChannels">
-					<para>The number of active channels associated with this endpoint.</para>
-				</parameter>
-				<parameter name="SubscribeContext">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='subscribe_context']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="Allowoverlap">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='allow_overlap']/synopsis/node())"/></para>
-				</parameter>
-			</syntax>
-		</managerEventInstance>
-	</managerEvent>
-	<managerEvent language="en_US" name="AorList">
-		<managerEventInstance class="EVENT_FLAG_COMMAND">
-			<synopsis>Provide details about an Address of Record (AoR) section.</synopsis>
-			<syntax>
-				<parameter name="ObjectType">
-					<para>The object's type. This will always be 'aor'.</para>
-				</parameter>
-				<parameter name="ObjectName">
-					<para>The name of this object.</para>
-				</parameter>
-				<parameter name="MinimumExpiration">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='minimum_expiration']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="MaximumExpiration">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='maximum_expiration']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="DefaultExpiration">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='default_expiration']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="QualifyFrequency">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='qualify_frequency']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="AuthenticateQualify">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='authenticate_qualify']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="MaxContacts">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='max_contacts']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="RemoveExisting">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='remove_existing']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="RemoveUnavailable">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='remove_unavailable']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="Mailboxes">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='mailboxes']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="OutboundProxy">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='outbound_proxy']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="SupportPath">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='support_path']/synopsis/node())"/></para>
-				</parameter>
-			</syntax>
-		</managerEventInstance>
-	</managerEvent>
-	<managerEvent language="en_US" name="AuthList">
-		<managerEventInstance class="EVENT_FLAG_COMMAND">
-			<synopsis>Provide details about an Address of Record (Auth) section.</synopsis>
-			<syntax>
-				<parameter name="ObjectType">
-					<para>The object's type. This will always be 'auth'.</para>
-				</parameter>
-				<parameter name="ObjectName">
-					<para>The name of this object.</para>
-				</parameter>
-				<parameter name="Username">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='auth']/configOption[@name='username']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="Md5Cred">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='auth']/configOption[@name='md5_cred']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="Realm">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='auth']/configOption[@name='realm']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="AuthType">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='auth']/configOption[@name='auth_type']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="Password">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='auth']/configOption[@name='password']/synopsis/node())"/></para>
-				</parameter>
-				<parameter name="NonceLifetime">
-					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='auth']/configOption[@name='nonce_lifetime']/synopsis/node())"/></para>
-				</parameter>
-			</syntax>
-		</managerEventInstance>
-	</managerEvent>
-	<managerEvent language="en_US" name="ContactList">
-		<managerEventInstance class="EVENT_FLAG_COMMAND">
-			<synopsis>Provide details about a contact section.</synopsis>
-			<syntax>
-				<parameter name="ObjectType">
-					<para>The object's type. This will always be 'contact'.</para>
-				</parameter>
-				<parameter name="ObjectName">
-					<para>The name of this object.</para>
-				</parameter>
-				<parameter name="ViaAddr">
-					<para>IP address of the last Via header in REGISTER request.
-					Will only appear in the event if available.</para>
-				</parameter>
-				<parameter name="ViaPort">
-					<para>Port number of the last Via header in REGISTER request.
-					Will only appear in the event if available.</para>
-				</parameter>
-				<parameter name="QualifyTimeout">
-					<para>The elapsed time in decimal seconds after which an OPTIONS
-					message is sent before the contact is considered unavailable.</para>
-				</parameter>
-				<parameter name="CallId">
-					<para>Content of the Call-ID header in REGISTER request.
-					Will only appear in the event if available.</para>
-				</parameter>
-				<parameter name="RegServer">
-					<para>Asterisk Server name.</para>
-				</parameter>
-				<parameter name="PruneOnBoot">
-					<para>If true delete the contact on Asterisk restart/boot.</para>
-				</parameter>
-				<parameter name="Path">
-					<para>The Path header received on the REGISTER.</para>
-				</parameter>
-				<parameter name="Endpoint">
-					<para>The name of the endpoint associated with this information.</para>
-				</parameter>
-				<parameter name="AuthenticateQualify">
-					<para>A boolean indicating whether a qualify should be authenticated.</para>
-				</parameter>
-				<parameter name="Uri">
-					<para>This contact's URI.</para>
-				</parameter>
-				<parameter name="QualifyFrequency">
-					<para>The interval in seconds at which the contact will be qualified.</para>
-				</parameter>
-				<parameter name="UserAgent">
-					<para>Content of the User-Agent header in REGISTER request</para>
-				</parameter>
-				<parameter name="ExpirationTime">
-					<para>Absolute time that this contact is no longer valid after</para>
-				</parameter>
-				<parameter name="OutboundProxy">
-					<para>The contact's outbound proxy.</para>
-				</parameter>
-				<parameter name="Status">
-					<para>This contact's status.</para>
-					<enumlist>
-						<enum name="Reachable"/>
-						<enum name="Unreachable"/>
-						<enum name="NonQualified"/>
-						<enum name="Unknown"/>
-					</enumlist>
-				</parameter>
-				<parameter name="RoundtripUsec">
-					<para>The round trip time in microseconds.</para>
-				</parameter>
-			</syntax>
-		</managerEventInstance>
-	</managerEvent>
-	<managerEvent language="en_US" name="ContactStatusDetail">
-		<managerEventInstance class="EVENT_FLAG_COMMAND">
-			<synopsis>Provide details about a contact's status.</synopsis>
-			<syntax>
-				<parameter name="AOR">
-					<para>The AoR that owns this contact.</para>
-				</parameter>
-				<parameter name="URI">
-					<para>This contact's URI.</para>
-				</parameter>
-				<parameter name="Status">
-					<para>This contact's status.</para>
-					<enumlist>
-						<enum name="Reachable"/>
-						<enum name="Unreachable"/>
-						<enum name="NonQualified"/>
-						<enum name="Unknown"/>
-					</enumlist>
-				</parameter>
-				<parameter name="RoundtripUsec">
-					<para>The round trip time in microseconds.</para>
-				</parameter>
-				<parameter name="EndpointName">
-					<para>The name of the endpoint associated with this information.</para>
-				</parameter>
-				<parameter name="UserAgent">
-					<para>Content of the User-Agent header in REGISTER request</para>
-				</parameter>
-				<parameter name="RegExpire">
-					<para>Absolute time that this contact is no longer valid after</para>
-				</parameter>
-				<parameter name="ViaAddress">
-					<para>IP address:port of the last Via header in REGISTER request.
-					Will only appear in the event if available.</para>
-				</parameter>
-				<parameter name="CallID">
-					<para>Content of the Call-ID header in REGISTER request.
-					Will only appear in the event if available.</para>
-				</parameter>
-				<parameter name="ID">
-					<para>The sorcery ID of the contact.</para>
-				</parameter>
-				<parameter name="AuthenticateQualify">
-					<para>A boolean indicating whether a qualify should be authenticated.</para>
-				</parameter>
-				<parameter name="OutboundProxy">
-					<para>The contact's outbound proxy.</para>
-				</parameter>
-				<parameter name="Path">
-					<para>The Path header received on the REGISTER.</para>
-				</parameter>
-				<parameter name="QualifyFrequency">
-					<para>The interval in seconds at which the contact will be qualified.</para>
-				</parameter>
-				<parameter name="QualifyTimeout">
-					<para>The elapsed time in decimal seconds after which an OPTIONS
-					message is sent before the contact is considered unavailable.</para>
-				</parameter>
-			</syntax>
-		</managerEventInstance>
-	</managerEvent>
-	<managerEvent language="en_US" name="EndpointList">
-		<managerEventInstance class="EVENT_FLAG_COMMAND">
-			<synopsis>Provide details about a contact's status.</synopsis>
-			<syntax>
-				<parameter name="ObjectType">
-					<para>The object's type. This will always be 'endpoint'.</para>
-				</parameter>
-				<parameter name="ObjectName">
-					<para>The name of this object.</para>
-				</parameter>
-				<parameter name="Transport">
-					<para>The transport configurations associated with this endpoint.</para>
-				</parameter>
-				<parameter name="Aor">
-					<para>The aor configurations associated with this endpoint.</para>
-				</parameter>
-				<parameter name="Auths">
-					<para>The inbound authentication configurations associated with this endpoint.</para>
-				</parameter>
-				<parameter name="OutboundAuths">
-					<para>The outbound authentication configurations associated with this endpoint.</para>
-				</parameter>
-				<parameter name="DeviceState">
-					<para>The aggregate device state for this endpoint.</para>
-				</parameter>
-				<parameter name="ActiveChannels">
-					<para>The number of active channels associated with this endpoint.</para>
-				</parameter>
-			</syntax>
-		</managerEventInstance>
-	</managerEvent>
-	<manager name="PJSIPShowEndpoints" language="en_US">
-		<synopsis>
-			Lists PJSIP endpoints.
-		</synopsis>
-		<syntax />
-		<description>
-			<para>
-			Provides a listing of all endpoints.  For each endpoint an <literal>EndpointList</literal> event
-			is raised that contains relevant attributes and status information.  Once all
-			endpoints have been listed an <literal>EndpointListComplete</literal> event is issued.
-			</para>
-		</description>
-		<responses>
-			<list-elements>
-				<xi:include xpointer="xpointer(/docs/managerEvent[@name='EndpointList'])" />
-			</list-elements>
-			<managerEvent language="en_US" name="EndpointListComplete">
-				<managerEventInstance class="EVENT_FLAG_COMMAND">
-					<synopsis>Provide final information about an endpoint list.</synopsis>
-					<syntax>
-						<parameter name="EventList"/>
-						<parameter name="ListItems"/>
-					</syntax>
-				</managerEventInstance>
-			</managerEvent>
-		</responses>
-	</manager>
-	<manager name="PJSIPShowEndpoint" language="en_US">
-		<synopsis>
-			Detail listing of an endpoint and its objects.
-		</synopsis>
-		<syntax>
-			<xi:include xpointer="xpointer(/docs/manager[@name='Login']/syntax/parameter[@name='ActionID'])" />
-			<parameter name="Endpoint" required="true">
-				<para>The endpoint to list.</para>
-			</parameter>
-		</syntax>
-		<description>
-			<para>
-			Provides a detailed listing of options for a given endpoint.  Events are issued
-			showing the configuration and status of the endpoint and associated objects.  These
-			events include <literal>EndpointDetail</literal>, <literal>AorDetail</literal>,
-			<literal>AuthDetail</literal>, <literal>TransportDetail</literal>, and
-			<literal>IdentifyDetail</literal>.  Some events may be listed multiple times if multiple objects are
-			associated (for instance AoRs).  Once all detail events have been raised a final
-			<literal>EndpointDetailComplete</literal> event is issued.
-			</para>
-		</description>
-		<responses>
-			<list-elements>
-				<xi:include xpointer="xpointer(/docs/managerEvent[@name='EndpointDetail'])" />
-				<xi:include xpointer="xpointer(/docs/managerEvent[@name='IdentifyDetail'])" />
-				<xi:include xpointer="xpointer(/docs/managerEvent[@name='ContactStatusDetail'])" />
-				<xi:include xpointer="xpointer(/docs/managerEvent[@name='AuthDetail'])" />
-				<xi:include xpointer="xpointer(/docs/managerEvent[@name='TransportDetail'])" />
-				<xi:include xpointer="xpointer(/docs/managerEvent[@name='AorDetail'])" />
-			</list-elements>
-			<managerEvent language="en_US" name="EndpointDetailComplete">
-				<managerEventInstance class="EVENT_FLAG_COMMAND">
-					<synopsis>Provide final information about endpoint details.</synopsis>
-					<syntax>
-						<parameter name="EventList"/>
-						<parameter name="ListItems"/>
-					</syntax>
-				</managerEventInstance>
-			</managerEvent>
-		</responses>
-	</manager>
-	<manager name="PJSIPShowAors" language="en_US">
-		<synopsis>
-			Lists PJSIP AORs.
-		</synopsis>
-		<syntax />
-		<description>
-			<para>
-			Provides a listing of all AORs. For each AOR an <literal>AorList</literal> event
-			is raised that contains relevant attributes and status information.  Once all
-			aors have been listed an <literal>AorListComplete</literal> event is issued.
-			</para>
-		</description>
-		<responses>
-			<list-elements>
-				<xi:include xpointer="xpointer(/docs/managerEvent[@name='AorList'])" />
-			</list-elements>
-			<managerEvent language="en_US" name="AorListComplete">
-				<managerEventInstance class="EVENT_FLAG_COMMAND">
-					<synopsis>Provide final information about an aor list.</synopsis>
-					<syntax>
-						<parameter name="EventList"/>
-						<parameter name="ListItems"/>
-					</syntax>
-				</managerEventInstance>
-			</managerEvent>
-		</responses>
-	</manager>
-	<manager name="PJSIPShowAuths" language="en_US">
-		<synopsis>
-			Lists PJSIP Auths.
-		</synopsis>
-		<syntax />
-		<description>
-			<para>Provides a listing of all Auths. For each Auth an <literal>AuthList</literal> event
-			is raised that contains relevant attributes and status information.  Once all
-			auths have been listed an <literal>AuthListComplete</literal> event is issued.
-			</para>
-		</description>
-		<responses>
-			<list-elements>
-				<xi:include xpointer="xpointer(/docs/managerEvent[@name='AuthList'])" />
-			</list-elements>
-			<managerEvent language="en_US" name="AuthListComplete">
-				<managerEventInstance class="EVENT_FLAG_COMMAND">
-					<synopsis>Provide final information about an auth list.</synopsis>
-					<syntax>
-						<parameter name="EventList"/>
-						<parameter name="ListItems"/>
-					</syntax>
-				</managerEventInstance>
-			</managerEvent>
-		</responses>
-	</manager>
-	<manager name="PJSIPShowContacts" language="en_US">
-		<synopsis>
-			Lists PJSIP Contacts.
-		</synopsis>
-		<syntax />
-		<description>
-			<para>Provides a listing of all Contacts. For each Contact a <literal>ContactList</literal>
-			event is raised that contains relevant attributes and status information.
-			Once all contacts have been listed a <literal>ContactListComplete</literal> event
-			is issued.
-			</para>
-		</description>
-		<responses>
-			<list-elements>
-				<xi:include xpointer="xpointer(/docs/managerEvent[@name='ContactList'])" />
-			</list-elements>
-			<managerEvent language="en_US" name="ContactListComplete">
-				<managerEventInstance class="EVENT_FLAG_COMMAND">
-					<synopsis>Provide final information about a contact list.</synopsis>
-					<syntax>
-						<parameter name="EventList"/>
-						<parameter name="ListItems"/>
-					</syntax>
-				</managerEventInstance>
-			</managerEvent>
-		</responses>
-	</manager>
-
- ***/
-
 #define MOD_DATA_CONTACT "contact"
 
 /*! Number of serializers in pool if one not supplied. */
diff --git a/res/res_pjsip/pjsip_config.xml b/res/res_pjsip/pjsip_config.xml
new file mode 100644
index 0000000000000000000000000000000000000000..73b77db06fe9c39d0c1687eb11a1933ede135d52
--- /dev/null
+++ b/res/res_pjsip/pjsip_config.xml
@@ -0,0 +1,2346 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE docs SYSTEM "appdocsxml.dtd">
+<docs>
+	<configInfo name="res_pjsip" language="en_US">
+		<synopsis>SIP Resource using PJProject</synopsis>
+		<configFile name="pjsip.conf">
+			<configObject name="endpoint">
+				<synopsis>Endpoint</synopsis>
+				<description><para>
+					The <emphasis>Endpoint</emphasis> is the primary configuration object.
+					It contains the core SIP related options only, endpoints are <emphasis>NOT</emphasis>
+					dialable entries of their own. Communication with another SIP device is
+					accomplished via Addresses of Record (AoRs) which have one or more
+					contacts associated with them. Endpoints <emphasis>NOT</emphasis> configured to
+					use a <literal>transport</literal> will default to first transport found
+					in <filename>pjsip.conf</filename> that matches its type.
+					</para>
+					<para>Example: An Endpoint has been configured with no transport.
+					When it comes time to call an AoR, PJSIP will find the
+					first transport that matches the type. A SIP URI of <literal>sip:5000@[11::33]</literal>
+					will use the first IPv6 transport and try to send the request.
+					</para>
+					<para>If the anonymous endpoint identifier is in use an endpoint with the name
+					"anonymous@domain" will be searched for as a last resort. If this is not found
+					it will fall back to searching for "anonymous". If neither endpoints are found
+					the anonymous endpoint identifier will not return an endpoint and anonymous
+					calling will not be possible.
+					</para>
+				</description>
+				<configOption name="100rel" default="yes">
+					<synopsis>Allow support for RFC3262 provisional ACK tags</synopsis>
+					<description>
+						<enumlist>
+							<enum name="no" />
+							<enum name="required" />
+							<enum name="yes" />
+						</enumlist>
+					</description>
+				</configOption>
+				<configOption name="aggregate_mwi" default="yes">
+					<synopsis>Condense MWI notifications into a single NOTIFY.</synopsis>
+					<description><para>When enabled, <replaceable>aggregate_mwi</replaceable> condenses message
+					waiting notifications from multiple mailboxes into a single NOTIFY. If it is disabled,
+					individual NOTIFYs are sent for each mailbox.</para></description>
+				</configOption>
+				<configOption name="allow">
+					<synopsis>Media Codec(s) to allow</synopsis>
+				</configOption>
+				<configOption name="codec_prefs_incoming_offer">
+					<synopsis>Codec negotiation prefs for incoming offers.</synopsis>
+					<description>
+						<para>
+							This is a string that describes how the codecs
+							specified on an incoming SDP offer (pending) are reconciled with the codecs specified
+							on an endpoint (configured) before being sent to the Asterisk core.
+							The string actually specifies 4 <literal>name:value</literal> pair parameters
+							separated by commas. Whitespace is ignored and they may be specified in any order.
+							Note that this option is reserved for future functionality.
+
+						</para>
+						<para>
+							Parameters:
+						</para>
+						<enumlist>
+							<enum name="prefer: &lt; pending | configured &gt;">
+								<para>
+								</para>
+								<enumlist>
+									<enum name="pending"><para>The codec list from the caller. (default)</para></enum>
+									<enum name="configured"><para>The codec list from the endpoint.</para></enum>
+								</enumlist>
+							</enum>
+							<enum name="operation : &lt; intersect | only_preferred | only_nonpreferred &gt;">
+								<para>
+								</para>
+								<enumlist>
+									<enum name="intersect"><para>Only common codecs with the preferred codecs first. (default)</para></enum>
+									<enum name="only_preferred"><para>Use only the preferred codecs.</para></enum>
+									<enum name="only_nonpreferred"><para>Use only the non-preferred codecs.</para></enum>
+								</enumlist>
+							</enum>
+							<enum name="keep : &lt; all | first &gt;">
+								<para>
+								</para>
+								<enumlist>
+									<enum name="all"><para>After the operation, keep all codecs. (default)</para></enum>
+									<enum name="first"><para>After the operation, keep only the first codec.</para></enum>
+								</enumlist>
+							</enum>
+							<enum name="transcode : &lt; allow | prevent &gt;">
+								<para>
+								</para>
+								<enumlist>
+									<enum name="allow"><para>Allow transcoding. (default)</para></enum>
+									<enum name="prevent"><para>Prevent transcoding.</para></enum>
+								</enumlist>
+							</enum>
+						</enumlist>
+						<para>
+						</para>
+						<example>
+							codec_prefs_incoming_offer = prefer: pending, operation: intersect, keep: all, transcode: allow
+						</example>
+						<para>
+							Prefer the codecs coming from the caller.  Use only the ones that are common.
+							keeping the order of the preferred list. Keep all codecs in the result. Allow transcoding.
+						</para>
+					</description>
+				</configOption>
+				<configOption name="codec_prefs_outgoing_offer">
+					<synopsis>Codec negotiation prefs for outgoing offers.</synopsis>
+					<description>
+						<para>
+							This is a string that describes how the codecs specified in the topology that
+							comes from the Asterisk core (pending) are reconciled with the codecs specified on an
+							endpoint (configured) when sending an SDP offer.
+							The string actually specifies 4 <literal>name:value</literal> pair parameters
+							separated by commas. Whitespace is ignored and they may be specified in any order.
+							Note that this option is reserved for future functionality.
+
+						</para>
+						<para>
+							Parameters:
+						</para>
+						<enumlist>
+							<enum name="prefer: &lt; pending | configured &gt;">
+								<para>
+								</para>
+								<enumlist>
+									<enum name="pending"><para>The codec list from the core. (default)</para></enum>
+									<enum name="configured"><para>The codec list from the endpoint.</para></enum>
+								</enumlist>
+							</enum>
+							<enum name="operation : &lt; union | intersect | only_preferred | only_nonpreferred &gt;">
+								<para>
+								</para>
+								<enumlist>
+									<enum name="union"><para>Merge the lists with the preferred codecs first. (default)</para></enum>
+									<enum name="intersect"><para>Only common codecs with the preferred codecs first. (default)</para></enum>
+									<enum name="only_preferred"><para>Use only the preferred codecs.</para></enum>
+									<enum name="only_nonpreferred"><para>Use only the non-preferred codecs.</para></enum>
+								</enumlist>
+							</enum>
+							<enum name="keep : &lt; all | first &gt;">
+								<para>
+								</para>
+								<enumlist>
+									<enum name="all"><para>After the operation, keep all codecs. (default)</para></enum>
+									<enum name="first"><para>After the operation, keep only the first codec.</para></enum>
+								</enumlist>
+							</enum>
+							<enum name="transcode : &lt; allow | prevent &gt;">
+								<para>
+								</para>
+								<enumlist>
+									<enum name="allow"><para>Allow transcoding. (default)</para></enum>
+									<enum name="prevent"><para>Prevent transcoding.</para></enum>
+								</enumlist>
+							</enum>
+						</enumlist>
+						<para>
+						</para>
+						<example>
+						codec_prefs_outgoing_offer = prefer: configured, operation: union, keep: first, transcode: prevent
+						</example>
+						<para>
+						Prefer the codecs coming from the endpoint.  Merge them with the codecs from the core
+						keeping the order of the preferred list. Keep only the first one. No transcoding allowed.
+						</para>
+					</description>
+				</configOption>
+				<configOption name="codec_prefs_incoming_answer">
+					<synopsis>Codec negotiation prefs for incoming answers.</synopsis>
+					<description>
+						<para>
+							This is a string that describes how the codecs specified in an incoming SDP answer
+							(pending) are reconciled with the codecs specified on an endpoint (configured)
+							when receiving an SDP answer.
+							The string actually specifies 4 <literal>name:value</literal> pair parameters
+							separated by commas. Whitespace is ignored and they may be specified in any order.
+							Note that this option is reserved for future functionality.
+
+						</para>
+						<para>
+							Parameters:
+						</para>
+						<enumlist>
+							<enum name="prefer: &lt; pending | configured &gt;">
+								<para>
+								</para>
+								<enumlist>
+									<enum name="pending"><para>The codec list in the received SDP answer. (default)</para></enum>
+									<enum name="configured"><para>The codec list from the endpoint.</para></enum>
+								</enumlist>
+							</enum>
+							<enum name="operation : &lt; union | intersect | only_preferred | only_nonpreferred &gt;">
+								<para>
+								</para>
+								<enumlist>
+									<enum name="union"><para>Merge the lists with the preferred codecs first.</para></enum>
+									<enum name="intersect"><para>Only common codecs with the preferred codecs first. (default)</para></enum>
+									<enum name="only_preferred"><para>Use only the preferred codecs.</para></enum>
+									<enum name="only_nonpreferred"><para>Use only the non-preferred codecs.</para></enum>
+								</enumlist>
+							</enum>
+							<enum name="keep : &lt; all | first &gt;">
+								<para>
+								</para>
+								<enumlist>
+									<enum name="all"><para>After the operation, keep all codecs. (default)</para></enum>
+									<enum name="first"><para>After the operation, keep only the first codec.</para></enum>
+								</enumlist>
+							</enum>
+							<enum name="transcode : &lt; allow | prevent &gt;">
+								<para>
+								The transcode parameter is ignored when processing answers.
+								</para>
+							</enum>
+						</enumlist>
+						<para>
+						</para>
+						<example>
+						codec_prefs_incoming_answer = keep: first
+						</example>
+						<para>
+						Use the defaults but keep oinly the first codec.
+						</para>
+					</description>
+				</configOption>
+				<configOption name="codec_prefs_outgoing_answer">
+					<synopsis>Codec negotiation prefs for outgoing answers.</synopsis>
+					<description>
+						<para>
+							This is a string that describes how the codecs that come from the core (pending)
+							are reconciled with the codecs specified on an endpoint (configured)
+							when sending an SDP answer.
+							The string actually specifies 4 <literal>name:value</literal> pair parameters
+							separated by commas. Whitespace is ignored and they may be specified in any order.
+							Note that this option is reserved for future functionality.
+
+						</para>
+						<para>
+							Parameters:
+						</para>
+						<enumlist>
+							<enum name="prefer: &lt; pending | configured &gt;">
+								<para>
+								</para>
+								<enumlist>
+									<enum name="pending"><para>The codec list that came from the core. (default)</para></enum>
+									<enum name="configured"><para>The codec list from the endpoint.</para></enum>
+								</enumlist>
+							</enum>
+							<enum name="operation : &lt; union | intersect | only_preferred | only_nonpreferred &gt;">
+								<para>
+								</para>
+								<enumlist>
+									<enum name="union"><para>Merge the lists with the preferred codecs first.</para></enum>
+									<enum name="intersect"><para>Only common codecs with the preferred codecs first. (default)</para></enum>
+									<enum name="only_preferred"><para>Use only the preferred codecs.</para></enum>
+									<enum name="only_nonpreferred"><para>Use only the non-preferred codecs.</para></enum>
+								</enumlist>
+							</enum>
+							<enum name="keep : &lt; all | first &gt;">
+								<para>
+								</para>
+								<enumlist>
+									<enum name="all"><para>After the operation, keep all codecs. (default)</para></enum>
+									<enum name="first"><para>After the operation, keep only the first codec.</para></enum>
+								</enumlist>
+							</enum>
+							<enum name="transcode : &lt; allow | prevent &gt;">
+								<para>
+								The transcode parameter is ignored when processing answers.
+								</para>
+							</enum>
+						</enumlist>
+						<para>
+						</para>
+						<example>
+						codec_prefs_incoming_answer = keep: first
+						</example>
+						<para>
+						Use the defaults but keep oinly the first codec.
+						</para>
+					</description>
+				</configOption>
+				<configOption name="allow_overlap" default="yes">
+					<synopsis>Enable RFC3578 overlap dialing support.</synopsis>
+				</configOption>
+				<configOption name="aors">
+					<synopsis>AoR(s) to be used with the endpoint</synopsis>
+					<description><para>
+						List of comma separated AoRs that the endpoint should be associated with.
+					</para></description>
+				</configOption>
+				<configOption name="auth">
+					<synopsis>Authentication Object(s) associated with the endpoint</synopsis>
+					<description><para>
+						This is a comma-delimited list of <replaceable>auth</replaceable> sections defined
+						in <filename>pjsip.conf</filename> to be used to verify inbound connection attempts.
+						</para><para>
+						Endpoints without an authentication object
+						configured will allow connections without verification.</para>
+						<note><para>
+						Using the same auth section for inbound and outbound
+						authentication is not recommended.  There is a difference in
+						meaning for an empty realm setting between inbound and outbound
+						authentication uses.  See the auth realm description for details.
+						</para></note>
+					</description>
+				</configOption>
+				<configOption name="callerid">
+					<synopsis>CallerID information for the endpoint</synopsis>
+					<description><para>
+						Must be in the format <literal>Name &lt;Number&gt;</literal>,
+						or only <literal>&lt;Number&gt;</literal>.
+					</para></description>
+				</configOption>
+				<configOption name="callerid_privacy">
+					<synopsis>Default privacy level</synopsis>
+					<description>
+						<enumlist>
+							<enum name="allowed_not_screened" />
+							<enum name="allowed_passed_screen" />
+							<enum name="allowed_failed_screen" />
+							<enum name="allowed" />
+							<enum name="prohib_not_screened" />
+							<enum name="prohib_passed_screen" />
+							<enum name="prohib_failed_screen" />
+							<enum name="prohib" />
+							<enum name="unavailable" />
+						</enumlist>
+					</description>
+				</configOption>
+				<configOption name="callerid_tag">
+					<synopsis>Internal id_tag for the endpoint</synopsis>
+				</configOption>
+				<configOption name="context">
+					<synopsis>Dialplan context for inbound sessions</synopsis>
+				</configOption>
+				<configOption name="direct_media_glare_mitigation" default="none">
+					<synopsis>Mitigation of direct media (re)INVITE glare</synopsis>
+					<description>
+						<para>
+						This setting attempts to avoid creating INVITE glare scenarios
+						by disabling direct media reINVITEs in one direction thereby allowing
+						designated servers (according to this option) to initiate direct
+						media reINVITEs without contention and significantly reducing call
+						setup time.
+						</para>
+						<para>
+						A more detailed description of how this option functions can be found on
+						the Asterisk wiki https://wiki.asterisk.org/wiki/display/AST/SIP+Direct+Media+Reinvite+Glare+Avoidance
+						</para>
+						<enumlist>
+							<enum name="none" />
+							<enum name="outgoing" />
+							<enum name="incoming" />
+						</enumlist>
+					</description>
+				</configOption>
+				<configOption name="direct_media_method" default="invite">
+					<synopsis>Direct Media method type</synopsis>
+					<description>
+						<para>Method for setting up Direct Media between endpoints.</para>
+						<enumlist>
+							<enum name="invite" />
+							<enum name="reinvite">
+								<para>Alias for the <literal>invite</literal> value.</para>
+							</enum>
+							<enum name="update" />
+						</enumlist>
+					</description>
+				</configOption>
+				<configOption name="trust_connected_line">
+					<synopsis>Accept Connected Line updates from this endpoint</synopsis>
+				</configOption>
+				<configOption name="send_connected_line">
+					<synopsis>Send Connected Line updates to this endpoint</synopsis>
+				</configOption>
+				<configOption name="connected_line_method" default="invite">
+					<synopsis>Connected line method type</synopsis>
+					<description>
+						<para>Method used when updating connected line information.</para>
+						<enumlist>
+							<enum name="invite">
+							<para>When set to <literal>invite</literal>, check the remote's Allow header and
+							if UPDATE is allowed, send UPDATE instead of INVITE to avoid SDP
+							renegotiation.  If UPDATE is not Allowed, send INVITE.</para>
+							</enum>
+							<enum name="reinvite">
+								<para>Alias for the <literal>invite</literal> value.</para>
+							</enum>
+							<enum name="update">
+							<para>If set to <literal>update</literal>, send UPDATE regardless of what the remote
+							Allows. </para>
+							</enum>
+						</enumlist>
+					</description>
+				</configOption>
+				<configOption name="direct_media" default="yes">
+					<synopsis>Determines whether media may flow directly between endpoints.</synopsis>
+				</configOption>
+				<configOption name="disable_direct_media_on_nat" default="no">
+					<synopsis>Disable direct media session refreshes when NAT obstructs the media session</synopsis>
+				</configOption>
+				<configOption name="disallow">
+					<synopsis>Media Codec(s) to disallow</synopsis>
+				</configOption>
+				<configOption name="dtmf_mode" default="rfc4733">
+					<synopsis>DTMF mode</synopsis>
+					<description>
+						<para>This setting allows to choose the DTMF mode for endpoint communication.</para>
+						<enumlist>
+							<enum name="rfc4733">
+								<para>DTMF is sent out of band of the main audio stream.  This
+								supercedes the older <emphasis>RFC-2833</emphasis> used within
+								the older <literal>chan_sip</literal>.</para>
+							</enum>
+							<enum name="inband">
+								<para>DTMF is sent as part of audio stream.</para>
+							</enum>
+							<enum name="info">
+								<para>DTMF is sent as SIP INFO packets.</para>
+							</enum>
+							<enum name="auto">
+								<para>DTMF is sent as RFC 4733 if the other side supports it or as INBAND if not.</para>
+							</enum>
+							<enum name="auto_info">
+								<para>DTMF is sent as RFC 4733 if the other side supports it or as SIP INFO if not.</para>
+							</enum>
+						</enumlist>
+					</description>
+				</configOption>
+				<configOption name="media_address">
+					<synopsis>IP address used in SDP for media handling</synopsis>
+					<description><para>
+						At the time of SDP creation, the IP address defined here will be used as
+						the media address for individual streams in the SDP.
+					</para>
+					<note><para>
+						Be aware that the <literal>external_media_address</literal> option, set in Transport
+						configuration, can also affect the final media address used in the SDP.
+					</para></note>
+					</description>
+				</configOption>
+				<configOption name="bind_rtp_to_media_address">
+					<synopsis>Bind the RTP instance to the media_address</synopsis>
+					<description><para>
+						If media_address is specified, this option causes the RTP instance to be bound to the
+						specified ip address which causes the packets to be sent from that address.
+					</para>
+					</description>
+				</configOption>
+				<configOption name="force_rport" default="yes">
+					<synopsis>Force use of return port</synopsis>
+				</configOption>
+				<configOption name="ice_support" default="no">
+					<synopsis>Enable the ICE mechanism to help traverse NAT</synopsis>
+				</configOption>
+				<configOption name="identify_by">
+					<synopsis>Way(s) for the endpoint to be identified</synopsis>
+					<description>
+						<para>Endpoints and AORs can be identified in multiple ways.  This
+						option is a comma separated list of methods the endpoint can be
+						identified.
+						</para>
+						<note><para>
+						This option controls both how an endpoint is matched for incoming
+						traffic and also how an AOR is determined if a registration
+						occurs.  You must list at least one method that also matches for
+						AORs or the registration will fail.
+						</para></note>
+						<enumlist>
+							<enum name="username">
+								<para>Matches the endpoint or AOR ID based on the username
+								and domain in the From header (or To header for AORs).  If
+								an exact match on both username and domain/realm fails, the
+								match is retried with just the username.
+								</para>
+							</enum>
+							<enum name="auth_username">
+								<para>Matches the endpoint or AOR ID based on the username
+								and realm in the Authentication header.  If an exact match
+								on both username and domain/realm fails, the match is
+								retried with just the username.
+								</para>
+								<note><para>This method of identification has some security
+								considerations because an Authentication header is not
+								present on the first message of a dialog when digest
+								authentication is used.  The client can't generate it until
+								the server sends the challenge in a 401 response.  Since
+								Asterisk normally sends a security event when an incoming
+								request can't be matched to an endpoint, using this method
+								requires that the security event be deferred until a request
+								is received with the Authentication header and only
+								generated if the username doesn't result in a match.  This
+								may result in a delay before an attack is recognized.  You
+								can control how many unmatched requests are received from
+								a single ip address before a security event is generated
+								using the <literal>unidentified_request</literal>
+								parameters in the "global" configuration object.
+								</para></note>
+							</enum>
+							<enum name="ip">
+								<para>Matches the endpoint based on the source IP address.
+								</para>
+								<para>This method of identification is not configured here
+								but simply allowed by this configuration option.  See the
+								documentation for the <literal>identify</literal>
+								configuration section for more details on this method of
+								endpoint identification.
+								</para>
+							</enum>
+							<enum name="header">
+								<para>Matches the endpoint based on a configured SIP header
+								value.
+								</para>
+								<para>This method of identification is not configured here
+								but simply allowed by this configuration option.  See the
+								documentation for the <literal>identify</literal>
+								configuration section for more details on this method of
+								endpoint identification.
+								</para>
+							</enum>
+						</enumlist>
+					</description>
+				</configOption>
+				<configOption name="redirect_method">
+					<synopsis>How redirects received from an endpoint are handled</synopsis>
+					<description><para>
+						When a redirect is received from an endpoint there are multiple ways it can be handled.
+						If this option is set to <literal>user</literal> the user portion of the redirect target
+						is treated as an extension within the dialplan and dialed using a Local channel. If this option
+						is set to <literal>uri_core</literal> the target URI is returned to the dialing application
+						which dials it using the PJSIP channel driver and endpoint originally used. If this option is
+						set to <literal>uri_pjsip</literal> the redirect occurs within chan_pjsip itself and is not exposed
+						to the core at all. The <literal>uri_pjsip</literal> option has the benefit of being more efficient
+						and also supporting multiple potential redirect targets. The con is that since redirection occurs
+						within chan_pjsip redirecting information is not forwarded and redirection can not be
+						prevented.
+						</para>
+						<enumlist>
+							<enum name="user" />
+							<enum name="uri_core" />
+							<enum name="uri_pjsip" />
+						</enumlist>
+					</description>
+				</configOption>
+				<configOption name="mailboxes">
+					<synopsis>NOTIFY the endpoint when state changes for any of the specified mailboxes</synopsis>
+					<description><para>
+						Asterisk will send unsolicited MWI NOTIFY messages to the endpoint when state
+						changes happen for any of the specified mailboxes. More than one mailbox can be
+						specified with a comma-delimited string. app_voicemail mailboxes must be specified
+						as mailbox@context; for example: mailboxes=6001@default. For mailboxes provided by
+						external sources, such as through the res_mwi_external module, you must specify
+						strings supported by the external system.
+					</para><para>
+						For endpoints that SUBSCRIBE for MWI, use the <literal>mailboxes</literal> option in your AOR
+						configuration.
+					</para></description>
+				</configOption>
+				<configOption name="mwi_subscribe_replaces_unsolicited">
+					<synopsis>An MWI subscribe will replace sending unsolicited NOTIFYs</synopsis>
+				</configOption>
+				<configOption name="voicemail_extension">
+					<synopsis>The voicemail extension to send in the NOTIFY Message-Account header</synopsis>
+				</configOption>
+				<configOption name="moh_suggest" default="default">
+					<synopsis>Default Music On Hold class</synopsis>
+				</configOption>
+				<configOption name="outbound_auth">
+					<synopsis>Authentication object(s) used for outbound requests</synopsis>
+					<description><para>
+						This is a comma-delimited list of <replaceable>auth</replaceable>
+						sections defined in <filename>pjsip.conf</filename> used to respond
+						to outbound connection authentication challenges.</para>
+						<note><para>
+						Using the same auth section for inbound and outbound
+						authentication is not recommended.  There is a difference in
+						meaning for an empty realm setting between inbound and outbound
+						authentication uses.  See the auth realm description for details.
+						</para></note>
+					</description>
+				</configOption>
+				<configOption name="outbound_proxy">
+					<synopsis>Full SIP URI of the outbound proxy used to send requests</synopsis>
+				</configOption>
+				<configOption name="rewrite_contact">
+					<synopsis>Allow Contact header to be rewritten with the source IP address-port</synopsis>
+					<description><para>
+						On inbound SIP messages from this endpoint, the Contact header or an
+						appropriate Record-Route header will be changed to have the source IP
+						address and port.  This option does not affect outbound messages sent to
+						this endpoint.  This option helps servers communicate with endpoints
+						that are behind NATs.  This option also helps reuse reliable transport
+						connections such as TCP and TLS.
+					</para></description>
+				</configOption>
+				<configOption name="rtp_ipv6" default="no">
+					<synopsis>Allow use of IPv6 for RTP traffic</synopsis>
+				</configOption>
+				<configOption name="rtp_symmetric" default="no">
+					<synopsis>Enforce that RTP must be symmetric</synopsis>
+				</configOption>
+				<configOption name="send_diversion" default="yes">
+					<synopsis>Send the Diversion header, conveying the diversion
+					information to the called user agent</synopsis>
+				</configOption>
+				<configOption name="send_history_info" default="no">
+					<synopsis>Send the History-Info header, conveying the diversion
+					information to the called and calling user agents</synopsis>
+				</configOption>
+				<configOption name="send_pai" default="no">
+					<synopsis>Send the P-Asserted-Identity header</synopsis>
+				</configOption>
+				<configOption name="send_rpid" default="no">
+					<synopsis>Send the Remote-Party-ID header</synopsis>
+				</configOption>
+				<configOption name="rpid_immediate" default="no">
+					<synopsis>Immediately send connected line updates on unanswered incoming calls.</synopsis>
+					<description>
+						<para>When enabled, immediately send <emphasis>180 Ringing</emphasis>
+						or <emphasis>183 Progress</emphasis> response messages to the
+						caller if the connected line information is updated before
+						the call is answered.  This can send a <emphasis>180 Ringing</emphasis>
+						response before the call has even reached the far end.  The
+						caller can start hearing ringback before the far end even gets
+						the call.  Many phones tend to grab the first connected line
+						information and refuse to update the display if it changes.  The
+						first information is not likely to be correct if the call
+						goes to an endpoint not under the control of this Asterisk
+						box.</para>
+						<para>When disabled, a connected line update must wait for
+						another reason to send a message with the connected line
+						information to the caller before the call is answered.  You can
+						trigger the sending of the information by using an appropriate
+						dialplan application such as <emphasis>Ringing</emphasis>.</para>
+					</description>
+				</configOption>
+				<configOption name="timers_min_se" default="90">
+					<synopsis>Minimum session timers expiration period</synopsis>
+					<description><para>
+						Minimum session timer expiration period. Time in seconds.
+					</para></description>
+				</configOption>
+				<configOption name="timers" default="yes">
+					<synopsis>Session timers for SIP packets</synopsis>
+					<description>
+						<enumlist>
+							<enum name="no" />
+							<enum name="yes" />
+							<enum name="required" />
+							<enum name="always" />
+							<enum name="forced"><para>Alias of always</para></enum>
+						</enumlist>
+					</description>
+				</configOption>
+				<configOption name="timers_sess_expires" default="1800">
+					<synopsis>Maximum session timer expiration period</synopsis>
+					<description><para>
+						Maximum session timer expiration period. Time in seconds.
+					</para></description>
+				</configOption>
+				<configOption name="transport">
+					<synopsis>Explicit transport configuration to use</synopsis>
+					<description>
+						<para>This will <emphasis>force</emphasis> the endpoint to use the
+						specified transport configuration to send SIP messages.  You need
+						to already know what kind of transport (UDP/TCP/IPv4/etc) the
+						endpoint device will use.
+						</para>
+						<note><para>Not specifying a transport will select the first
+						configured transport in <filename>pjsip.conf</filename> which is
+						compatible with the URI we are trying to contact.
+						</para></note>
+						<warning><para>Transport configuration is not affected by reloads. In order to
+						change transports, a full Asterisk restart is required</para></warning>
+					</description>
+				</configOption>
+				<configOption name="trust_id_inbound" default="no">
+					<synopsis>Accept identification information received from this endpoint</synopsis>
+					<description><para>This option determines whether Asterisk will accept
+					identification from the endpoint from headers such as P-Asserted-Identity
+					or Remote-Party-ID header. This option applies both to calls originating from the
+					endpoint and calls originating from Asterisk. If <literal>no</literal>, the
+					configured Caller-ID from pjsip.conf will always be used as the identity for
+					the endpoint.</para></description>
+				</configOption>
+				<configOption name="trust_id_outbound" default="no">
+					<synopsis>Send private identification details to the endpoint.</synopsis>
+					<description><para>This option determines whether res_pjsip will send private
+					identification information to the endpoint. If <literal>no</literal>,
+					private Caller-ID information will not be forwarded to the endpoint.
+					"Private" in this case refers to any method of restricting identification.
+					Example: setting <replaceable>callerid_privacy</replaceable> to any
+					<literal>prohib</literal> variation.
+					Example: If <replaceable>trust_id_inbound</replaceable> is set to
+					<literal>yes</literal>, the presence of a <literal>Privacy: id</literal>
+					header in a SIP request or response would indicate the identification
+					provided in the request is private.</para></description>
+				</configOption>
+				<configOption name="type">
+					<synopsis>Must be of type 'endpoint'.</synopsis>
+				</configOption>
+				<configOption name="use_ptime" default="no">
+					<synopsis>Use Endpoint's requested packetization interval</synopsis>
+				</configOption>
+				<configOption name="use_avpf" default="no">
+					<synopsis>Determines whether res_pjsip will use and enforce usage of AVPF for this
+					endpoint.</synopsis>
+					<description><para>
+						If set to <literal>yes</literal>, res_pjsip will use the AVPF or SAVPF RTP
+						profile for all media offers on outbound calls and media updates and will
+						decline media offers not using the AVPF or SAVPF profile.
+					</para><para>
+						If set to <literal>no</literal>, res_pjsip will use the AVP or SAVP RTP
+						profile for all media offers on outbound calls and media updates, and will
+						decline media offers not using the AVP or SAVP profile.
+					</para></description>
+				</configOption>
+				<configOption name="force_avp" default="no">
+					<synopsis>Determines whether res_pjsip will use and enforce usage of AVP,
+					regardless of the RTP profile in use for this endpoint.</synopsis>
+					<description><para>
+						If set to <literal>yes</literal>, res_pjsip will use the AVP, AVPF, SAVP, or
+						SAVPF RTP profile for all media offers on outbound calls and media updates including
+						those for DTLS-SRTP streams.
+					</para><para>
+						If set to <literal>no</literal>, res_pjsip will use the respective RTP profile
+						depending on configuration.
+					</para></description>
+				</configOption>
+				<configOption name="media_use_received_transport" default="no">
+					<synopsis>Determines whether res_pjsip will use the media transport received in the
+					offer SDP in the corresponding answer SDP.</synopsis>
+					<description><para>
+						If set to <literal>yes</literal>, res_pjsip will use the received media transport.
+					</para><para>
+						If set to <literal>no</literal>, res_pjsip will use the respective RTP profile
+						depending on configuration.
+					</para></description>
+				</configOption>
+				<configOption name="media_encryption" default="no">
+					<synopsis>Determines whether res_pjsip will use and enforce usage of media encryption
+					for this endpoint.</synopsis>
+					<description>
+						<enumlist>
+							<enum name="no"><para>
+								res_pjsip will offer no encryption and allow no encryption to be setup.
+							</para></enum>
+							<enum name="sdes"><para>
+								res_pjsip will offer standard SRTP setup via in-SDP keys. Encrypted SIP
+								transport should be used in conjunction with this option to prevent
+								exposure of media encryption keys.
+							</para></enum>
+							<enum name="dtls"><para>
+								res_pjsip will offer DTLS-SRTP setup.
+							</para></enum>
+						</enumlist>
+					</description>
+				</configOption>
+				<configOption name="media_encryption_optimistic" default="no">
+					<synopsis>Determines whether encryption should be used if possible but does not terminate the
+					session if not achieved.</synopsis>
+					<description><para>
+						This option only applies if <replaceable>media_encryption</replaceable> is
+						set to <literal>sdes</literal> or <literal>dtls</literal>.
+					</para></description>
+				</configOption>
+				<configOption name="g726_non_standard" default="no">
+					<synopsis>Force g.726 to use AAL2 packing order when negotiating g.726 audio</synopsis>
+					<description><para>
+						When set to "yes" and an endpoint negotiates g.726 audio then use g.726 for AAL2
+						packing order instead of what is recommended by RFC3551. Since this essentially
+						replaces the underlying 'g726' codec with 'g726aal2' then 'g726aal2' needs to be
+						specified in the endpoint's allowed codec list.
+					</para></description>
+				</configOption>
+				<configOption name="inband_progress" default="no">
+					<synopsis>Determines whether chan_pjsip will indicate ringing using inband
+						progress.</synopsis>
+					<description><para>
+						If set to <literal>yes</literal>, chan_pjsip will send a 183 Session Progress
+						when told to indicate ringing and will immediately start sending ringing
+						as audio.
+					</para><para>
+						If set to <literal>no</literal>, chan_pjsip will send a 180 Ringing when told
+						to indicate ringing and will NOT send it as audio.
+					</para></description>
+				</configOption>
+				<configOption name="call_group">
+					<synopsis>The numeric pickup groups for a channel.</synopsis>
+					<description><para>
+						Can be set to a comma separated list of numbers or ranges between the values
+						of 0-63 (maximum of 64 groups).
+					</para></description>
+				</configOption>
+				<configOption name="pickup_group">
+					<synopsis>The numeric pickup groups that a channel can pickup.</synopsis>
+					<description><para>
+						Can be set to a comma separated list of numbers or ranges between the values
+						of 0-63 (maximum of 64 groups).
+					</para></description>
+				</configOption>
+				<configOption name="named_call_group">
+					<synopsis>The named pickup groups for a channel.</synopsis>
+					<description><para>
+						Can be set to a comma separated list of case sensitive strings limited by
+						supported line length.
+					</para></description>
+				</configOption>
+				<configOption name="named_pickup_group">
+					<synopsis>The named pickup groups that a channel can pickup.</synopsis>
+					<description><para>
+						Can be set to a comma separated list of case sensitive strings limited by
+						supported line length.
+					</para></description>
+				</configOption>
+				<configOption name="device_state_busy_at" default="0">
+					<synopsis>The number of in-use channels which will cause busy to be returned as device state</synopsis>
+					<description><para>
+						When the number of in-use channels for the endpoint matches the devicestate_busy_at setting the
+						PJSIP channel driver will return busy as the device state instead of in use.
+					</para></description>
+				</configOption>
+				<configOption name="t38_udptl" default="no">
+					<synopsis>Whether T.38 UDPTL support is enabled or not</synopsis>
+					<description><para>
+						If set to yes T.38 UDPTL support will be enabled, and T.38 negotiation requests will be accepted
+						and relayed.
+					</para></description>
+				</configOption>
+				<configOption name="t38_udptl_ec" default="none">
+					<synopsis>T.38 UDPTL error correction method</synopsis>
+					<description>
+						<enumlist>
+							<enum name="none"><para>
+								No error correction should be used.
+							</para></enum>
+							<enum name="fec"><para>
+								Forward error correction should be used.
+							</para></enum>
+							<enum name="redundancy"><para>
+								Redundancy error correction should be used.
+							</para></enum>
+						</enumlist>
+					</description>
+				</configOption>
+				<configOption name="t38_udptl_maxdatagram" default="0">
+					<synopsis>T.38 UDPTL maximum datagram size</synopsis>
+					<description><para>
+						This option can be set to override the maximum datagram of a remote endpoint for broken
+						endpoints.
+					</para></description>
+				</configOption>
+				<configOption name="fax_detect" default="no">
+					<synopsis>Whether CNG tone detection is enabled</synopsis>
+					<description><para>
+						This option can be set to send the session to the fax extension when a CNG tone is
+						detected.
+					</para></description>
+				</configOption>
+				<configOption name="fax_detect_timeout">
+					<synopsis>How long into a call before fax_detect is disabled for the call</synopsis>
+					<description><para>
+						The option determines how many seconds into a call before the
+						fax_detect option is disabled for the call.  Setting the value
+						to zero disables the timeout.
+					</para></description>
+				</configOption>
+				<configOption name="t38_udptl_nat" default="no">
+					<synopsis>Whether NAT support is enabled on UDPTL sessions</synopsis>
+					<description><para>
+						When enabled the UDPTL stack will send UDPTL packets to the source address of
+						received packets.
+					</para></description>
+				</configOption>
+				<configOption name="t38_udptl_ipv6" default="no">
+					<synopsis>Whether IPv6 is used for UDPTL Sessions</synopsis>
+					<description><para>
+						When enabled the UDPTL stack will use IPv6.
+					</para></description>
+				</configOption>
+				<configOption name="t38_bind_udptl_to_media_address" default="no">
+					<synopsis>Bind the UDPTL instance to the media_adress</synopsis>
+					<description><para>
+						If media_address is specified, this option causes the UDPTL instance to be bound to
+						the specified ip address which causes the packets to be sent from that address.
+					</para></description>
+				</configOption>
+				<configOption name="tone_zone">
+					<synopsis>Set which country's indications to use for channels created for this endpoint.</synopsis>
+				</configOption>
+				<configOption name="language">
+					<synopsis>Set the default language to use for channels created for this endpoint.</synopsis>
+				</configOption>
+				<configOption name="one_touch_recording" default="no">
+					<synopsis>Determines whether one-touch recording is allowed for this endpoint.</synopsis>
+					<see-also>
+						<ref type="configOption">record_on_feature</ref>
+						<ref type="configOption">record_off_feature</ref>
+					</see-also>
+				</configOption>
+				<configOption name="record_on_feature" default="automixmon">
+					<synopsis>The feature to enact when one-touch recording is turned on.</synopsis>
+					<description>
+						<para>When an INFO request for one-touch recording arrives with a Record header set to "on", this
+						feature will be enabled for the channel. The feature designated here can be any built-in
+						or dynamic feature defined in features.conf.</para>
+						<note><para>This setting has no effect if the endpoint's one_touch_recording option is disabled</para></note>
+					</description>
+					<see-also>
+						<ref type="configOption">one_touch_recording</ref>
+						<ref type="configOption">record_off_feature</ref>
+					</see-also>
+				</configOption>
+				<configOption name="record_off_feature" default="automixmon">
+					<synopsis>The feature to enact when one-touch recording is turned off.</synopsis>
+					<description>
+						<para>When an INFO request for one-touch recording arrives with a Record header set to "off", this
+						feature will be enabled for the channel. The feature designated here can be any built-in
+						or dynamic feature defined in features.conf.</para>
+						<note><para>This setting has no effect if the endpoint's one_touch_recording option is disabled</para></note>
+					</description>
+					<see-also>
+						<ref type="configOption">one_touch_recording</ref>
+						<ref type="configOption">record_on_feature</ref>
+					</see-also>
+				</configOption>
+				<configOption name="rtp_engine" default="asterisk">
+					<synopsis>Name of the RTP engine to use for channels created for this endpoint</synopsis>
+				</configOption>
+				<configOption name="allow_transfer" default="yes">
+					<synopsis>Determines whether SIP REFER transfers are allowed for this endpoint</synopsis>
+				</configOption>
+				<configOption name="user_eq_phone" default="no">
+					<synopsis>Determines whether a user=phone parameter is placed into the request URI if the user is determined to be a phone number</synopsis>
+				</configOption>
+				<configOption name="moh_passthrough" default="no">
+					<synopsis>Determines whether hold and unhold will be passed through using re-INVITEs with recvonly and sendrecv to the remote side</synopsis>
+				</configOption>
+				<configOption name="sdp_owner" default="-">
+					<synopsis>String placed as the username portion of an SDP origin (o=) line.</synopsis>
+				</configOption>
+				<configOption name="sdp_session" default="Asterisk">
+					<synopsis>String used for the SDP session (s=) line.</synopsis>
+				</configOption>
+				<configOption name="tos_audio">
+					<synopsis>DSCP TOS bits for audio streams</synopsis>
+					<description><para>
+						See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service for more information about QoS settings
+					</para></description>
+				</configOption>
+				<configOption name="tos_video">
+					<synopsis>DSCP TOS bits for video streams</synopsis>
+					<description><para>
+						See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service for more information about QoS settings
+					</para></description>
+				</configOption>
+				<configOption name="cos_audio">
+					<synopsis>Priority for audio streams</synopsis>
+					<description><para>
+						See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service for more information about QoS settings
+					</para></description>
+				</configOption>
+				<configOption name="cos_video">
+					<synopsis>Priority for video streams</synopsis>
+					<description><para>
+						See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service for more information about QoS settings
+					</para></description>
+				</configOption>
+				<configOption name="allow_subscribe" default="yes">
+					<synopsis>Determines if endpoint is allowed to initiate subscriptions with Asterisk.</synopsis>
+				</configOption>
+				<configOption name="sub_min_expiry" default="60">
+					<synopsis>The minimum allowed expiry time for subscriptions initiated by the endpoint.</synopsis>
+				</configOption>
+				<configOption name="from_user">
+					<synopsis>Username to use in From header for requests to this endpoint.</synopsis>
+				</configOption>
+				<configOption name="mwi_from_user">
+					<synopsis>Username to use in From header for unsolicited MWI NOTIFYs to this endpoint.</synopsis>
+				</configOption>
+				<configOption name="from_domain">
+					<synopsis>Domain to user in From header for requests to this endpoint.</synopsis>
+				</configOption>
+				<configOption name="dtls_verify">
+					<synopsis>Verify that the provided peer certificate is valid</synopsis>
+					<description><para>
+						This option only applies if <replaceable>media_encryption</replaceable> is
+						set to <literal>dtls</literal>.
+						</para><para>
+						It can be one of the following values:
+						</para><enumlist>
+							<enum name="no"><para>
+								meaning no verification is done.
+							</para></enum>
+							<enum name="fingerprint"><para>
+								meaning to verify the remote fingerprint.
+							</para></enum>
+							<enum name="certificate"><para>
+								meaning to verify the remote certificate.
+							</para></enum>
+							<enum name="yes"><para>
+								meaning to verify both the remote fingerprint and certificate.
+							</para></enum>
+						</enumlist>
+					</description>
+				</configOption>
+				<configOption name="dtls_rekey">
+					<synopsis>Interval at which to renegotiate the TLS session and rekey the SRTP session</synopsis>
+					<description><para>
+						This option only applies if <replaceable>media_encryption</replaceable> is
+						set to <literal>dtls</literal>.
+					</para><para>
+						If this is not set or the value provided is 0 rekeying will be disabled.
+					</para></description>
+				</configOption>
+				<configOption name="dtls_auto_generate_cert" default="no">
+					<synopsis>Whether or not to automatically generate an ephemeral X.509 certificate</synopsis>
+					<description>
+						<para>
+							If enabled, Asterisk will generate an X.509 certificate for each DTLS session.
+							This option only applies if <replaceable>media_encryption</replaceable> is set
+							to <literal>dtls</literal>. This option will be automatically enabled if
+							<literal>webrtc</literal> is enabled and <literal>dtls_cert_file</literal> is
+							not specified.
+						</para>
+					</description>
+				</configOption>
+				<configOption name="dtls_cert_file">
+					<synopsis>Path to certificate file to present to peer</synopsis>
+					<description><para>
+						This option only applies if <replaceable>media_encryption</replaceable> is
+						set to <literal>dtls</literal>.
+					</para></description>
+				</configOption>
+				<configOption name="dtls_private_key">
+					<synopsis>Path to private key for certificate file</synopsis>
+					<description><para>
+						This option only applies if <replaceable>media_encryption</replaceable> is
+						set to <literal>dtls</literal>.
+					</para></description>
+				</configOption>
+				<configOption name="dtls_cipher">
+					<synopsis>Cipher to use for DTLS negotiation</synopsis>
+					<description><para>
+						This option only applies if <replaceable>media_encryption</replaceable> is
+						set to <literal>dtls</literal>.
+					</para>
+					<para>Many options for acceptable ciphers. See link for more:</para>
+					<para>http://www.openssl.org/docs/apps/ciphers.html#CIPHER_STRINGS
+					</para></description>
+				</configOption>
+				<configOption name="dtls_ca_file">
+					<synopsis>Path to certificate authority certificate</synopsis>
+					<description><para>
+						This option only applies if <replaceable>media_encryption</replaceable> is
+						set to <literal>dtls</literal>.
+					</para></description>
+				</configOption>
+				<configOption name="dtls_ca_path">
+					<synopsis>Path to a directory containing certificate authority certificates</synopsis>
+					<description><para>
+						This option only applies if <replaceable>media_encryption</replaceable> is
+						set to <literal>dtls</literal>.
+					</para></description>
+				</configOption>
+				<configOption name="dtls_setup">
+					<synopsis>Whether we are willing to accept connections, connect to the other party, or both.</synopsis>
+					<description>
+						<para>
+							This option only applies if <replaceable>media_encryption</replaceable> is
+							set to <literal>dtls</literal>.
+						</para>
+						<enumlist>
+							<enum name="active"><para>
+								res_pjsip will make a connection to the peer.
+							</para></enum>
+							<enum name="passive"><para>
+								res_pjsip will accept connections from the peer.
+							</para></enum>
+							<enum name="actpass"><para>
+								res_pjsip will offer and accept connections from the peer.
+							</para></enum>
+						</enumlist>
+					</description>
+				</configOption>
+				<configOption name="dtls_fingerprint">
+					<synopsis>Type of hash to use for the DTLS fingerprint in the SDP.</synopsis>
+					<description>
+						<para>
+							This option only applies if <replaceable>media_encryption</replaceable> is
+							set to <literal>dtls</literal>.
+						</para>
+						<enumlist>
+							<enum name="SHA-256"></enum>
+							<enum name="SHA-1"></enum>
+						</enumlist>
+					</description>
+				</configOption>
+				<configOption name="srtp_tag_32">
+					<synopsis>Determines whether 32 byte tags should be used instead of 80 byte tags.</synopsis>
+					<description><para>
+						This option only applies if <replaceable>media_encryption</replaceable> is
+						set to <literal>sdes</literal> or <literal>dtls</literal>.
+					</para></description>
+				</configOption>
+				<configOption name="set_var">
+					<synopsis>Variable set on a channel involving the endpoint.</synopsis>
+					<description><para>
+						When a new channel is created using the endpoint set the specified
+						variable(s) on that channel. For multiple channel variables specify
+						multiple 'set_var'(s).
+					</para></description>
+				</configOption>
+				<configOption name="message_context">
+					<synopsis>Context to route incoming MESSAGE requests to.</synopsis>
+					<description><para>
+						If specified, incoming MESSAGE requests will be routed to the indicated
+						dialplan context. If no <replaceable>message_context</replaceable> is
+						specified, then the <replaceable>context</replaceable> setting is used.
+					</para></description>
+				</configOption>
+				<configOption name="accountcode">
+					<synopsis>An accountcode to set automatically on any channels created for this endpoint.</synopsis>
+					<description><para>
+						If specified, any channel created for this endpoint will automatically
+						have this accountcode set on it.
+					</para></description>
+				</configOption>
+				<configOption name="preferred_codec_only" default="no">
+					<synopsis>Respond to a SIP invite with the single most preferred codec (DEPRECATED)</synopsis>
+					<description><para>Respond to a SIP invite with the single most preferred codec
+					rather than advertising all joint codec capabilities. This limits the other side's codec
+					choice to exactly what we prefer.</para>
+					<warning><para>This option has been deprecated in favor of
+					<literal>incoming_call_offer_pref</literal>.  Setting both options is unsupported.</para>
+					</warning>
+					</description>
+					<see-also>
+						<ref type="configOption">incoming_call_offer_pref</ref>
+					</see-also>
+				</configOption>
+				<configOption name="incoming_call_offer_pref" default="local">
+					<synopsis>Preferences for selecting codecs for an incoming call.</synopsis>
+					<description>
+						<para>Based on this setting, a joint list of preferred codecs between those
+						received in an incoming SDP offer (remote), and those specified in the
+						endpoint's "allow" parameter (local) es created and is passed to the Asterisk
+						core. </para>
+						<note><para>This list will consist of only those codecs found in both lists.</para></note>
+						<enumlist>
+							<enum name="local"><para>
+								Include all codecs in the local list that are also in the remote list
+								preserving the local order.  (default).
+							</para></enum>
+							<enum name="local_first"><para>
+								Include only the first codec in the local list that is also in the remote list.
+							</para></enum>
+							<enum name="remote"><para>
+								Include all codecs in the remote list that are also in the local list
+								preserving the remote order.
+							</para></enum>
+							<enum name="remote_first"><para>
+								Include only the first codec in the remote list that is also in the local list.
+							</para></enum>
+						</enumlist>
+					</description>
+				</configOption>
+				<configOption name="outgoing_call_offer_pref" default="remote_merge">
+					<synopsis>Preferences for selecting codecs for an outgoing call.</synopsis>
+					<description>
+						<para>Based on this setting, a joint list of preferred codecs between
+						those received from the Asterisk core (remote), and those specified in
+						the endpoint's "allow" parameter (local) is created and is used to create
+						the outgoing SDP offer.</para>
+						<enumlist>
+							<enum name="local"><para>
+								Include all codecs in the local list that are also in the remote list
+								preserving the local order.
+							</para></enum>
+							<enum name="local_merge"><para>
+								Include all codecs in the local list preserving the local order.
+							</para></enum>
+							<enum name="local_first"><para>
+								Include only the first codec in the local list.
+							</para></enum>
+							<enum name="remote"><para>
+								Include all codecs in the remote list that are also in the local list
+								preserving the remote order.
+							</para></enum>
+							<enum name="remote_merge"><para>
+                                                                Include all codecs in the local list preserving the remote order. (default)
+							</para></enum>
+							<enum name="remote_first"><para>
+								Include only the first codec in the remote list that is also in the local list.
+							</para></enum>
+						</enumlist>
+					</description>
+				</configOption>
+				<configOption name="rtp_keepalive">
+					<synopsis>Number of seconds between RTP comfort noise keepalive packets.</synopsis>
+					<description><para>
+						At the specified interval, Asterisk will send an RTP comfort noise frame. This may
+						be useful for situations where Asterisk is behind a NAT or firewall and must keep
+						a hole open in order to allow for media to arrive at Asterisk.
+					</para></description>
+				</configOption>
+				<configOption name="rtp_timeout" default="0">
+					<synopsis>Maximum number of seconds without receiving RTP (while off hold) before terminating call.</synopsis>
+					<description><para>
+						This option configures the number of seconds without RTP (while off hold) before
+						considering a channel as dead. When the number of seconds is reached the underlying
+						channel is hung up. By default this option is set to 0, which means do not check.
+					</para></description>
+				</configOption>
+				<configOption name="rtp_timeout_hold" default="0">
+					<synopsis>Maximum number of seconds without receiving RTP (while on hold) before terminating call.</synopsis>
+					<description><para>
+						This option configures the number of seconds without RTP (while on hold) before
+						considering a channel as dead. When the number of seconds is reached the underlying
+						channel is hung up. By default this option is set to 0, which means do not check.
+					</para></description>
+				</configOption>
+				<configOption name="acl">
+					<synopsis>List of IP ACL section names in acl.conf</synopsis>
+					<description><para>
+						This matches sections configured in <literal>acl.conf</literal>. The value is
+						defined as a list of comma-delimited section names.
+					</para></description>
+				</configOption>
+				<configOption name="deny">
+					<synopsis>List of IP addresses to deny access from</synopsis>
+					<description><para>
+						The value is a comma-delimited list of IP addresses. IP addresses may
+						have a subnet mask appended. The subnet mask may be written in either
+						CIDR or dotted-decimal notation. Separate the IP address and subnet
+						mask with a slash ('/')
+					</para></description>
+				</configOption>
+				<configOption name="permit">
+					<synopsis>List of IP addresses to permit access from</synopsis>
+					<description><para>
+						The value is a comma-delimited list of IP addresses. IP addresses may
+						have a subnet mask appended. The subnet mask may be written in either
+						CIDR or dotted-decimal notation. Separate the IP address and subnet
+						mask with a slash ('/')
+					</para></description>
+				</configOption>
+				<configOption name="contact_acl">
+					<synopsis>List of Contact ACL section names in acl.conf</synopsis>
+					<description><para>
+						This matches sections configured in <literal>acl.conf</literal>. The value is
+						defined as a list of comma-delimited section names.
+					</para></description>
+				</configOption>
+				<configOption name="contact_deny">
+					<synopsis>List of Contact header addresses to deny</synopsis>
+					<description><para>
+						The value is a comma-delimited list of IP addresses. IP addresses may
+						have a subnet mask appended. The subnet mask may be written in either
+						CIDR or dotted-decimal notation. Separate the IP address and subnet
+						mask with a slash ('/')
+					</para></description>
+				</configOption>
+				<configOption name="contact_permit">
+					<synopsis>List of Contact header addresses to permit</synopsis>
+					<description><para>
+						The value is a comma-delimited list of IP addresses. IP addresses may
+						have a subnet mask appended. The subnet mask may be written in either
+						CIDR or dotted-decimal notation. Separate the IP address and subnet
+						mask with a slash ('/')
+					</para></description>
+				</configOption>
+				<configOption name="subscribe_context">
+					<synopsis>Context for incoming MESSAGE requests.</synopsis>
+					<description><para>
+						If specified, incoming SUBSCRIBE requests will be searched for the matching
+						extension in the indicated context.
+						If no <replaceable>subscribe_context</replaceable> is specified,
+						then the <replaceable>context</replaceable> setting is used.
+					</para></description>
+				</configOption>
+				<configOption name="contact_user" default="">
+					<synopsis>Force the user on the outgoing Contact header to this value.</synopsis>
+					<description><para>
+						On outbound requests, force the user portion of the Contact header to this value.
+					</para></description>
+				</configOption>
+				<configOption name="asymmetric_rtp_codec" default="no">
+					<synopsis>Allow the sending and receiving RTP codec to differ</synopsis>
+					<description><para>
+						When set to "yes" the codec in use for sending will be allowed to differ from
+						that of the received one. PJSIP will not automatically switch the sending one
+						to the receiving one.
+					</para></description>
+				</configOption>
+				<configOption name="rtcp_mux" default="no">
+					<synopsis>Enable RFC 5761 RTCP multiplexing on the RTP port</synopsis>
+					<description><para>
+						With this option enabled, Asterisk will attempt to negotiate the use of the "rtcp-mux"
+						attribute on all media streams. This will result in RTP and RTCP being sent and received
+						on the same port. This shifts the demultiplexing logic to the application rather than
+						the transport layer. This option is useful when interoperating with WebRTC endpoints
+						since they mandate this option's use.
+					</para></description>
+				</configOption>
+				<configOption name="refer_blind_progress" default="yes">
+					<synopsis>Whether to notifies all the progress details on blind transfer</synopsis>
+					<description><para>
+						Some SIP phones (Mitel/Aastra, Snom) expect a sip/frag "200 OK"
+						after REFER has been accepted. If set to <literal>no</literal> then asterisk
+						will not send the progress details, but immediately will send "200 OK".
+					</para></description>
+				</configOption>
+				<configOption name="notify_early_inuse_ringing" default="no">
+					<synopsis>Whether to notifies dialog-info 'early' on InUse&amp;Ringing state</synopsis>
+					<description><para>
+						Control whether dialog-info subscriptions get 'early' state
+						on Ringing when already INUSE.
+					</para></description>
+				</configOption>
+				<configOption name="max_audio_streams" default="1">
+					<synopsis>The maximum number of allowed audio streams for the endpoint</synopsis>
+					<description><para>
+						This option enforces a limit on the maximum simultaneous negotiated audio
+						streams allowed for the endpoint.
+					</para></description>
+				</configOption>
+				<configOption name="max_video_streams" default="1">
+					<synopsis>The maximum number of allowed video streams for the endpoint</synopsis>
+					<description><para>
+						This option enforces a limit on the maximum simultaneous negotiated video
+						streams allowed for the endpoint.
+					</para></description>
+				</configOption>
+				<configOption name="bundle" default="no">
+					<synopsis>Enable RTP bundling</synopsis>
+					<description><para>
+						With this option enabled, Asterisk will attempt to negotiate the use of bundle.
+						If negotiated this will result in multiple RTP streams being carried over the same
+						underlying transport. Note that enabling bundle will also enable the rtcp_mux option.
+					</para></description>
+				</configOption>
+				<configOption name="webrtc" default="no">
+					<synopsis>Defaults and enables some options that are relevant to WebRTC</synopsis>
+					<description><para>
+						When set to "yes" this also enables the following values that are needed in
+						order for basic WebRTC support to work: rtcp_mux, use_avpf, ice_support, and
+						use_received_transport. The following configuration settings also get defaulted
+						as follows:</para>
+						<para>media_encryption=dtls</para>
+						<para>dtls_auto_generate_cert=yes (if dtls_cert_file is not set)</para>
+						<para>dtls_verify=fingerprint</para>
+						<para>dtls_setup=actpass</para>
+					</description>
+				</configOption>
+				<configOption name="incoming_mwi_mailbox">
+					<synopsis>Mailbox name to use when incoming MWI NOTIFYs are received</synopsis>
+					<description><para>
+						If an MWI NOTIFY is received <emphasis>from</emphasis> this endpoint,
+						this mailbox will be used when notifying other modules of MWI status
+						changes.  If not set, incoming MWI NOTIFYs are ignored.
+					</para></description>
+				</configOption>
+				<configOption name="follow_early_media_fork">
+					<synopsis>Follow SDP forked media when To tag is different</synopsis>
+					<description><para>
+						On outgoing calls, if the UAS responds with different SDP attributes
+						on subsequent 18X or 2XX responses (such as a port update) AND the
+						To tag on the subsequent response is different than that on the previous
+						one, follow it. This usually happens when the INVITE is forked to multiple
+						UASs and more than one sends an SDP answer.
+						</para>
+						<note><para>
+							This option must also be enabled in the <literal>system</literal>
+							section for it to take effect here.
+						</para></note>
+					</description>
+				</configOption>
+				<configOption name="accept_multiple_sdp_answers" default="no">
+					<synopsis>Accept multiple SDP answers on non-100rel responses</synopsis>
+					<description><para>
+						On outgoing calls, if the UAS responds with different SDP attributes
+						on non-100rel 18X or 2XX responses (such as a port update) AND the
+						To tag on the subsequent response is the same as that on the previous one,
+						process the updated SDP.  This can happen when the UAS needs to change ports
+						for some reason such as using a separate port for custom ringback.
+						</para>
+						<note><para>
+							This option must also be enabled in the <literal>system</literal>
+							section for it to take effect here.
+						</para></note>
+					</description>
+				</configOption>
+				<configOption name="suppress_q850_reason_headers" default="no">
+					<synopsis>Suppress Q.850 Reason headers for this endpoint</synopsis>
+					<description><para>
+						Some devices can't accept multiple Reason headers and get confused
+						when both 'SIP' and 'Q.850' Reason headers are received.  This
+						option allows the 'Q.850' Reason header to be suppressed.</para>
+					</description>
+				</configOption>
+				<configOption name="ignore_183_without_sdp" default="no">
+					<synopsis>Do not forward 183 when it doesn't contain SDP</synopsis>
+					<description><para>
+						Certain SS7 internetworking scenarios can result in a 183
+						to be generated for reasons other than early media.  Forwarding
+						this 183 can cause loss of ringback tone.  This flag emulates
+						the behavior of chan_sip and prevents these 183 responses from
+						being forwarded.</para>
+					</description>
+				</configOption>
+				<configOption name="stir_shaken" default="no">
+					<synopsis>Enable STIR/SHAKEN support on this endpoint</synopsis>
+					<description><para>
+						Enable STIR/SHAKEN support on this endpoint. On incoming INVITEs,
+						the Identity header will be checked for validity. On outgoing
+						INVITEs, an Identity header will be added.</para>
+					</description>
+				</configOption>
+				<configOption name="allow_unauthenticated_options" default="no">
+					<synopsis>Skip authentication when receiving OPTIONS requests</synopsis>
+					<description><para>
+						RFC 3261 says that the response to an OPTIONS request MUST be the
+						same had the request been an INVITE. Some UAs use OPTIONS requests
+						like a 'ping' and the expectation is that they will return a
+						200 OK.</para>
+						<para>Enabling <literal>allow_unauthenticated_options</literal>
+						will skip authentication of OPTIONS requests for the given
+						endpoint.</para>
+						<para>There are security implications to enabling this setting as
+						it can allow information disclosure to occur - specifically, if
+						enabled, an external party could enumerate and find the endpoint
+						name by sending OPTIONS requests and examining the
+						responses.</para>
+					</description>
+				</configOption>
+			</configObject>
+			<configObject name="auth">
+				<synopsis>Authentication type</synopsis>
+				<description><para>
+					Authentication objects hold the authentication information for use
+					by other objects such as <literal>endpoints</literal> or <literal>registrations</literal>.
+					This also allows for multiple objects to use a single auth object. See
+					the <literal>auth_type</literal> config option for password style choices.
+				</para></description>
+				<configOption name="auth_type" default="userpass">
+					<synopsis>Authentication type</synopsis>
+					<description><para>
+						This option specifies which of the password style config options should be read
+						when trying to authenticate an endpoint inbound request. If set to <literal>userpass</literal>
+						then we'll read from the 'password' option. For <literal>md5</literal> we'll read
+						from 'md5_cred'. If set to <literal>google_oauth</literal> then we'll read from the
+						refresh_token/oauth_clientid/oauth_secret fields. The following values are valid:
+						</para>
+						<enumlist>
+							<enum name="md5"/>
+							<enum name="userpass"/>
+							<enum name="google_oauth"/>
+						</enumlist>
+						<para>
+						</para>
+						<note>
+							<para>
+								This setting only describes whether the password is in
+								plain text or has been pre-hashed with MD5.  It doesn't describe
+								the acceptable digest algorithms we'll accept in a received
+								challenge.
+							</para>
+						</note>
+					</description>
+				</configOption>
+				<configOption name="nonce_lifetime" default="32">
+					<synopsis>Lifetime of a nonce associated with this authentication config.</synopsis>
+				</configOption>
+				<configOption name="md5_cred" default="">
+					<synopsis>MD5 Hash used for authentication.</synopsis>
+					<description><para>
+						Only used when auth_type is <literal>md5</literal>.
+						As an alternative to specifying a plain text password,
+						you can hash the username, realm and password
+						together one time and place the hash value here.
+						The input to the hash function must be in the
+						following format:
+						</para>
+						<para>
+						</para>
+						<para>
+						&lt;username&gt;:&lt;realm&gt;:&lt;password&gt;
+						</para>
+						<para>
+						</para>
+						<para>
+						For incoming authentication (asterisk is the server),
+						the realm must match either the realm set in this object
+						or the <variable>default_realm</variable> set in in the
+						<replaceable>global</replaceable> object.
+						</para>
+						<para>
+						</para>
+						<para>
+						For outgoing authentication (asterisk is the UAC),
+						the realm must match what the server will be sending
+						in their WWW-Authenticate header.  It can't be blank
+						unless you expect the server to be sending a blank
+						realm in the header.  You can't use pre-hashed
+						passwords with a wildcard auth object.
+						You can generate the hash with the following shell
+						command:
+						</para>
+						<para>
+						</para>
+						<para>
+						$ echo -n "myname:myrealm:mypassword" | md5sum
+						</para>
+						<para>
+						</para>
+						<para>
+						Note the '-n'.  You don't want a newline to be part
+						of the hash.
+					</para></description>
+				</configOption>
+				<configOption name="password">
+					<synopsis>Plain text password used for authentication.</synopsis>
+					<description><para>Only used when auth_type is <literal>userpass</literal>.</para></description>
+				</configOption>
+				<configOption name="refresh_token">
+					<synopsis>OAuth 2.0 refresh token</synopsis>
+				</configOption>
+				<configOption name="oauth_clientid">
+					<synopsis>OAuth 2.0 application's client id</synopsis>
+				</configOption>
+				<configOption name="oauth_secret">
+					<synopsis>OAuth 2.0 application's secret</synopsis>
+				</configOption>
+				<configOption name="realm" default="">
+					<synopsis>SIP realm for endpoint</synopsis>
+					<description><para>
+						For incoming authentication (asterisk is the UAS),
+						this is the realm to be sent on WWW-Authenticate
+						headers.  If not specified, the <replaceable>global</replaceable>
+						object's <variable>default_realm</variable> will be used.
+						</para>
+						<para>
+						</para>
+						<para>
+						For outgoing authentication (asterisk is the UAC), this
+						must either be the realm the server is expected to send,
+						or left blank or contain a single '*' to automatically
+						use the realm sent by the server. If you have multiple
+						auth objects for an endpoint, the realm is also used to
+						match the auth object to the realm the server sent.
+						</para>
+						<para>
+						</para>
+						<note>
+						<para>
+						Using the same auth section for inbound and outbound
+						authentication is not recommended.  There is a difference in
+						meaning for an empty realm setting between inbound and outbound
+						authentication uses.
+						</para>
+						</note>
+						<para>
+						</para>
+						<note>
+							<para>
+								If more than one auth object with the same realm or
+								more than one wildcard auth object associated to
+								an endpoint, we can only use the first one of
+								each defined on the endpoint.
+							</para>
+						</note>
+					</description>
+				</configOption>
+				<configOption name="type">
+					<synopsis>Must be 'auth'</synopsis>
+				</configOption>
+				<configOption name="username">
+					<synopsis>Username to use for account</synopsis>
+				</configOption>
+			</configObject>
+			<configObject name="domain_alias">
+				<synopsis>Domain Alias</synopsis>
+				<description><para>
+					Signifies that a domain is an alias. If the domain on a session is
+					not found to match an AoR then this object is used to see if we have
+					an alias for the AoR to which the endpoint is binding. This objects
+					name as defined in configuration should be the domain alias and a
+					config option is provided to specify the domain to be aliased.
+				</para></description>
+				<configOption name="type">
+					<synopsis>Must be of type 'domain_alias'.</synopsis>
+				</configOption>
+				<configOption name="domain">
+					<synopsis>Domain to be aliased</synopsis>
+				</configOption>
+			</configObject>
+			<configObject name="transport">
+				<synopsis>SIP Transport</synopsis>
+				<description><para>
+					<emphasis>Transports</emphasis>
+					</para>
+					<para>There are different transports and protocol derivatives
+						supported by <literal>res_pjsip</literal>. They are in order of
+						preference: UDP, TCP, and WebSocket (WS).</para>
+					<note><para>Changes to transport configuration in pjsip.conf will only be
+						effected on a complete restart of Asterisk. A module reload
+						will not suffice.</para></note>
+				</description>
+				<configOption name="async_operations" default="1">
+					<synopsis>Number of simultaneous Asynchronous Operations</synopsis>
+				</configOption>
+				<configOption name="bind">
+					<synopsis>IP Address and optional port to bind to for this transport</synopsis>
+				</configOption>
+				<configOption name="ca_list_file">
+					<synopsis>File containing a list of certificates to read (TLS ONLY, not WSS)</synopsis>
+				</configOption>
+				<configOption name="ca_list_path">
+					<synopsis>Path to directory containing a list of certificates to read (TLS ONLY, not WSS)</synopsis>
+				</configOption>
+				<configOption name="cert_file">
+					<synopsis>Certificate file for endpoint (TLS ONLY, not WSS)</synopsis>
+					<description><para>
+						A path to a .crt or .pem file can be provided.  However, only
+						the certificate is read from the file, not the private key.
+						The <literal>priv_key_file</literal> option must supply a
+						matching key file.
+					</para></description>
+				</configOption>
+				<configOption name="cipher">
+					<synopsis>Preferred cryptography cipher names (TLS ONLY, not WSS)</synopsis>
+					<description>
+					<para>Comma separated list of cipher names or numeric equivalents.
+						Numeric equivalents can be either decimal or hexadecimal (0xX).
+					</para>
+					<para>There are many cipher names.  Use the CLI command
+						<literal>pjsip list ciphers</literal> to see a list of cipher
+						names available for your installation.  See link for more:</para>
+					<para>http://www.openssl.org/docs/apps/ciphers.html#CIPHER_SUITE_NAMES
+					</para>
+					</description>
+				</configOption>
+				<configOption name="domain">
+					<synopsis>Domain the transport comes from</synopsis>
+				</configOption>
+				<configOption name="external_media_address">
+					<synopsis>External IP address to use in RTP handling</synopsis>
+					<description><para>
+						When a request or response is sent out, if the destination of the
+						message is outside the IP network defined in the option <literal>localnet</literal>,
+						and the media address in the SDP is within the localnet network, then the
+						media address in the SDP will be rewritten to the value defined for
+						<literal>external_media_address</literal>.
+					</para></description>
+				</configOption>
+				<configOption name="external_signaling_address">
+					<synopsis>External address for SIP signalling</synopsis>
+				</configOption>
+				<configOption name="external_signaling_port" default="0">
+					<synopsis>External port for SIP signalling</synopsis>
+				</configOption>
+				<configOption name="method">
+					<synopsis>Method of SSL transport (TLS ONLY, not WSS)</synopsis>
+					<description>
+						<enumlist>
+							<enum name="default">
+								<para>The default as defined by PJSIP. This is currently TLSv1, but may change with future releases.</para>
+							</enum>
+							<enum name="unspecified">
+								<para>This option is equivalent to setting 'default'</para>
+							</enum>
+							<enum name="tlsv1" />
+							<enum name="tlsv1_1" />
+							<enum name="tlsv1_2" />
+							<enum name="sslv2" />
+							<enum name="sslv3" />
+							<enum name="sslv23" />
+						</enumlist>
+					</description>
+				</configOption>
+				<configOption name="local_net">
+					<synopsis>Network to consider local (used for NAT purposes).</synopsis>
+					<description><para>This must be in CIDR or dotted decimal format with the IP
+					and mask separated with a slash ('/').</para></description>
+				</configOption>
+				<configOption name="password">
+					<synopsis>Password required for transport</synopsis>
+				</configOption>
+				<configOption name="priv_key_file">
+					<synopsis>Private key file (TLS ONLY, not WSS)</synopsis>
+				</configOption>
+				<configOption name="protocol" default="udp">
+					<synopsis>Protocol to use for SIP traffic</synopsis>
+					<description>
+						<enumlist>
+							<enum name="udp" />
+							<enum name="tcp" />
+							<enum name="tls" />
+							<enum name="ws" />
+							<enum name="wss" />
+							<enum name="flow" />
+						</enumlist>
+					</description>
+				</configOption>
+				<configOption name="require_client_cert" default="false">
+					<synopsis>Require client certificate (TLS ONLY, not WSS)</synopsis>
+				</configOption>
+				<configOption name="type">
+					<synopsis>Must be of type 'transport'.</synopsis>
+				</configOption>
+				<configOption name="verify_client" default="false">
+					<synopsis>Require verification of client certificate (TLS ONLY, not WSS)</synopsis>
+				</configOption>
+				<configOption name="verify_server" default="false">
+					<synopsis>Require verification of server certificate (TLS ONLY, not WSS)</synopsis>
+				</configOption>
+				<configOption name="tos" default="false">
+					<synopsis>Enable TOS for the signalling sent over this transport</synopsis>
+					<description>
+					<para>See <literal>https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service</literal>
+					for more information on this parameter.</para>
+					<note><para>This option does not apply to the <replaceable>ws</replaceable>
+					or the <replaceable>wss</replaceable> protocols.</para></note>
+					</description>
+				</configOption>
+				<configOption name="cos" default="false">
+					<synopsis>Enable COS for the signalling sent over this transport</synopsis>
+					<description>
+					<para>See <literal>https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service</literal>
+					for more information on this parameter.</para>
+					<note><para>This option does not apply to the <replaceable>ws</replaceable>
+					or the <replaceable>wss</replaceable> protocols.</para></note>
+					</description>
+				</configOption>
+				<configOption name="websocket_write_timeout" default="100">
+					<synopsis>The timeout (in milliseconds) to set on WebSocket connections.</synopsis>
+					<description>
+						<para>If a websocket connection accepts input slowly, the timeout
+						for writes to it can be increased to keep it from being disconnected.
+						Value is in milliseconds.</para>
+					</description>
+				</configOption>
+				<configOption name="allow_reload" default="no">
+					<synopsis>Allow this transport to be reloaded.</synopsis>
+					<description>
+						<para>Allow this transport to be reloaded when res_pjsip is reloaded.
+						This option defaults to "no" because reloading a transport may disrupt
+						in-progress calls.</para>
+					</description>
+				</configOption>
+				<configOption name="symmetric_transport" default="no">
+					<synopsis>Use the same transport for outgoing requests as incoming ones.</synopsis>
+					<description>
+						<para>When a request from a dynamic contact
+							comes in on a transport with this option set to 'yes',
+							the transport name will be saved and used for subsequent
+							outgoing requests like OPTIONS, NOTIFY and INVITE.  It's
+							saved as a contact uri parameter named 'x-ast-txp' and will
+							display with the contact uri in CLI, AMI, and ARI output.
+							On the outgoing request, if a transport wasn't explicitly
+							set on the endpoint AND the request URI is not a hostname,
+							the saved transport will be used and the 'x-ast-txp'
+							parameter stripped from the outgoing packet.
+						</para>
+					</description>
+				</configOption>
+			</configObject>
+			<configObject name="contact">
+				<synopsis>A way of creating an aliased name to a SIP URI</synopsis>
+				<description><para>
+					Contacts are a way to hide SIP URIs from the dialplan directly.
+					They are also used to make a group of contactable parties when
+					in use with <literal>AoR</literal> lists.
+				</para></description>
+				<configOption name="type">
+					<synopsis>Must be of type 'contact'.</synopsis>
+				</configOption>
+				<configOption name="uri">
+					<synopsis>SIP URI to contact peer</synopsis>
+				</configOption>
+				<configOption name="expiration_time">
+					<synopsis>Time to keep alive a contact</synopsis>
+					<description><para>
+						Time to keep alive a contact. String style specification.
+					</para></description>
+				</configOption>
+				<configOption name="qualify_frequency" default="0">
+					<synopsis>Interval at which to qualify a contact</synopsis>
+					<description><para>
+						Interval between attempts to qualify the contact for reachability.
+						If <literal>0</literal> never qualify. Time in seconds.
+					</para></description>
+				</configOption>
+				<configOption name="qualify_timeout" default="3.0">
+					<synopsis>Timeout for qualify</synopsis>
+					<description><para>
+						If the contact doesn't respond to the OPTIONS request before the timeout,
+						the contact is marked unavailable.
+						If <literal>0</literal> no timeout. Time in fractional seconds.
+					</para></description>
+				</configOption>
+				<configOption name="authenticate_qualify">
+					<synopsis>Authenticates a qualify challenge response if needed</synopsis>
+					<description>
+						<para>If true and a qualify request receives a challenge response then
+						authentication is attempted before declaring the contact available.
+						</para>
+						<note><para>This option does nothing as we will always complete
+						the challenge response authentication if the qualify request is
+						challenged.
+						</para></note>
+					</description>
+				</configOption>
+				<configOption name="outbound_proxy">
+					<synopsis>Outbound proxy used when sending OPTIONS request</synopsis>
+					<description><para>
+						If set the provided URI will be used as the outbound proxy when an
+						OPTIONS request is sent to a contact for qualify purposes.
+					</para></description>
+				</configOption>
+				<configOption name="path">
+					<synopsis>Stored Path vector for use in Route headers on outgoing requests.</synopsis>
+				</configOption>
+				<configOption name="user_agent">
+					<synopsis>User-Agent header from registration.</synopsis>
+					<description><para>
+						The User-Agent is automatically stored based on data present in incoming SIP
+						REGISTER requests and is not intended to be configured manually.
+					</para></description>
+				</configOption>
+				<configOption name="endpoint">
+					<synopsis>Endpoint name</synopsis>
+					<description><para>
+						The name of the endpoint this contact belongs to
+					</para></description>
+				</configOption>
+				<configOption name="reg_server">
+					<synopsis>Asterisk Server name</synopsis>
+					<description><para>
+						Asterisk Server name on which SIP endpoint registered.
+					</para></description>
+				</configOption>
+				<configOption name="via_addr">
+					<synopsis>IP-address of the last Via header from registration.</synopsis>
+					<description><para>
+						The last Via header should contain the address of UA which sent the request.
+						The IP-address of the last Via header is automatically stored based on data present
+						in incoming SIP REGISTER requests and is not intended to be configured manually.
+					</para></description>
+				</configOption>
+				<configOption name="via_port">
+					<synopsis>IP-port of the last Via header from registration.</synopsis>
+					<description><para>
+						The IP-port of the last Via header is automatically stored based on data present
+						in incoming SIP REGISTER requests and is not intended to be configured manually.
+					</para></description>
+				</configOption>
+				<configOption name="call_id">
+					<synopsis>Call-ID header from registration.</synopsis>
+					<description><para>
+						The Call-ID header is automatically stored based on data present
+						in incoming SIP REGISTER requests and is not intended to be configured manually.
+					</para></description>
+				</configOption>
+				<configOption name="prune_on_boot">
+					<synopsis>A contact that cannot survive a restart/boot.</synopsis>
+					<description><para>
+						The option is set if the incoming SIP REGISTER contact is rewritten
+						on a reliable transport and is not intended to be configured manually.
+					</para></description>
+				</configOption>
+			</configObject>
+			<configObject name="aor">
+				<synopsis>The configuration for a location of an endpoint</synopsis>
+				<description><para>
+					An AoR is what allows Asterisk to contact an endpoint via res_pjsip. If no
+					AoRs are specified, an endpoint will not be reachable by Asterisk.
+					Beyond that, an AoR has other uses within Asterisk, such as inbound
+					registration.
+					</para><para>
+					An <literal>AoR</literal> is a way to allow dialing a group
+					of <literal>Contacts</literal> that all use the same
+					<literal>endpoint</literal> for calls.
+					</para><para>
+					This can be used as another way of grouping a list of contacts to dial
+					rather than specifying them each directly when dialing via the dialplan.
+					This must be used in conjunction with the <literal>PJSIP_DIAL_CONTACTS</literal>.
+					</para><para>
+					Registrations: For Asterisk to match an inbound registration to an endpoint,
+					the AoR object name must match the user portion of the SIP URI in the "To:"
+					header of the inbound SIP registration. That will usually be equivalent
+					to the "user name" set in your hard or soft phones configuration.
+				</para></description>
+				<configOption name="contact">
+					<synopsis>Permanent contacts assigned to AoR</synopsis>
+					<description><para>
+						Contacts specified will be called whenever referenced
+						by <literal>chan_pjsip</literal>.
+						</para><para>
+						Use a separate "contact=" entry for each contact required. Contacts
+						are specified using a SIP URI.
+					</para></description>
+				</configOption>
+				<configOption name="default_expiration" default="3600">
+					<synopsis>Default expiration time in seconds for contacts that are dynamically bound to an AoR.</synopsis>
+				</configOption>
+				<configOption name="mailboxes">
+					<synopsis>Allow subscriptions for the specified mailbox(es)</synopsis>
+					<description><para>This option applies when an external entity subscribes to an AoR
+						for Message Waiting Indications. The mailboxes specified will be subscribed to.
+						More than one mailbox can be specified with a comma-delimited string.
+						app_voicemail mailboxes must be specified as mailbox@context;
+						for example: mailboxes=6001@default. For mailboxes provided by external sources,
+						such as through the res_mwi_external module, you must specify strings supported by
+						the external system.
+					</para><para>
+						For endpoints that cannot SUBSCRIBE for MWI, you can set the <literal>mailboxes</literal> option in your
+						endpoint configuration section to enable unsolicited MWI NOTIFYs to the endpoint.
+					</para></description>
+				</configOption>
+				<configOption name="voicemail_extension">
+					<synopsis>The voicemail extension to send in the NOTIFY Message-Account header</synopsis>
+				</configOption>
+				<configOption name="maximum_expiration" default="7200">
+					<synopsis>Maximum time to keep an AoR</synopsis>
+					<description><para>
+						Maximum time to keep a peer with explicit expiration. Time in seconds.
+					</para></description>
+				</configOption>
+				<configOption name="max_contacts" default="0">
+					<synopsis>Maximum number of contacts that can bind to an AoR</synopsis>
+					<description><para>
+						Maximum number of contacts that can associate with this AoR. This value does
+						not affect the number of contacts that can be added with the "contact" option.
+						It only limits contacts added through external interaction, such as
+						registration.
+						</para>
+						<note><para>The <replaceable>rewrite_contact</replaceable> option
+						registers the source address as the contact address to help with
+						NAT and reusing connection oriented transports such as TCP and
+						TLS.  Unfortunately, refreshing a registration may register a
+						different contact address and exceed
+						<replaceable>max_contacts</replaceable>.  The
+						<replaceable>remove_existing</replaceable> and
+						<replaceable>remove_unavailable</replaceable> options can help by
+						removing either the soonest to expire or unavailable contact(s) over
+						<replaceable>max_contacts</replaceable> which is likely the
+						old <replaceable>rewrite_contact</replaceable> contact source
+						address being refreshed.
+						</para></note>
+						<note><para>This should be set to <literal>1</literal> and
+						<replaceable>remove_existing</replaceable> set to <literal>yes</literal> if you
+						wish to stick with the older <literal>chan_sip</literal> behaviour.
+						</para></note>
+					</description>
+				</configOption>
+				<configOption name="minimum_expiration" default="60">
+					<synopsis>Minimum keep alive time for an AoR</synopsis>
+					<description><para>
+						Minimum time to keep a peer with an explicit expiration. Time in seconds.
+					</para></description>
+				</configOption>
+				<configOption name="remove_existing" default="no">
+					<synopsis>Determines whether new contacts replace existing ones.</synopsis>
+					<description><para>
+						On receiving a new registration to the AoR should it remove enough
+						existing contacts not added or updated by the registration to
+						satisfy <replaceable>max_contacts</replaceable>?  Any removed
+						contacts will expire the soonest.
+						</para>
+						<note><para>The <replaceable>rewrite_contact</replaceable> option
+						registers the source address as the contact address to help with
+						NAT and reusing connection oriented transports such as TCP and
+						TLS.  Unfortunately, refreshing a registration may register a
+						different contact address and exceed
+						<replaceable>max_contacts</replaceable>.  The
+						<replaceable>remove_existing</replaceable> option can help by
+						removing the soonest to expire contact(s) over
+						<replaceable>max_contacts</replaceable> which is likely the
+						old <replaceable>rewrite_contact</replaceable> contact source
+						address being refreshed.
+						</para></note>
+						<note><para>This should be set to <literal>yes</literal> and
+						<replaceable>max_contacts</replaceable> set to <literal>1</literal> if you
+						wish to stick with the older <literal>chan_sip</literal> behaviour.
+						</para></note>
+					</description>
+				</configOption>
+				<configOption name="remove_unavailable" default="no">
+					<synopsis>Determines whether new contacts should replace unavailable ones.</synopsis>
+					<description><para>
+						The effect of this setting depends on the setting of
+						<replaceable>remove_existing</replaceable>.</para>
+						<para>If <replaceable>remove_existing</replaceable> is set to
+						<literal>no</literal> (default), setting remove_unavailable to
+						<literal>yes</literal> will remove only unavailable contacts that exceed
+						<replaceable>max_contacts</replaceable>	to allow an incoming
+						REGISTER to complete sucessfully.</para>
+						<para>If <replaceable>remove_existing</replaceable> is set to
+						<literal>yes</literal>, setting remove_unavailable to
+						<literal>yes</literal> will prioritize unavailable contacts for removal
+						instead of just removing the contact that expires the soonest.</para>
+						<note><para>See <replaceable>remove_existing</replaceable> and
+						<replaceable>max_contacts</replaceable> for further information about how
+						these 3 settings interact.
+						</para></note>
+					</description>
+				</configOption>
+				<configOption name="type">
+					<synopsis>Must be of type 'aor'.</synopsis>
+				</configOption>
+				<configOption name="qualify_frequency" default="0">
+					<synopsis>Interval at which to qualify an AoR</synopsis>
+					<description><para>
+						Interval between attempts to qualify the AoR for reachability.
+						If <literal>0</literal> never qualify. Time in seconds.
+					</para></description>
+				</configOption>
+				<configOption name="qualify_timeout" default="3.0">
+					<synopsis>Timeout for qualify</synopsis>
+					<description><para>
+						If the contact doesn't respond to the OPTIONS request before the timeout,
+						the contact is marked unavailable.
+						If <literal>0</literal> no timeout. Time in fractional seconds.
+					</para></description>
+				</configOption>
+				<configOption name="authenticate_qualify">
+					<synopsis>Authenticates a qualify challenge response if needed</synopsis>
+					<description>
+						<para>If true and a qualify request receives a challenge response then
+						authentication is attempted before declaring the contact available.
+						</para>
+						<note><para>This option does nothing as we will always complete
+						the challenge response authentication if the qualify request is
+						challenged.
+						</para></note>
+					</description>
+				</configOption>
+				<configOption name="outbound_proxy">
+					<synopsis>Outbound proxy used when sending OPTIONS request</synopsis>
+					<description><para>
+						If set the provided URI will be used as the outbound proxy when an
+						OPTIONS request is sent to a contact for qualify purposes.
+					</para></description>
+				</configOption>
+				<configOption name="support_path">
+					<synopsis>Enables Path support for REGISTER requests and Route support for other requests.</synopsis>
+					<description><para>
+						When this option is enabled, the Path headers in register requests will be saved
+						and its contents will be used in Route headers for outbound out-of-dialog requests
+						and in Path headers for outbound 200 responses. Path support will also be indicated
+						in the Supported header.
+					</para></description>
+				</configOption>
+			</configObject>
+			<configObject name="system">
+				<synopsis>Options that apply to the SIP stack as well as other system-wide settings</synopsis>
+				<description><para>
+					The settings in this section are global. In addition to being global, the values will
+					not be re-evaluated when a reload is performed. This is because the values must be set
+					before the SIP stack is initialized. The only way to reset these values is to either
+					restart Asterisk, or unload res_pjsip.so and then load it again.
+				</para></description>
+				<configOption name="timer_t1" default="500">
+					<synopsis>Set transaction timer T1 value (milliseconds).</synopsis>
+					<description><para>
+						Timer T1 is the base for determining how long to wait before retransmitting
+						requests that receive no response when using an unreliable transport (e.g. UDP).
+						For more information on this timer, see RFC 3261, Section 17.1.1.1.
+					</para></description>
+				</configOption>
+				<configOption name="timer_b" default="32000">
+					<synopsis>Set transaction timer B value (milliseconds).</synopsis>
+					<description><para>
+						Timer B determines the maximum amount of time to wait after sending an INVITE
+						request before terminating the transaction. It is recommended that this be set
+						to 64 * Timer T1, but it may be set higher if desired. For more information on
+						this timer, see RFC 3261, Section 17.1.1.1.
+					</para></description>
+				</configOption>
+				<configOption name="compact_headers" default="no">
+					<synopsis>Use the short forms of common SIP header names.</synopsis>
+				</configOption>
+				<configOption name="threadpool_initial_size" default="0">
+					<synopsis>Initial number of threads in the res_pjsip threadpool.</synopsis>
+				</configOption>
+				<configOption name="threadpool_auto_increment" default="5">
+					<synopsis>The amount by which the number of threads is incremented when necessary.</synopsis>
+				</configOption>
+				<configOption name="threadpool_idle_timeout" default="60">
+					<synopsis>Number of seconds before an idle thread should be disposed of.</synopsis>
+				</configOption>
+				<configOption name="threadpool_max_size" default="0">
+					<synopsis>Maximum number of threads in the res_pjsip threadpool.
+					A value of 0 indicates no maximum.</synopsis>
+				</configOption>
+				<configOption name="disable_tcp_switch" default="yes">
+					<synopsis>Disable automatic switching from UDP to TCP transports.</synopsis>
+					<description><para>
+						Disable automatic switching from UDP to TCP transports if outgoing
+						request is too large.  See RFC 3261 section 18.1.1.
+					</para></description>
+				</configOption>
+				<configOption name="follow_early_media_fork">
+					<synopsis>Follow SDP forked media when To tag is different</synopsis>
+					<description><para>
+						On outgoing calls, if the UAS responds with different SDP attributes
+						on subsequent 18X or 2XX responses (such as a port update) AND the
+						To tag on the subsequent response is different than that on the previous
+						one, follow it.
+						</para>
+						<note><para>
+							This option must also be enabled on endpoints that require
+							this functionality.
+						</para></note>
+					</description>
+				</configOption>
+				<configOption name="accept_multiple_sdp_answers">
+					<synopsis>Follow SDP forked media when To tag is the same</synopsis>
+					<description><para>
+						On outgoing calls, if the UAS responds with different SDP attributes
+						on non-100rel 18X or 2XX responses (such as a port update) AND the
+						To tag on the subsequent response is the same as that on the previous one,
+						process the updated SDP.
+						</para>
+						<note><para>
+							This option must also be enabled on endpoints that require
+							this functionality.
+						</para></note>
+					</description>
+				</configOption>
+				<configOption name="disable_rport" default="no">
+					<synopsis>Disable the use of rport in outgoing requests.</synopsis>
+					<description><para>
+						Remove "rport" parameter from the outgoing requests.
+					</para></description>
+				</configOption>
+				<configOption name="type">
+					<synopsis>Must be of type 'system' UNLESS the object name is 'system'.</synopsis>
+				</configOption>
+			</configObject>
+			<configObject name="global">
+				<synopsis>Options that apply globally to all SIP communications</synopsis>
+				<description><para>
+					The settings in this section are global. Unlike options in the <literal>system</literal>
+					section, these options can be refreshed by performing a reload.
+				</para></description>
+				<configOption name="max_forwards" default="70">
+					<synopsis>Value used in Max-Forwards header for SIP requests.</synopsis>
+				</configOption>
+				<configOption name="keep_alive_interval" default="90">
+					<synopsis>The interval (in seconds) to send keepalives to active connection-oriented transports.</synopsis>
+				</configOption>
+				<configOption name="contact_expiration_check_interval" default="30">
+					<synopsis>The interval (in seconds) to check for expired contacts.</synopsis>
+				</configOption>
+				<configOption name="disable_multi_domain" default="no">
+					<synopsis>Disable Multi Domain support</synopsis>
+					<description><para>
+						If disabled it can improve realtime performance by reducing the number of database requests.
+					</para></description>
+				</configOption>
+				<configOption name="max_initial_qualify_time" default="0">
+					<synopsis>The maximum amount of time from startup that qualifies should be attempted on all contacts.
+					If greater than the qualify_frequency for an aor, qualify_frequency will be used instead.</synopsis>
+				</configOption>
+				<configOption name="unidentified_request_period" default="5">
+					<synopsis>The number of seconds over which to accumulate unidentified requests.</synopsis>
+					<description><para>
+					If <literal>unidentified_request_count</literal> unidentified requests are received
+					during <literal>unidentified_request_period</literal>, a security event will be generated.
+					</para></description>
+				</configOption>
+				<configOption name="unidentified_request_count" default="5">
+					<synopsis>The number of unidentified requests from a single IP to allow.</synopsis>
+					<description><para>
+					If <literal>unidentified_request_count</literal> unidentified requests are received
+					during <literal>unidentified_request_period</literal>, a security event will be generated.
+					</para></description>
+				</configOption>
+				<configOption name="unidentified_request_prune_interval" default="30">
+					<synopsis>The interval at which unidentified requests are older than
+					twice the unidentified_request_period are pruned.</synopsis>
+				</configOption>
+				<configOption name="type">
+					<synopsis>Must be of type 'global' UNLESS the object name is 'global'.</synopsis>
+				</configOption>
+				<configOption name="user_agent" default="Asterisk &lt;Asterisk Version&gt;">
+					<synopsis>Value used in User-Agent header for SIP requests and Server header for SIP responses.</synopsis>
+				</configOption>
+				<configOption name="regcontext" default="">
+					<synopsis>When set, Asterisk will dynamically create and destroy a NoOp priority 1 extension for a given
+						peer who registers or unregisters with us.</synopsis>
+				</configOption>
+				<configOption name="default_outbound_endpoint" default="default_outbound_endpoint">
+					<synopsis>Endpoint to use when sending an outbound request to a URI without a specified endpoint.</synopsis>
+				</configOption>
+				<configOption name="default_voicemail_extension">
+					<synopsis>The voicemail extension to send in the NOTIFY Message-Account header if not specified on endpoint or aor</synopsis>
+				</configOption>
+				<configOption name="debug" default="no">
+					<synopsis>Enable/Disable SIP debug logging.  Valid options include yes, no, or
+						a host address</synopsis>
+				</configOption>
+				<configOption name="endpoint_identifier_order">
+					<synopsis>The order by which endpoint identifiers are processed and checked.
+						Identifier names are usually derived from and can be found in the endpoint
+						identifier module itself (res_pjsip_endpoint_identifier_*).
+						You can use the CLI command "pjsip show identifiers" to see the
+						identifiers currently available.</synopsis>
+					<description>
+						<note><para>
+						One of the identifiers is "auth_username" which matches on the username in
+						an Authentication header.  This method has some security considerations because an
+						Authentication header is not present on the first message of a dialog when
+						digest authentication is used.  The client can't generate it until the server
+						sends the challenge in a 401 response.  Since Asterisk normally sends a security
+						event when an incoming request can't be matched to an endpoint, using auth_username
+						requires that the security event be deferred until a request is received with
+						the Authentication header and only generated if the username doesn't result in a
+						match.  This may result in a delay before an attack is recognized.  You can control
+						how many unmatched requests are received from a single ip address before a security
+						event is generated using the unidentified_request parameters.
+						</para></note>
+					</description>
+				</configOption>
+				<configOption name="default_from_user" default="asterisk">
+					<synopsis>When Asterisk generates an outgoing SIP request, the From header username will be
+						set to this value if there is no better option (such as CallerID) to be
+						used.</synopsis>
+				</configOption>
+				<configOption name="default_realm" default="asterisk">
+					<synopsis>When Asterisk generates a challenge, the digest realm will be
+						set to this value if there is no better option (such as auth/realm) to be
+						used.</synopsis>
+				</configOption>
+				<configOption name="mwi_tps_queue_high" default="500">
+					<synopsis>MWI taskprocessor high water alert trigger level.</synopsis>
+					<description>
+						<para>On a heavily loaded system you may need to adjust the
+						taskprocessor queue limits.  If any taskprocessor queue size
+						reaches its high water level then pjsip will stop processing
+						new requests until the alert is cleared.  The alert clears
+						when all alerting taskprocessor queues have dropped to their
+						low water clear level.
+						</para>
+					</description>
+				</configOption>
+				<configOption name="mwi_tps_queue_low" default="-1">
+					<synopsis>MWI taskprocessor low water clear alert level.</synopsis>
+					<description>
+						<para>On a heavily loaded system you may need to adjust the
+						taskprocessor queue limits.  If any taskprocessor queue size
+						reaches its high water level then pjsip will stop processing
+						new requests until the alert is cleared.  The alert clears
+						when all alerting taskprocessor queues have dropped to their
+						low water clear level.
+						</para>
+						<note><para>Set to -1 for the low water level to be 90% of
+						the high water level.</para></note>
+					</description>
+				</configOption>
+				<configOption name="mwi_disable_initial_unsolicited" default="no">
+					<synopsis>Enable/Disable sending unsolicited MWI to all endpoints on startup.</synopsis>
+					<description>
+						<para>When the initial unsolicited MWI notification are
+						enabled on startup then the initial notifications
+						get sent at startup.  If you have a lot of endpoints
+						(thousands) that use unsolicited MWI then you may
+						want to consider disabling the initial startup
+						notifications.
+						</para>
+						<para>When the initial unsolicited MWI notifications are
+						disabled on startup then the notifications will start
+						on the endpoint's next contact update.
+						</para>
+					</description>
+				</configOption>
+				<configOption name="ignore_uri_user_options">
+					<synopsis>Enable/Disable ignoring SIP URI user field options.</synopsis>
+					<description>
+						<para>If you have this option enabled and there are semicolons
+						in the user field of a SIP URI then the field is truncated
+						at the first semicolon.  This effectively makes the semicolon
+						a non-usable character for PJSIP endpoint names, extensions,
+						and AORs.  This can be useful for improving compatibility with
+						an ITSP that likes to use user options for whatever reason.
+						</para>
+						<example title="Sample SIP URI">
+							sip:1235557890;phone-context=national@x.x.x.x;user=phone
+						</example>
+						<example title="Sample SIP URI user field">
+							1235557890;phone-context=national
+						</example>
+						<example title="Sample SIP URI user field truncated">
+							1235557890
+						</example>
+						<note><para>The caller-id and redirecting number strings
+						obtained from incoming SIP URI user fields are always truncated
+						at the first semicolon.</para></note>
+					</description>
+				</configOption>
+				<configOption name="use_callerid_contact" default="no">
+					<synopsis>Place caller-id information into Contact header</synopsis>
+					<description><para>
+						This option will cause Asterisk to place caller-id information into
+						generated Contact headers.</para>
+					</description>
+				</configOption>
+				<configOption name="send_contact_status_on_update_registration" default="no">
+					<synopsis>Enable sending AMI ContactStatus event when a device refreshes its registration.</synopsis>
+				</configOption>
+				<configOption name="taskprocessor_overload_trigger">
+					<synopsis>Trigger scope for taskprocessor overloads</synopsis>
+					<description><para>
+						This option specifies the trigger the distributor will use for
+						detecting taskprocessor overloads.  When it detects an overload condition,
+						the distrubutor will stop accepting new requests until the overload is
+						cleared.
+						</para>
+						<enumlist>
+							<enum name="global"><para>(default) Any taskprocessor overload will trigger.</para></enum>
+							<enum name="pjsip_only"><para>Only pjsip taskprocessor overloads will trigger.</para></enum>
+							<enum name="none"><para>No overload detection will be performed.</para></enum>
+						</enumlist>
+						<warning><para>
+						The "none" and "pjsip_only" options should be used
+						with extreme caution and only to mitigate specific issues.
+						Under certain conditions they could make things worse.
+						</para></warning>
+					</description>
+				</configOption>
+				<configOption name="norefersub" default="yes">
+					<synopsis>Advertise support for RFC4488 REFER subscription suppression</synopsis>
+				</configOption>
+			</configObject>
+		</configFile>
+	</configInfo>
+</docs>
diff --git a/res/res_pjsip/pjsip_manager.xml b/res/res_pjsip/pjsip_manager.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a0047aaf9783f280746ac9fe2e50309ed4a28e76
--- /dev/null
+++ b/res/res_pjsip/pjsip_manager.xml
@@ -0,0 +1,900 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE docs SYSTEM "appdocsxml.dtd">
+<docs>
+	<manager name="PJSIPQualify" language="en_US">
+		<synopsis>
+			Qualify a chan_pjsip endpoint.
+		</synopsis>
+		<syntax>
+			<xi:include xpointer="xpointer(/docs/manager[@name='Login']/syntax/parameter[@name='ActionID'])" />
+			<parameter name="Endpoint" required="true">
+				<para>The endpoint you want to qualify.</para>
+			</parameter>
+		</syntax>
+		<description>
+			<para>Qualify a chan_pjsip endpoint.</para>
+		</description>
+	</manager>
+	<managerEvent language="en_US" name="IdentifyDetail">
+		<managerEventInstance class="EVENT_FLAG_COMMAND">
+			<synopsis>Provide details about an identify section.</synopsis>
+			<syntax>
+				<parameter name="ObjectType">
+					<para>The object's type. This will always be 'identify'.</para>
+				</parameter>
+				<parameter name="ObjectName">
+					<para>The name of this object.</para>
+				</parameter>
+				<parameter name="Endpoint">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip_endpoint_identifier_ip']/configFile[@name='pjsip.conf']/configObject[@name='identify']/configOption[@name='endpoint']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="SrvLookups">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip_endpoint_identifier_ip']/configFile[@name='pjsip.conf']/configObject[@name='identify']/configOption[@name='srv_lookups']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="Match">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip_endpoint_identifier_ip']/configFile[@name='pjsip.conf']/configObject[@name='identify']/configOption[@name='match']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="MatchHeader">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip_endpoint_identifier_ip']/configFile[@name='pjsip.conf']/configObject[@name='identify']/configOption[@name='match_header']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="EndpointName">
+					<para>The name of the endpoint associated with this information.</para>
+				</parameter>
+			</syntax>
+		</managerEventInstance>
+	</managerEvent>
+	<managerEvent language="en_US" name="AorDetail">
+		<managerEventInstance class="EVENT_FLAG_COMMAND">
+			<synopsis>Provide details about an Address of Record (AoR) section.</synopsis>
+			<syntax>
+				<parameter name="ObjectType">
+					<para>The object's type. This will always be 'aor'.</para>
+				</parameter>
+				<parameter name="ObjectName">
+					<para>The name of this object.</para>
+				</parameter>
+				<parameter name="MinimumExpiration">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='minimum_expiration']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="MaximumExpiration">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='maximum_expiration']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="DefaultExpiration">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='default_expiration']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="QualifyFrequency">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='qualify_frequency']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="AuthenticateQualify">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='authenticate_qualify']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="MaxContacts">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='max_contacts']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="RemoveExisting">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='remove_existing']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="RemoveUnavailable">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='remove_unavailable']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="Mailboxes">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='mailboxes']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="OutboundProxy">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='outbound_proxy']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="SupportPath">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='support_path']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="TotalContacts">
+					<para>The total number of contacts associated with this AoR.</para>
+				</parameter>
+				<parameter name="ContactsRegistered">
+					<para>The number of non-permanent contacts associated with this AoR.</para>
+				</parameter>
+				<parameter name="EndpointName">
+					<para>The name of the endpoint associated with this information.</para>
+				</parameter>
+			</syntax>
+		</managerEventInstance>
+	</managerEvent>
+	<managerEvent language="en_US" name="AuthDetail">
+		<managerEventInstance class="EVENT_FLAG_COMMAND">
+			<synopsis>Provide details about an authentication section.</synopsis>
+			<syntax>
+				<parameter name="ObjectType">
+					<para>The object's type. This will always be 'auth'.</para>
+				</parameter>
+				<parameter name="ObjectName">
+					<para>The name of this object.</para>
+				</parameter>
+				<parameter name="Username">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='auth']/configOption[@name='username']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="Password">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='auth']/configOption[@name='username']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="Md5Cred">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='auth']/configOption[@name='md5_cred']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="Realm">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='auth']/configOption[@name='realm']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="NonceLifetime">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='auth']/configOption[@name='nonce_lifetime']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="AuthType">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='auth']/configOption[@name='auth_type']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="EndpointName">
+					<para>The name of the endpoint associated with this information.</para>
+				</parameter>
+			</syntax>
+		</managerEventInstance>
+	</managerEvent>
+	<managerEvent language="en_US" name="TransportDetail">
+		<managerEventInstance class="EVENT_FLAG_COMMAND">
+			<synopsis>Provide details about an authentication section.</synopsis>
+			<syntax>
+				<parameter name="ObjectType">
+					<para>The object's type. This will always be 'transport'.</para>
+				</parameter>
+				<parameter name="ObjectName">
+					<para>The name of this object.</para>
+				</parameter>
+				<parameter name="Protocol">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='protocol']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="Bind">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='bind']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="AsycOperations">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='async_operations']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="CaListFile">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='ca_list_file']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="CaListPath">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='ca_list_path']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="CertFile">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='cert_file']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="PrivKeyFile">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='priv_key_file']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="Password">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='password']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="ExternalSignalingAddress">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='external_signaling_address']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="ExternalSignalingPort">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='external_signaling_port']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="ExternalMediaAddress">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='external_media_address']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="Domain">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='domain']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="VerifyServer">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='verify_server']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="VerifyClient">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='verify_client']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="RequireClientCert">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='require_client_cert']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="Method">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='method']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="Cipher">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='cipher']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="LocalNet">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='local_net']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="Tos">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='tos']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="Cos">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='cos']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="WebsocketWriteTimeout">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='transport']/configOption[@name='websocket_write_timeout']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="EndpointName">
+					<para>The name of the endpoint associated with this information.</para>
+				</parameter>
+			</syntax>
+		</managerEventInstance>
+	</managerEvent>
+	<managerEvent language="en_US" name="EndpointDetail">
+		<managerEventInstance class="EVENT_FLAG_COMMAND">
+			<synopsis>Provide details about an endpoint section.</synopsis>
+			<syntax>
+				<parameter name="ObjectType">
+					<para>The object's type. This will always be 'endpoint'.</para>
+				</parameter>
+				<parameter name="ObjectName">
+					<para>The name of this object.</para>
+				</parameter>
+				<parameter name="Context">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='context']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="Disallow">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='disallow']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="Allow">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='allow']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="DtmfMode">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='dtmf_mode']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="RtpIpv6">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='rtp_ipv6']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="RtpSymmetric">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='rtp_symmetric']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="IceSupport">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='ice_support']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="UsePtime">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='use_ptime']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="ForceRport">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='force_rport']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="RewriteContact">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='rewrite_contact']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="Transport">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='transport']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="OutboundProxy">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='outbound_proxy']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="MohSuggest">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='moh_suggest']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="100rel">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='100rel']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="Timers">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='timers']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="TimersMinSe">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='timers_min_se']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="TimersSessExpires">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='timers_sess_expires']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="Auth">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='auth']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="OutboundAuth">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='outbound_auth']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="Aors">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='aors']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="MediaAddress">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='media_address']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="IdentifyBy">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='identify_by']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="DirectMedia">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='direct_media']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="DirectMediaMethod">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='direct_media_method']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="TrustConnectedLine">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='trust_connected_line']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="SendConnectedLine">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='send_connected_line']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="ConnectedLineMethod">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='connected_line_method']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="DirectMediaGlareMitigation">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='direct_media_glare_mitigation']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="DisableDirectMediaOnNat">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='disable_direct_media_on_nat']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="Callerid">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='callerid']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="CalleridPrivacy">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='callerid_privacy']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="CalleridTag">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='callerid_tag']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="TrustIdInbound">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='trust_id_inbound']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="TrustIdOutbound">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='trust_id_outbound']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="SendPai">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='send_pai']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="SendRpid">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='send_rpid']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="SendDiversion">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='send_diversion']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="Mailboxes">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='mailboxes']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="AggregateMwi">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='aggregate_mwi']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="MediaEncryption">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='media_encryption']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="MediaEncryptionOptimistic">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='media_encryption_optimistic']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="UseAvpf">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='use_avpf']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="ForceAvp">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='force_avp']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="MediaUseReceivedTransport">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='media_use_received_transport']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="OneTouchRecording">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='one_touch_recording']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="InbandProgress">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='inband_progress']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="CallGroup">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='call_group']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="PickupGroup">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='pickup_group']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="NamedCallGroup">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='named_call_group']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="NamedPickupGroup">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='named_pickup_group']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="DeviceStateBusyAt">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='device_state_busy_at']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="T38Udptl">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='t38_udptl']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="T38UdptlEc">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='t38_udptl_ec']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="T38UdptlMaxdatagram">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='t38_udptl_maxdatagram']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="FaxDetect">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='fax_detect']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="T38UdptlNat">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='t38_udptl_nat']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="T38UdptlIpv6">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='t38_udptl_ipv6']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="T38BindUdptlToMediaAddress">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='t38_bind_udptl_to_media_address']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="ToneZone">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='tone_zone']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="Language">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='language']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="RecordOnFeature">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='record_on_feature']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="RecordOffFeature">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='record_off_feature']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="AllowTransfer">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='allow_transfer']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="UserEqPhone">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='user_eq_phone']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="MohPassthrough">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='moh_passthrough']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="SdpOwner">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='sdp_owner']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="SdpSession">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='sdp_session']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="TosAudio">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='tos_audio']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="TosVideo">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='tos_video']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="CosAudio">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='cos_audio']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="CosVideo">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='cos_video']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="AllowSubscribe">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='allow_subscribe']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="SubMinExpiry">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='sub_min_expiry']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="FromUser">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='from_user']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="FromDomain">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='from_domain']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="MwiFromUser">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='mwi_from_user']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="RtpEngine">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='rtp_engine']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="DtlsVerify">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='dtls_verify']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="DtlsRekey">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='dtls_rekey']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="DtlsCertFile">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='dtls_cert_file']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="DtlsPrivateKey">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='dtls_private_key']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="DtlsCipher">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='dtls_cipher']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="DtlsCaFile">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='dtls_ca_file']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="DtlsCaPath">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='dtls_ca_path']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="DtlsSetup">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='dtls_setup']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="SrtpTag32">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='srtp_tag_32']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="RedirectMethod">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='redirect_method']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="SetVar">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='set_var']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="MessageContext">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='message_context']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="Accountcode">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='accountcode']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="PreferredCodecOnly">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='preferred_codec_only']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="DeviceState">
+					<para>The aggregate device state for this endpoint.</para>
+				</parameter>
+				<parameter name="ActiveChannels">
+					<para>The number of active channels associated with this endpoint.</para>
+				</parameter>
+				<parameter name="SubscribeContext">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='subscribe_context']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="Allowoverlap">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='endpoint']/configOption[@name='allow_overlap']/synopsis/node())"/></para>
+				</parameter>
+			</syntax>
+		</managerEventInstance>
+	</managerEvent>
+	<managerEvent language="en_US" name="AorList">
+		<managerEventInstance class="EVENT_FLAG_COMMAND">
+			<synopsis>Provide details about an Address of Record (AoR) section.</synopsis>
+			<syntax>
+				<parameter name="ObjectType">
+					<para>The object's type. This will always be 'aor'.</para>
+				</parameter>
+				<parameter name="ObjectName">
+					<para>The name of this object.</para>
+				</parameter>
+				<parameter name="MinimumExpiration">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='minimum_expiration']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="MaximumExpiration">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='maximum_expiration']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="DefaultExpiration">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='default_expiration']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="QualifyFrequency">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='qualify_frequency']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="AuthenticateQualify">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='authenticate_qualify']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="MaxContacts">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='max_contacts']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="RemoveExisting">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='remove_existing']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="RemoveUnavailable">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='remove_unavailable']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="Mailboxes">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='mailboxes']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="OutboundProxy">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='outbound_proxy']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="SupportPath">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='aor']/configOption[@name='support_path']/synopsis/node())"/></para>
+				</parameter>
+			</syntax>
+		</managerEventInstance>
+	</managerEvent>
+	<managerEvent language="en_US" name="AuthList">
+		<managerEventInstance class="EVENT_FLAG_COMMAND">
+			<synopsis>Provide details about an Address of Record (Auth) section.</synopsis>
+			<syntax>
+				<parameter name="ObjectType">
+					<para>The object's type. This will always be 'auth'.</para>
+				</parameter>
+				<parameter name="ObjectName">
+					<para>The name of this object.</para>
+				</parameter>
+				<parameter name="Username">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='auth']/configOption[@name='username']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="Md5Cred">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='auth']/configOption[@name='md5_cred']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="Realm">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='auth']/configOption[@name='realm']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="AuthType">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='auth']/configOption[@name='auth_type']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="Password">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='auth']/configOption[@name='password']/synopsis/node())"/></para>
+				</parameter>
+				<parameter name="NonceLifetime">
+					<para><xi:include xpointer="xpointer(/docs/configInfo[@name='res_pjsip']/configFile[@name='pjsip.conf']/configObject[@name='auth']/configOption[@name='nonce_lifetime']/synopsis/node())"/></para>
+				</parameter>
+			</syntax>
+		</managerEventInstance>
+	</managerEvent>
+	<managerEvent language="en_US" name="ContactList">
+		<managerEventInstance class="EVENT_FLAG_COMMAND">
+			<synopsis>Provide details about a contact section.</synopsis>
+			<syntax>
+				<parameter name="ObjectType">
+					<para>The object's type. This will always be 'contact'.</para>
+				</parameter>
+				<parameter name="ObjectName">
+					<para>The name of this object.</para>
+				</parameter>
+				<parameter name="ViaAddr">
+					<para>IP address of the last Via header in REGISTER request.
+					Will only appear in the event if available.</para>
+				</parameter>
+				<parameter name="ViaPort">
+					<para>Port number of the last Via header in REGISTER request.
+					Will only appear in the event if available.</para>
+				</parameter>
+				<parameter name="QualifyTimeout">
+					<para>The elapsed time in decimal seconds after which an OPTIONS
+					message is sent before the contact is considered unavailable.</para>
+				</parameter>
+				<parameter name="CallId">
+					<para>Content of the Call-ID header in REGISTER request.
+					Will only appear in the event if available.</para>
+				</parameter>
+				<parameter name="RegServer">
+					<para>Asterisk Server name.</para>
+				</parameter>
+				<parameter name="PruneOnBoot">
+					<para>If true delete the contact on Asterisk restart/boot.</para>
+				</parameter>
+				<parameter name="Path">
+					<para>The Path header received on the REGISTER.</para>
+				</parameter>
+				<parameter name="Endpoint">
+					<para>The name of the endpoint associated with this information.</para>
+				</parameter>
+				<parameter name="AuthenticateQualify">
+					<para>A boolean indicating whether a qualify should be authenticated.</para>
+				</parameter>
+				<parameter name="Uri">
+					<para>This contact's URI.</para>
+				</parameter>
+				<parameter name="QualifyFrequency">
+					<para>The interval in seconds at which the contact will be qualified.</para>
+				</parameter>
+				<parameter name="UserAgent">
+					<para>Content of the User-Agent header in REGISTER request</para>
+				</parameter>
+				<parameter name="ExpirationTime">
+					<para>Absolute time that this contact is no longer valid after</para>
+				</parameter>
+				<parameter name="OutboundProxy">
+					<para>The contact's outbound proxy.</para>
+				</parameter>
+				<parameter name="Status">
+					<para>This contact's status.</para>
+					<enumlist>
+						<enum name="Reachable"/>
+						<enum name="Unreachable"/>
+						<enum name="NonQualified"/>
+						<enum name="Unknown"/>
+					</enumlist>
+				</parameter>
+				<parameter name="RoundtripUsec">
+					<para>The round trip time in microseconds.</para>
+				</parameter>
+			</syntax>
+		</managerEventInstance>
+	</managerEvent>
+	<managerEvent language="en_US" name="ContactStatusDetail">
+		<managerEventInstance class="EVENT_FLAG_COMMAND">
+			<synopsis>Provide details about a contact's status.</synopsis>
+			<syntax>
+				<parameter name="AOR">
+					<para>The AoR that owns this contact.</para>
+				</parameter>
+				<parameter name="URI">
+					<para>This contact's URI.</para>
+				</parameter>
+				<parameter name="Status">
+					<para>This contact's status.</para>
+					<enumlist>
+						<enum name="Reachable"/>
+						<enum name="Unreachable"/>
+						<enum name="NonQualified"/>
+						<enum name="Unknown"/>
+					</enumlist>
+				</parameter>
+				<parameter name="RoundtripUsec">
+					<para>The round trip time in microseconds.</para>
+				</parameter>
+				<parameter name="EndpointName">
+					<para>The name of the endpoint associated with this information.</para>
+				</parameter>
+				<parameter name="UserAgent">
+					<para>Content of the User-Agent header in REGISTER request</para>
+				</parameter>
+				<parameter name="RegExpire">
+					<para>Absolute time that this contact is no longer valid after</para>
+				</parameter>
+				<parameter name="ViaAddress">
+					<para>IP address:port of the last Via header in REGISTER request.
+					Will only appear in the event if available.</para>
+				</parameter>
+				<parameter name="CallID">
+					<para>Content of the Call-ID header in REGISTER request.
+					Will only appear in the event if available.</para>
+				</parameter>
+				<parameter name="ID">
+					<para>The sorcery ID of the contact.</para>
+				</parameter>
+				<parameter name="AuthenticateQualify">
+					<para>A boolean indicating whether a qualify should be authenticated.</para>
+				</parameter>
+				<parameter name="OutboundProxy">
+					<para>The contact's outbound proxy.</para>
+				</parameter>
+				<parameter name="Path">
+					<para>The Path header received on the REGISTER.</para>
+				</parameter>
+				<parameter name="QualifyFrequency">
+					<para>The interval in seconds at which the contact will be qualified.</para>
+				</parameter>
+				<parameter name="QualifyTimeout">
+					<para>The elapsed time in decimal seconds after which an OPTIONS
+					message is sent before the contact is considered unavailable.</para>
+				</parameter>
+			</syntax>
+		</managerEventInstance>
+	</managerEvent>
+	<managerEvent language="en_US" name="EndpointList">
+		<managerEventInstance class="EVENT_FLAG_COMMAND">
+			<synopsis>Provide details about a contact's status.</synopsis>
+			<syntax>
+				<parameter name="ObjectType">
+					<para>The object's type. This will always be 'endpoint'.</para>
+				</parameter>
+				<parameter name="ObjectName">
+					<para>The name of this object.</para>
+				</parameter>
+				<parameter name="Transport">
+					<para>The transport configurations associated with this endpoint.</para>
+				</parameter>
+				<parameter name="Aor">
+					<para>The aor configurations associated with this endpoint.</para>
+				</parameter>
+				<parameter name="Auths">
+					<para>The inbound authentication configurations associated with this endpoint.</para>
+				</parameter>
+				<parameter name="OutboundAuths">
+					<para>The outbound authentication configurations associated with this endpoint.</para>
+				</parameter>
+				<parameter name="DeviceState">
+					<para>The aggregate device state for this endpoint.</para>
+				</parameter>
+				<parameter name="ActiveChannels">
+					<para>The number of active channels associated with this endpoint.</para>
+				</parameter>
+			</syntax>
+		</managerEventInstance>
+	</managerEvent>
+	<manager name="PJSIPShowEndpoints" language="en_US">
+		<synopsis>
+			Lists PJSIP endpoints.
+		</synopsis>
+		<syntax />
+		<description>
+			<para>
+			Provides a listing of all endpoints.  For each endpoint an <literal>EndpointList</literal> event
+			is raised that contains relevant attributes and status information.  Once all
+			endpoints have been listed an <literal>EndpointListComplete</literal> event is issued.
+			</para>
+		</description>
+		<responses>
+			<list-elements>
+				<xi:include xpointer="xpointer(/docs/managerEvent[@name='EndpointList'])" />
+			</list-elements>
+			<managerEvent language="en_US" name="EndpointListComplete">
+				<managerEventInstance class="EVENT_FLAG_COMMAND">
+					<synopsis>Provide final information about an endpoint list.</synopsis>
+					<syntax>
+						<parameter name="EventList"/>
+						<parameter name="ListItems"/>
+					</syntax>
+				</managerEventInstance>
+			</managerEvent>
+		</responses>
+	</manager>
+	<manager name="PJSIPShowEndpoint" language="en_US">
+		<synopsis>
+			Detail listing of an endpoint and its objects.
+		</synopsis>
+		<syntax>
+			<xi:include xpointer="xpointer(/docs/manager[@name='Login']/syntax/parameter[@name='ActionID'])" />
+			<parameter name="Endpoint" required="true">
+				<para>The endpoint to list.</para>
+			</parameter>
+		</syntax>
+		<description>
+			<para>
+			Provides a detailed listing of options for a given endpoint.  Events are issued
+			showing the configuration and status of the endpoint and associated objects.  These
+			events include <literal>EndpointDetail</literal>, <literal>AorDetail</literal>,
+			<literal>AuthDetail</literal>, <literal>TransportDetail</literal>, and
+			<literal>IdentifyDetail</literal>.  Some events may be listed multiple times if multiple objects are
+			associated (for instance AoRs).  Once all detail events have been raised a final
+			<literal>EndpointDetailComplete</literal> event is issued.
+			</para>
+		</description>
+		<responses>
+			<list-elements>
+				<xi:include xpointer="xpointer(/docs/managerEvent[@name='EndpointDetail'])" />
+				<xi:include xpointer="xpointer(/docs/managerEvent[@name='IdentifyDetail'])" />
+				<xi:include xpointer="xpointer(/docs/managerEvent[@name='ContactStatusDetail'])" />
+				<xi:include xpointer="xpointer(/docs/managerEvent[@name='AuthDetail'])" />
+				<xi:include xpointer="xpointer(/docs/managerEvent[@name='TransportDetail'])" />
+				<xi:include xpointer="xpointer(/docs/managerEvent[@name='AorDetail'])" />
+			</list-elements>
+			<managerEvent language="en_US" name="EndpointDetailComplete">
+				<managerEventInstance class="EVENT_FLAG_COMMAND">
+					<synopsis>Provide final information about endpoint details.</synopsis>
+					<syntax>
+						<parameter name="EventList"/>
+						<parameter name="ListItems"/>
+					</syntax>
+				</managerEventInstance>
+			</managerEvent>
+		</responses>
+	</manager>
+	<manager name="PJSIPShowAors" language="en_US">
+		<synopsis>
+			Lists PJSIP AORs.
+		</synopsis>
+		<syntax />
+		<description>
+			<para>
+			Provides a listing of all AORs. For each AOR an <literal>AorList</literal> event
+			is raised that contains relevant attributes and status information.  Once all
+			aors have been listed an <literal>AorListComplete</literal> event is issued.
+			</para>
+		</description>
+		<responses>
+			<list-elements>
+				<xi:include xpointer="xpointer(/docs/managerEvent[@name='AorList'])" />
+			</list-elements>
+			<managerEvent language="en_US" name="AorListComplete">
+				<managerEventInstance class="EVENT_FLAG_COMMAND">
+					<synopsis>Provide final information about an aor list.</synopsis>
+					<syntax>
+						<parameter name="EventList"/>
+						<parameter name="ListItems"/>
+					</syntax>
+				</managerEventInstance>
+			</managerEvent>
+		</responses>
+	</manager>
+	<manager name="PJSIPShowAuths" language="en_US">
+		<synopsis>
+			Lists PJSIP Auths.
+		</synopsis>
+		<syntax />
+		<description>
+			<para>Provides a listing of all Auths. For each Auth an <literal>AuthList</literal> event
+			is raised that contains relevant attributes and status information.  Once all
+			auths have been listed an <literal>AuthListComplete</literal> event is issued.
+			</para>
+		</description>
+		<responses>
+			<list-elements>
+				<xi:include xpointer="xpointer(/docs/managerEvent[@name='AuthList'])" />
+			</list-elements>
+			<managerEvent language="en_US" name="AuthListComplete">
+				<managerEventInstance class="EVENT_FLAG_COMMAND">
+					<synopsis>Provide final information about an auth list.</synopsis>
+					<syntax>
+						<parameter name="EventList"/>
+						<parameter name="ListItems"/>
+					</syntax>
+				</managerEventInstance>
+			</managerEvent>
+		</responses>
+	</manager>
+	<manager name="PJSIPShowContacts" language="en_US">
+		<synopsis>
+			Lists PJSIP Contacts.
+		</synopsis>
+		<syntax />
+		<description>
+			<para>Provides a listing of all Contacts. For each Contact a <literal>ContactList</literal>
+			event is raised that contains relevant attributes and status information.
+			Once all contacts have been listed a <literal>ContactListComplete</literal> event
+			is issued.
+			</para>
+		</description>
+		<responses>
+			<list-elements>
+				<xi:include xpointer="xpointer(/docs/managerEvent[@name='ContactList'])" />
+			</list-elements>
+			<managerEvent language="en_US" name="ContactListComplete">
+				<managerEventInstance class="EVENT_FLAG_COMMAND">
+					<synopsis>Provide final information about a contact list.</synopsis>
+					<syntax>
+						<parameter name="EventList"/>
+						<parameter name="ListItems"/>
+					</syntax>
+				</managerEventInstance>
+			</managerEvent>
+		</responses>
+	</manager>
+</docs>