diff options
Diffstat (limited to '')
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | doc/Makefile | 5 | ||||
-rw-r--r-- | doc/dev.html | 44 | ||||
-rw-r--r-- | doc/dev.tex | 22 | ||||
-rw-r--r-- | doc/features.html | 16 | ||||
-rw-r--r-- | doc/features.tex | 4 | ||||
-rw-r--r-- | doc/guide.html | 546 | ||||
-rw-r--r-- | doc/guide.tex | 529 | ||||
-rw-r--r-- | doc/introduction.tex | 32 | ||||
-rw-r--r-- | doc/version.tex | 2 |
10 files changed, 611 insertions, 597 deletions
@@ -1,3 +1,11 @@ +2007-01-11 Mickael Remond <mickael.remond@process-one.net> + + * doc/guide.tex: Latex / Hevea related improvements for documentation + generation (thanks to Sander Devrieze). + * doc/introduction.tex: Likewise. + * doc/dev.tex: Likewise. + * doc/features.tex: Likewise. + 2007-01-08 Christophe Romain <christophe.romain@process-one.net> * src/mod_pubsub/mod_pubsub.erl: add presence_based_delivery cluster diff --git a/doc/Makefile b/doc/Makefile index 7736855f..1f7f9614 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -5,9 +5,12 @@ all: release pdf html release: @echo "Notes for the releaser:" @echo "* Do not forget to add a link to the release notes in guide.tex" - @echo "* Do not forget to change the version number in version.tex" + @echo "* Do not forget to update the version number in src/ejabberd.hrl!" @echo "* Do not forget to update the features in introduction.tex (including \new{} and \improved{} tags)." @read -p "press any key to continue" + @echo "% ejabberd version (automatically generated)." > version.tex + @echo "\newcommand{\version}{"`cat ../src/ejabberd.hrl | grep VERSION |\ + sed s/-define\(VERSION,\ \"//g | sed s/\"\).//g`"}" >> version.tex html: guide.html dev.html features.html diff --git a/doc/dev.html b/doc/dev.html index 0c0472f7..0fe78d76 100644 --- a/doc/dev.html +++ b/doc/dev.html @@ -6,7 +6,7 @@ <TITLE>Ejabberd 1.1.2 Developers Guide</TITLE> -<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<META http-equiv="Content-Type" content="text/html; charset=UTF-8"> <META name="GENERATOR" content="hevea 1.08"> <STYLE type="text/css"> .toc{list-style:none;} @@ -22,7 +22,7 @@ BLOCKQUOTE{margin-left:4ex;margin-right:4ex;text-align:left;} </HEAD> <BODY > -<!--HEVEA command line is: hevea -fix -noiso -pedantic dev.tex --> +<!--HEVEA command line is: /usr/bin/hevea -fix -noiso -pedantic dev.tex --> <!--HTMLHEAD--> <!--ENDHTML--> <!--PREFIX <ARG ></ARG>--> @@ -30,7 +30,7 @@ BLOCKQUOTE{margin-left:4ex;margin-right:4ex;text-align:left;} <BR> <BR> -<A NAME="sec:titlepage"></A> +<A NAME="titlepage"></A> <TABLE CLASS="title"> <TR><TD> @@ -80,9 +80,9 @@ BLOCKQUOTE{margin-left:4ex;margin-right:4ex;text-align:left;} <!--TOC section Introduction--> -<H2 CLASS="section"><A NAME="htoc1">1</A> <A NAME="intro">Introduction</A></H2><!--SEC END --> +<H2 CLASS="section"><A NAME="htoc1">1</A> Introduction</H2><!--SEC END --> -<A NAME="sec:intro"></A> +<A NAME="intro"></A> <TT>ejabberd</TT> is a free and open source instant messaging server written in <A HREF="http://www.erlang.org/">Erlang</A>.<BR> <BR> @@ -94,9 +94,9 @@ BLOCKQUOTE{margin-left:4ex;margin-right:4ex;text-align:left;} <BR> <!--TOC subsection Key Features--> -<H3 CLASS="subsection"><A NAME="htoc2">1.1</A> <A NAME="keyfeatures">Key Features</A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc2">1.1</A> Key Features</H3><!--SEC END --> -<A NAME="sec:keyfeatures"></A> +<A NAME="keyfeatures"></A> <TT>ejabberd</TT> is: <UL CLASS="itemize"><LI CLASS="li-itemize"> @@ -127,13 +127,13 @@ Translated in 12 languages. <UL CLASS="itemize"><LI CLASS="li-itemize"> Fully XMPP compliant. <LI CLASS="li-itemize">XML-based protocol. -<LI CLASS="li-itemize"><A HREF="http://ejabberd.jabber.ru/protocols">Many JEPs supported</A>. +<LI CLASS="li-itemize"><A HREF="http://ejabberd.jabber.ru/protocols">Many protocols supported</A>. </UL></UL> <!--TOC subsection Additional Features--> -<H3 CLASS="subsection"><A NAME="htoc3">1.2</A> <A NAME="addfeatures">Additional Features</A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc3">1.2</A> Additional Features</H3><!--SEC END --> -<A NAME="sec:addfeatures"></A> +<A NAME="addfeatures"></A> Moreover, <TT>ejabberd</TT> comes with a wide range of other state-of-the-art features: <UL CLASS="itemize"><LI CLASS="li-itemize"> @@ -164,15 +164,15 @@ LDAP and ODBC. </UL> <LI CLASS="li-itemize">Others <UL CLASS="itemize"><LI CLASS="li-itemize"> -Compressing XML streams with Stream Compression (<A HREF="http://www.jabber.org/jeps/jep-0138.html">JEP-0138</A>). +Compressing XML streams with Stream Compression (<A HREF="http://www.xmpp.org/extensions/xep-0138.html">XEP-0138</A>). <LI CLASS="li-itemize">Interface with networks such as AIM, ICQ and MSN. -<LI CLASS="li-itemize">Statistics via Statistics Gathering (<A HREF="http://www.jabber.org/jeps/jep-0039.html">JEP-0039</A>). +<LI CLASS="li-itemize">Statistics via Statistics Gathering (<A HREF="http://www.xmpp.org/extensions/xep-0039.html">XEP-0039</A>). <LI CLASS="li-itemize">IPv6 support both for c2s and s2s connections. -<LI CLASS="li-itemize"><A HREF="http://www.jabber.org/jeps/jep-0045.html">Multi-User Chat</A> module with logging. +<LI CLASS="li-itemize"><A HREF="http://www.xmpp.org/extensions/xep-0045.html">Multi-User Chat</A> module with logging. <LI CLASS="li-itemize">Users Directory based on users vCards. -<LI CLASS="li-itemize"><A HREF="http://www.jabber.org/jeps/jep-0060.html">Publish-Subscribe</A> component. +<LI CLASS="li-itemize"><A HREF="http://www.xmpp.org/extensions/xep-0060.html">Publish-Subscribe</A> component. <LI CLASS="li-itemize">Support for virtual hosting. -<LI CLASS="li-itemize"><A HREF="http://www.jabber.org/jeps/jep-0025.html">HTTP Polling</A> service. +<LI CLASS="li-itemize"><A HREF="http://www.xmpp.org/extensions/xep-0025.html">HTTP Polling</A> service. <LI CLASS="li-itemize">IRC transport. </UL> </UL> @@ -180,7 +180,7 @@ Compressing XML streams with Stream Compression (<A HREF="http://www.jabber.org/ <H2 CLASS="section"><A NAME="htoc4">2</A> How it Works</H2><!--SEC END --> -<A NAME="sec:howitworks"></A> +<A NAME="howitworks"></A> A Jabber domain is served by one or more <TT>ejabberd</TT> nodes. These nodes can be run on different machines that are connected via a network. They all must have the ability to connect to port 4369 of all another nodes, and must have @@ -240,7 +240,7 @@ does not exist, then it is opened and registered.<BR> <H2 CLASS="section"><A NAME="htoc9">3</A> XML Representation</H2><!--SEC END --> -<A NAME="sec:xmlrepr"></A> +<A NAME="xmlrepr"></A> Each XML stanza is represented as the following tuple: <PRE CLASS="verbatim"> XMLElement = {xmlelement, Name, Attrs, [ElementOrCDATA]} @@ -269,7 +269,7 @@ XMLElement = {xmlelement, Name, Attrs, [ElementOrCDATA]} <H2 CLASS="section"><A NAME="htoc10">4</A> Module <TT>xml</TT></H2><!--SEC END --> -<A NAME="sec:xmlmod"></A> +<A NAME="xmlmod"></A> <DL CLASS="description" COMPACT=compact><DT CLASS="dt-description"><DD CLASS="dd-description"><CODE>element_to_string(El) -> string()</CODE> <PRE CLASS="verbatim"> El = XMLElement @@ -318,7 +318,7 @@ Res = string() | XMLElement <H2 CLASS="section"><A NAME="htoc11">5</A> Module <TT>xml_stream</TT></H2><!--SEC END --> -<A NAME="sec:xmlstreammod"></A> +<A NAME="xmlstreammod"></A> <DL CLASS="description" COMPACT=compact><DT CLASS="dt-description"><DD CLASS="dd-description"><CODE>parse_element(Str) -> XMLElement | {error, Err}</CODE> <PRE CLASS="verbatim"> Str = string() @@ -330,12 +330,12 @@ Err = term() <H2 CLASS="section"><A NAME="htoc12">6</A> Modules</H2><!--SEC END --> -<A NAME="sec:emods"></A> +<A NAME="emods"></A> <!--TOC subsection Module gen_iq_handler--> <H3 CLASS="subsection"><A NAME="htoc13">6.1</A> Module gen_iq_handler</H3><!--SEC END --> -<A NAME="sec:geniqhandl"></A> +<A NAME="geniqhandl"></A> The module <CODE>gen_iq_handler</CODE> allows to easily write handlers for IQ packets of particular XML namespaces that addressed to server or to users bare JIDs.<BR> <BR> @@ -404,7 +404,7 @@ process_local_iq(From, To, {iq, ID, Type, XMLNS, SubEl}) -> <H3 CLASS="subsection"><A NAME="htoc14">6.2</A> Services</H3><!--SEC END --> -<A NAME="sec:services"></A> +<A NAME="services"></A> <PRE CLASS="verbatim"> -module(mod_echo). diff --git a/doc/dev.tex b/doc/dev.tex index 3b076431..a0da0e89 100644 --- a/doc/dev.tex +++ b/doc/dev.tex @@ -71,12 +71,12 @@ \newcommand{\moreinfo}[1]{} % Hide details %% Footnotes -\newcommand{\tjepref}[2]{\footahref{http://www.jabber.org/jeps/jep-#1.html}{#2}} -\newcommand{\jepref}[1]{\tjepref{#1}{JEP-#1}} +\newcommand{\txepref}[2]{\footahref{http://www.xmpp.org/extensions/xep-#1.html}{#2}} +\newcommand{\xepref}[1]{\txepref{#1}{XEP-#1}} \begin{document} -\label{sec:titlepage} +\label{titlepage} \begin{titlepage} \maketitle{} @@ -97,7 +97,7 @@ \input{introduction} \section{How it Works} -\label{sec:howitworks} +\label{howitworks} A \Jabber{} domain is served by one or more \ejabberd{} nodes. These nodes can @@ -158,7 +158,7 @@ does not exist, then it is opened and registered. \section{XML Representation} -\label{sec:xmlrepr} +\label{xmlrepr} Each XML stanza is represented as the following tuple: \begin{verbatim} @@ -190,7 +190,7 @@ is represented as the following structure: \section{Module \texttt{xml}} -\label{sec:xmlmod} +\label{xmlmod} \begin{description} \item{\verb|element_to_string(El) -> string()|} @@ -248,7 +248,7 @@ Res = string() | XMLElement \section{Module \texttt{xml\_stream}} -\label{sec:xmlstreammod} +\label{xmlstreammod} \begin{description} \item{\verb!parse_element(Str) -> XMLElement | {error, Err}!} @@ -262,16 +262,16 @@ Err = term() \section{Modules} -\label{sec:emods} +\label{emods} %\subsection{gen\_mod behaviour} -%\label{sec:genmod} +%\label{genmod} %TBD \subsection{Module gen\_iq\_handler} -\label{sec:geniqhandl} +\label{geniqhandl} The module \verb|gen_iq_handler| allows to easily write handlers for IQ packets of particular XML namespaces that addressed to server or to users bare JIDs. @@ -350,7 +350,7 @@ process_local_iq(From, To, {iq, ID, Type, XMLNS, SubEl}) -> \subsection{Services} -\label{sec:services} +\label{services} %TBD diff --git a/doc/features.html b/doc/features.html index 0904a296..a1cfd365 100644 --- a/doc/features.html +++ b/doc/features.html @@ -6,7 +6,7 @@ <TITLE>Ejabberd 1.1.2 Feature Sheet</TITLE> -<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<META http-equiv="Content-Type" content="text/html; charset=UTF-8"> <META name="GENERATOR" content="hevea 1.08"> <STYLE type="text/css"> .toc{list-style:none;} @@ -23,7 +23,7 @@ SPAN{width:20%; float:right; text-align:left; margin-left:auto;} </HEAD> <BODY > -<!--HEVEA command line is: hevea -fix -noiso -pedantic features.tex --> +<!--HEVEA command line is: /usr/bin/hevea -fix -noiso -pedantic features.tex --> <!--HTMLHEAD--> <!--ENDHTML--> <!--PREFIX <ARG ></ARG>--> @@ -104,7 +104,7 @@ Translated in 12 languages.<FONT COLOR="#FFAA00"><SPAN STYLE="font-variant:small <UL CLASS="itemize"><LI CLASS="li-itemize"> Fully XMPP compliant. <LI CLASS="li-itemize">XML-based protocol. -<LI CLASS="li-itemize"><A HREF="http://ejabberd.jabber.ru/protocols">Many JEPs supported</A>. +<LI CLASS="li-itemize"><A HREF="http://ejabberd.jabber.ru/protocols">Many protocols supported</A>. </UL></UL> <!--TOC subsection Additional Features--> @@ -143,15 +143,15 @@ LDAP and ODBC.<FONT COLOR="#FFAA00"><SPAN STYLE="font-variant:small-caps">improv </UL> <LI CLASS="li-itemize">Others <UL CLASS="itemize"><LI CLASS="li-itemize"> -Compressing XML streams with Stream Compression (<A HREF="http://www.jabber.org/jeps/jep-0138.html">JEP-0138</A>). +Compressing XML streams with Stream Compression (<A HREF="http://www.xmpp.org/extensions/xep-0138.html">XEP-0138</A>). <LI CLASS="li-itemize">Interface with networks such as AIM, ICQ and MSN. -<LI CLASS="li-itemize">Statistics via Statistics Gathering (<A HREF="http://www.jabber.org/jeps/jep-0039.html">JEP-0039</A>). +<LI CLASS="li-itemize">Statistics via Statistics Gathering (<A HREF="http://www.xmpp.org/extensions/xep-0039.html">XEP-0039</A>). <LI CLASS="li-itemize">IPv6 support both for c2s and s2s connections. -<LI CLASS="li-itemize"><A HREF="http://www.jabber.org/jeps/jep-0045.html">Multi-User Chat</A> module with logging.<FONT COLOR="#FFAA00"><SPAN STYLE="font-variant:small-caps">improved</SPAN></FONT> +<LI CLASS="li-itemize"><A HREF="http://www.xmpp.org/extensions/xep-0045.html">Multi-User Chat</A> module with logging.<FONT COLOR="#FFAA00"><SPAN STYLE="font-variant:small-caps">improved</SPAN></FONT> <LI CLASS="li-itemize">Users Directory based on users vCards. -<LI CLASS="li-itemize"><A HREF="http://www.jabber.org/jeps/jep-0060.html">Publish-Subscribe</A> component. +<LI CLASS="li-itemize"><A HREF="http://www.xmpp.org/extensions/xep-0060.html">Publish-Subscribe</A> component. <LI CLASS="li-itemize">Support for virtual hosting. -<LI CLASS="li-itemize"><A HREF="http://www.jabber.org/jeps/jep-0025.html">HTTP Polling</A> service. +<LI CLASS="li-itemize"><A HREF="http://www.xmpp.org/extensions/xep-0025.html">HTTP Polling</A> service. <LI CLASS="li-itemize">IRC transport. </UL> </UL> diff --git a/doc/features.tex b/doc/features.tex index f5579cf4..8b677a81 100644 --- a/doc/features.tex +++ b/doc/features.tex @@ -64,8 +64,8 @@ \gdef\ahrefurl#1{\href{#1}{\texttt{#1}}} \gdef\footahref#1#2{#2\footnote{\href{#1}{\texttt{#1}}}} \end{latexonly} -\newcommand{\tjepref}[2]{\footahref{http://www.jabber.org/jeps/jep-#1.html}{#2}} -\newcommand{\jepref}[1]{\tjepref{#1}{JEP-#1}} +\newcommand{\txepref}[2]{\footahref{http://www.xmpp.org/extensions/xep-#1.html}{#2}} +\newcommand{\xepref}[1]{\txepref{#1}{XEP-#1}} %% Fancy header \fancyhf{} diff --git a/doc/guide.html b/doc/guide.html index 10615b68..b71bdf0c 100644 --- a/doc/guide.html +++ b/doc/guide.html @@ -6,7 +6,7 @@ <TITLE>Ejabberd 1.1.2 Installation and Operation Guide</TITLE> -<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<META http-equiv="Content-Type" content="text/html; charset=UTF-8"> <META name="GENERATOR" content="hevea 1.08"> <STYLE type="text/css"> .toc{list-style:none;} @@ -23,7 +23,7 @@ SPAN{width:20%; float:right; text-align:left; margin-left:auto;} </HEAD> <BODY > -<!--HEVEA command line is: hevea -fix -noiso -pedantic guide.tex --> +<!--HEVEA command line is: /usr/bin/hevea -fix -noiso -pedantic guide.tex --> <!--HTMLHEAD--> <!--ENDHTML--> <!--PREFIX <ARG ></ARG>--> @@ -191,9 +191,9 @@ SPAN{width:20%; float:right; text-align:left; margin-left:auto;} <!--TOC section Introduction--> -<H2 CLASS="section"><A NAME="htoc1">1</A> <A NAME="intro">Introduction</A></H2><!--SEC END --> +<H2 CLASS="section"><A NAME="htoc1">1</A> Introduction</H2><!--SEC END --> -<A NAME="sec:intro"></A> +<A NAME="intro"></A> <TT>ejabberd</TT> is a free and open source instant messaging server written in <A HREF="http://www.erlang.org/">Erlang</A>.<BR> <BR> @@ -205,9 +205,9 @@ SPAN{width:20%; float:right; text-align:left; margin-left:auto;} <BR> <!--TOC subsection Key Features--> -<H3 CLASS="subsection"><A NAME="htoc2">1.1</A> <A NAME="keyfeatures">Key Features</A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc2">1.1</A> Key Features</H3><!--SEC END --> -<A NAME="sec:keyfeatures"></A> +<A NAME="keyfeatures"></A> <TT>ejabberd</TT> is: <UL CLASS="itemize"><LI CLASS="li-itemize"> @@ -238,13 +238,13 @@ Translated in 12 languages.<SPAN STYLE="font-variant:small-caps">improved</SPAN> <UL CLASS="itemize"><LI CLASS="li-itemize"> Fully XMPP compliant. <LI CLASS="li-itemize">XML-based protocol. -<LI CLASS="li-itemize"><A HREF="http://ejabberd.jabber.ru/protocols">Many JEPs supported</A>. +<LI CLASS="li-itemize"><A HREF="http://ejabberd.jabber.ru/protocols">Many protocols supported</A>. </UL></UL> <!--TOC subsection Additional Features--> -<H3 CLASS="subsection"><A NAME="htoc3">1.2</A> <A NAME="addfeatures">Additional Features</A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc3">1.2</A> Additional Features</H3><!--SEC END --> -<A NAME="sec:addfeatures"></A> +<A NAME="addfeatures"></A> Moreover, <TT>ejabberd</TT> comes with a wide range of other state-of-the-art features: <UL CLASS="itemize"><LI CLASS="li-itemize"> @@ -275,35 +275,35 @@ LDAP and ODBC.<SPAN STYLE="font-variant:small-caps">improved</SPAN> </UL> <LI CLASS="li-itemize">Others <UL CLASS="itemize"><LI CLASS="li-itemize"> -Compressing XML streams with Stream Compression (<A HREF="http://www.jabber.org/jeps/jep-0138.html">JEP-0138</A>). +Compressing XML streams with Stream Compression (<A HREF="http://www.xmpp.org/extensions/xep-0138.html">XEP-0138</A>). <LI CLASS="li-itemize">Interface with networks such as AIM, ICQ and MSN. -<LI CLASS="li-itemize">Statistics via Statistics Gathering (<A HREF="http://www.jabber.org/jeps/jep-0039.html">JEP-0039</A>). +<LI CLASS="li-itemize">Statistics via Statistics Gathering (<A HREF="http://www.xmpp.org/extensions/xep-0039.html">XEP-0039</A>). <LI CLASS="li-itemize">IPv6 support both for c2s and s2s connections. -<LI CLASS="li-itemize"><A HREF="http://www.jabber.org/jeps/jep-0045.html">Multi-User Chat</A> module with logging.<SPAN STYLE="font-variant:small-caps">improved</SPAN> +<LI CLASS="li-itemize"><A HREF="http://www.xmpp.org/extensions/xep-0045.html">Multi-User Chat</A> module with logging.<SPAN STYLE="font-variant:small-caps">improved</SPAN> <LI CLASS="li-itemize">Users Directory based on users vCards. -<LI CLASS="li-itemize"><A HREF="http://www.jabber.org/jeps/jep-0060.html">Publish-Subscribe</A> component. +<LI CLASS="li-itemize"><A HREF="http://www.xmpp.org/extensions/xep-0060.html">Publish-Subscribe</A> component. <LI CLASS="li-itemize">Support for virtual hosting. -<LI CLASS="li-itemize"><A HREF="http://www.jabber.org/jeps/jep-0025.html">HTTP Polling</A> service. +<LI CLASS="li-itemize"><A HREF="http://www.xmpp.org/extensions/xep-0025.html">HTTP Polling</A> service. <LI CLASS="li-itemize">IRC transport. </UL> </UL> <!--TOC section Installation from Source--> -<H2 CLASS="section"><A NAME="htoc4">2</A> <A NAME="installsource">Installation from Source</A></H2><!--SEC END --> +<H2 CLASS="section"><A NAME="htoc4">2</A> Installation from Source</H2><!--SEC END --> -<A NAME="sec:installsource"></A> +<A NAME="installsource"></A> <!--TOC subsection Installation Requirements--> -<H3 CLASS="subsection"><A NAME="htoc5">2.1</A> <A NAME="installreq">Installation Requirements</A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc5">2.1</A> Installation Requirements</H3><!--SEC END --> -<A NAME="sec:installreq"></A> +<A NAME="installreq"></A> <!--TOC subsubsection `Unix-like' operating systems--> -<H4 CLASS="subsubsection"><A NAME="htoc6">2.1.1</A> <A NAME="installrequnix">`Unix-like' operating systems</A></H4><!--SEC END --> +<H4 CLASS="subsubsection"><A NAME="htoc6">2.1.1</A> `Unix-like' operating systems</H4><!--SEC END --> -<A NAME="sec:installrequnix"></A> +<A NAME="installrequnix"></A> To compile <TT>ejabberd</TT> on a `Unix-like' operating system, you need: <UL CLASS="itemize"><LI CLASS="li-itemize"> GNU Make @@ -316,9 +316,9 @@ GNU Make </UL> <!--TOC subsubsection Windows--> -<H4 CLASS="subsubsection"><A NAME="htoc7">2.1.2</A> <A NAME="installreqwin">Windows</A></H4><!--SEC END --> +<H4 CLASS="subsubsection"><A NAME="htoc7">2.1.2</A> Windows</H4><!--SEC END --> -<A NAME="sec:installreqwin"></A> +<A NAME="installreqwin"></A> To compile <TT>ejabberd</TT> on a Windows flavour, you need: <UL CLASS="itemize"><LI CLASS="li-itemize"> MS Visual C++ 6.0 Compiler @@ -332,9 +332,9 @@ MS Visual C++ 6.0 Compiler </UL> <!--TOC subsection Obtaining <TT>ejabberd</TT>--> -<H3 CLASS="subsection"><A NAME="htoc8">2.2</A> <A NAME="obtaining">Obtaining <TT>ejabberd</TT></A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc8">2.2</A> Obtaining <TT>ejabberd</TT></H3><!--SEC END --> -<A NAME="sec:obtaining"></A> +<A NAME="obtaining"></A> Released versions of <TT>ejabberd</TT> can be obtained from <BR> <A HREF="http://www.process-one.net/en/projects/ejabberd/download.html"><TT>http://www.process-one.net/en/projects/ejabberd/download.html</TT></A>.<BR> @@ -346,15 +346,15 @@ The latest development version can be retrieved from the Subversion repository. </PRE> <!--TOC subsection Compilation--> -<H3 CLASS="subsection"><A NAME="htoc9">2.3</A> <A NAME="compile">Compilation</A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc9">2.3</A> Compilation</H3><!--SEC END --> -<A NAME="sec:compile"></A> +<A NAME="compile"></A> <!--TOC subsubsection `Unix-like' operating systems--> -<H4 CLASS="subsubsection"><A NAME="htoc10">2.3.1</A> <A NAME="compileunix">`Unix-like' operating systems</A></H4><!--SEC END --> +<H4 CLASS="subsubsection"><A NAME="htoc10">2.3.1</A> `Unix-like' operating systems</H4><!--SEC END --> -<A NAME="sec:compileunix"></A> +<A NAME="compileunix"></A> Compile <TT>ejabberd</TT> on a `Unix-like' operating system by executing: <PRE CLASS="verbatim"> ./configure @@ -370,13 +370,13 @@ install <TT>ejabberd</TT> into the directory <CODE>/var/lib/ejabberd</CODE>, </UL> Note: if you want to use an external database, you need to execute the configure script with the option(s) <TT>–enable-odbc</TT> or <TT>–enable-odbc -–enable-mssql</TT>. See section <A HREF="#sec:database">4</A> for more information.<BR> +–enable-mssql</TT>. See section <A HREF="#database">4</A> for more information.<BR> <BR> <!--TOC subsubsection Windows--> -<H4 CLASS="subsubsection"><A NAME="htoc11">2.3.2</A> <A NAME="compilewin">Windows</A></H4><!--SEC END --> +<H4 CLASS="subsubsection"><A NAME="htoc11">2.3.2</A> Windows</H4><!--SEC END --> -<A NAME="sec:compilewin"></A> +<A NAME="compilewin"></A> <UL CLASS="itemize"><LI CLASS="li-itemize"> Install Erlang emulator (for example, into <CODE>C:\Program Files\erl5.3</CODE>). <LI CLASS="li-itemize">Install Expat library into <CODE>C:\Program Files\Expat-1.95.7</CODE> @@ -407,9 +407,9 @@ werl -s ejabberd -name ejabberd </PRE></UL> <!--TOC subsection Starting--> -<H3 CLASS="subsection"><A NAME="htoc12">2.4</A> <A NAME="start">Starting</A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc12">2.4</A> Starting</H3><!--SEC END --> -<A NAME="sec:start"></A> +<A NAME="start"></A> Execute the following command to start <TT>ejabberd</TT>: @@ -455,9 +455,9 @@ To reduce memory usage, you may set the environment variable <BR> <!--TOC section Basic Configuration--> -<H2 CLASS="section"><A NAME="htoc13">3</A> <A NAME="basicconfig">Basic Configuration</A></H2><!--SEC END --> +<H2 CLASS="section"><A NAME="htoc13">3</A> Basic Configuration</H2><!--SEC END --> -<A NAME="sec:basicconfig"></A> +<A NAME="basicconfig"></A> The configuration file will be loaded the first time you start <TT>ejabberd</TT>. The content from this file will be parsed and stored in a database. Subsequently the @@ -480,9 +480,9 @@ before new ones are added.<BR> <BR> <!--TOC subsection Host Names--> -<H3 CLASS="subsection"><A NAME="htoc14">3.1</A> <A NAME="hostnames">Host Names</A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc14">3.1</A> Host Names</H3><!--SEC END --> -<A NAME="sec:hostnames"></A> +<A NAME="hostnames"></A> The option <TT>hosts</TT> defines a list containing one or more domains that <TT>ejabberd</TT> will serve.<BR> @@ -502,9 +502,9 @@ Serving one domain: </PRE></UL> <!--TOC subsection Virtual Hosting--> -<H3 CLASS="subsection"><A NAME="htoc15">3.2</A> <A NAME="virtualhost">Virtual Hosting</A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc15">3.2</A> Virtual Hosting</H3><!--SEC END --> -<A NAME="sec:virtualhost"></A> +<A NAME="virtualhost"></A> Options can be defined separately for every virtual host using the <TT>host_config</TT> option. It has the following @@ -542,9 +542,9 @@ Domain <TT>example.net</TT> is using the internal authentication method while </PRE></UL> <!--TOC subsection Listened Sockets--> -<H3 CLASS="subsection"><A NAME="htoc16">3.3</A> <A NAME="listened">Listened Sockets</A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc16">3.3</A> Listened Sockets</H3><!--SEC END --> -<A NAME="sec:listened"></A> +<A NAME="listened"></A> The option <TT>listen</TT> defines for which addresses and ports <TT>ejabberd</TT> will listen and what services will be run on them. Each element of the list is a @@ -601,7 +601,7 @@ Currently next modules are implemented: <TT>inet6</TT>, <TT>ip</TT>, <TT>tls</TT>, <TT>web_admin</TT></TD> </TR></TABLE> <DIV CLASS="center"><HR WIDTH="80%" SIZE=2></DIV></DIV></BLOCKQUOTE> -(*) The mechanism for <A HREF="http://ejabberd.jabber.ru/tutorials-transports">external components</A> is defined in Jabber Component Protocol (<A HREF="http://www.jabber.org/jeps/jep-0114.html">JEP-0114</A>).<BR> +(*) The mechanism for <A HREF="http://ejabberd.jabber.ru/tutorials-transports">external components</A> is defined in Jabber Component Protocol (<A HREF="http://www.xmpp.org/extensions/xep-0114.html">XEP-0114</A>).<BR> <BR> The following options are available: <DL CLASS="description" COMPACT=compact><DT CLASS="dt-description"> @@ -612,7 +612,7 @@ The following options are available: defines one or more hostnames of connected services and enables you to specify additional options including <TT>{password, Secret}</TT>. <DT CLASS="dt-description"><B><TT>http_poll</TT></B><DD CLASS="dd-description"> - This option enables HTTP Polling (<A HREF="http://www.jabber.org/jeps/jep-0025.html">JEP-0025</A>) support. HTTP Polling + This option enables HTTP Polling (<A HREF="http://www.xmpp.org/extensions/xep-0025.html">XEP-0025</A>) support. HTTP Polling enables access via HTTP requests to <TT>ejabberd</TT> from behind firewalls which do not allow outgoing sockets on port 5222.<BR> <BR> @@ -632,7 +632,7 @@ If HTTP Polling is enabled, it will be available at readed data. For example <CODE>{max_stanza_size, 65536}</CODE>. The default value is <TT>infinity</TT>. <DT CLASS="dt-description"><B><TT>{shaper, <access rule>}</TT></B><DD CLASS="dd-description"> This option defines a - shaper for the port (see section <A HREF="#sec:shapers">3.6</A>). The default value + shaper for the port (see section <A HREF="#shapers">3.6</A>). The default value is <TT>none</TT>. <DT CLASS="dt-description"><B><TT>ssl</TT></B><DD CLASS="dd-description"> This option specifies that traffic on the port will be encrypted using SSL. You should also set the @@ -649,7 +649,7 @@ If HTTP Polling is enabled, it will be available at the port will be encrypted using SSL immediately after connecting. You should also set the <TT>certfile</TT> option. <DT CLASS="dt-description"><B><TT>zlib</TT></B><DD CLASS="dd-description"> This - option specifies that Zlib stream compression (as defined in <A HREF="http://www.jabber.org/jeps/jep-0138.html">JEP-0138</A>) + option specifies that Zlib stream compression (as defined in <A HREF="http://www.xmpp.org/extensions/xep-0138.html">XEP-0138</A>) is available on connections to the port. Client connections cannot use stream compression and stream encryption simultaneously. Hence, if you specify both <TT>tls</TT> (or <TT>ssl</TT>) and <TT>zlib</TT>, the latter @@ -678,7 +678,7 @@ c2s connections are listened for on port 5222 and 5223 (SSL) and denied traffic enabled. <LI CLASS="li-itemize">Port 5280 is serving the web interface and the HTTP Polling service. Note that it is also possible to serve them on different ports. The second - example in section <A HREF="#sec:webinterface">7.1</A> shows how exactly this can be done. + example in section <A HREF="#webinterface">7.1</A> shows how exactly this can be done. <LI CLASS="li-itemize">All users except for the administrators have a traffic of limit 1,000 Bytes/second <LI CLASS="li-itemize">The @@ -766,9 +766,9 @@ services you have to make the transports log and do XDB by themselves: </PRE> <!--TOC subsection Authentication--> -<H3 CLASS="subsection"><A NAME="htoc17">3.4</A> <A NAME="auth">Authentication</A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc17">3.4</A> Authentication</H3><!--SEC END --> -<A NAME="sec:auth"></A> +<A NAME="auth"></A> The option <TT>auth_method</TT> defines the authentication method that is used for user authentication: @@ -777,19 +777,19 @@ for user authentication: </PRE> The following authentication methods are supported by <TT>ejabberd</TT>: <UL CLASS="itemize"><LI CLASS="li-itemize"> -internal (default) — See section <A HREF="#sec:internalauth">3.4.1</A>. +internal (default) — See section <A HREF="#internalauth">3.4.1</A>. <LI CLASS="li-itemize">external — There are <A HREF="http://ejabberd.jabber.ru/extauth">some example authentication scripts</A>. -<LI CLASS="li-itemize">ldap — See section <A HREF="#sec:ldap">4.5</A>. -<LI CLASS="li-itemize">odbc — See section <A HREF="#sec:mysql">4.1</A>, <A HREF="#sec:pgsql">4.3</A>, - <A HREF="#sec:mssql">4.2</A> and <A HREF="#sec:odbc">4.4</A>. -<LI CLASS="li-itemize">anonymous — See section <A HREF="#sec:saslanonymous">3.4.2</A>. +<LI CLASS="li-itemize">ldap — See section <A HREF="#ldap">4.5</A>. +<LI CLASS="li-itemize">odbc — See section <A HREF="#mysql">4.1</A>, <A HREF="#pgsql">4.3</A>, + <A HREF="#mssql">4.2</A> and <A HREF="#odbc">4.4</A>. +<LI CLASS="li-itemize">anonymous — See section <A HREF="#saslanonymous">3.4.2</A>. </UL> <!--TOC subsubsection Internal--> -<H4 CLASS="subsubsection"><A NAME="htoc18">3.4.1</A> <A NAME="internalauth">Internal</A></H4><!--SEC END --> +<H4 CLASS="subsubsection"><A NAME="htoc18">3.4.1</A> Internal</H4><!--SEC END --> -<A NAME="sec:internalauth"></A> +<A NAME="internalauth"></A> <TT>ejabberd</TT> uses its internal Mnesia database as the default authentication method. <UL CLASS="itemize"><LI CLASS="li-itemize"> @@ -809,13 +809,13 @@ To use internal authentication on <TT>example.org</TT> and LDAP </PRE></UL> <!--TOC subsubsection SASL Anonymous and Anonymous Login--> -<H4 CLASS="subsubsection"><A NAME="htoc19">3.4.2</A> <A NAME="saslanonymous">SASL Anonymous and Anonymous Login</A></H4><!--SEC END --> +<H4 CLASS="subsubsection"><A NAME="htoc19">3.4.2</A> SASL Anonymous and Anonymous Login</H4><!--SEC END --> -<A NAME="sec:saslanonymous"></A> +<A NAME="saslanonymous"></A> The anonymous authentication method can be configured with the following options. Remember that you can use the <TT>host_config</TT> option to set virtual -host specific options (see section <A HREF="#sec:virtualhost">3.2</A>). Note that there also +host specific options (see section <A HREF="#virtualhost">3.2</A>). Note that there also is a detailed tutorial regarding <A HREF="http://support.process-one.net/doc/display/MESSENGER/Anonymous+users+support">SASL Anonymous and anonymous login configuration</A>. <UL CLASS="itemize"><LI CLASS="li-itemize"> @@ -834,7 +834,7 @@ Anonymous and anonymous login configuration</A>. login anonymous are both enabled. </UL> Those options are defined for each virtual host with the <TT>host_config</TT> -parameter (see section <A HREF="#sec:virtualhost">3.2</A>).<BR> +parameter (see section <A HREF="#virtualhost">3.2</A>).<BR> <BR> Examples: <UL CLASS="itemize"><LI CLASS="li-itemize"> @@ -866,16 +866,15 @@ a virtual host: </PRE></UL> <!--TOC subsection Access Rules--> -<H3 CLASS="subsection"><A NAME="htoc20">3.5</A> <A NAME="accessrules">Access Rules</A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc20">3.5</A> Access Rules</H3><!--SEC END --> -<A NAME="sec:accessrules"></A> +<A NAME="accessrules"></A> Access control in <TT>ejabberd</TT> is performed via Access Control Lists (ACLs). The declarations of ACLs in the configuration file have the following syntax: <PRE CLASS="verbatim"> {acl, <aclname>, {<acltype>, ...}}. -</PRE> -<TT><acltype></TT> can be one of the following: +</PRE><TT><acltype></TT> can be one of the following: <DL CLASS="description" COMPACT=compact><DT CLASS="dt-description"> <B><TT>all</TT></B><DD CLASS="dd-description"> Matches all JIDs. Example: <PRE CLASS="verbatim"> @@ -895,15 +894,15 @@ declarations of ACLs in the configuration file have the following syntax: </PRE><DT CLASS="dt-description"><B><TT>{user_regexp, <regexp>}</TT></B><DD CLASS="dd-description"> Matches any local user with a name that matches <TT><regexp></TT> at the first virtual host. Example: <PRE CLASS="verbatim"> -{acl, tests, {user, "^test[0-9]*$"}}. +{acl, tests, {user_regexp, "^test[0-9]*$"}}. </PRE><DT CLASS="dt-description"><B><TT>{user_regexp, <regexp>, <server>}</TT></B><DD CLASS="dd-description"> Matches any user with a name that matches <TT><regexp></TT> at server <TT><server></TT>. Example: <PRE CLASS="verbatim"> -{acl, tests, {user, "^test", "example.org"}}. +{acl, tests, {user_regexp, "^test", "example.org"}}. </PRE><DT CLASS="dt-description"><B><TT>{server_regexp, <regexp>}</TT></B><DD CLASS="dd-description"> Matches any JID from the server that matches <TT><regexp></TT>. Example: <PRE CLASS="verbatim"> -{acl, icq, {server, "^icq\\."}}. +{acl, icq, {server_regexp, "^icq\\."}}. </PRE><DT CLASS="dt-description"><B><TT>{node_regexp, <user_regexp>, <server_regexp>}</TT></B><DD CLASS="dd-description"> Matches any user with a name that matches <TT><user_regexp></TT> at any server that matches <TT><server_regexp></TT>. Example: @@ -955,9 +954,9 @@ The following access rules are pre-defined: </DL> <!--TOC subsection Shapers--> -<H3 CLASS="subsection"><A NAME="htoc21">3.6</A> <A NAME="shapers">Shapers</A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc21">3.6</A> Shapers</H3><!--SEC END --> -<A NAME="sec:shapers"></A> +<A NAME="shapers"></A> Shapers enable you to limit connection traffic. The syntax of shapers is like this: @@ -985,7 +984,7 @@ To define a shaper named `<TT>normal</TT>' with traffic speed limited to <H3 CLASS="subsection"><A NAME="htoc22">3.7</A> Limiting Opened Sessions</H3><!--SEC END --> -<A NAME="sec:configmaxsessions"></A> +<A NAME="configmaxsessions"></A> This option specifies the maximum number of sessions (authenticated connections) per user. If a user tries to open more sessions by using different @@ -1001,7 +1000,7 @@ hosts: <PRE CLASS="verbatim"> {max_user_sessions, 10}. </PRE><LI CLASS="li-itemize">This option can be defined per virtual host (see -section <A HREF="#sec:virtualhost">3.2</A>). In next example the number of +section <A HREF="#virtualhost">3.2</A>). In next example the number of sessions per user on the first host is six, while there is no limit on the second host: <PRE CLASS="verbatim"> @@ -1010,9 +1009,9 @@ second host: </PRE></UL> <!--TOC subsection Default Language--> -<H3 CLASS="subsection"><A NAME="htoc23">3.8</A> <A NAME="language">Default Language</A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc23">3.8</A> Default Language</H3><!--SEC END --> -<A NAME="sec:language"></A> +<A NAME="language"></A> The option <TT>language</TT> defines the default language of server strings that can be seen by Jabber clients. If a Jabber client do not support @@ -1031,9 +1030,9 @@ To set Russian as default language: </PRE></UL> <!--TOC section Database Configuration--> -<H2 CLASS="section"><A NAME="htoc24">4</A> <A NAME="database">Database Configuration</A></H2><!--SEC END --> +<H2 CLASS="section"><A NAME="htoc24">4</A> Database Configuration</H2><!--SEC END --> -<A NAME="sec:database"></A> +<A NAME="database"></A> <TT>ejabberd</TT> uses its internal Mnesia database by default. However, it is @@ -1054,16 +1053,16 @@ The following databases are supported by <TT>ejabberd</TT>: The following LDAP servers are tested with <TT>ejabberd</TT>: <UL CLASS="itemize"><LI CLASS="li-itemize"> <A HREF="http://www.microsoft.com/activedirectory/">Active Directory</A> - (see section <A HREF="#sec:ad">4.5.3</A>) + (see section <A HREF="#ad">4.5.3</A>) <LI CLASS="li-itemize"><A HREF="http://www.openldap.org/">OpenLDAP</A> <LI CLASS="li-itemize">Normally any LDAP compatible server should work; inform us about your success with a not-listed server so that we can list it here. </UL> <!--TOC subsection MySQL--> -<H3 CLASS="subsection"><A NAME="htoc25">4.1</A> <A NAME="mysql">MySQL</A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc25">4.1</A> MySQL</H3><!--SEC END --> -<A NAME="sec:mysql"></A> +<A NAME="mysql"></A> Although this section will describe <TT>ejabberd</TT>'s configuration when you want to use the native MySQL driver, it does not describe MySQL's installation and @@ -1077,9 +1076,9 @@ you can find information to update your database schema.<BR> <BR> <!--TOC subsubsection Driver Compilation--> -<H4 CLASS="subsubsection"><A NAME="htoc26">4.1.1</A> <A NAME="compilemysql">Driver Compilation</A></H4><!--SEC END --> +<H4 CLASS="subsubsection"><A NAME="htoc26">4.1.1</A> Driver Compilation</H4><!--SEC END --> -<A NAME="sec:compilemysql"></A> +<A NAME="compilemysql"></A> You can skip this step if you installed <TT>ejabberd</TT> using a binary installer or if the binary packages of <TT>ejabberd</TT> you are using include support for MySQL. @@ -1095,9 +1094,9 @@ First, install the <A HREF="http://support.process-one.net/doc/display/CONTRIBS/ </PRE></OL> <!--TOC subsubsection Authentication--> -<H4 CLASS="subsubsection"><A NAME="htoc27">4.1.2</A> <A NAME="mysqlauth">Authentication</A></H4><!--SEC END --> +<H4 CLASS="subsubsection"><A NAME="htoc27">4.1.2</A> Authentication</H4><!--SEC END --> -<A NAME="sec:mysqlauth"></A> +<A NAME="mysqlauth"></A> The option value name may be misleading, as the <TT>auth_method</TT> name is used for access to a relational database through ODBC, as well as through the native @@ -1121,12 +1120,12 @@ parameter: </PRE> <!--TOC subsubsection Storage--> -<H4 CLASS="subsubsection"><A NAME="htoc28">4.1.3</A> <A NAME="mysqlstorage">Storage</A></H4><!--SEC END --> +<H4 CLASS="subsubsection"><A NAME="htoc28">4.1.3</A> Storage</H4><!--SEC END --> -<A NAME="sec:mysqlstorage"></A> +<A NAME="mysqlstorage"></A> MySQL also can be used to store information into from several <TT>ejabberd</TT> -modules. See section <A HREF="#sec:modoverview">5.1</A> to see which modules have a version +modules. See section <A HREF="#modoverview">5.1</A> to see which modules have a version with the `_odbc'. This suffix indicates that the module can be used with relational databases like MySQL. To enable storage to your database, just make sure that your database is running well (see previous sections), and replace the @@ -1135,9 +1134,9 @@ that you cannot have several variants of the same module loaded!<BR> <BR> <!--TOC subsection Microsoft SQL Server--> -<H3 CLASS="subsection"><A NAME="htoc29">4.2</A> <A NAME="mssql">Microsoft SQL Server</A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc29">4.2</A> Microsoft SQL Server</H3><!--SEC END --> -<A NAME="sec:mssql"></A> +<A NAME="mssql"></A> Although this section will describe <TT>ejabberd</TT>'s configuration when you want to use Microsoft SQL Server, it does not describe Microsoft SQL Server's @@ -1152,9 +1151,9 @@ of the file you can find information to update your database schema.<BR> <BR> <!--TOC subsubsection Driver Compilation--> -<H4 CLASS="subsubsection"><A NAME="htoc30">4.2.1</A> <A NAME="compilemssql">Driver Compilation</A></H4><!--SEC END --> +<H4 CLASS="subsubsection"><A NAME="htoc30">4.2.1</A> Driver Compilation</H4><!--SEC END --> -<A NAME="sec:compilemssql"></A> +<A NAME="compilemssql"></A> You can skip this step if you installed <TT>ejabberd</TT> using a binary installer or if the binary packages of <TT>ejabberd</TT> you are using include support for ODBC.<BR> @@ -1167,21 +1166,21 @@ enabled. This can be done, by using next commands: </PRE> <!--TOC subsubsection Authentication--> -<H4 CLASS="subsubsection"><A NAME="htoc31">4.2.2</A> <A NAME="mssqlauth">Authentication</A></H4><!--SEC END --> +<H4 CLASS="subsubsection"><A NAME="htoc31">4.2.2</A> Authentication</H4><!--SEC END --> -<A NAME="sec:mssqlauth"></A> +<A NAME="mssqlauth"></A> The configuration of Microsoft SQL Server is the same as the configuration of -ODBC compatible serers (see section <A HREF="#sec:odbcauth">4.4.2</A>).<BR> +ODBC compatible serers (see section <A HREF="#odbcauth">4.4.2</A>).<BR> <BR> <!--TOC subsubsection Storage--> -<H4 CLASS="subsubsection"><A NAME="htoc32">4.2.3</A> <A NAME="mssqlstorage">Storage</A></H4><!--SEC END --> +<H4 CLASS="subsubsection"><A NAME="htoc32">4.2.3</A> Storage</H4><!--SEC END --> -<A NAME="sec:mssqlstorage"></A> +<A NAME="mssqlstorage"></A> Microsoft SQL Server also can be used to store information into from several -<TT>ejabberd</TT> modules. See section <A HREF="#sec:modoverview">5.1</A> to see which modules have +<TT>ejabberd</TT> modules. See section <A HREF="#modoverview">5.1</A> to see which modules have a version with the `_odbc'. This suffix indicates that the module can be used with relational databases like Microsoft SQL Server. To enable storage to your database, just make sure that your database is running well (see previous @@ -1191,9 +1190,9 @@ module loaded!<BR> <BR> <!--TOC subsection PostgreSQL--> -<H3 CLASS="subsection"><A NAME="htoc33">4.3</A> <A NAME="pgsql">PostgreSQL</A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc33">4.3</A> PostgreSQL</H3><!--SEC END --> -<A NAME="sec:pgsql"></A> +<A NAME="pgsql"></A> Although this section will describe <TT>ejabberd</TT>'s configuration when you want to use the native PostgreSQL driver, it does not describe PostgreSQL's installation @@ -1207,9 +1206,9 @@ you can find information to update your database schema.<BR> <BR> <!--TOC subsubsection Driver Compilation--> -<H4 CLASS="subsubsection"><A NAME="htoc34">4.3.1</A> <A NAME="compilepgsql">Driver Compilation</A></H4><!--SEC END --> +<H4 CLASS="subsubsection"><A NAME="htoc34">4.3.1</A> Driver Compilation</H4><!--SEC END --> -<A NAME="sec:compilepgsql"></A> +<A NAME="compilepgsql"></A> You can skip this step if you installed <TT>ejabberd</TT> using a binary installer or if the binary packages of <TT>ejabberd</TT> you are using include support for @@ -1227,9 +1226,9 @@ First, install the Erlang PgSQL library from </PRE></OL> <!--TOC subsubsection Authentication--> -<H4 CLASS="subsubsection"><A NAME="htoc35">4.3.2</A> <A NAME="pgsqlauth">Authentication</A></H4><!--SEC END --> +<H4 CLASS="subsubsection"><A NAME="htoc35">4.3.2</A> Authentication</H4><!--SEC END --> -<A NAME="sec:pgsqlauth"></A> +<A NAME="pgsqlauth"></A> The option value name may be misleading, as the <TT>auth_method</TT> name is used for access to a relational database through ODBC, as well as through the native @@ -1253,12 +1252,12 @@ form as parameter: </PRE> <!--TOC subsubsection Storage--> -<H4 CLASS="subsubsection"><A NAME="htoc36">4.3.3</A> <A NAME="pgsqlstorage">Storage</A></H4><!--SEC END --> +<H4 CLASS="subsubsection"><A NAME="htoc36">4.3.3</A> Storage</H4><!--SEC END --> -<A NAME="sec:pgsqlstorage"></A> +<A NAME="pgsqlstorage"></A> PostgreSQL also can be used to store information into from several <TT>ejabberd</TT> -modules. See section <A HREF="#sec:modoverview">5.1</A> to see which modules have a version +modules. See section <A HREF="#modoverview">5.1</A> to see which modules have a version with the `_odbc'. This suffix indicates that the module can be used with relational databases like PostgreSQL. To enable storage to your database, just make sure that your database is running well (see previous sections), and @@ -1267,9 +1266,9 @@ Keep in mind that you cannot have several variants of the same module loaded!<BR <BR> <!--TOC subsection ODBC Compatible--> -<H3 CLASS="subsection"><A NAME="htoc37">4.4</A> <A NAME="odbc">ODBC Compatible</A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc37">4.4</A> ODBC Compatible</H3><!--SEC END --> -<A NAME="sec:odbc"></A> +<A NAME="odbc"></A> Although this section will describe <TT>ejabberd</TT>'s configuration when you want to use the ODBC driver, it does not describe the installation and database creation @@ -1279,9 +1278,9 @@ this section.<BR> <BR> <!--TOC subsubsection Compilation--> -<H4 CLASS="subsubsection"><A NAME="htoc38">4.4.1</A> <A NAME="compileodbc">Compilation</A></H4><!--SEC END --> +<H4 CLASS="subsubsection"><A NAME="htoc38">4.4.1</A> Compilation</H4><!--SEC END --> -<A NAME="sec:compileodbc"></A> +<A NAME="compileodbc"></A> You can skip this step if you installed <TT>ejabberd</TT> using a binary installer or if the binary packages of <TT>ejabberd</TT> you are using include support for ODBC. @@ -1296,9 +1295,9 @@ First, install the <A HREF="http://support.process-one.net/doc/display/CONTRIBS/ </PRE></OL> <!--TOC subsubsection Authentication--> -<H4 CLASS="subsubsection"><A NAME="htoc39">4.4.2</A> <A NAME="odbcauth">Authentication</A></H4><!--SEC END --> +<H4 CLASS="subsubsection"><A NAME="htoc39">4.4.2</A> Authentication</H4><!--SEC END --> -<A NAME="sec:odbcauth"></A> +<A NAME="odbcauth"></A> The first configuration step is to define the odbc <TT>auth_method</TT>. For example: @@ -1316,12 +1315,12 @@ string as <TT>odbc_server</TT> parameter. For example: </PRE> <!--TOC subsubsection Storage--> -<H4 CLASS="subsubsection"><A NAME="htoc40">4.4.3</A> <A NAME="odbcstorage">Storage</A></H4><!--SEC END --> +<H4 CLASS="subsubsection"><A NAME="htoc40">4.4.3</A> Storage</H4><!--SEC END --> -<A NAME="sec:odbcstorage"></A> +<A NAME="odbcstorage"></A> An ODBC compatible database also can be used to store information into from -several <TT>ejabberd</TT> modules. See section <A HREF="#sec:modoverview">5.1</A> to see which +several <TT>ejabberd</TT> modules. See section <A HREF="#modoverview">5.1</A> to see which modules have a version with the `_odbc'. This suffix indicates that the module can be used with ODBC compatible relational databases. To enable storage to your database, just make sure that your database is running well (see previous @@ -1331,9 +1330,9 @@ module loaded!<BR> <BR> <!--TOC subsection LDAP--> -<H3 CLASS="subsection"><A NAME="htoc41">4.5</A> <A NAME="ldap">LDAP</A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc41">4.5</A> LDAP</H3><!--SEC END --> -<A NAME="sec:ldap"></A> +<A NAME="ldap"></A> <TT>ejabberd</TT> has built-in LDAP support. You can authenticate users against LDAP server and use LDAP directory as vCard storage. Shared rosters are not supported @@ -1341,9 +1340,9 @@ yet.<BR> <BR> <!--TOC subsubsection Connection--> -<H4 CLASS="subsubsection"><A NAME="htoc42">4.5.1</A> <A NAME="ldapconnection">Connection</A></H4><!--SEC END --> +<H4 CLASS="subsubsection"><A NAME="htoc42">4.5.1</A> Connection</H4><!--SEC END --> -<A NAME="sec:ldapconnection"></A> +<A NAME="ldapconnection"></A> Parameters: <DL CLASS="description" COMPACT=compact><DT CLASS="dt-description"> <B><TT>ldap_server</TT></B><DD CLASS="dd-description"> IP address or dns name of your @@ -1368,9 +1367,9 @@ and SASL authentication.<BR> <BR> <!--TOC subsubsection Authentication--> -<H4 CLASS="subsubsection"><A NAME="htoc43">4.5.2</A> <A NAME="ldapauth">Authentication</A></H4><!--SEC END --> +<H4 CLASS="subsubsection"><A NAME="htoc43">4.5.2</A> Authentication</H4><!--SEC END --> -<A NAME="sec:ldapauth"></A> +<A NAME="ldapauth"></A> You can authenticate users against an LDAP directory. Available options are: <DL CLASS="description" COMPACT=compact><DT CLASS="dt-description"> <B><TT>ldap_base</TT></B><DD CLASS="dd-description">LDAP base directory which stores @@ -1402,9 +1401,9 @@ You can authenticate users against an LDAP directory. Available options are: </DL> <!--TOC subsubsection Examples--> -<H4 CLASS="subsubsection"><A NAME="htoc44">4.5.3</A> <A NAME="ldapexamples">Examples</A></H4><!--SEC END --> +<H4 CLASS="subsubsection"><A NAME="htoc44">4.5.3</A> Examples</H4><!--SEC END --> -<A NAME="sec:ldapexamples"></A> +<A NAME="ldapexamples"></A> <!--TOC paragraph Common example--> <H5 CLASS="paragraph"><A NAME="ldapcommonexample">Common example</A></H5><!--SEC END --> @@ -1479,9 +1478,9 @@ searching in his information in LDAP.<BR> <BR> <!--TOC paragraph Active Directory--> -<H5 CLASS="paragraph"><A NAME="ad">Active Directory</A></H5><!--SEC END --> +<H5 CLASS="paragraph">Active Directory</H5><!--SEC END --> -<A NAME="sec:ad"></A> +<A NAME="ad"></A> Active Directory is just an LDAP-server with predefined attributes. A sample configuration is showed below: @@ -1493,7 +1492,7 @@ configuration is showed below: {ldap_password, "*******"}. % Password to LDAP manager {ldap_uids, [{"sAMAccountName"}]}. {ldap_filter, "(memberOf=*)"}. - + {mod_vcard_ldap, [{ldap_vcard_map, [{"NICKNAME", "%u", []}, @@ -1532,9 +1531,9 @@ configuration is showed below: </PRE> <!--TOC section Modules Configuration--> -<H2 CLASS="section"><A NAME="htoc45">5</A> <A NAME="modules">Modules Configuration</A></H2><!--SEC END --> +<H2 CLASS="section"><A NAME="htoc45">5</A> Modules Configuration</H2><!--SEC END --> -<A NAME="sec:modules"></A> +<A NAME="modules"></A> The option <TT>modules</TT> defines the list of modules that will be loaded after <TT>ejabberd</TT>'s startup. Each entry in the list is a tuple in which the first @@ -1561,9 +1560,9 @@ In this example only the module <TT>mod_echo</TT> is loaded and no module </PRE></UL> <!--TOC subsection Overview--> -<H3 CLASS="subsection"><A NAME="htoc46">5.1</A> <A NAME="modoverview">Overview</A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc46">5.1</A> Overview</H3><!--SEC END --> -<A NAME="sec:modoverview"></A> +<A NAME="modoverview"></A> The following table lists all modules available in the official <TT>ejabberd</TT> distribution. You can find more @@ -1576,7 +1575,7 @@ You can see which database backend each module needs by looking at the suffix: <UL CLASS="itemize"><LI CLASS="li-itemize"> `_ldap', this means that the module needs an LDAP server as backend. <LI CLASS="li-itemize">`_odbc', this means that the module needs a supported database - (see <A HREF="#sec:database">4</A>) as backend. + (see <A HREF="#database">4</A>) as backend. <LI CLASS="li-itemize">No suffix, this means that the modules uses Erlang's built-in database Mnesia as backend. </UL> @@ -1601,7 +1600,7 @@ Last connection date and time: Use <TT>mod_last_odbc</TT> instead of <TD ALIGN=left NOWRAP>Needed for XMPP?</TD> </TR> <TR><TD ALIGN=left NOWRAP><TT>mod_adhoc</TT></TD> -<TD ALIGN=left NOWRAP>Ad-Hoc Commands (<A HREF="http://www.jabber.org/jeps/jep-0050.html">JEP-0050</A>)</TD> +<TD ALIGN=left NOWRAP>Ad-Hoc Commands (<A HREF="http://www.xmpp.org/extensions/xep-0050.html">XEP-0050</A>)</TD> <TD ALIGN=left NOWRAP> </TD> <TD ALIGN=left NOWRAP>No</TD> </TR> @@ -1621,7 +1620,7 @@ Last connection date and time: Use <TT>mod_last_odbc</TT> instead of <TD ALIGN=left NOWRAP> </TD> </TR> <TR><TD ALIGN=left NOWRAP><TT>mod_disco</TT></TD> -<TD ALIGN=left NOWRAP>Service Discovery (<A HREF="http://www.jabber.org/jeps/jep-0030.html">JEP-0030</A>)</TD> +<TD ALIGN=left NOWRAP>Service Discovery (<A HREF="http://www.xmpp.org/extensions/xep-0030.html">XEP-0030</A>)</TD> <TD ALIGN=left NOWRAP> </TD> <TD ALIGN=left NOWRAP>No</TD> </TR> @@ -1636,17 +1635,17 @@ Last connection date and time: Use <TT>mod_last_odbc</TT> instead of <TD ALIGN=left NOWRAP>No</TD> </TR> <TR><TD ALIGN=left NOWRAP><TT>mod_last</TT></TD> -<TD ALIGN=left NOWRAP>Last Activity (<A HREF="http://www.jabber.org/jeps/jep-0012.html">JEP-0012</A>)</TD> +<TD ALIGN=left NOWRAP>Last Activity (<A HREF="http://www.xmpp.org/extensions/xep-0012.html">XEP-0012</A>)</TD> <TD ALIGN=left NOWRAP> </TD> <TD ALIGN=left NOWRAP>No</TD> </TR> <TR><TD ALIGN=left NOWRAP><TT>mod_last_odbc</TT></TD> -<TD ALIGN=left NOWRAP>Last Activity (<A HREF="http://www.jabber.org/jeps/jep-0012.html">JEP-0012</A>)</TD> +<TD ALIGN=left NOWRAP>Last Activity (<A HREF="http://www.xmpp.org/extensions/xep-0012.html">XEP-0012</A>)</TD> <TD ALIGN=left NOWRAP>supported database (*)</TD> <TD ALIGN=left NOWRAP>No</TD> </TR> <TR><TD ALIGN=left NOWRAP><TT>mod_muc</TT></TD> -<TD ALIGN=left NOWRAP>Multi-User Chat (<A HREF="http://www.jabber.org/jeps/jep-0045.html">JEP-0045</A>)</TD> +<TD ALIGN=left NOWRAP>Multi-User Chat (<A HREF="http://www.xmpp.org/extensions/xep-0045.html">XEP-0045</A>)</TD> <TD ALIGN=left NOWRAP> </TD> <TD ALIGN=left NOWRAP>No</TD> </TR> @@ -1671,22 +1670,27 @@ Last connection date and time: Use <TT>mod_last_odbc</TT> instead of <TD ALIGN=left NOWRAP>Yes</TD> </TR> <TR><TD ALIGN=left NOWRAP><TT>mod_private</TT></TD> -<TD ALIGN=left NOWRAP>Private XML Storage (<A HREF="http://www.jabber.org/jeps/jep-0049.html">JEP-0049</A>)</TD> +<TD ALIGN=left NOWRAP>Private XML Storage (<A HREF="http://www.xmpp.org/extensions/xep-0049.html">XEP-0049</A>)</TD> <TD ALIGN=left NOWRAP> </TD> <TD ALIGN=left NOWRAP>No</TD> </TR> +<TR><TD ALIGN=left NOWRAP><TT>mod_private_odbc</TT></TD> +<TD ALIGN=left NOWRAP>Private XML Storage (<A HREF="http://www.xmpp.org/extensions/xep-0049.html">XEP-0049</A>)</TD> +<TD ALIGN=left NOWRAP>supported database (*)</TD> +<TD ALIGN=left NOWRAP>No</TD> +</TR> <TR><TD ALIGN=left NOWRAP><TT>mod_proxy65</TT></TD> -<TD ALIGN=left NOWRAP>SOCKS5 Bytestreams (<A HREF="http://www.jabber.org/jeps/jep-0065.html">JEP-0065</A>)</TD> +<TD ALIGN=left NOWRAP>SOCKS5 Bytestreams (<A HREF="http://www.xmpp.org/extensions/xep-0065.html">XEP-0065</A>)</TD> <TD ALIGN=left NOWRAP> </TD> <TD ALIGN=left NOWRAP>No</TD> </TR> <TR><TD ALIGN=left NOWRAP><TT>mod_pubsub</TT></TD> -<TD ALIGN=left NOWRAP>Publish-Subscribe (<A HREF="http://www.jabber.org/jeps/jep-0060.html">JEP-0060</A>)</TD> +<TD ALIGN=left NOWRAP>Publish-Subscribe (<A HREF="http://www.xmpp.org/extensions/xep-0060.html">XEP-0060</A>)</TD> <TD ALIGN=left NOWRAP> </TD> <TD ALIGN=left NOWRAP>No</TD> </TR> <TR><TD ALIGN=left NOWRAP><TT>mod_register</TT></TD> -<TD ALIGN=left NOWRAP>In-Band Registration (<A HREF="http://www.jabber.org/jeps/jep-0077.html">JEP-0077</A>)</TD> +<TD ALIGN=left NOWRAP>In-Band Registration (<A HREF="http://www.xmpp.org/extensions/xep-0077.html">XEP-0077</A>)</TD> <TD ALIGN=left NOWRAP> </TD> <TD ALIGN=left NOWRAP>No</TD> </TR> @@ -1716,54 +1720,54 @@ Last connection date and time: Use <TT>mod_last_odbc</TT> instead of <TD ALIGN=left NOWRAP> </TD> </TR> <TR><TD ALIGN=left NOWRAP><TT>mod_stats</TT></TD> -<TD ALIGN=left NOWRAP>Statistics Gathering (<A HREF="http://www.jabber.org/jeps/jep-0039.html">JEP-0039</A>)</TD> +<TD ALIGN=left NOWRAP>Statistics Gathering (<A HREF="http://www.xmpp.org/extensions/xep-0039.html">XEP-0039</A>)</TD> <TD ALIGN=left NOWRAP> </TD> <TD ALIGN=left NOWRAP>No</TD> </TR> <TR><TD ALIGN=left NOWRAP><TT>mod_time</TT></TD> -<TD ALIGN=left NOWRAP>Entity Time (<A HREF="http://www.jabber.org/jeps/jep-0090.html">JEP-0090</A>)</TD> +<TD ALIGN=left NOWRAP>Entity Time (<A HREF="http://www.xmpp.org/extensions/xep-0090.html">XEP-0090</A>)</TD> <TD ALIGN=left NOWRAP> </TD> <TD ALIGN=left NOWRAP>No</TD> </TR> <TR><TD ALIGN=left NOWRAP><TT>mod_vcard</TT></TD> -<TD ALIGN=left NOWRAP>vcard-temp (<A HREF="http://www.jabber.org/jeps/jep-0054.html">JEP-0054</A>)</TD> +<TD ALIGN=left NOWRAP>vcard-temp (<A HREF="http://www.xmpp.org/extensions/xep-0054.html">XEP-0054</A>)</TD> <TD ALIGN=left NOWRAP> </TD> <TD ALIGN=left NOWRAP>No</TD> </TR> <TR><TD ALIGN=left NOWRAP><TT>mod_vcard_ldap</TT></TD> -<TD ALIGN=left NOWRAP>vcard-temp (<A HREF="http://www.jabber.org/jeps/jep-0054.html">JEP-0054</A>)</TD> +<TD ALIGN=left NOWRAP>vcard-temp (<A HREF="http://www.xmpp.org/extensions/xep-0054.html">XEP-0054</A>)</TD> <TD ALIGN=left NOWRAP>LDAP server</TD> <TD ALIGN=left NOWRAP>No</TD> </TR> <TR><TD ALIGN=left NOWRAP><TT>mod_vcard_odbc</TT></TD> -<TD ALIGN=left NOWRAP>vcard-temp (<A HREF="http://www.jabber.org/jeps/jep-0054.html">JEP-0054</A>)</TD> +<TD ALIGN=left NOWRAP>vcard-temp (<A HREF="http://www.xmpp.org/extensions/xep-0054.html">XEP-0054</A>)</TD> <TD ALIGN=left NOWRAP>supported database (*)</TD> <TD ALIGN=left NOWRAP>No</TD> </TR> <TR><TD ALIGN=left NOWRAP><TT>mod_version</TT></TD> -<TD ALIGN=left NOWRAP>Software Version (<A HREF="http://www.jabber.org/jeps/jep-0092.html">JEP-0092</A>)</TD> +<TD ALIGN=left NOWRAP>Software Version (<A HREF="http://www.xmpp.org/extensions/xep-0092.html">XEP-0092</A>)</TD> <TD ALIGN=left NOWRAP> </TD> <TD ALIGN=left NOWRAP>No</TD> </TR></TABLE> <DIV CLASS="center"><HR WIDTH="80%" SIZE=2></DIV></DIV></BLOCKQUOTE> <UL CLASS="itemize"><LI CLASS="li-itemize"> -(*) For a list of supported databases, see section <A HREF="#sec:database">4</A>. +(*) For a list of supported databases, see section <A HREF="#database">4</A>. <LI CLASS="li-itemize">(**) This module or a similar one with another database backend is needed for XMPP compliancy. </UL> <!--TOC subsection Common Options--> -<H3 CLASS="subsection"><A NAME="htoc47">5.2</A> <A NAME="modcommonoptions">Common Options</A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc47">5.2</A> Common Options</H3><!--SEC END --> -<A NAME="sec:modcommonoptions"></A> +<A NAME="modcommonoptions"></A> The following options are used by many modules. Therefore, they are described in this separate section.<BR> <BR> <!--TOC subsubsection <TT>iqdisc</TT>--> -<H4 CLASS="subsubsection"><A NAME="htoc48">5.2.1</A> <A NAME="modiqdiscoption"><TT>iqdisc</TT></A></H4><!--SEC END --> +<H4 CLASS="subsubsection"><A NAME="htoc48">5.2.1</A> <TT>iqdisc</TT></H4><!--SEC END --> -<A NAME="sec:modiqdiscoption"></A> +<A NAME="modiqdiscoption"></A> Many modules define handlers for processing IQ queries of different namespaces to this server or to a user (e. g. to <TT>example.org</TT> or to @@ -1795,9 +1799,9 @@ Example: </PRE> <!--TOC subsubsection <TT>hosts</TT>--> -<H4 CLASS="subsubsection"><A NAME="htoc49">5.2.2</A> <A NAME="modhostsoption"><TT>hosts</TT></A></H4><!--SEC END --> +<H4 CLASS="subsubsection"><A NAME="htoc49">5.2.2</A> <TT>hosts</TT></H4><!--SEC END --> -<A NAME="sec:modhostsoption"></A> +<A NAME="modhostsoption"></A> A module acting as a service can have one or more hostnames. These hostnames can be defined with the <TT>hosts</TT> option.<BR> @@ -1834,9 +1838,9 @@ Serving the echo module on one domain: </PRE></UL> <!--TOC subsection <TT>mod_announce</TT>--> -<H3 CLASS="subsection"><A NAME="htoc50">5.3</A> <A NAME="modannounce"><TT>mod_announce</TT></A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc50">5.3</A> <TT>mod_announce</TT></H3><!--SEC END --> -<A NAME="sec:modannounce"></A> +<A NAME="modannounce"></A> This module enables configured users to broadcast announcements and to set the message of the day (MOTD). Configured users can do these actions with their @@ -1850,7 +1854,7 @@ hosts: to several resources, only the resource with the highest priority will receive the message. If the registered user is not connected, the message will be stored offline in assumption that offline storage - (see section <A HREF="#sec:modoffline">5.10</A>) is enabled. + (see section <A HREF="#modoffline">5.10</A>) is enabled. <DT CLASS="dt-description"><B><TT>example.org/announce/online (example.org/announce/all-hosts/online)</TT></B><DD CLASS="dd-description">The message is sent to all connected users. If the user is online and connected to several resources, all resources will receive the message. @@ -1900,15 +1904,15 @@ Only administrators can send announcements: </PRE></UL> <!--TOC subsection <TT>mod_disco</TT>--> -<H3 CLASS="subsection"><A NAME="htoc51">5.4</A> <A NAME="moddisco"><TT>mod_disco</TT></A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc51">5.4</A> <TT>mod_disco</TT></H3><!--SEC END --> -<A NAME="sec:moddisco"></A> +<A NAME="moddisco"></A> -This module adds support for Service Discovery (<A HREF="http://www.jabber.org/jeps/jep-0030.html">JEP-0030</A>). With +This module adds support for Service Discovery (<A HREF="http://www.xmpp.org/extensions/xep-0030.html">XEP-0030</A>). With this module enabled, services on your server can be discovered by Jabber clients. Note that <TT>ejabberd</TT> has no modules with support -for the superseded Jabber Browsing (<A HREF="http://www.jabber.org/jeps/jep-0011.html">JEP-0011</A>) and Agent Information -(<A HREF="http://www.jabber.org/jeps/jep-0094.html">JEP-0094</A>). Accordingly, Jabber clients need to have support for +for the superseded Jabber Browsing (<A HREF="http://www.xmpp.org/extensions/xep-0011.html">XEP-0011</A>) and Agent Information +(<A HREF="http://www.xmpp.org/extensions/xep-0094.html">XEP-0094</A>). Accordingly, Jabber clients need to have support for the newer Service Discovery protocol if you want them be able to discover the services you offer.<BR> <BR> @@ -1917,7 +1921,7 @@ Options: <B><TT>iqdisc</TT></B><DD CLASS="dd-description"> This specifies the processing discipline for Service Discovery (<TT>http://jabber.org/protocol/disco#items</TT> and <TT>http://jabber.org/protocol/disco#info</TT>) IQ queries -(see section <A HREF="#sec:modiqdiscoption">5.2.1</A>). +(see section <A HREF="#modiqdiscoption">5.2.1</A>). <DT CLASS="dt-description"><B><TT>extra_domains</TT></B><DD CLASS="dd-description"> With this option, extra domains can be added to the Service Discovery item list. </DL> @@ -1952,9 +1956,9 @@ To serve a link to the Jabber User Directory on <TT>jabber.org</TT>: </PRE></UL> <!--TOC subsection <TT>mod_echo</TT>--> -<H3 CLASS="subsection"><A NAME="htoc52">5.5</A> <A NAME="modecho"><TT>mod_echo</TT></A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc52">5.5</A> <TT>mod_echo</TT></H3><!--SEC END --> -<A NAME="sec:modecho"></A> +<A NAME="modecho"></A> This module simply echoes any Jabber packet back to the sender. This mirror can be of interest for @@ -1964,7 +1968,7 @@ Options: <DL CLASS="description" COMPACT=compact><DT CLASS="dt-description"> <B><TT>hosts</TT></B><DD CLASS="dd-description"> This option defines the hostnames of the - service (see section <A HREF="#sec:modhostsoption">5.2.2</A>). If neither <TT>hosts</TT> nor + service (see section <A HREF="#modhostsoption">5.2.2</A>). If neither <TT>hosts</TT> nor the old <TT>host</TT> is present, the prefix `<TT>echo.</TT>' is added to all <TT>ejabberd</TT> hostnames. @@ -1981,13 +1985,13 @@ Mirror, mirror, on the wall, who is the most beautiful ... ]}. </PRE><LI CLASS="li-itemize">If you still do not understand the inner workings of <TT>mod_echo</TT>, - you can find a few more examples in section <A HREF="#sec:modhostsoption">5.2.2</A>. + you can find a few more examples in section <A HREF="#modhostsoption">5.2.2</A>. </UL> <!--TOC subsection <TT>mod_irc</TT>--> -<H3 CLASS="subsection"><A NAME="htoc53">5.6</A> <A NAME="modirc"><TT>mod_irc</TT></A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc53">5.6</A> <TT>mod_irc</TT></H3><!--SEC END --> -<A NAME="sec:modirc"></A> +<A NAME="modirc"></A> This module is an IRC transport that can be used to join channels on IRC servers.<BR> @@ -1996,7 +2000,7 @@ End user information: <UL CLASS="itemize"><LI CLASS="li-itemize"> A Jabber client with `groupchat 1.0' support or Multi-User - Chat support (<A HREF="http://www.jabber.org/jeps/jep-0045.html">JEP-0045</A>) is necessary to join IRC channels. + Chat support (<A HREF="http://www.xmpp.org/extensions/xep-0045.html">XEP-0045</A>) is necessary to join IRC channels. <LI CLASS="li-itemize">An IRC channel can be joined in nearly the same way as joining a Jabber Multi-User Chat room. The difference is that the room name will be `channel%<TT>irc.example.org</TT>' in case <TT>irc.example.org</TT> is @@ -2014,7 +2018,7 @@ Options: <DL CLASS="description" COMPACT=compact><DT CLASS="dt-description"> <B><TT>hosts</TT></B><DD CLASS="dd-description"> This option defines the hostnames of the - service (see section <A HREF="#sec:modhostsoption">5.2.2</A>). If neither <TT>hosts</TT> nor + service (see section <A HREF="#modhostsoption">5.2.2</A>). If neither <TT>hosts</TT> nor the old <TT>host</TT> is present, the prefix `<TT>irc.</TT>' is added to all <TT>ejabberd</TT> hostnames. @@ -2055,11 +2059,11 @@ In the first example, the IRC transport is available on (all) your </PRE></UL> <!--TOC subsection <TT>mod_last</TT>--> -<H3 CLASS="subsection"><A NAME="htoc54">5.7</A> <A NAME="modlast"><TT>mod_last</TT></A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc54">5.7</A> <TT>mod_last</TT></H3><!--SEC END --> -<A NAME="sec:modlast"></A> +<A NAME="modlast"></A> -This module adds support for Last Activity (<A HREF="http://www.jabber.org/jeps/jep-0012.html">JEP-0012</A>). It can be used to +This module adds support for Last Activity (<A HREF="http://www.xmpp.org/extensions/xep-0012.html">XEP-0012</A>). It can be used to discover when a disconnected user last accessed the server, to know when a connected user was last active on the server, or to query the uptime of the <TT>ejabberd</TT> server.<BR> @@ -2068,16 +2072,16 @@ Options: <DL CLASS="description" COMPACT=compact><DT CLASS="dt-description"> <B><TT>iqdisc</TT></B><DD CLASS="dd-description"> This specifies the processing discipline for Last activity (<TT>jabber:iq:last</TT>) IQ queries -(see section <A HREF="#sec:modiqdiscoption">5.2.1</A>). +(see section <A HREF="#modiqdiscoption">5.2.1</A>). </DL> <!--TOC subsection <TT>mod_muc</TT>--> -<H3 CLASS="subsection"><A NAME="htoc55">5.8</A> <A NAME="modmuc"><TT>mod_muc</TT></A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc55">5.8</A> <TT>mod_muc</TT></H3><!--SEC END --> -<A NAME="sec:modmuc"></A> +<A NAME="modmuc"></A> With this module enabled, your server will support Multi-User Chat -(<A HREF="http://www.jabber.org/jeps/jep-0045.html">JEP-0045</A>). End users will be able to join text conferences. Notice +(<A HREF="http://www.xmpp.org/extensions/xep-0045.html">XEP-0045</A>). End users will be able to join text conferences. Notice that this module is not (yet) clusterable.<BR> <BR> Some of the features of Multi-User Chat: @@ -2092,7 +2096,7 @@ Options: <DL CLASS="description" COMPACT=compact><DT CLASS="dt-description"> <B><TT>hosts</TT></B><DD CLASS="dd-description"> This option defines the hostnames of the - service (see section <A HREF="#sec:modhostsoption">5.2.2</A>). If neither <TT>hosts</TT> nor + service (see section <A HREF="#modhostsoption">5.2.2</A>). If neither <TT>hosts</TT> nor the old <TT>host</TT> is present, the prefix `<TT>conference.</TT>' is added to all <TT>ejabberd</TT> hostnames. @@ -2173,9 +2177,9 @@ In the first example everyone is allowed to use the Multi-User Chat </PRE></UL> <!--TOC subsection <TT>mod_muc_log</TT>--> -<H3 CLASS="subsection"><A NAME="htoc56">5.9</A> <A NAME="modmuclog"><TT>mod_muc_log</TT></A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc56">5.9</A> <TT>mod_muc_log</TT></H3><!--SEC END --> -<A NAME="sec:modmuclog"></A> +<A NAME="modmuclog"></A> This module enables optional logging of Multi-User Chat (MUC) conversations to HTML. Once you enable this module, users can join a chatroom using a MUC capable @@ -2285,21 +2289,21 @@ In the first example any chatroom owner can enable logging, and a </PRE></UL> <!--TOC subsection <TT>mod_offline</TT>--> -<H3 CLASS="subsection"><A NAME="htoc57">5.10</A> <A NAME="modoffline"><TT>mod_offline</TT></A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc57">5.10</A> <TT>mod_offline</TT></H3><!--SEC END --> -<A NAME="sec:modoffline"></A> +<A NAME="modoffline"></A> This module implements offline message storage. This means that all messages sent to an offline user will be stored on the server until that user comes online again. Thus it is very similar to how email works. Note that <TT>ejabberdctl</TT> has a command to delete expired messages -(see section <A HREF="#sec:ejabberdctl">7.2</A>).<BR> +(see section <A HREF="#ejabberdctl">7.2</A>).<BR> <BR> <!--TOC subsection <TT>mod_privacy</TT>--> -<H3 CLASS="subsection"><A NAME="htoc58">5.11</A> <A NAME="modprivacy"><TT>mod_privacy</TT></A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc58">5.11</A> <TT>mod_privacy</TT></H3><!--SEC END --> -<A NAME="sec:modprivacy"></A> +<A NAME="modprivacy"></A> This module implements Blocking Communication (also known as Privacy Rules) as defined in section 10 from XMPP IM. If end users have support for it in @@ -2328,34 +2332,34 @@ Options: <DL CLASS="description" COMPACT=compact><DT CLASS="dt-description"> <B><TT>iqdisc</TT></B><DD CLASS="dd-description"> This specifies the processing discipline for Blocking Communication (<TT>jabber:iq:privacy</TT>) IQ queries -(see section <A HREF="#sec:modiqdiscoption">5.2.1</A>). +(see section <A HREF="#modiqdiscoption">5.2.1</A>). </DL> <!--TOC subsection <TT>mod_private</TT>--> -<H3 CLASS="subsection"><A NAME="htoc59">5.12</A> <A NAME="modprivate"><TT>mod_private</TT></A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc59">5.12</A> <TT>mod_private</TT></H3><!--SEC END --> -<A NAME="sec:modprivate"></A> +<A NAME="modprivate"></A> -This module adds support for Private XML Storage (<A HREF="http://www.jabber.org/jeps/jep-0049.html">JEP-0049</A>): +This module adds support for Private XML Storage (<A HREF="http://www.xmpp.org/extensions/xep-0049.html">XEP-0049</A>): <BLOCKQUOTE CLASS="quote"> Using this method, Jabber entities can store private data on the server and retrieve it whenever necessary. The data stored might be anything, as long as it is valid XML. One typical usage for this namespace is the server-side storage -of client-specific preferences; another is Bookmark Storage (<A HREF="http://www.jabber.org/jeps/jep-0048.html">JEP-0048</A>). +of client-specific preferences; another is Bookmark Storage (<A HREF="http://www.xmpp.org/extensions/xep-0048.html">XEP-0048</A>). </BLOCKQUOTE> Options: <DL CLASS="description" COMPACT=compact><DT CLASS="dt-description"> <B><TT>iqdisc</TT></B><DD CLASS="dd-description"> This specifies the processing discipline for Private XML Storage (<TT>jabber:iq:private</TT>) IQ queries -(see section <A HREF="#sec:modiqdiscoption">5.2.1</A>). +(see section <A HREF="#modiqdiscoption">5.2.1</A>). </DL> <!--TOC subsection <TT>mod_proxy65</TT>--> -<H3 CLASS="subsection"><A NAME="htoc60">5.13</A> <A NAME="modproxy"><TT>mod_proxy65</TT></A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc60">5.13</A> <TT>mod_proxy65</TT></H3><!--SEC END --> -<A NAME="sec:modproxy"></A> +<A NAME="modproxy"></A> -This module implements SOCKS5 Bytestreams (<A HREF="http://www.jabber.org/jeps/jep-0065.html">JEP-0065</A>). +This module implements SOCKS5 Bytestreams (<A HREF="http://www.xmpp.org/extensions/xep-0065.html">XEP-0065</A>). It allows <TT>ejabberd</TT> to act as a file transfer proxy between two XMPP clients.<BR> <BR> @@ -2416,12 +2420,12 @@ The simpliest configuration of the module: </PRE></UL> <!--TOC subsection <TT>mod_pubsub</TT>--> -<H3 CLASS="subsection"><A NAME="htoc61">5.14</A> <A NAME="modpubsub"><TT>mod_pubsub</TT></A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc61">5.14</A> <TT>mod_pubsub</TT></H3><!--SEC END --> -<A NAME="sec:modpubsub"></A> +<A NAME="modpubsub"></A> -This module offers a Publish-Subscribe Service (<A HREF="http://www.jabber.org/jeps/jep-0060.html">JEP-0060</A>). -Publish-Subscribe can be used to develop (examples are taken from the JEP): +This module offers a Publish-Subscribe Service (<A HREF="http://www.xmpp.org/extensions/xep-0060.html">XEP-0060</A>). +Publish-Subscribe can be used to develop (examples are taken from the XEP): <BLOCKQUOTE CLASS="quote"> <UL CLASS="itemize"><LI CLASS="li-itemize"> news feeds and content syndacation, @@ -2446,7 +2450,7 @@ Options: <DL CLASS="description" COMPACT=compact><DT CLASS="dt-description"> <B><TT>hosts</TT></B><DD CLASS="dd-description"> This option defines the hostnames of the - service (see section <A HREF="#sec:modhostsoption">5.2.2</A>). If neither <TT>hosts</TT> nor + service (see section <A HREF="#modhostsoption">5.2.2</A>). If neither <TT>hosts</TT> nor the old <TT>host</TT> is present, the prefix `<TT>pubsub.</TT>' is added to all <TT>ejabberd</TT> hostnames. @@ -2468,11 +2472,11 @@ Example: </PRE> <!--TOC subsection <TT>mod_register</TT>--> -<H3 CLASS="subsection"><A NAME="htoc62">5.15</A> <A NAME="modregister"><TT>mod_register</TT></A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc62">5.15</A> <TT>mod_register</TT></H3><!--SEC END --> -<A NAME="sec:modregister"></A> +<A NAME="modregister"></A> -This module adds support for In-Band Registration (<A HREF="http://www.jabber.org/jeps/jep-0077.html">JEP-0077</A>). This protocol +This module adds support for In-Band Registration (<A HREF="http://www.xmpp.org/extensions/xep-0077.html">XEP-0077</A>). This protocol enables end users to use a Jabber client to: <UL CLASS="itemize"><LI CLASS="li-itemize"> Register a new account on the server. @@ -2487,7 +2491,7 @@ Options: restrictions by default). <DT CLASS="dt-description"><B><TT>iqdisc</TT></B><DD CLASS="dd-description"> This specifies the processing discipline for In-Band Registration (<TT>jabber:iq:register</TT>) IQ queries -(see section <A HREF="#sec:modiqdiscoption">5.2.1</A>). +(see section <A HREF="#modiqdiscoption">5.2.1</A>). </DL> Examples: <UL CLASS="itemize"><LI CLASS="li-itemize"> @@ -2524,9 +2528,9 @@ Next example prohibits the registration of too short account names: </PRE></UL> <!--TOC subsection <TT>mod_roster</TT>--> -<H3 CLASS="subsection"><A NAME="htoc63">5.16</A> <A NAME="modroster"><TT>mod_roster</TT></A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc63">5.16</A> <TT>mod_roster</TT></H3><!--SEC END --> -<A NAME="sec:modroster"></A> +<A NAME="modroster"></A> This module implements roster management as defined in <A HREF="http://www.xmpp.org/specs/rfc3921.html#roster">RFC 3921: XMPP IM</A>.<BR> <BR> @@ -2534,13 +2538,13 @@ Options: <DL CLASS="description" COMPACT=compact><DT CLASS="dt-description"> <B><TT>iqdisc</TT></B><DD CLASS="dd-description"> This specifies the processing discipline for Roster Management (<TT>jabber:iq:roster</TT>) IQ queries -(see section <A HREF="#sec:modiqdiscoption">5.2.1</A>). +(see section <A HREF="#modiqdiscoption">5.2.1</A>). </DL> <!--TOC subsection <TT>mod_service_log</TT>--> -<H3 CLASS="subsection"><A NAME="htoc64">5.17</A> <A NAME="modservicelog"><TT>mod_service_log</TT></A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc64">5.17</A> <TT>mod_service_log</TT></H3><!--SEC END --> -<A NAME="sec:modservicelog"></A> +<A NAME="modservicelog"></A> This module adds support for logging end user packets via a Jabber message auditing service such as @@ -2578,9 +2582,9 @@ To log all end user packets to the Bandersnatch service running on </PRE></UL> <!--TOC subsection <TT>mod_shared_roster</TT>--> -<H3 CLASS="subsection"><A NAME="htoc65">5.18</A> <A NAME="modsharedroster"><TT>mod_shared_roster</TT></A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc65">5.18</A> <TT>mod_shared_roster</TT></H3><!--SEC END --> -<A NAME="sec:modsharedroster"></A> +<A NAME="modsharedroster"></A> This module enables you to create shared roster groups. This means that you can create groups of people that can see members from (other) groups in their @@ -2705,11 +2709,11 @@ Take the case of a computer club that wants all its members seeing each </UL> <!--TOC subsection <TT>mod_stats</TT>--> -<H3 CLASS="subsection"><A NAME="htoc66">5.19</A> <A NAME="modstats"><TT>mod_stats</TT></A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc66">5.19</A> <TT>mod_stats</TT></H3><!--SEC END --> -<A NAME="sec:modstats"></A> +<A NAME="modstats"></A> -This module adds support for Statistics Gathering (<A HREF="http://www.jabber.org/jeps/jep-0039.html">JEP-0039</A>). This protocol +This module adds support for Statistics Gathering (<A HREF="http://www.xmpp.org/extensions/xep-0039.html">XEP-0039</A>). This protocol allows you to retrieve next statistics from your <TT>ejabberd</TT> deployment: <UL CLASS="itemize"><LI CLASS="li-itemize"> Total number of registered users on the current virtual host (users/total). @@ -2721,11 +2725,11 @@ Options: <DL CLASS="description" COMPACT=compact><DT CLASS="dt-description"> <B><TT>iqdisc</TT></B><DD CLASS="dd-description"> This specifies the processing discipline for Statistics Gathering (<TT>http://jabber.org/protocol/stats</TT>) IQ queries -(see section <A HREF="#sec:modiqdiscoption">5.2.1</A>). +(see section <A HREF="#modiqdiscoption">5.2.1</A>). </DL> As there are only a small amount of clients (for example <A HREF="http://tkabber.jabber.ru/">Tkabber</A>) and software libraries with -support for this JEP, a few examples are given of the XML you need to send +support for this XEP, a few examples are given of the XML you need to send in order to get the statistics. Here they are: <UL CLASS="itemize"><LI CLASS="li-itemize"> You can request the number of online users on the current virtual host @@ -2747,27 +2751,27 @@ You can request the number of online users on the current virtual host </PRE></UL> <!--TOC subsection <TT>mod_time</TT>--> -<H3 CLASS="subsection"><A NAME="htoc67">5.20</A> <A NAME="modtime"><TT>mod_time</TT></A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc67">5.20</A> <TT>mod_time</TT></H3><!--SEC END --> -<A NAME="sec:modtime"></A> +<A NAME="modtime"></A> -This module features support for Entity Time (<A HREF="http://www.jabber.org/jeps/jep-0090.html">JEP-0090</A>). By using this JEP, +This module features support for Entity Time (<A HREF="http://www.xmpp.org/extensions/xep-0090.html">XEP-0090</A>). By using this XEP, you are able to discover the time at another entity's location.<BR> <BR> Options: <DL CLASS="description" COMPACT=compact><DT CLASS="dt-description"> <B><TT>iqdisc</TT></B><DD CLASS="dd-description"> This specifies the processing discipline for Entity Time (<TT>jabber:iq:time</TT>) IQ queries -(see section <A HREF="#sec:modiqdiscoption">5.2.1</A>). +(see section <A HREF="#modiqdiscoption">5.2.1</A>). </DL> <!--TOC subsection <TT>mod_vcard</TT>--> -<H3 CLASS="subsection"><A NAME="htoc68">5.21</A> <A NAME="modvcard"><TT>mod_vcard</TT></A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc68">5.21</A> <TT>mod_vcard</TT></H3><!--SEC END --> -<A NAME="sec:modvcard"></A> +<A NAME="modvcard"></A> This module allows end users to store and retrieve their vCard, and to retrieve -other users vCards, as defined in vcard-temp (<A HREF="http://www.jabber.org/jeps/jep-0054.html">JEP-0054</A>). The module also +other users vCards, as defined in vcard-temp (<A HREF="http://www.xmpp.org/extensions/xep-0054.html">XEP-0054</A>). The module also implements an uncomplicated Jabber User Directory based on the vCards of these users. Moreover, it enables the server to send its vCard when queried.<BR> <BR> @@ -2775,13 +2779,13 @@ Options: <DL CLASS="description" COMPACT=compact><DT CLASS="dt-description"> <B><TT>hosts</TT></B><DD CLASS="dd-description"> This option defines the hostnames of the - service (see section <A HREF="#sec:modhostsoption">5.2.2</A>). If neither <TT>hosts</TT> nor + service (see section <A HREF="#modhostsoption">5.2.2</A>). If neither <TT>hosts</TT> nor the old <TT>host</TT> is present, the prefix `<TT>vjud.</TT>' is added to all <TT>ejabberd</TT> hostnames. <DT CLASS="dt-description"><B><TT>iqdisc</TT></B><DD CLASS="dd-description"> This specifies the processing discipline for <TT>vcard-temp</TT> IQ queries -(see section <A HREF="#sec:modiqdiscoption">5.2.1</A>). +(see section <A HREF="#modiqdiscoption">5.2.1</A>). <DT CLASS="dt-description"><B><TT>search</TT></B><DD CLASS="dd-description">This option specifies whether the search functionality is enabled (value: <TT>true</TT>) or disabled (value: <TT>false</TT>). If disabled, the option <TT>hosts</TT> will be ignored and the @@ -2827,31 +2831,31 @@ In this first situation, search results are limited to twenty items, </PRE></UL> <!--TOC subsection <TT>mod_vcard_ldap</TT>--> -<H3 CLASS="subsection"><A NAME="htoc69">5.22</A> <A NAME="modvcardldap"><TT>mod_vcard_ldap</TT></A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc69">5.22</A> <TT>mod_vcard_ldap</TT></H3><!--SEC END --> -<A NAME="sec:modvcardldap"></A> +<A NAME="modvcardldap"></A> <TT>ejabberd</TT> can map LDAP attributes to vCard fields. This behaviour is implemented in the <TT>mod_vcard_ldap</TT> module. This module does not depend on the -authentication method (see <A HREF="#sec:ldapauth">4.5.2</A>). The <TT>mod_vcard_ldap</TT> module has +authentication method (see <A HREF="#ldapauth">4.5.2</A>). The <TT>mod_vcard_ldap</TT> module has its own optional parameters. The first group of parameters has the same meaning as the top-level LDAP parameters to set the authentication method: <TT>ldap_servers</TT>, <TT>ldap_port</TT>, <TT>ldap_rootdn</TT>, <TT>ldap_password</TT>, <TT>ldap_base</TT>, <TT>ldap_uids</TT>, and -<TT>ldap_filter</TT>. See section <A HREF="#sec:ldapauth">4.5.2</A> for detailed information +<TT>ldap_filter</TT>. See section <A HREF="#ldapauth">4.5.2</A> for detailed information about these options. If one of these options is not set, <TT>ejabberd</TT> will look for the top-level option with the same name. The second group of parameters consists of the following <TT>mod_vcard_ldap</TT>-specific options: <DL CLASS="description" COMPACT=compact><DT CLASS="dt-description"> <B><TT>hosts</TT></B><DD CLASS="dd-description"> This option defines the hostnames of the - service (see section <A HREF="#sec:modhostsoption">5.2.2</A>). If neither <TT>hosts</TT> nor + service (see section <A HREF="#modhostsoption">5.2.2</A>). If neither <TT>hosts</TT> nor the old <TT>host</TT> is present, the prefix `<TT>vjud.</TT>' is added to all <TT>ejabberd</TT> hostnames. <DT CLASS="dt-description"><B><TT>iqdisc</TT></B><DD CLASS="dd-description"> This specifies the processing discipline for <TT>vcard-temp</TT> IQ queries -(see section <A HREF="#sec:modiqdiscoption">5.2.1</A>). +(see section <A HREF="#modiqdiscoption">5.2.1</A>). <DT CLASS="dt-description"><B><TT>search</TT></B><DD CLASS="dd-description">This option specifies whether the search functionality is enabled (value: <TT>true</TT>) or disabled (value: <TT>false</TT>). If disabled, the option <TT>hosts</TT> will be ignored and the @@ -3022,24 +3026,24 @@ searching his info in LDAP.<BR> </PRE></UL> <!--TOC subsection <TT>mod_version</TT>--> -<H3 CLASS="subsection"><A NAME="htoc70">5.23</A> <A NAME="modversion"><TT>mod_version</TT></A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc70">5.23</A> <TT>mod_version</TT></H3><!--SEC END --> -<A NAME="sec:modversion"></A> +<A NAME="modversion"></A> -This module implements Software Version (<A HREF="http://www.jabber.org/jeps/jep-0092.html">JEP-0092</A>). Consequently, it +This module implements Software Version (<A HREF="http://www.xmpp.org/extensions/xep-0092.html">XEP-0092</A>). Consequently, it answers <TT>ejabberd</TT>'s version when queried.<BR> <BR> Options: <DL CLASS="description" COMPACT=compact><DT CLASS="dt-description"> <B><TT>iqdisc</TT></B><DD CLASS="dd-description"> This specifies the processing discipline for Software Version (<TT>jabber:iq:version</TT>) IQ queries -(see section <A HREF="#sec:modiqdiscoption">5.2.1</A>). +(see section <A HREF="#modiqdiscoption">5.2.1</A>). </DL> <!--TOC section Creating an Initial Administrator--> -<H2 CLASS="section"><A NAME="htoc71">6</A> <A NAME="initialadmin">Creating an Initial Administrator</A></H2><!--SEC END --> +<H2 CLASS="section"><A NAME="htoc71">6</A> Creating an Initial Administrator</H2><!--SEC END --> -<A NAME="sec:initialadmin"></A> +<A NAME="initialadmin"></A> Before the web interface can be entered to perform administration tasks, an account with administrator rights is needed on your <TT>ejabberd</TT> deployment.<BR> <BR> @@ -3049,10 +3053,10 @@ Register an account on your <TT>ejabberd</TT> deployment. An account can be created in two ways: <OL CLASS="enumerate" type=a><LI CLASS="li-enumerate"> Using the tool <TT>ejabberdctl</TT> (see - section <A HREF="#sec:ejabberdctl">7.2</A>): + section <A HREF="#ejabberdctl">7.2</A>): <PRE CLASS="verbatim"> % ejabberdctl node@host register admin example.org password -</PRE><LI CLASS="li-enumerate">Using In-Band Registration (see section <A HREF="#sec:modregister">5.15</A>): you can +</PRE><LI CLASS="li-enumerate">Using In-Band Registration (see section <A HREF="#modregister">5.15</A>): you can use a Jabber client to register an account. </OL> <LI CLASS="li-enumerate">Edit the configuration file to promote the account created in the previous @@ -3069,18 +3073,18 @@ Register an account on your <TT>ejabberd</TT> deployment. An account can be </OL> <!--TOC section Online Configuration and Monitoring--> -<H2 CLASS="section"><A NAME="htoc72">7</A> <A NAME="onlineconfig">Online Configuration and Monitoring</A></H2><!--SEC END --> +<H2 CLASS="section"><A NAME="htoc72">7</A> Online Configuration and Monitoring</H2><!--SEC END --> -<A NAME="sec:onlineconfig"></A> +<A NAME="onlineconfig"></A> <!--TOC subsection Web Interface--> -<H3 CLASS="subsection"><A NAME="htoc73">7.1</A> <A NAME="webinterface">Web Interface</A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc73">7.1</A> Web Interface</H3><!--SEC END --> -<A NAME="sec:webinterface"></A> +<A NAME="webinterface"></A> To perform online configuration of <TT>ejabberd</TT> you need to enable the <TT>ejabberd_http</TT> listener with the option <TT>web_admin</TT> (see -section <A HREF="#sec:listened">3.3</A>). Then you can open +section <A HREF="#listened">3.3</A>). Then you can open <CODE>http://server:port/admin/</CODE> in your favourite web browser. You will be asked to enter the username (the <EM>full</EM> Jabber ID) and password of an <TT>ejabberd</TT> user with administrator rights. After authentication @@ -3148,9 +3152,9 @@ You can serve the web interface on the same port as the </PRE></UL> <!--TOC subsection <TT>ejabberdctl</TT>--> -<H3 CLASS="subsection"><A NAME="htoc74">7.2</A> <A NAME="ejabberdctl"><TT>ejabberdctl</TT></A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc74">7.2</A> <TT>ejabberdctl</TT></H3><!--SEC END --> -<A NAME="sec:ejabberdctl"></A> +<A NAME="ejabberdctl"></A> It is possible to do some administration operations using the command line tool <TT>ejabberdctl</TT>. You can list all available options by @@ -3194,9 +3198,9 @@ Additional information: </DL> <!--TOC section Firewall Settings--> -<H2 CLASS="section"><A NAME="htoc75">8</A> <A NAME="firewall">Firewall Settings</A></H2><!--SEC END --> +<H2 CLASS="section"><A NAME="htoc75">8</A> Firewall Settings</H2><!--SEC END --> -<A NAME="sec:firewall"></A> +<A NAME="firewall"></A> You need to take the following TCP ports in mind when configuring your firewall: <BLOCKQUOTE CLASS="table"><DIV CLASS="center"><DIV CLASS="center"><HR WIDTH="80%" SIZE=2></DIV> @@ -3214,18 +3218,18 @@ You need to take the following TCP ports in mind when configuring your firewall: <TD ALIGN=left NOWRAP>s2s connections.</TD> </TR> <TR><TD ALIGN=left NOWRAP>4369</TD> -<TD ALIGN=left NOWRAP>Only for clustering (see <A HREF="#sec:clustering">10</A>).</TD> +<TD ALIGN=left NOWRAP>Only for clustering (see <A HREF="#clustering">10</A>).</TD> </TR> <TR><TD ALIGN=left NOWRAP>port range</TD> -<TD ALIGN=left NOWRAP>Only for clustring (see <A HREF="#sec:clustering">10</A>). This range - is configurable (see <A HREF="#sec:start">2.4</A>).</TD> +<TD ALIGN=left NOWRAP>Only for clustring (see <A HREF="#clustering">10</A>). This range + is configurable (see <A HREF="#start">2.4</A>).</TD> </TR></TABLE> <DIV CLASS="center"><HR WIDTH="80%" SIZE=2></DIV></DIV></BLOCKQUOTE> <!--TOC section SRV Records--> -<H2 CLASS="section"><A NAME="htoc76">9</A> <A NAME="srv">SRV Records</A></H2><!--SEC END --> +<H2 CLASS="section"><A NAME="htoc76">9</A> SRV Records</H2><!--SEC END --> -<A NAME="sec:srv"></A> +<A NAME="srv"></A> <UL CLASS="itemize"><LI CLASS="li-itemize"> General information: @@ -3235,15 +3239,15 @@ General information: </UL> <!--TOC section Clustering--> -<H2 CLASS="section"><A NAME="htoc77">10</A> <A NAME="clustering">Clustering</A></H2><!--SEC END --> +<H2 CLASS="section"><A NAME="htoc77">10</A> Clustering</H2><!--SEC END --> -<A NAME="sec:clustering"></A> +<A NAME="clustering"></A> <!--TOC subsection How it Works--> -<H3 CLASS="subsection"><A NAME="htoc78">10.1</A> <A NAME="howitworks">How it Works</A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc78">10.1</A> How it Works</H3><!--SEC END --> -<A NAME="sec:howitworks"></A> +<A NAME="howitworks"></A> A Jabber domain is served by one or more <TT>ejabberd</TT> nodes. These nodes can be run on different machines that are connected via a network. They all @@ -3262,9 +3266,9 @@ router, </UL> <!--TOC subsubsection Router--> -<H4 CLASS="subsubsection"><A NAME="htoc79">10.1.1</A> <A NAME="router">Router</A></H4><!--SEC END --> +<H4 CLASS="subsubsection"><A NAME="htoc79">10.1.1</A> Router</H4><!--SEC END --> -<A NAME="sec:router"></A> +<A NAME="router"></A> This module is the main router of Jabber packets on each node. It routes them based on their destination's domains. It uses a global @@ -3274,9 +3278,9 @@ appropriate process. If not, it is sent to the s2s manager.<BR> <BR> <!--TOC subsubsection Local Router--> -<H4 CLASS="subsubsection"><A NAME="htoc80">10.1.2</A> <A NAME="localrouter">Local Router</A></H4><!--SEC END --> +<H4 CLASS="subsubsection"><A NAME="htoc80">10.1.2</A> Local Router</H4><!--SEC END --> -<A NAME="sec:localrouter"></A> +<A NAME="localrouter"></A> This module routes packets which have a destination domain equal to one of this server's host names. If the destination JID has a non-empty user @@ -3285,9 +3289,9 @@ on its content.<BR> <BR> <!--TOC subsubsection Session Manager--> -<H4 CLASS="subsubsection"><A NAME="htoc81">10.1.3</A> <A NAME="sessionmanager">Session Manager</A></H4><!--SEC END --> +<H4 CLASS="subsubsection"><A NAME="htoc81">10.1.3</A> Session Manager</H4><!--SEC END --> -<A NAME="sec:sessionmanager"></A> +<A NAME="sessionmanager"></A> This module routes packets to local users. It looks up to which user resource a packet must be sent via a presence table. Then the packet is @@ -3296,9 +3300,9 @@ storage, or bounced back.<BR> <BR> <!--TOC subsubsection s2s Manager--> -<H4 CLASS="subsubsection"><A NAME="htoc82">10.1.4</A> <A NAME="s2smanager">s2s Manager</A></H4><!--SEC END --> +<H4 CLASS="subsubsection"><A NAME="htoc82">10.1.4</A> s2s Manager</H4><!--SEC END --> -<A NAME="sec:s2smanager"></A> +<A NAME="s2smanager"></A> This module routes packets to other Jabber servers. First, it checks if an opened s2s connection from the domain of the packet's @@ -3308,9 +3312,9 @@ serving this connection, otherwise a new connection is opened.<BR> <BR> <!--TOC subsection Clustering Setup--> -<H3 CLASS="subsection"><A NAME="htoc83">10.2</A> <A NAME="cluster">Clustering Setup</A></H3><!--SEC END --> +<H3 CLASS="subsection"><A NAME="htoc83">10.2</A> Clustering Setup</H3><!--SEC END --> -<A NAME="sec:cluster"></A> +<A NAME="cluster"></A> Suppose you already configured <TT>ejabberd</TT> on one machine named (<TT>first</TT>), and you need to setup another one to make an <TT>ejabberd</TT> cluster. Then do @@ -3381,9 +3385,9 @@ domain.<BR> <!--TOC section Internationalization and Localization--> -<H2 CLASS="section"><A NAME="htoc84">A</A> <A NAME="i18nl10n">Internationalization and Localization</A></H2><!--SEC END --> +<H2 CLASS="section"><A NAME="htoc84">A</A> Internationalization and Localization</H2><!--SEC END --> -<A NAME="sec:i18nl10n"></A> +<A NAME="i18nl10n"></A> All built-in modules support the <TT>xml:lang</TT> attribute inside IQ queries. Figure <A HREF="#fig:discorus">2</A>, for example, shows the reply to the following query: @@ -3424,9 +3428,9 @@ figure <A HREF="#fig:webadmmainru">3</A> with figure <A HREF="#fig:web <DIV CLASS="center"><HR WIDTH="80%" SIZE=2></DIV></DIV></BLOCKQUOTE> <!--TOC section Release Notes--> -<H2 CLASS="section"><A NAME="htoc85">B</A> <A NAME="releasenotes">Release Notes</A></H2><!--SEC END --> +<H2 CLASS="section"><A NAME="htoc85">B</A> Release Notes</H2><!--SEC END --> -<A NAME="sec:releasenotes"></A> +<A NAME="releasenotes"></A> <!--TOC subsection ejabberd 0.9--> @@ -4194,9 +4198,9 @@ END </PRE> <!--TOC section Acknowledgements--> -<H2 CLASS="section"><A NAME="htoc93">C</A> <A NAME="acknowledgements">Acknowledgements</A></H2><!--SEC END --> +<H2 CLASS="section"><A NAME="htoc93">C</A> Acknowledgements</H2><!--SEC END --> -<A NAME="sec:acknowledgements"></A> +<A NAME="acknowledgements"></A> Thanks to all people who contributed to this guide: <UL CLASS="itemize"><LI CLASS="li-itemize"> Alexey Shchepin (<A HREF="xmpp:aleksey@jabber.ru"><TT>xmpp:aleksey@jabber.ru</TT></A>) @@ -4211,9 +4215,9 @@ Alexey Shchepin (<A HREF="xmpp:aleksey@jabber.ru"><TT>xmpp:aleksey@jabber.ru</TT </UL> <!--TOC section Copyright Information--> -<H2 CLASS="section"><A NAME="htoc94">D</A> <A NAME="copyright">Copyright Information</A></H2><!--SEC END --> +<H2 CLASS="section"><A NAME="htoc94">D</A> Copyright Information</H2><!--SEC END --> -<A NAME="sec:copyright"></A> +<A NAME="copyright"></A> Ejabberd Installation and Operation Guide.<BR> Copyright © January 23, 2003 — Alexey Shchepin<BR> <BR> diff --git a/doc/guide.tex b/doc/guide.tex index d28b9b1a..87900517 100644 --- a/doc/guide.tex +++ b/doc/guide.tex @@ -76,10 +76,10 @@ %% Common options \newcommand{\iqdiscitem}[1]{\titem{iqdisc} \ind{options!iqdisc}This specifies the processing discipline for #1 IQ queries -(see section~\ref{sec:modiqdiscoption}).} +(see section~\ref{modiqdiscoption}).} \newcommand{\hostitem}[1]{ \titem{hosts} \ind{options!hosts} This option defines the hostnames of the - service (see section~\ref{sec:modhostsoption}). If neither \texttt{hosts} nor + service (see section~\ref{modhostsoption}). If neither \texttt{hosts} nor the old \texttt{host} is present, the prefix `\jid{#1.}' is added to all \ejabberd{} hostnames. } @@ -112,8 +112,8 @@ the processing discipline for #1 IQ queries \gdef\ahrefurl#1{\href{#1}{\texttt{#1}}} \gdef\footahref#1#2{#2\footnote{\href{#1}{\texttt{#1}}}} \end{latexonly} -\newcommand{\tjepref}[2]{\footahref{http://www.jabber.org/jeps/jep-#1.html}{#2}} -\newcommand{\jepref}[1]{\tjepref{#1}{JEP-#1}} +\newcommand{\txepref}[2]{\footahref{http://www.xmpp.org/extensions/xep-#1.html}{#2}} +\newcommand{\xepref}[1]{\txepref{#1}{XEP-#1}} \begin{document} @@ -144,16 +144,16 @@ the processing discipline for #1 IQ queries % Input introduction.tex \input{introduction} -\section{\aname{installsource}{Installation from Source}} -\label{sec:installsource} +\section{Installation from Source} +\label{installsource} \ind{installation} -\subsection{\aname{installreq}{Installation Requirements}} -\label{sec:installreq} +\subsection{Installation Requirements} +\label{installreq} \ind{installation!requirements} -\subsubsection{\aname{installrequnix}{`Unix-like' operating systems}} -\label{sec:installrequnix} +\subsubsection{`Unix-like' operating systems} +\label{installrequnix} To compile \ejabberd{} on a `Unix-like' operating system, you need: \begin{itemize} @@ -166,8 +166,8 @@ To compile \ejabberd{} on a `Unix-like' operating system, you need: \item GNU Iconv 1.8 or higher (optional, not needed on systems with GNU libc) \end{itemize} -\subsubsection{\aname{installreqwin}{Windows}} -\label{sec:installreqwin} +\subsubsection{Windows} +\label{installreqwin} To compile \ejabberd{} on a Windows flavour, you need: \begin{itemize} @@ -182,8 +182,8 @@ To compile \ejabberd{} on a Windows flavour, you need: \item \footahref{http://www.zlib.net/}{Zlib 1.2.3 or higher} \end{itemize} -\subsection{\aname{obtaining}{Obtaining \ejabberd{}}} -\label{sec:obtaining} +\subsection{Obtaining \ejabberd{}} +\label{obtaining} \ind{download} Released versions of \ejabberd{} can be obtained from \\ @@ -195,12 +195,12 @@ The latest development version can be retrieved from the Subversion repository\@ svn co http://svn.process-one.net/ejabberd/trunk ejabberd \end{verbatim} -\subsection{\aname{compile}{Compilation}} -\label{sec:compile} +\subsection{Compilation} +\label{compile} \ind{installation!compilation} -\subsubsection{\aname{compileunix}{`Unix-like' operating systems}} -\label{sec:compileunix} +\subsubsection{`Unix-like' operating systems} +\label{compileunix} Compile \ejabberd{} on a `Unix-like' operating system by executing: @@ -220,10 +220,10 @@ These commands will: Note: if you want to use an external database, you need to execute the configure script with the option(s) \term{--enable-odbc} or \term{--enable-odbc ---enable-mssql}. See section~\ref{sec:database} for more information. +--enable-mssql}. See section~\ref{database} for more information. -\subsubsection{\aname{compilewin}{Windows}} -\label{sec:compilewin} +\subsubsection{Windows} +\label{compilewin} \begin{itemize} \item Install Erlang emulator (for example, into \verb|C:\Program Files\erl5.3|). @@ -258,8 +258,8 @@ werl -s ejabberd -name ejabberd %TODO: how to compile database support on windows? -\subsection{\aname{start}{Starting}} -\label{sec:start} +\subsection{Starting} +\label{start} \ind{starting} %TODO: update when the ejabberdctl script is made more userfriendly @@ -310,8 +310,8 @@ To reduce memory usage, you may set the environment variable But in this case \ejabberd{} can start to work slower. -\section{\aname{basicconfig}{Basic Configuration}} -\label{sec:basicconfig} +\section{Basic Configuration} +\label{basicconfig} \ind{configuration file} The configuration file will be loaded the first time you start \ejabberd{}. The @@ -335,8 +335,8 @@ the configuration file: With these lines the old global options, local options and ACLs will be removed before new ones are added. -\subsection{\aname{hostnames}{Host Names}} -\label{sec:hostnames} +\subsection{Host Names} +\label{hostnames} \ind{options!hosts}\ind{host names} The option \option{hosts} defines a list containing one or more domains that @@ -359,8 +359,8 @@ Examples: \end{verbatim} \end{itemize} -\subsection{\aname{virtualhost}{Virtual Hosting}} -\label{sec:virtualhost} +\subsection{Virtual Hosting} +\label{virtualhost} \ind{virtual hosting}\ind{virtual hosts}\ind{virtual domains} Options can be defined separately for every virtual host using the @@ -401,8 +401,8 @@ Examples: \end{verbatim} \end{itemize} -\subsection{\aname{listened}{Listened Sockets}} -\label{sec:listened} +\subsection{Listened Sockets} +\label{listened} \ind{options!listen} The option \option{listen} defines for which addresses and ports \ejabberd{} @@ -414,7 +414,7 @@ tuple with the following elements: \item Options to this module. \end{itemize} -\ind{modules!ejabberd\_c2s}\ind{modules!ejabberd\_s2s\_in}\ind{modules!ejabberd\_service}\ind{modules!ejabberd\_http}\ind{protocols!JEP-0114: Jabber Component Protocol} +\ind{modules!ejabberd\_c2s}\ind{modules!ejabberd\_s2s\_in}\ind{modules!ejabberd\_service}\ind{modules!ejabberd\_http}\ind{protocols!XEP-0114: Jabber Component Protocol} Currently next modules are implemented: \begin{table}[H] \centering @@ -441,7 +441,7 @@ Currently next modules are implemented: \end{tabular} \end{table} -(*) The mechanism for \footahref{http://ejabberd.jabber.ru/tutorials-transports}{external components} is defined in Jabber Component Protocol (\jepref{0114}). +(*) The mechanism for \footahref{http://ejabberd.jabber.ru/tutorials-transports}{external components} is defined in Jabber Component Protocol (\xepref{0114}). The following options are available: \begin{description} @@ -451,8 +451,8 @@ The following options are available: \titem{\{hosts, [Hostnames], [HostOptions]\}} \ind{options!hosts}This option defines one or more hostnames of connected services and enables you to specify additional options including \poption{\{password, Secret\}}. - \titem{http\_poll} \ind{options!http\_poll}\ind{protocols!JEP-0025: HTTP Polling}\ind{JWChat}\ind{web-based Jabber client} - This option enables HTTP Polling (\jepref{0025}) support. HTTP Polling + \titem{http\_poll} \ind{options!http\_poll}\ind{protocols!XEP-0025: HTTP Polling}\ind{JWChat}\ind{web-based Jabber client} + This option enables HTTP Polling (\xepref{0025}) support. HTTP Polling enables access via HTTP requests to \ejabberd{} from behind firewalls which do not allow outgoing sockets on port 5222. @@ -472,7 +472,7 @@ The following options are available: readed data. For example \verb|{max_stanza_size, 65536}|. The default value is \term{infinity}. \titem{\{shaper, <access rule>\}} \ind{options!shaper}This option defines a - shaper for the port (see section~\ref{sec:shapers}). The default value + shaper for the port (see section~\ref{shapers}). The default value is \term{none}. \titem{ssl} \ind{options!ssl}\ind{SSL}This option specifies that traffic on the port will be encrypted using SSL. You should also set the @@ -488,8 +488,8 @@ The following options are available: \titem{tls} \ind{options!tls}\ind{TLS}This option specifies that traffic on the port will be encrypted using SSL immediately after connecting. You should also set the \option{certfile} option. - \titem{zlib} \ind{options!zlib}\ind{protocols!JEP-0138: Stream Compression}\ind{Zlib}This - option specifies that Zlib stream compression (as defined in \jepref{0138}) + \titem{zlib} \ind{options!zlib}\ind{protocols!XEP-0138: Stream Compression}\ind{Zlib}This + option specifies that Zlib stream compression (as defined in \xepref{0138}) is available on connections to the port. Client connections cannot use stream compression and stream encryption simultaneously. Hence, if you specify both \option{tls} (or \option{ssl}) and \option{zlib}, the latter @@ -520,7 +520,7 @@ For instance, the following configuration defines that: traffic enabled. \item Port 5280 is serving the web interface and the HTTP Polling service. Note that it is also possible to serve them on different ports. The second - example in section~\ref{sec:webinterface} shows how exactly this can be done. + example in section~\ref{webinterface} shows how exactly this can be done. \item All users except for the administrators have a traffic of limit 1,000\,Bytes/second \item \ind{transports!AIM}The @@ -608,8 +608,8 @@ services you have to make the transports log and do \ind{XDB}XDB by themselves: </xdb> \end{verbatim} -\subsection{\aname{auth}{Authentication}} -\label{sec:auth} +\subsection{Authentication} +\label{auth} \ind{authentication}\ind{options!auth\_method} The option \option{auth\_method} defines the authentication method that is used @@ -620,17 +620,17 @@ for user authentication: The following authentication methods are supported by \ejabberd{}: \begin{itemize} -\item internal (default) --- See section~\ref{sec:internalauth}. +\item internal (default) --- See section~\ref{internalauth}. \item external --- There are \footahref{http://ejabberd.jabber.ru/extauth}{some example authentication scripts}. -\item ldap --- See section~\ref{sec:ldap}. -\item odbc --- See section~\ref{sec:mysql}, \ref{sec:pgsql}, - \ref{sec:mssql} and \ref{sec:odbc}. -\item anonymous --- See section~\ref{sec:saslanonymous}. +\item ldap --- See section~\ref{ldap}. +\item odbc --- See section~\ref{mysql}, \ref{pgsql}, + \ref{mssql} and \ref{odbc}. +\item anonymous --- See section~\ref{saslanonymous}. \end{itemize} -\subsubsection{\aname{internalauth}{Internal}} -\label{sec:internalauth} +\subsubsection{Internal} +\label{internalauth} \ind{internal authentication}\ind{Mnesia} \ejabberd{} uses its internal Mnesia database as the default authentication method. @@ -654,14 +654,14 @@ Examples: \end{verbatim} \end{itemize} -\subsubsection{\aname{saslanonymous}{SASL Anonymous and Anonymous Login}} -\label{sec:saslanonymous} +\subsubsection{SASL Anonymous and Anonymous Login} +\label{saslanonymous} \ind{sasl anonymous}\ind{anonymous login} %TODO: introduction; tell what people can do with this The anonymous authentication method can be configured with the following options. Remember that you can use the \term{host\_config} option to set virtual -host specific options (see section~\ref{sec:virtualhost}). Note that there also +host specific options (see section~\ref{virtualhost}). Note that there also is a detailed tutorial regarding \footahref{http://support.process-one.net/doc/display/MESSENGER/Anonymous+users+support}{SASL Anonymous and anonymous login configuration}. @@ -682,7 +682,7 @@ Anonymous and anonymous login configuration}. \end{itemize} Those options are defined for each virtual host with the \term{host\_config} -parameter (see section~\ref{sec:virtualhost}). +parameter (see section~\ref{virtualhost}). Examples: \begin{itemize} @@ -719,8 +719,8 @@ a virtual host: \end{verbatim} \end{itemize} -\subsection{\aname{accessrules}{Access Rules}} -\label{sec:accessrules} +\subsection{Access Rules} +\label{accessrules} \ind{options!acl}\ind{access rules}\ind{ACL}\ind{Access Control List} Access control in \ejabberd{} is performed via Access Control Lists (ACLs). The @@ -728,7 +728,6 @@ declarations of ACLs in the configuration file have the following syntax: \begin{verbatim} {acl, <aclname>, {<acltype>, ...}}. \end{verbatim} - \term{<acltype>} can be one of the following: \begin{description} \titem{all} Matches all JIDs. Example: @@ -821,8 +820,8 @@ The following access rules are pre-defined: \titem{none} Always returns the value `\term{deny}'. \end{description} -\subsection{\aname{shapers}{Shapers}} -\label{sec:shapers} +\subsection{Shapers} +\label{shapers} \ind{options!shaper}\ind{options!maxrate}\ind{shapers}\ind{maxrate}\ind{traffic speed} Shapers enable you to limit connection traffic. The syntax of @@ -853,7 +852,7 @@ Examples: \end{itemize} \subsection{Limiting Opened Sessions} -\label{sec:configmaxsessions} +\label{configmaxsessions} \ind{options!max\_user\_sessions} This option specifies the maximum number of sessions (authenticated @@ -871,7 +870,7 @@ hosts: {max_user_sessions, 10}. \end{verbatim} \item This option can be defined per virtual host (see -section~\ref{sec:virtualhost}). In next example the number of +section~\ref{virtualhost}). In next example the number of sessions per user on the first host is six, while there is no limit on the second host: \begin{verbatim} @@ -880,8 +879,8 @@ second host: \end{verbatim} \end{itemize} -\subsection{\aname{language}{Default Language}} -\label{sec:language} +\subsection{Default Language} +\label{language} \ind{options!language}\ind{language} The option \option{language} defines the default language of server strings that @@ -903,8 +902,8 @@ Examples: \end{itemize} -\section{\aname{database}{Database Configuration}} -\label{sec:database} +\section{Database Configuration} +\label{database} \ind{database} %TODO: this whole section is not yet 100% optimized @@ -927,14 +926,14 @@ The following databases are supported by \ejabberd{}: The following LDAP servers are tested with \ejabberd{}: \begin{itemize} \item \footahref{http://www.microsoft.com/activedirectory/}{Active Directory} - (see section~\ref{sec:ad}) + (see section~\ref{ad}) \item \footahref{http://www.openldap.org/}{OpenLDAP} \item Normally any LDAP compatible server should work; inform us about your success with a not-listed server so that we can list it here. \end{itemize} -\subsection{\aname{mysql}{MySQL}} -\label{sec:mysql} +\subsection{MySQL} +\label{mysql} \ind{MySQL}\ind{MySQL!schema} Although this section will describe \ejabberd{}'s configuration when you want to @@ -947,8 +946,8 @@ Moreover, the file mysql.sql in the directory src/odbc might be interesting for you. This file contains the ejabberd schema for MySQL. At the end of the file you can find information to update your database schema. -\subsubsection{\aname{compilemysql}{Driver Compilation}} -\label{sec:compilemysql} +\subsubsection{Driver Compilation} +\label{compilemysql} \ind{MySQL!Driver Compilation} You can skip this step if you installed \ejabberd{} using a binary installer or @@ -966,8 +965,8 @@ if the binary packages of \ejabberd{} you are using include support for MySQL. \end{verbatim} \end{enumerate} -\subsubsection{\aname{mysqlauth}{Authentication}} -\label{sec:mysqlauth} +\subsubsection{Authentication} +\label{mysqlauth} \ind{MySQL!authentication} The option value name may be misleading, as the \term{auth\_method} name is used @@ -993,20 +992,20 @@ parameter: {odbc_server, {mysql, "localhost", "test", "root", "password"}}. \end{verbatim} -\subsubsection{\aname{mysqlstorage}{Storage}} -\label{sec:mysqlstorage} +\subsubsection{Storage} +\label{mysqlstorage} \ind{MySQL!storage} MySQL also can be used to store information into from several \ejabberd{} -modules. See section~\ref{sec:modoverview} to see which modules have a version +modules. See section~\ref{modoverview} to see which modules have a version with the `\_odbc'. This suffix indicates that the module can be used with relational databases like MySQL. To enable storage to your database, just make sure that your database is running well (see previous sections), and replace the suffix-less or ldap module variant with the odbc module variant. Keep in mind that you cannot have several variants of the same module loaded! -\subsection{\aname{mssql}{Microsoft SQL Server}} -\label{sec:mssql} +\subsection{Microsoft SQL Server} +\label{mssql} \ind{Microsoft SQL Server}\ind{Microsoft SQL Server!schema} Although this section will describe \ejabberd{}'s configuration when you want to @@ -1020,8 +1019,8 @@ Moreover, the file mssql.sql in the directory src/odbc might be interesting for you. This file contains the ejabberd schema for Microsoft SQL Server. At the end of the file you can find information to update your database schema. -\subsubsection{\aname{compilemssql}{Driver Compilation}} -\label{sec:compilemssql} +\subsubsection{Driver Compilation} +\label{compilemssql} \ind{Microsoft SQL Server!Driver Compilation} You can skip this step if you installed \ejabberd{} using a binary installer or @@ -1034,21 +1033,21 @@ enabled. This can be done, by using next commands: ./configure --enable-odbc --enable-mssql && make install \end{verbatim} -\subsubsection{\aname{mssqlauth}{Authentication}} -\label{sec:mssqlauth} +\subsubsection{Authentication} +\label{mssqlauth} \ind{Microsoft SQL Server!authentication} %TODO: not sure if this section is right!!!!!! The configuration of Microsoft SQL Server is the same as the configuration of -ODBC compatible serers (see section~\ref{sec:odbcauth}). +ODBC compatible serers (see section~\ref{odbcauth}). -\subsubsection{\aname{mssqlstorage}{Storage}} -\label{sec:mssqlstorage} +\subsubsection{Storage} +\label{mssqlstorage} \ind{Microsoft SQL Server!storage} Microsoft SQL Server also can be used to store information into from several -\ejabberd{} modules. See section~\ref{sec:modoverview} to see which modules have +\ejabberd{} modules. See section~\ref{modoverview} to see which modules have a version with the `\_odbc'. This suffix indicates that the module can be used with relational databases like Microsoft SQL Server. To enable storage to your database, just make sure that your database is running well (see previous @@ -1056,8 +1055,8 @@ sections), and replace the suffix-less or ldap module variant with the odbc module variant. Keep in mind that you cannot have several variants of the same module loaded! -\subsection{\aname{pgsql}{PostgreSQL}} -\label{sec:pgsql} +\subsection{PostgreSQL} +\label{pgsql} \ind{PostgreSQL}\ind{PostgreSQL!schema} Although this section will describe \ejabberd{}'s configuration when you want to @@ -1070,8 +1069,8 @@ Also the file pg.sql in the directory src/odbc might be interesting for you. This file contains the ejabberd schema for PostgreSQL. At the end of the file you can find information to update your database schema. -\subsubsection{\aname{compilepgsql}{Driver Compilation}} -\label{sec:compilepgsql} +\subsubsection{Driver Compilation} +\label{compilepgsql} \ind{PostgreSQL!Driver Compilation} You can skip this step if you installed \ejabberd{} using a binary installer or @@ -1091,8 +1090,8 @@ PostgreSQL. \end{verbatim} \end{enumerate} -\subsubsection{\aname{pgsqlauth}{Authentication}} -\label{sec:pgsqlauth} +\subsubsection{Authentication} +\label{pgsqlauth} \ind{PostgreSQL!authentication} The option value name may be misleading, as the \term{auth\_method} name is used @@ -1118,20 +1117,20 @@ form as parameter: {odbc_server, {pgsql, "localhost", "database", "ejabberd", "password"}}. \end{verbatim} -\subsubsection{\aname{pgsqlstorage}{Storage}} -\label{sec:pgsqlstorage} +\subsubsection{Storage} +\label{pgsqlstorage} \ind{PostgreSQL!storage} PostgreSQL also can be used to store information into from several \ejabberd{} -modules. See section~\ref{sec:modoverview} to see which modules have a version +modules. See section~\ref{modoverview} to see which modules have a version with the `\_odbc'. This suffix indicates that the module can be used with relational databases like PostgreSQL. To enable storage to your database, just make sure that your database is running well (see previous sections), and replace the suffix-less or ldap module variant with the odbc module variant. Keep in mind that you cannot have several variants of the same module loaded! -\subsection{\aname{odbc}{ODBC Compatible}} -\label{sec:odbc} +\subsection{ODBC Compatible} +\label{odbc} \ind{databases!ODBC} Although this section will describe \ejabberd{}'s configuration when you want to @@ -1140,8 +1139,8 @@ of your database. Check the documentation of your database. The tutorial \footah contains information about \ejabberd{}'s configuration which is duplicate to this section. -\subsubsection{\aname{compileodbc}{Compilation}} -\label{sec:compileodbc} +\subsubsection{Compilation} +\label{compileodbc} You can skip this step if you installed \ejabberd{} using a binary installer or if the binary packages of \ejabberd{} you are using include support for @@ -1158,8 +1157,8 @@ ODBC. \end{verbatim} \end{enumerate} -\subsubsection{\aname{odbcauth}{Authentication}} -\label{sec:odbcauth} +\subsubsection{Authentication} +\label{odbcauth} \ind{ODBC!authentication} The first configuration step is to define the odbc \term{auth\_method}. For @@ -1178,12 +1177,12 @@ string as \term{odbc\_server} parameter. For example: {odbc_server, "DSN=database;UID=ejabberd;PWD=password"}. \end{verbatim} -\subsubsection{\aname{odbcstorage}{Storage}} -\label{sec:odbcstorage} +\subsubsection{Storage} +\label{odbcstorage} \ind{ODBC!storage} An ODBC compatible database also can be used to store information into from -several \ejabberd{} modules. See section~\ref{sec:modoverview} to see which +several \ejabberd{} modules. See section~\ref{modoverview} to see which modules have a version with the `\_odbc'. This suffix indicates that the module can be used with ODBC compatible relational databases. To enable storage to your database, just make sure that your database is running well (see previous @@ -1191,16 +1190,16 @@ sections), and replace the suffix-less or ldap module variant with the odbc module variant. Keep in mind that you cannot have several variants of the same module loaded! -\subsection{\aname{ldap}{LDAP}} -\label{sec:ldap} +\subsection{LDAP} +\label{ldap} \ind{databases!LDAP} \ejabberd{} has built-in LDAP support. You can authenticate users against LDAP server and use LDAP directory as vCard storage. Shared rosters are not supported yet. -\subsubsection{\aname{ldapconnection}{Connection}} -\label{sec:ldapconnection} +\subsubsection{Connection} +\label{ldapconnection} Parameters: \begin{description} @@ -1226,8 +1225,8 @@ Example: Note that current LDAP implementation does not support SSL secured communication and SASL authentication. -\subsubsection{\aname{ldapauth}{Authentication}} -\label{sec:ldapauth} +\subsubsection{Authentication} +\label{ldapauth} You can authenticate users against an LDAP directory. Available options are: @@ -1261,8 +1260,8 @@ You can authenticate users against an LDAP directory. Available options are: attribute will be substituted in LDAP filter automatically. \end{description} -\subsubsection{\aname{ldapexamples}{Examples}} -\label{sec:ldapexamples} +\subsubsection{Examples} +\label{ldapexamples} \paragraph{\aname{ldapcommonexample}{Common example}} @@ -1339,8 +1338,8 @@ Note that \modvcardldap{} module checks for the existence of the user before searching in his information in LDAP. -\paragraph{\aname{ad}{Active Directory}} -\label{sec:ad} +\paragraph{Active Directory} +\label{ad} \ind{databases!Active Directory} Active Directory is just an LDAP-server with predefined attributes. A sample @@ -1354,7 +1353,7 @@ configuration is showed below: {ldap_password, "*******"}. % Password to LDAP manager {ldap_uids, [{"sAMAccountName"}]}. {ldap_filter, "(memberOf=*)"}. - + {mod_vcard_ldap, [{ldap_vcard_map, [{"NICKNAME", "%u", []}, @@ -1393,8 +1392,8 @@ configuration is showed below: \end{verbatim} -\section{\aname{modules}{Modules Configuration}} -\label{sec:modules} +\section{Modules Configuration} +\label{modules} \ind{modules} The option \term{modules} defines the list of modules that will be loaded after @@ -1423,8 +1422,8 @@ Examples: \end{verbatim} \end{itemize} -\subsection{\aname{modoverview}{Overview}} -\label{sec:modoverview} +\subsection{Overview} +\label{modoverview} \ind{modules!overview}\ind{XMPP compliancy} The following table lists all modules available in the official \ejabberd{} @@ -1438,7 +1437,7 @@ You can see which database backend each module needs by looking at the suffix: \begin{itemize} \item `\_ldap', this means that the module needs an LDAP server as backend. \item `\_odbc', this means that the module needs a supported database - (see~\ref{sec:database}) as backend. + (see~\ref{database}) as backend. \item No suffix, this means that the modules uses Erlang's built-in database Mnesia as backend. \end{itemize} @@ -1463,54 +1462,54 @@ database for the following data: \centering \begin{tabular}{|l|l|l|l|} \hline Module & Feature & Dependencies & Needed for XMPP? \\ - \hline \hline \modadhoc{} & Ad-Hoc Commands (\jepref{0050}) & & No \\ + \hline \hline \modadhoc{} & Ad-Hoc Commands (\xepref{0050}) & & No \\ \hline \modannounce{} & Manage announcements & \modadhoc{} & No \\ \hline \modconfigure{} & Support for online & \modadhoc{} & No \\ & configuration of \ejabberd{} & & \\ - \hline \moddisco{} & Service Discovery (\jepref{0030}) & & No \\ + \hline \moddisco{} & Service Discovery (\xepref{0030}) & & No \\ \hline \modecho{} & Echoes Jabber packets & & No \\ \hline \modirc{} & IRC transport & & No \\ - \hline \modlast{} & Last Activity (\jepref{0012}) & & No \\ - \hline \modlastodbc{} & Last Activity (\jepref{0012}) & supported database (*) & No \\ - \hline \modmuc{} & Multi-User Chat (\jepref{0045}) & & No \\ + \hline \modlast{} & Last Activity (\xepref{0012}) & & No \\ + \hline \modlastodbc{} & Last Activity (\xepref{0012}) & supported database (*) & No \\ + \hline \modmuc{} & Multi-User Chat (\xepref{0045}) & & No \\ \hline \modmuclog{} & Multi-User Chat room logging & \modmuc{} & No \\ \hline \modoffline{} & Offline message storage & & No \\ \hline \modofflineodbc{} & Offline message storage & supported database (*) & No \\ \hline \modprivacy{} & Blocking Communication & & Yes \\ - \hline \modprivate{} & Private XML Storage (\jepref{0049}) & & No \\ - \hline \modprivateodbc{} & Private XML Storage (\jepref{0049}) & supported database (*) & No \\ - \hline \modproxy{} & SOCKS5 Bytestreams (\jepref{0065}) & & No\\ - \hline \modpubsub{} & Publish-Subscribe (\jepref{0060}) & & No \\ - \hline \modregister{} & In-Band Registration (\jepref{0077}) & & No \\ + \hline \modprivate{} & Private XML Storage (\xepref{0049}) & & No \\ + \hline \modprivateodbc{} & Private XML Storage (\xepref{0049}) & supported database (*) & No \\ + \hline \modproxy{} & SOCKS5 Bytestreams (\xepref{0065}) & & No\\ + \hline \modpubsub{} & Publish-Subscribe (\xepref{0060}) & & No \\ + \hline \modregister{} & In-Band Registration (\xepref{0077}) & & No \\ \hline \modroster{} & Roster management & & Yes (**) \\ \hline \modrosterodbc{} & Roster management & supported database (*) & Yes (**) \\ \hline \modservicelog{} & Copy user messages to logger service & & No \\ \hline \modsharedroster{} & Shared roster management & \modroster{} or & No \\ & & \modrosterodbc{} & \\ - \hline \modstats{} & Statistics Gathering (\jepref{0039}) & & No \\ - \hline \modtime{} & Entity Time (\jepref{0090}) & & No \\ - \hline \modvcard{} & vcard-temp (\jepref{0054}) & & No \\ - \hline \modvcardldap{} & vcard-temp (\jepref{0054}) & LDAP server & No \\ - \hline \modvcardodbc{} & vcard-temp (\jepref{0054}) & supported database (*) & No \\ - \hline \modversion{} & Software Version (\jepref{0092}) & & No\\ + \hline \modstats{} & Statistics Gathering (\xepref{0039}) & & No \\ + \hline \modtime{} & Entity Time (\xepref{0090}) & & No \\ + \hline \modvcard{} & vcard-temp (\xepref{0054}) & & No \\ + \hline \modvcardldap{} & vcard-temp (\xepref{0054}) & LDAP server & No \\ + \hline \modvcardodbc{} & vcard-temp (\xepref{0054}) & supported database (*) & No \\ + \hline \modversion{} & Software Version (\xepref{0092}) & & No\\ \hline \end{tabular} \end{table} \begin{itemize} -\item (*) For a list of supported databases, see section~\ref{sec:database}. +\item (*) For a list of supported databases, see section~\ref{database}. \item (**) This module or a similar one with another database backend is needed for XMPP compliancy. \end{itemize} -\subsection{\aname{modcommonoptions}{Common Options}} -\label{sec:modcommonoptions} +\subsection{Common Options} +\label{modcommonoptions} The following options are used by many modules. Therefore, they are described in this separate section. -\subsubsection{\option{\aname{modiqdiscoption}{iqdisc}}} -\label{sec:modiqdiscoption} +\subsubsection{\option{iqdisc}} +\label{modiqdiscoption} \ind{options!iqdisc} Many modules define handlers for processing IQ queries of different namespaces @@ -1543,8 +1542,8 @@ Example: ]}. \end{verbatim} -\subsubsection{\option{\aname{modhostsoption}{hosts}}} -\label{sec:modhostsoption} +\subsubsection{\option{hosts}} +\label{modhostsoption} \ind{options!hosts} A module acting as a service can have one or more hostnames. These hostnames @@ -1585,8 +1584,8 @@ Examples: \end{verbatim} \end{itemize} -\subsection{\aname{modannounce}{\modannounce{}}} -\label{sec:modannounce} +\subsection{\modannounce{}} +\label{modannounce} \ind{modules!\modannounce{}}\ind{MOTD}\ind{message of the day}\ind{announcements} This module enables configured users to broadcast announcements and to set @@ -1601,7 +1600,7 @@ hosts: to several resources, only the resource with the highest priority will receive the message. If the registered user is not connected, the message will be stored offline in assumption that \ind{modules!\modoffline{}}offline storage - (see section~\ref{sec:modoffline}) is enabled. + (see section~\ref{modoffline}) is enabled. \titem{example.org/announce/online (example.org/announce/all-hosts/online)}The message is sent to all connected users. If the user is online and connected to several resources, all resources will receive the message. @@ -1654,15 +1653,15 @@ Examples: \end{verbatim} \end{itemize} -\subsection{\aname{moddisco}{\moddisco{}}} -\label{sec:moddisco} -\ind{modules!\moddisco{}}\ind{protocols!JEP-0030: Service Discovery}\ind{protocols!JEP-0011: Jabber Browsing}\ind{protocols!JEP-0094: Agent Information} +\subsection{\moddisco{}} +\label{moddisco} +\ind{modules!\moddisco{}}\ind{protocols!XEP-0030: Service Discovery}\ind{protocols!XEP-0011: Jabber Browsing}\ind{protocols!XEP-0094: Agent Information} -This module adds support for Service Discovery (\jepref{0030}). With +This module adds support for Service Discovery (\xepref{0030}). With this module enabled, services on your server can be discovered by \Jabber{} clients. Note that \ejabberd{} has no modules with support -for the superseded Jabber Browsing (\jepref{0011}) and Agent Information -(\jepref{0094}). Accordingly, \Jabber{} clients need to have support for +for the superseded Jabber Browsing (\xepref{0011}) and Agent Information +(\xepref{0094}). Accordingly, \Jabber{} clients need to have support for the newer Service Discovery protocol if you want them be able to discover the services you offer. @@ -1708,8 +1707,8 @@ Examples: \end{itemize} -\subsection{\aname{modecho}{\modecho{}}} -\label{sec:modecho} +\subsection{\modecho{}} +\label{modecho} \ind{modules!\modecho{}}\ind{debugging} This module simply echoes any \Jabber{} @@ -1734,21 +1733,21 @@ Examples: ]}. \end{verbatim} \item If you still do not understand the inner workings of \modecho{}, - you can find a few more examples in section~\ref{sec:modhostsoption}. + you can find a few more examples in section~\ref{modhostsoption}. \end{itemize} -\subsection{\aname{modirc}{\modirc{}}} -\label{sec:modirc} +\subsection{\modirc{}} +\label{modirc} \ind{modules!\modirc{}}\ind{IRC} This module is an IRC transport that can be used to join channels on IRC servers. End user information: -\ind{protocols!groupchat 1.0}\ind{protocols!JEP-0045: Multi-User Chat} +\ind{protocols!groupchat 1.0}\ind{protocols!XEP-0045: Multi-User Chat} \begin{itemize} \item A \Jabber{} client with `groupchat 1.0' support or Multi-User - Chat support (\jepref{0045}) is necessary to join IRC channels. + Chat support (\xepref{0045}) is necessary to join IRC channels. \item An IRC channel can be joined in nearly the same way as joining a \Jabber{} Multi-User Chat room. The difference is that the room name will be `channel\%\jid{irc.example.org}' in case \jid{irc.example.org} is @@ -1807,11 +1806,11 @@ Examples: \end{verbatim} \end{itemize} -\subsection{\aname{modlast}{\modlast{}}} -\label{sec:modlast} -\ind{modules!\modlast{}}\ind{protocols!JEP-0012: Last Activity} +\subsection{\modlast{}} +\label{modlast} +\ind{modules!\modlast{}}\ind{protocols!XEP-0012: Last Activity} -This module adds support for Last Activity (\jepref{0012}). It can be used to +This module adds support for Last Activity (\xepref{0012}). It can be used to discover when a disconnected user last accessed the server, to know when a connected user was last active on the server, or to query the uptime of the \ejabberd{} server. @@ -1821,12 +1820,12 @@ Options: \iqdiscitem{Last activity (\ns{jabber:iq:last})} \end{description} -\subsection{\aname{modmuc}{\modmuc{}}} -\label{sec:modmuc} -\ind{modules!\modmuc{}}\ind{protocols!JEP-0045: Multi-User Chat}\ind{conferencing} +\subsection{\modmuc{}} +\label{modmuc} +\ind{modules!\modmuc{}}\ind{protocols!XEP-0045: Multi-User Chat}\ind{conferencing} With this module enabled, your server will support Multi-User Chat -(\jepref{0045}). End users will be able to join text conferences. Notice +(\xepref{0045}). End users will be able to join text conferences. Notice that this module is not (yet) clusterable. @@ -1921,8 +1920,8 @@ Examples: \end{verbatim} \end{itemize} -\subsection{\aname{modmuclog}{\modmuclog{}}} -\label{sec:modmuclog} +\subsection{\modmuclog{}} +\label{modmuclog} \ind{modules!\modmuclog{}} This module enables optional logging of Multi-User Chat (MUC) conversations to @@ -2036,18 +2035,18 @@ Examples: \end{verbatim} \end{itemize} -\subsection{\aname{modoffline}{\modoffline{}}} -\label{sec:modoffline} +\subsection{\modoffline{}} +\label{modoffline} \ind{modules!\modoffline{}} This module implements offline message storage. This means that all messages sent to an offline user will be stored on the server until that user comes online again. Thus it is very similar to how email works. Note that \term{ejabberdctl}\ind{ejabberdctl} has a command to delete expired messages -(see section~\ref{sec:ejabberdctl}). +(see section~\ref{ejabberdctl}). -\subsection{\aname{modprivacy}{\modprivacy{}}} -\label{sec:modprivacy} +\subsection{\modprivacy{}} +\label{modprivacy} \ind{modules!\modprivacy{}}\ind{Blocking Communication}\ind{Privacy Rules}\ind{protocols!RFC 3921: XMPP IM} This module implements Blocking Communication (also known as Privacy Rules) @@ -2079,16 +2078,16 @@ Options: \iqdiscitem{Blocking Communication (\ns{jabber:iq:privacy})} \end{description} -\subsection{\aname{modprivate}{\modprivate{}}} -\label{sec:modprivate} -\ind{modules!\modprivate{}}\ind{protocols!JEP-0049: Private XML Storage}\ind{protocols!JEP-0048: Bookmark Storage} +\subsection{\modprivate{}} +\label{modprivate} +\ind{modules!\modprivate{}}\ind{protocols!XEP-0049: Private XML Storage}\ind{protocols!XEP-0048: Bookmark Storage} -This module adds support for Private XML Storage (\jepref{0049}): +This module adds support for Private XML Storage (\xepref{0049}): \begin{quote} Using this method, Jabber entities can store private data on the server and retrieve it whenever necessary. The data stored might be anything, as long as it is valid XML. One typical usage for this namespace is the server-side storage -of client-specific preferences; another is Bookmark Storage (\jepref{0048}). +of client-specific preferences; another is Bookmark Storage (\xepref{0048}). \end{quote} Options: @@ -2096,11 +2095,11 @@ Options: \iqdiscitem{Private XML Storage (\ns{jabber:iq:private})} \end{description} -\subsection{\aname{modproxy}{\modproxy{}}} -\label{sec:modproxy} -\ind{modules!\modversion{}}\ind{protocols!JEP-0065: SOCKS5 Bytestreams} +\subsection{\modproxy{}} +\label{modproxy} +\ind{modules!\modversion{}}\ind{protocols!XEP-0065: SOCKS5 Bytestreams} -This module implements SOCKS5 Bytestreams (\jepref{0065}). +This module implements SOCKS5 Bytestreams (\xepref{0065}). It allows \ejabberd{} to act as a file transfer proxy between two XMPP clients. @@ -2163,12 +2162,12 @@ Examples: \end{verbatim} \end{itemize} -\subsection{\aname{modpubsub}{\modpubsub{}}} -\label{sec:modpubsub} -\ind{modules!\modpubsub{}}\ind{protocols!JEP-0060: Publish-Subscribe} +\subsection{\modpubsub{}} +\label{modpubsub} +\ind{modules!\modpubsub{}}\ind{protocols!XEP-0060: Publish-Subscribe} -This module offers a Publish-Subscribe Service (\jepref{0060}). -Publish-Subscribe can be used to develop (examples are taken from the JEP): +This module offers a Publish-Subscribe Service (\xepref{0060}). +Publish-Subscribe can be used to develop (examples are taken from the XEP): \begin{quote} \begin{itemize} \item news feeds and content syndacation, @@ -2213,11 +2212,11 @@ Example: ]}. \end{verbatim} -\subsection{\aname{modregister}{\modregister{}}} -\label{sec:modregister} -\ind{modules!\modregister{}}\ind{protocols!JEP-0077: In-Band Registration}\ind{public registration} +\subsection{\modregister{}} +\label{modregister} +\ind{modules!\modregister{}}\ind{protocols!XEP-0077: In-Band Registration}\ind{public registration} -This module adds support for In-Band Registration (\jepref{0077}). This protocol +This module adds support for In-Band Registration (\xepref{0077}). This protocol enables end users to use a \Jabber{} client to: \begin{itemize} \item Register a new account on the server. @@ -2271,8 +2270,8 @@ Examples: \end{verbatim} \end{itemize} -\subsection{\aname{modroster}{\modroster{}}} -\label{sec:modroster} +\subsection{\modroster{}} +\label{modroster} \ind{modules!\modroster{}}\ind{roster management}\ind{protocols!RFC 3921: XMPP IM} This module implements roster management as defined in \footahref{http://www.xmpp.org/specs/rfc3921.html\#roster}{RFC 3921: XMPP IM}. @@ -2282,8 +2281,8 @@ Options: \iqdiscitem{Roster Management (\ns{jabber:iq:roster})} \end{description} -\subsection{\aname{modservicelog}{\modservicelog{}}} -\label{sec:modservicelog} +\subsection{\modservicelog{}} +\label{modservicelog} \ind{modules!\modservicelog{}}\ind{message auditing}\ind{Bandersnatch} This module adds support for logging end user packets via a \Jabber{} message @@ -2324,8 +2323,8 @@ Examples: \end{verbatim} \end{itemize} -\subsection{\aname{modsharedroster}{\modsharedroster{}}} -\label{sec:modsharedroster} +\subsection{\modsharedroster{}} +\label{modsharedroster} \ind{modules!\modsharedroster{}}\ind{shared roster groups} This module enables you to create shared roster groups. This means that you can @@ -2427,11 +2426,11 @@ Examples: \end{table} \end{itemize} -\subsection{\aname{modstats}{\modstats{}}} -\label{sec:modstats} -\ind{modules!\modstats{}}\ind{protocols!JEP-0039: Statistics Gathering}\ind{statistics} +\subsection{\modstats{}} +\label{modstats} +\ind{modules!\modstats{}}\ind{protocols!XEP-0039: Statistics Gathering}\ind{statistics} -This module adds support for Statistics Gathering (\jepref{0039}). This protocol +This module adds support for Statistics Gathering (\xepref{0039}). This protocol allows you to retrieve next statistics from your \ejabberd{} deployment: \begin{itemize} \item Total number of registered users on the current virtual host (users/total). @@ -2447,7 +2446,7 @@ Options: As there are only a small amount of clients (for \ind{Tkabber}example \footahref{http://tkabber.jabber.ru/}{Tkabber}) and software libraries with -support for this JEP, a few examples are given of the XML you need to send +support for this XEP, a few examples are given of the XML you need to send in order to get the statistics. Here they are: \begin{itemize} \item You can request the number of online users on the current virtual host @@ -2470,11 +2469,11 @@ in order to get the statistics. Here they are: \end{verbatim} \end{itemize} -\subsection{\aname{modtime}{\modtime{}}} -\label{sec:modtime} -\ind{modules!\modtime{}}\ind{protocols!JEP-0090: Entity Time} +\subsection{\modtime{}} +\label{modtime} +\ind{modules!\modtime{}}\ind{protocols!XEP-0090: Entity Time} -This module features support for Entity Time (\jepref{0090}). By using this JEP, +This module features support for Entity Time (\xepref{0090}). By using this XEP, you are able to discover the time at another entity's location. Options: @@ -2482,12 +2481,12 @@ Options: \iqdiscitem{Entity Time (\ns{jabber:iq:time})} \end{description} -\subsection{\aname{modvcard}{\modvcard{}}} -\label{sec:modvcard} -\ind{modules!\modvcard{}}\ind{JUD}\ind{Jabber User Directory}\ind{vCard}\ind{protocols!JEP-0054: vcard-temp} +\subsection{\modvcard{}} +\label{modvcard} +\ind{modules!\modvcard{}}\ind{JUD}\ind{Jabber User Directory}\ind{vCard}\ind{protocols!XEP-0054: vcard-temp} This module allows end users to store and retrieve their vCard, and to retrieve -other users vCards, as defined in vcard-temp (\jepref{0054}). The module also +other users vCards, as defined in vcard-temp (\xepref{0054}). The module also implements an uncomplicated \Jabber{} User Directory based on the vCards of these users. Moreover, it enables the server to send its vCard when queried. @@ -2542,20 +2541,20 @@ Examples: \end{verbatim} \end{itemize} -\subsection{\aname{modvcardldap}{\modvcardldap{}}} -\label{sec:modvcardldap} -\ind{modules!\modvcardldap{}}\ind{JUD}\ind{Jabber User Directory}\ind{vCard}\ind{protocols!JEP-0054: vcard-temp} +\subsection{\modvcardldap{}} +\label{modvcardldap} +\ind{modules!\modvcardldap{}}\ind{JUD}\ind{Jabber User Directory}\ind{vCard}\ind{protocols!XEP-0054: vcard-temp} %TODO: verify if the referers to the LDAP section are still correct \ejabberd{} can map LDAP attributes to vCard fields. This behaviour is implemented in the \modvcardldap{} module. This module does not depend on the -authentication method (see~\ref{sec:ldapauth}). The \modvcardldap{} module has +authentication method (see~\ref{ldapauth}). The \modvcardldap{} module has its own optional parameters. The first group of parameters has the same meaning as the top-level LDAP parameters to set the authentication method: \option{ldap\_servers}, \option{ldap\_port}, \option{ldap\_rootdn}, \option{ldap\_password}, \option{ldap\_base}, \option{ldap\_uids}, and -\option{ldap\_filter}. See section~\ref{sec:ldapauth} for detailed information +\option{ldap\_filter}. See section~\ref{ldapauth} for detailed information about these options. If one of these options is not set, \ejabberd{} will look for the top-level option with the same name. The second group of parameters consists of the following \modvcardldap{}-specific options: @@ -2744,11 +2743,11 @@ searching his info in LDAP. \end{verbatim} \end{itemize} -\subsection{\aname{modversion}{\modversion{}}} -\label{sec:modversion} -\ind{modules!\modversion{}}\ind{protocols!JEP-0092: Software Version} +\subsection{\modversion{}} +\label{modversion} +\ind{modules!\modversion{}}\ind{protocols!XEP-0092: Software Version} -This module implements Software Version (\jepref{0092}). Consequently, it +This module implements Software Version (\xepref{0092}). Consequently, it answers \ejabberd{}'s version when queried. Options: @@ -2757,8 +2756,8 @@ Options: \end{description} -\section{\aname{initialadmin}{Creating an Initial Administrator}} -\label{sec:initialadmin} +\section{Creating an Initial Administrator} +\label{initialadmin} Before the web interface can be entered to perform administration tasks, an account with administrator rights is needed on your \ejabberd{} deployment. @@ -2769,11 +2768,11 @@ Instructions to create an initial administrator account: created in two ways: \begin{enumerate} \item Using the tool \term{ejabberdctl}\ind{ejabberdctl} (see - section~\ref{sec:ejabberdctl}): + section~\ref{ejabberdctl}): \begin{verbatim} % ejabberdctl node@host register admin example.org password \end{verbatim} - \item Using In-Band Registration (see section~\ref{sec:modregister}): you can + \item Using In-Band Registration (see section~\ref{modregister}): you can use a \Jabber{} client to register an account. \end{enumerate} \item Edit the configuration file to promote the account created in the previous @@ -2791,16 +2790,16 @@ Instructions to create an initial administrator account: \end{enumerate} -\section{\aname{onlineconfig}{Online Configuration and Monitoring}} -\label{sec:onlineconfig} +\section{Online Configuration and Monitoring} +\label{onlineconfig} -\subsection{\aname{webinterface}{Web Interface}} -\label{sec:webinterface} +\subsection{Web Interface} +\label{webinterface} \ind{web interface} To perform online configuration of \ejabberd{} you need to enable the \term{ejabberd\_http} listener with the option \term{web\_admin} (see -section~\ref{sec:listened}). Then you can open +section~\ref{listened}). Then you can open \verb|http://server:port/admin/| in your favourite web browser. You will be asked to enter the username (the \emph{full} \Jabber{} ID) and password of an \ejabberd{} user with administrator rights. After authentication @@ -2819,7 +2818,7 @@ statistics,\ldots Examples: \begin{itemize} \item You can serve the web interface on the same port as the - \ind{protocols!JEP-0025: HTTP Polling}HTTP Polling interface. In this example + \ind{protocols!XEP-0025: HTTP Polling}HTTP Polling interface. In this example you should point your web browser to \verb|http://example.org:5280/admin/| to administer all virtual hosts or to \verb|http://example.org:5280/admin/server/example.com/| to administer only @@ -2864,8 +2863,8 @@ Examples: \end{verbatim} \end{itemize} -\subsection{\aname{ejabberdctl}{\term{ejabberdctl}}} -\label{sec:ejabberdctl} +\subsection{\term{ejabberdctl}} +\label{ejabberdctl} %TODO: update when the ejabberdctl script is made more userfriendly It is possible to do some administration operations using the command @@ -2903,7 +2902,7 @@ Additional information: \titem {backup, restore, install-fallback, dump, load} You can use these commands to create and restore backups. %%More information about backuping can -%% be found in section~\ref{sec:backup}. +%% be found in section~\ref{backup}. \titem{import-file, import-dir} \ind{migration from other software} These options can be used to migrate from other \Jabber{}/XMPP servers. There exist tutorials to \footahref{http://ejabberd.jabber.ru/migrate-to-ejabberd}{migrate from other software to ejabberd}. @@ -2913,8 +2912,8 @@ Additional information: \end{description} -\section{\aname{firewall}{Firewall Settings}} -\label{sec:firewall} +\section{Firewall Settings} +\label{firewall} \ind{firewall}\ind{ports}\ind{SASL}\ind{TLS}\ind{clustering!ports} You need to take the following TCP ports in mind when configuring your firewall: @@ -2925,16 +2924,16 @@ You need to take the following TCP ports in mind when configuring your firewall: \hline \hline 5222& SASL and unencrypted c2s connections.\\ \hline 5223& Obsolete SSL c2s connections.\\ \hline 5269& s2s connections.\\ - \hline 4369& Only for clustering (see~\ref{sec:clustering}).\\ - \hline port range& Only for clustring (see~\ref{sec:clustering}). This range - is configurable (see~\ref{sec:start}).\\ + \hline 4369& Only for clustering (see~\ref{clustering}).\\ + \hline port range& Only for clustring (see~\ref{clustering}). This range + is configurable (see~\ref{start}).\\ \hline \end{tabular} \end{table} -\section{\aname{srv}{SRV Records}} -\label{sec:srv} +\section{SRV Records} +\label{srv} \ind{SRV Records}\ind{clustering!SRV Records} \begin{itemize} @@ -2945,12 +2944,12 @@ You need to take the following TCP ports in mind when configuring your firewall: \end{itemize} -\section{\aname{clustering}{Clustering}} -\label{sec:clustering} +\section{Clustering} +\label{clustering} \ind{clustering} -\subsection{\aname{howitworks}{How it Works}} -\label{sec:howitworks} +\subsection{How it Works} +\label{howitworks} \ind{clustering!how it works} A \Jabber{} domain is served by one or more \ejabberd{} nodes. These nodes can @@ -2969,8 +2968,8 @@ Each \ejabberd{} node has the following modules: \item s2s manager. \end{itemize} -\subsubsection{\aname{router}{Router}} -\label{sec:router} +\subsubsection{Router} +\label{router} \ind{clustering!router} This module is the main router of \Jabber{} packets on each node. It @@ -2979,8 +2978,8 @@ routing table. The domain of the packet's destination is searched in the routing table, and if it is found, the packet is routed to the appropriate process. If not, it is sent to the s2s manager. -\subsubsection{\aname{localrouter}{Local Router}} -\label{sec:localrouter} +\subsubsection{Local Router} +\label{localrouter} \ind{clustering!local router} This module routes packets which have a destination domain equal to @@ -2988,8 +2987,8 @@ one of this server's host names. If the destination JID has a non-empty user part, it is routed to the session manager, otherwise it is processed depending on its content. -\subsubsection{\aname{sessionmanager}{Session Manager}} -\label{sec:sessionmanager} +\subsubsection{Session Manager} +\label{sessionmanager} \ind{clustering!session manager} This module routes packets to local users. It looks up to which user @@ -2997,8 +2996,8 @@ resource a packet must be sent via a presence table. Then the packet is either routed to the appropriate c2s process, or stored in offline storage, or bounced back. -\subsubsection{\aname{s2smanager}{s2s Manager}} -\label{sec:s2smanager} +\subsubsection{s2s Manager} +\label{s2smanager} \ind{clustering!s2s manager} This module routes packets to other \Jabber{} servers. First, it @@ -3007,8 +3006,8 @@ source to the domain of the packet's destination exists. If that is the case, the s2s manager routes the packet to the process serving this connection, otherwise a new connection is opened. -\subsection{\aname{cluster}{Clustering Setup}} -\label{sec:cluster} +\subsection{Clustering Setup} +\label{cluster} \ind{clustering!setup} Suppose you already configured \ejabberd{} on one machine named (\term{first}), @@ -3092,12 +3091,12 @@ domain. % TODO % See also the section about ejabberdctl!!!! %\section{Backup and Restore} -%\label{sec:backup} +%\label{backup} %\ind{backup} \appendix{} -\section{\aname{i18nl10n}{Internationalization and Localization}} -\label{sec:i18nl10n} +\section{Internationalization and Localization} +\label{i18nl10n} \ind{xml:lang}\ind{internationalization}\ind{localization}\ind{i18n}\ind{l10n} All built-in modules support the \texttt{xml:lang} attribute inside IQ queries. @@ -3130,13 +3129,13 @@ figure~\ref{fig:webadmmainru} with figure~\ref{fig:webadmmain}) \end{figure} -%\section{\aname{ultracomplexexample}{Ultra Complex Example}} -%\label{sec:ultracomplexexample} +%\section{Ultra Complex Example} +%\label{ultracomplexexample} %TODO: a very big example covering the whole guide, with a good explanation before the example: different authenticaton mechanisms, transports, ACLs, multple virtual hosts, virtual host specific settings and general settings, modules,... \newpage -\section{\aname{releasenotes}{Release Notes}} -\label{sec:releasenotes} +\section{Release Notes} +\label{releasenotes} \ind{release notes} \subsection{ejabberd 0.9} @@ -3160,8 +3159,8 @@ figure~\ref{fig:webadmmainru} with figure~\ref{fig:webadmmain}) \subsection{ejabberd 1.1.2} \verbatiminput{release_notes_1.1.2.txt} -\section{\aname{acknowledgements}{Acknowledgements}} -\label{sec:acknowledgements} +\section{Acknowledgements} +\label{acknowledgements} Thanks to all people who contributed to this guide: \begin{itemize} \item Alexey Shchepin (\ahrefurl{xmpp:aleksey@jabber.ru}) @@ -3176,8 +3175,8 @@ Thanks to all people who contributed to this guide: \end{itemize} -\section{\aname{copyright}{Copyright Information}} -\label{sec:copyright} +\section{Copyright Information} +\label{copyright} Ejabberd Installation and Operation Guide.\\ Copyright \copyright{} January 23, 2003 --- \today{} Alexey Shchepin @@ -3197,15 +3196,15 @@ this document; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. %TODO: a glossary describing common terms -%\section{\aname{glossary}{Glossary}} -%\label{sec:glossary} +%\section{Glossary}} +%\label{glossary} %\ind{glossary} %\begin{description} %\titem{c2s} %\titem{s2s} %\titem{STARTTLS} -%\titem{JEP} (\Jabber{} Enhancement Proposal) +%\titem{XEP} (\XMPP{} Extension Protocol) %\titem{Resource} %\titem{Roster} %\titem{Transport} diff --git a/doc/introduction.tex b/doc/introduction.tex index 359f8692..cdbb214e 100644 --- a/doc/introduction.tex +++ b/doc/introduction.tex @@ -1,5 +1,5 @@ -\section{\aname{intro}{Introduction}} -\label{sec:intro} +\section{Introduction} +\label{intro} \quoting{I just tried out ejabberd and was impressed both by ejabberd itself and the language it is written in, Erlang. --- Joeri} @@ -14,8 +14,8 @@ Joeri} \ejabberd{} is suitable for small deployments, whether they need to be \marking{scalable} or not, as well as extremely big deployments. -%\subsection{\aname{layout}{Layout with example deployment (title needs a better name)}} -%\label{sec:layout} +%\subsection{Layout with example deployment (title needs a better name)} +%\label{layout} %In this section there will be a graphical overview like these:\\ %\verb|http://www.tipic.com/var/timp/timp_dep.gif| \\ @@ -24,8 +24,8 @@ Joeri} %A page full with names of Jabber client that are known to work with ejabberd. \begin{tiny}tiny font\end{tiny} -%\subsection{\aname{trytoday}{Try It Today}} -%\label{sec:trytoday} +%\subsection{Try It Today} +%\label{trytoday} %(Not sure if I will include/finish this section for the next version.) @@ -38,8 +38,8 @@ Joeri} %\end{itemize} \newpage -\subsection{\aname{keyfeatures}{Key Features}} -\label{sec:keyfeatures} +\subsection{Key Features} +\label{keyfeatures} \ind{features!key features} \quoting{Erlang seems to be tailor-made for writing stable, robust servers. --- @@ -74,15 +74,15 @@ Peter Saint-Andr\'e, Executive Director of the Jabber Software Foundation} \begin{itemize} \item Fully XMPP compliant. \item XML-based protocol. -\item \footahref{http://ejabberd.jabber.ru/protocols}{Many JEPs supported}. +\item \footahref{http://ejabberd.jabber.ru/protocols}{Many protocols supported}. \end{itemize} \end{itemize} \newpage -\subsection{\aname{addfeatures}{Additional Features}} -\label{sec:addfeatures} +\subsection{Additional Features} +\label{addfeatures} \ind{features!additional features} \quoting{ejabberd is making inroads to solving the "buggy incomplete server" problem --- @@ -117,15 +117,15 @@ Moreover, \ejabberd{} comes with a wide range of other state-of-the-art features \end{itemize} \item Others \begin{itemize} -\item Compressing XML streams with Stream Compression (\jepref{0138}). +\item Compressing XML streams with Stream Compression (\xepref{0138}). \item Interface with networks such as AIM, ICQ and MSN. -\item Statistics via Statistics Gathering (\jepref{0039}). +\item Statistics via Statistics Gathering (\xepref{0039}). \item IPv6 support both for c2s and s2s connections. -\item \tjepref{0045}{Multi-User Chat} module with logging.\improved{} +\item \txepref{0045}{Multi-User Chat} module with logging.\improved{} \item Users Directory based on users vCards. -\item \tjepref{0060}{Publish-Subscribe} component. +\item \txepref{0060}{Publish-Subscribe} component. \item Support for virtual hosting. -\item \tjepref{0025}{HTTP Polling} service. +\item \txepref{0025}{HTTP Polling} service. \item IRC transport. \end{itemize} \end{itemize}
\ No newline at end of file diff --git a/doc/version.tex b/doc/version.tex index 90a3dcf9..f51f8de6 100644 --- a/doc/version.tex +++ b/doc/version.tex @@ -1,2 +1,2 @@ -% Define ejabberd version here. +% ejabberd version (automatically generated). \newcommand{\version}{1.1.2} |