<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;}
</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>-->
<!--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>
<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">
<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">
</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
</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
</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>
</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
</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>
</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>:
<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
<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>
</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
</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
<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">
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>
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
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
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
</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:
</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">
</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">
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">
</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">
</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:
</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:
<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
<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">
</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
</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
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
<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.
</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
</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
<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
<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>
</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
<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
<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
</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
</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
<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
<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.
</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:
</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
<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
<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
<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
</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 -->
<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:
{ldap_password, "*******"}. % Password to LDAP manager
{ldap_uids, [{"sAMAccountName"}]}.
{ldap_filter, "(memberOf=*)"}.
-
+
{mod_vcard_ldap,
[{ldap_vcard_map,
[{"NICKNAME", "%u", []},
</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
</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
<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>
<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>
<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>
<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>
<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>
<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
</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>
</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
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.
</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>
<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>
</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
<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.
...
]}.
</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>
<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
<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.
</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>
<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:
<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.
</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
</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
<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>
</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,
<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.
</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.
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">
</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>
<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
</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
</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).
<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
</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>
<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
</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
</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>
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
</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
</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
</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>
<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:
</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
</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
<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
<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
<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
<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
<!--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:
<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-->
</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>)
</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>
%% 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.
}
\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}
% 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}
\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}
\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 \\
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:
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|).
%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
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
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
\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
\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{}
\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
\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}
\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.
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
\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
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
</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
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.
\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}.
\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}
\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
\begin{verbatim}
{acl, <aclname>, {<acltype>, ...}}.
\end{verbatim}
-
\term{<acltype>} can be one of the following:
\begin{description}
\titem{all} Matches all JIDs. Example:
\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
\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
{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}
\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
\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
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
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
\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
{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
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
./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
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
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
\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
{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
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
\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
{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
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}
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:
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}}
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
{ldap_password, "*******"}. % Password to LDAP manager
{ldap_uids, [{"sAMAccountName"}]}.
{ldap_filter, "(memberOf=*)"}.
-
+
{mod_vcard_ldap,
[{ldap_vcard_map,
[{"NICKNAME", "%u", []},
\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
\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{}
\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}
\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
]}.
\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
\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
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.
\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.
\end{itemize}
-\subsection{\aname{modecho}{\modecho{}}}
-\label{sec:modecho}
+\subsection{\modecho{}}
+\label{modecho}
\ind{modules!\modecho{}}\ind{debugging}
This module simply echoes any \Jabber{}
]}.
\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
\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.
\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.
\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
\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)
\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:
\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.
\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,
]}.
\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.
\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}.
\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
\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
\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).
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
\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:
\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.
\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:
\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:
\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.
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
\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
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
\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
\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}.
\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:
\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}
\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
\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
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
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
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
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}),
% 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.
\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}
\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})
\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
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}