25
1
mirror of https://github.com/processone/ejabberd.git synced 2024-11-24 16:23:40 +01:00

* doc/guide.tex: Updated

SVN Revision: 312
This commit is contained in:
Alexey Shchepin 2005-04-18 14:47:13 +00:00
parent e0d1e68096
commit 78f3e2edb0
3 changed files with 225 additions and 113 deletions

View File

@ -1,5 +1,7 @@
2005-04-18 Alexey Shchepin <alexey@sevcom.net> 2005-04-18 Alexey Shchepin <alexey@sevcom.net>
* doc/guide.tex: Updated
* src/msgs/pl.msg: New Polish translation (thanks to Andrew Smyk) * src/msgs/pl.msg: New Polish translation (thanks to Andrew Smyk)
2005-04-17 Alexey Shchepin <alexey@sevcom.net> 2005-04-17 Alexey Shchepin <alexey@sevcom.net>

View File

@ -4,7 +4,7 @@
<HEAD><TITLE>Ejabberd Installation and Operation Guide</TITLE> <HEAD><TITLE>Ejabberd Installation and Operation Guide</TITLE>
<META http-equiv="Content-Type" content="text/html; charset=ISO8859-1"> <META http-equiv="Content-Type" content="text/html; charset=ISO8859-1">
<META name="GENERATOR" content="hevea 1.06"> <META name="GENERATOR" content="hevea 1.07">
</HEAD> </HEAD>
<BODY > <BODY >
<!--HEVEA command line is: /usr/bin/hevea -charset ISO8859-1 guide.tex --> <!--HEVEA command line is: /usr/bin/hevea -charset ISO8859-1 guide.tex -->
@ -55,7 +55,7 @@
<UL><LI> <UL><LI>
<A HREF="#htoc12">3.1&nbsp;&nbsp;Initial Configuration</A> <A HREF="#htoc12">3.1&nbsp;&nbsp;Initial Configuration</A>
<UL><LI> <UL><LI>
<A HREF="#htoc13">3.1.1&nbsp;&nbsp;Host Name</A> <A HREF="#htoc13">3.1.1&nbsp;&nbsp;Host Names</A>
<LI><A HREF="#htoc14">3.1.2&nbsp;&nbsp;Default Language</A> <LI><A HREF="#htoc14">3.1.2&nbsp;&nbsp;Default Language</A>
<LI><A HREF="#htoc15">3.1.3&nbsp;&nbsp;Access Rules</A> <LI><A HREF="#htoc15">3.1.3&nbsp;&nbsp;Access Rules</A>
<LI><A HREF="#htoc16">3.1.4&nbsp;&nbsp;Shapers Configuration</A> <LI><A HREF="#htoc16">3.1.4&nbsp;&nbsp;Shapers Configuration</A>
@ -85,27 +85,28 @@
<UL><LI> <UL><LI>
<A HREF="#htoc31">A.1.1&nbsp;&nbsp;<TT>iqdisc</TT></A> <A HREF="#htoc31">A.1.1&nbsp;&nbsp;<TT>iqdisc</TT></A>
<LI><A HREF="#htoc32">A.1.2&nbsp;&nbsp;<TT>host</TT></A> <LI><A HREF="#htoc32">A.1.2&nbsp;&nbsp;<TT>host</TT></A>
<LI><A HREF="#htoc33">A.1.3&nbsp;&nbsp;<TT>hosts</TT></A>
</UL> </UL>
<LI><A HREF="#htoc33">A.2&nbsp;&nbsp;<TT>mod_announce</TT></A> <LI><A HREF="#htoc34">A.2&nbsp;&nbsp;<TT>mod_announce</TT></A>
<LI><A HREF="#htoc34">A.3&nbsp;&nbsp;<TT>mod_configure</TT></A> <LI><A HREF="#htoc35">A.3&nbsp;&nbsp;<TT>mod_configure</TT></A>
<LI><A HREF="#htoc35">A.4&nbsp;&nbsp;<TT>mod_disco</TT></A> <LI><A HREF="#htoc36">A.4&nbsp;&nbsp;<TT>mod_disco</TT></A>
<LI><A HREF="#htoc36">A.5&nbsp;&nbsp;<TT>mod_echo</TT></A> <LI><A HREF="#htoc37">A.5&nbsp;&nbsp;<TT>mod_echo</TT></A>
<LI><A HREF="#htoc37">A.6&nbsp;&nbsp;<TT>mod_irc</TT></A> <LI><A HREF="#htoc38">A.6&nbsp;&nbsp;<TT>mod_irc</TT></A>
<LI><A HREF="#htoc38">A.7&nbsp;&nbsp;<TT>mod_last</TT></A> <LI><A HREF="#htoc39">A.7&nbsp;&nbsp;<TT>mod_last</TT></A>
<LI><A HREF="#htoc39">A.8&nbsp;&nbsp;<TT>mod_muc</TT></A> <LI><A HREF="#htoc40">A.8&nbsp;&nbsp;<TT>mod_muc</TT></A>
<LI><A HREF="#htoc40">A.9&nbsp;&nbsp;<TT>mod_offline</TT></A> <LI><A HREF="#htoc41">A.9&nbsp;&nbsp;<TT>mod_offline</TT></A>
<LI><A HREF="#htoc41">A.10&nbsp;&nbsp;<TT>mod_privacy</TT></A> <LI><A HREF="#htoc42">A.10&nbsp;&nbsp;<TT>mod_privacy</TT></A>
<LI><A HREF="#htoc42">A.11&nbsp;&nbsp;<TT>mod_private</TT></A> <LI><A HREF="#htoc43">A.11&nbsp;&nbsp;<TT>mod_private</TT></A>
<LI><A HREF="#htoc43">A.12&nbsp;&nbsp;<TT>mod_pubsub</TT></A> <LI><A HREF="#htoc44">A.12&nbsp;&nbsp;<TT>mod_pubsub</TT></A>
<LI><A HREF="#htoc44">A.13&nbsp;&nbsp;<TT>mod_register</TT></A> <LI><A HREF="#htoc45">A.13&nbsp;&nbsp;<TT>mod_register</TT></A>
<LI><A HREF="#htoc45">A.14&nbsp;&nbsp;<TT>mod_roster</TT></A> <LI><A HREF="#htoc46">A.14&nbsp;&nbsp;<TT>mod_roster</TT></A>
<LI><A HREF="#htoc46">A.15&nbsp;&nbsp;<TT>mod_service_log</TT></A> <LI><A HREF="#htoc47">A.15&nbsp;&nbsp;<TT>mod_service_log</TT></A>
<LI><A HREF="#htoc47">A.16&nbsp;&nbsp;<TT>mod_stats</TT></A> <LI><A HREF="#htoc48">A.16&nbsp;&nbsp;<TT>mod_stats</TT></A>
<LI><A HREF="#htoc48">A.17&nbsp;&nbsp;<TT>mod_time</TT></A> <LI><A HREF="#htoc49">A.17&nbsp;&nbsp;<TT>mod_time</TT></A>
<LI><A HREF="#htoc49">A.18&nbsp;&nbsp;<TT>mod_vcard</TT></A> <LI><A HREF="#htoc50">A.18&nbsp;&nbsp;<TT>mod_vcard</TT></A>
<LI><A HREF="#htoc50">A.19&nbsp;&nbsp;<TT>mod_version</TT></A> <LI><A HREF="#htoc51">A.19&nbsp;&nbsp;<TT>mod_version</TT></A>
</UL> </UL>
<LI><A HREF="#htoc51">B&nbsp;&nbsp;I18n/L10n</A> <LI><A HREF="#htoc52">B&nbsp;&nbsp;I18n/L10n</A>
</UL> </UL>
<!--TOC section Introduction--> <!--TOC section Introduction-->
@ -127,6 +128,7 @@ Works on most of popular platforms: *nix (tested on Linux, FreeBSD and
permanently on more than one node. This means that if one of the nodes permanently on more than one node. This means that if one of the nodes
crashes, then the others will continue working without disruption. crashes, then the others will continue working without disruption.
You can also add or replace nodes ``on the fly''. You can also add or replace nodes ``on the fly''.
<LI>Support for virtual hosting
<LI>Built-in <A HREF="http://www.jabber.org/jeps/jep-0045.html">Multi-User Chat</A> service <LI>Built-in <A HREF="http://www.jabber.org/jeps/jep-0045.html">Multi-User Chat</A> service
<LI>Built-in IRC transport <LI>Built-in IRC transport
<LI>Built-in <A HREF="http://www.jabber.org/jeps/jep-0060.html">Publish-Subscribe</A> service <LI>Built-in <A HREF="http://www.jabber.org/jeps/jep-0060.html">Publish-Subscribe</A> service
@ -144,8 +146,9 @@ Works on most of popular platforms: *nix (tested on Linux, FreeBSD and
</UL> </UL>
The misfeatures of <TT>ejabberd</TT> are: The misfeatures of <TT>ejabberd</TT> are:
<UL><LI> <UL><LI>
No support for virtual domains No support for authentication and STARTTLS in S2S connections
<LI>No support for authentication and STARTTLS in S2S connections <LI>Access rules can be defined only for global conext, not for specific
virtual host
</UL> </UL>
<!--TOC section Installation from Source--> <!--TOC section Installation from Source-->
@ -324,15 +327,25 @@ in config:
</PRE>With this lines old global or local options or ACLs will be removed before </PRE>With this lines old global or local options or ACLs will be removed before
adding new ones.<BR> adding new ones.<BR>
<BR> <BR>
<!--TOC subsubsection Host Name--> <!--TOC subsubsection Host Names-->
<H4><A NAME="htoc13">3.1.1</A>&nbsp;&nbsp;Host Name</H4><!--SEC END --> <H4><A NAME="htoc13">3.1.1</A>&nbsp;&nbsp;Host Names</H4><!--SEC END -->
<A NAME="sec:confighostname"></A> <A NAME="sec:confighostname"></A>
Option <TT>hostname</TT> defines name of Jabber domain that <TT>ejabberd</TT> Option <TT>hosts</TT> defines a list of Jabber domains that <TT>ejabberd</TT>
serves. E.&nbsp;g. to use <TT>jabber.org</TT> domain add the following line in the config: serves. E.&nbsp;g. to serve <TT>example.org</TT> and <TT>example.com</TT> domains add
the following line in the config:
<PRE> <PRE>
{host, "jabber.org"}. {hosts, ["example.org", "example.com"]}.
</PRE>
Option <TT>host</TT> defines one Jabber domain that <TT>ejabberd</TT> serves.
E.&nbsp;g. to serve only <TT>example.org</TT> domain add the following line in the
config:
<PRE>
{host, "example.org"}.
</PRE>It have the same effect as
<PRE>
{hosts, ["example.org"]}.
</PRE> </PRE>
<!--TOC subsubsection Default Language--> <!--TOC subsubsection Default Language-->
@ -361,8 +374,8 @@ declarations of ACL in config file have following syntax:
<B><TT>all</TT></B><DD> Matches all JIDs. Example: <B><TT>all</TT></B><DD> Matches all JIDs. Example:
<PRE> <PRE>
{acl, all, all}. {acl, all, all}.
</PRE><DT><B><TT>{user, &lt;username&gt;}</TT></B><DD> Matches local user with name </PRE><DT><B><TT>{user, &lt;username&gt;}</TT></B><DD> Matches user with name
<TT>&lt;username&gt;</TT>. Example: <TT>&lt;username&gt;</TT> at the first virtual host. Example:
<PRE> <PRE>
{acl, admin, {user, "aleksey"}}. {acl, admin, {user, "aleksey"}}.
</PRE><DT><B><TT>{user, &lt;username&gt;, &lt;server&gt;}</TT></B><DD> Matches user with JID </PRE><DT><B><TT>{user, &lt;username&gt;, &lt;server&gt;}</TT></B><DD> Matches user with JID
@ -374,7 +387,7 @@ declarations of ACL in config file have following syntax:
<PRE> <PRE>
{acl, jabberorg, {server, "jabber.org"}}. {acl, jabberorg, {server, "jabber.org"}}.
</PRE><DT><B><TT>{user_regexp, &lt;regexp&gt;}</TT></B><DD> Matches local user with name that </PRE><DT><B><TT>{user_regexp, &lt;regexp&gt;}</TT></B><DD> Matches local user with name that
matches <TT>&lt;regexp&gt;</TT>. Example: matches <TT>&lt;regexp&gt;</TT> at the first virtual host. Example:
<PRE> <PRE>
{acl, tests, {user, "^test[0-9]*$"}}. {acl, tests, {user, "^test[0-9]*$"}}.
</PRE><DT><B><TT>{user_regexp, &lt;regexp&gt;, &lt;server&gt;}</TT></B><DD> Matches user with name </PRE><DT><B><TT>{user_regexp, &lt;regexp&gt;, &lt;server&gt;}</TT></B><DD> Matches user with name
@ -405,7 +418,7 @@ declarations of ACL in config file have following syntax:
character not enclosed is matched. character not enclosed is matched.
</DL> </DL>
</DL> </DL>
The following ACLs pre-defined: The following ACLs are pre-defined:
<DL COMPACT=compact><DT> <DL COMPACT=compact><DT>
<B><TT>all</TT></B><DD> Matches all JIDs. <B><TT>all</TT></B><DD> Matches all JIDs.
<DT><B><TT>none</TT></B><DD> Matches none JIDs. <DT><B><TT>none</TT></B><DD> Matches none JIDs.
@ -430,8 +443,8 @@ Example:
</PRE> </PRE>
Following access rules pre-defined: Following access rules pre-defined:
<DL COMPACT=compact><DT> <DL COMPACT=compact><DT>
<B><TT>all</TT></B><DD> Always return ``<TT>allow</TT>'' <B><TT>all</TT></B><DD> Always returns ``<TT>allow</TT>''
<DT><B><TT>none</TT></B><DD> Always return ``<TT>deny</TT>'' <DT><B><TT>none</TT></B><DD> Always returns ``<TT>deny</TT>''
</DL> </DL>
<!--TOC subsubsection Shapers Configuration--> <!--TOC subsubsection Shapers Configuration-->
@ -617,6 +630,7 @@ Example:
{mod_stats, []}, {mod_stats, []},
{mod_vcard, []}, {mod_vcard, []},
{mod_offline, []}, {mod_offline, []},
{mod_announce, [{access, announce}]},
{mod_echo, [{host, "echo.localhost"}]}, {mod_echo, [{host, "echo.localhost"}]},
{mod_private, []}, {mod_private, []},
{mod_irc, []}, {mod_irc, []},
@ -892,29 +906,50 @@ Example:
... ...
]}. ]}.
</PRE> </PRE>
<!--TOC subsubsection <TT>hosts</TT>-->
<H4><A NAME="htoc33">A.1.3</A>&nbsp;&nbsp;<TT>hosts</TT></H4><!--SEC END -->
<A NAME="sec:modhostsoption"></A>
This option explicitly defines a list of hostnames for the module which acts as
a service.<BR>
<BR>
Example:
<PRE>
{modules,
[
...
{mod_echo, [{hosts, ["echo.example.org", "echo.example.com"]}]},
...
]}.
</PRE>
<!--TOC subsection <TT>mod_announce</TT>--> <!--TOC subsection <TT>mod_announce</TT>-->
<H3><A NAME="htoc33">A.2</A>&nbsp;&nbsp;<TT>mod_announce</TT></H3><!--SEC END --> <H3><A NAME="htoc34">A.2</A>&nbsp;&nbsp;<TT>mod_announce</TT></H3><!--SEC END -->
<A NAME="sec:modannounce"></A> <A NAME="sec:modannounce"></A>
This module adds support for broadcast announce messages and MOTD. This module adds support for broadcast announce messages and MOTD.
When the module is loaded, it handles messages sent to the following JID's When the module is loaded, it handles messages sent to the following JID's
(suppose that main server has address <TT>example.org</TT>): (suppose that main server has address <TT>example.org</TT>):
<DL COMPACT=compact><DT> <DL COMPACT=compact><DT>
<B><TT>example.org/announce/all</TT></B><DD> Message is sent to all registered users. <B><TT>example.org/announce/all</TT></B><DD> Message is sent to all registered users at
If the user is online and connected to several resources, only resource with <TT>example.org</TT>. If the user is online and connected to several resources,
the highest priority will receive the message. If the registered user is only resource with the highest priority will receive the message. If the
not connected, the message will be stored offline (if oflline storage is registered user is not connected, the message will be stored offline (if
available). oflline storage is available).
<DT><B><TT>example.org/announce/online</TT></B><DD> Message is sent to all connected users. <DT><B><TT>example.org/announce/online</TT></B><DD> Message is sent to all connected users at
If the user is online and connected to several resources, all resources <TT>example.org</TT>. If the user is online and connected to several resources,
will receive the message. all resources will receive the message.
<DT><B><TT>example.org/announce/all-hosts/online</TT></B><DD> Message is sent to all connected
users at every virtual host. If the user is online and connected to several
resources, all resources will receive the message.
<DT><B><TT>example.org/announce/motd</TT></B><DD> Message is set as MOTD (Message of the Day) <DT><B><TT>example.org/announce/motd</TT></B><DD> Message is set as MOTD (Message of the Day)
and will be sent to users as they login. In addition the message is sent to and is sent to users at <TT>example.org</TT> as they login. In addition the
all connected users (similar to <TT>announce/online</TT> resource). message is sent to all connected users (similar to <TT>announce/online</TT>
<DT><B><TT>example.org/announce/motd/update</TT></B><DD> Message is set as MOTD (Message of the Day) resource).
and will be sent to users as they login. The message is <EM>not sent</EM> to <DT><B><TT>example.org/announce/motd/update</TT></B><DD> Message is set as MOTD (Message of the
all connected users. Day) and is sent to users at <TT>example.org</TT> as they login. The message
is <EM>not sent</EM> to all connected users.
<DT><B><TT>example.org/announce/motd/delete</TT></B><DD> Any message sent to this JID <DT><B><TT>example.org/announce/motd/delete</TT></B><DD> Any message sent to this JID
removes existing MOTD. removes existing MOTD.
</DL> </DL>
@ -937,7 +972,7 @@ Example:
</PRE> </PRE>
<!--TOC subsection <TT>mod_configure</TT>--> <!--TOC subsection <TT>mod_configure</TT>-->
<H3><A NAME="htoc34">A.3</A>&nbsp;&nbsp;<TT>mod_configure</TT></H3><!--SEC END --> <H3><A NAME="htoc35">A.3</A>&nbsp;&nbsp;<TT>mod_configure</TT></H3><!--SEC END -->
<A NAME="sec:modconfigure"></A> <A NAME="sec:modconfigure"></A>
Options: Options:
@ -947,7 +982,7 @@ discipline (see&nbsp;<A HREF="#sec:modiqdiscoption">A.1.1</A>).
</DL> </DL>
<!--TOC subsection <TT>mod_disco</TT>--> <!--TOC subsection <TT>mod_disco</TT>-->
<H3><A NAME="htoc35">A.4</A>&nbsp;&nbsp;<TT>mod_disco</TT></H3><!--SEC END --> <H3><A NAME="htoc36">A.4</A>&nbsp;&nbsp;<TT>mod_disco</TT></H3><!--SEC END -->
<A NAME="sec:moddisco"></A> <A NAME="sec:moddisco"></A>
This module adds support for <A HREF="http://www.jabber.org/jeps/jep-0030.html">JEP-0030</A> (Service Discovery).<BR> This module adds support for <A HREF="http://www.jabber.org/jeps/jep-0030.html">JEP-0030</A> (Service Discovery).<BR>
@ -972,7 +1007,7 @@ Example:
</PRE> </PRE>
<!--TOC subsection <TT>mod_echo</TT>--> <!--TOC subsection <TT>mod_echo</TT>-->
<H3><A NAME="htoc36">A.5</A>&nbsp;&nbsp;<TT>mod_echo</TT></H3><!--SEC END --> <H3><A NAME="htoc37">A.5</A>&nbsp;&nbsp;<TT>mod_echo</TT></H3><!--SEC END -->
<A NAME="sec:modecho"></A> <A NAME="sec:modecho"></A>
This module acts as a service and simply returns to sender any Jabber packet. Module may be This module acts as a service and simply returns to sender any Jabber packet. Module may be
@ -980,22 +1015,30 @@ useful for debugging.<BR>
<BR> <BR>
Options: Options:
<DL COMPACT=compact><DT> <DL COMPACT=compact><DT>
<B><TT>host</TT></B><DD> Defines hostname of service
(see&nbsp;<A HREF="#sec:modhostoption">A.1.2</A>). If not present <B><TT>host</TT></B><DD> Defines hostname of the service
then prefix <TT>echo.</TT> is added to main <TT>ejabberd</TT> hostname. (see&nbsp;<A HREF="#sec:modhostoption">A.1.2</A>).
<DT><B><TT>hosts</TT></B><DD> Defines hostnames of the service
(see&nbsp;<A HREF="#sec:modhostsoption">A.1.3</A>). If neither <TT>host</TT> nor <TT>hosts</TT>
are not present, then prefix <TT>echo.</TT> is added to all <TT>ejabberd</TT> hostnames.
</DL> </DL>
<!--TOC subsection <TT>mod_irc</TT>--> <!--TOC subsection <TT>mod_irc</TT>-->
<H3><A NAME="htoc37">A.6</A>&nbsp;&nbsp;<TT>mod_irc</TT></H3><!--SEC END --> <H3><A NAME="htoc38">A.6</A>&nbsp;&nbsp;<TT>mod_irc</TT></H3><!--SEC END -->
<A NAME="sec:modirc"></A> <A NAME="sec:modirc"></A>
This module implements IRC transport.<BR> This module implements IRC transport.<BR>
<BR> <BR>
Options: Options:
<DL COMPACT=compact><DT> <DL COMPACT=compact><DT>
<B><TT>host</TT></B><DD> Defines hostname of service
(see&nbsp;<A HREF="#sec:modhostoption">A.1.2</A>). If not present <B><TT>host</TT></B><DD> Defines hostname of the service
then prefix <TT>irc.</TT> is added to main <TT>ejabberd</TT> hostname. (see&nbsp;<A HREF="#sec:modhostoption">A.1.2</A>).
<DT><B><TT>hosts</TT></B><DD> Defines hostnames of the service
(see&nbsp;<A HREF="#sec:modhostsoption">A.1.3</A>). If neither <TT>host</TT> nor <TT>hosts</TT>
are not present, then prefix <TT>irc.</TT> is added to all <TT>ejabberd</TT> hostnames.
<DT><B><TT>access</TT></B><DD> Specifies who is allowed to use IRC transport (default value is <TT>all</TT>). <DT><B><TT>access</TT></B><DD> Specifies who is allowed to use IRC transport (default value is <TT>all</TT>).
</DL> </DL>
Example: Example:
@ -1009,7 +1052,7 @@ Example:
</PRE> </PRE>
<!--TOC subsection <TT>mod_last</TT>--> <!--TOC subsection <TT>mod_last</TT>-->
<H3><A NAME="htoc38">A.7</A>&nbsp;&nbsp;<TT>mod_last</TT></H3><!--SEC END --> <H3><A NAME="htoc39">A.7</A>&nbsp;&nbsp;<TT>mod_last</TT></H3><!--SEC END -->
<A NAME="sec:modlast"></A> <A NAME="sec:modlast"></A>
This module adds support for <A HREF="http://www.jabber.org/jeps/jep-0012.html">JEP-0012</A> (Last Activity)<BR> This module adds support for <A HREF="http://www.jabber.org/jeps/jep-0012.html">JEP-0012</A> (Last Activity)<BR>
@ -1021,16 +1064,20 @@ discipline (see&nbsp;<A HREF="#sec:modiqdiscoption">A.1.1</A>).
</DL> </DL>
<!--TOC subsection <TT>mod_muc</TT>--> <!--TOC subsection <TT>mod_muc</TT>-->
<H3><A NAME="htoc39">A.8</A>&nbsp;&nbsp;<TT>mod_muc</TT></H3><!--SEC END --> <H3><A NAME="htoc40">A.8</A>&nbsp;&nbsp;<TT>mod_muc</TT></H3><!--SEC END -->
<A NAME="sec:modmuc"></A> <A NAME="sec:modmuc"></A>
This module implements <A HREF="http://www.jabber.org/jeps/jep-0045.html">JEP-0045</A> (Multi-User Chat) service.<BR> This module implements <A HREF="http://www.jabber.org/jeps/jep-0045.html">JEP-0045</A> (Multi-User Chat) service.<BR>
<BR> <BR>
Options: Options:
<DL COMPACT=compact><DT> <DL COMPACT=compact><DT>
<B><TT>host</TT></B><DD> Defines hostname of service
(see&nbsp;<A HREF="#sec:modhostoption">A.1.2</A>). If not present <B><TT>host</TT></B><DD> Defines hostname of the service
then prefix <TT>conference.</TT> is added to main <TT>ejabberd</TT> hostname. (see&nbsp;<A HREF="#sec:modhostoption">A.1.2</A>).
<DT><B><TT>hosts</TT></B><DD> Defines hostnames of the service
(see&nbsp;<A HREF="#sec:modhostsoption">A.1.3</A>). If neither <TT>host</TT> nor <TT>hosts</TT>
are not present, then prefix <TT>conference.</TT> is added to all <TT>ejabberd</TT> hostnames.
<DT><B><TT>access</TT></B><DD> Specifies who is allowed to use MUC service (default value is <TT>all</TT>). <DT><B><TT>access</TT></B><DD> Specifies who is allowed to use MUC service (default value is <TT>all</TT>).
<DT><B><TT>access_create</TT></B><DD> Specifies who is allowed to create new rooms at <DT><B><TT>access_create</TT></B><DD> Specifies who is allowed to create new rooms at
MUC service (default value is <TT>all</TT>). MUC service (default value is <TT>all</TT>).
@ -1056,14 +1103,14 @@ Example:
</PRE> </PRE>
<!--TOC subsection <TT>mod_offline</TT>--> <!--TOC subsection <TT>mod_offline</TT>-->
<H3><A NAME="htoc40">A.9</A>&nbsp;&nbsp;<TT>mod_offline</TT></H3><!--SEC END --> <H3><A NAME="htoc41">A.9</A>&nbsp;&nbsp;<TT>mod_offline</TT></H3><!--SEC END -->
<A NAME="sec:modoffline"></A> <A NAME="sec:modoffline"></A>
This module implements offline message storage.<BR> This module implements offline message storage.<BR>
<BR> <BR>
<!--TOC subsection <TT>mod_privacy</TT>--> <!--TOC subsection <TT>mod_privacy</TT>-->
<H3><A NAME="htoc41">A.10</A>&nbsp;&nbsp;<TT>mod_privacy</TT></H3><!--SEC END --> <H3><A NAME="htoc42">A.10</A>&nbsp;&nbsp;<TT>mod_privacy</TT></H3><!--SEC END -->
<A NAME="sec:modprivacy"></A> <A NAME="sec:modprivacy"></A>
This module implements Privacy Rules as defined in XMPP IM This module implements Privacy Rules as defined in XMPP IM
@ -1076,7 +1123,7 @@ discipline (see&nbsp;<A HREF="#sec:modiqdiscoption">A.1.1</A>).
</DL> </DL>
<!--TOC subsection <TT>mod_private</TT>--> <!--TOC subsection <TT>mod_private</TT>-->
<H3><A NAME="htoc42">A.11</A>&nbsp;&nbsp;<TT>mod_private</TT></H3><!--SEC END --> <H3><A NAME="htoc43">A.11</A>&nbsp;&nbsp;<TT>mod_private</TT></H3><!--SEC END -->
<A NAME="sec:modprivate"></A> <A NAME="sec:modprivate"></A>
This module adds support of <A HREF="http://www.jabber.org/jeps/jep-0049.html">JEP-0049</A> (Private XML Storage).<BR> This module adds support of <A HREF="http://www.jabber.org/jeps/jep-0049.html">JEP-0049</A> (Private XML Storage).<BR>
@ -1088,16 +1135,20 @@ discipline (see&nbsp;<A HREF="#sec:modiqdiscoption">A.1.1</A>).
</DL> </DL>
<!--TOC subsection <TT>mod_pubsub</TT>--> <!--TOC subsection <TT>mod_pubsub</TT>-->
<H3><A NAME="htoc43">A.12</A>&nbsp;&nbsp;<TT>mod_pubsub</TT></H3><!--SEC END --> <H3><A NAME="htoc44">A.12</A>&nbsp;&nbsp;<TT>mod_pubsub</TT></H3><!--SEC END -->
<A NAME="sec:modpubsub"></A> <A NAME="sec:modpubsub"></A>
This module implements <A HREF="http://www.jabber.org/jeps/jep-0060.html">JEP-0060</A> (Publish-Subscribe Service).<BR> This module implements <A HREF="http://www.jabber.org/jeps/jep-0060.html">JEP-0060</A> (Publish-Subscribe Service).<BR>
<BR> <BR>
Options: Options:
<DL COMPACT=compact><DT> <DL COMPACT=compact><DT>
<B><TT>host</TT></B><DD> Defines hostname of service
(see&nbsp;<A HREF="#sec:modhostoption">A.1.2</A>). If not present <B><TT>host</TT></B><DD> Defines hostname of the service
then prefix <TT>pubsub.</TT> is added to main <TT>ejabberd</TT> hostname. (see&nbsp;<A HREF="#sec:modhostoption">A.1.2</A>).
<DT><B><TT>hosts</TT></B><DD> Defines hostnames of the service
(see&nbsp;<A HREF="#sec:modhostsoption">A.1.3</A>). If neither <TT>host</TT> nor <TT>hosts</TT>
are not present, then prefix <TT>pubsub.</TT> is added to all <TT>ejabberd</TT> hostnames.
<DT><B><TT>served_hosts</TT></B><DD> Specifies which hosts are served by the service. <DT><B><TT>served_hosts</TT></B><DD> Specifies which hosts are served by the service.
If absent then only main <TT>ejabberd</TT> host is served. If absent then only main <TT>ejabberd</TT> host is served.
</DL> </DL>
@ -1113,7 +1164,7 @@ Example:
</PRE> </PRE>
<!--TOC subsection <TT>mod_register</TT>--> <!--TOC subsection <TT>mod_register</TT>-->
<H3><A NAME="htoc44">A.13</A>&nbsp;&nbsp;<TT>mod_register</TT></H3><!--SEC END --> <H3><A NAME="htoc45">A.13</A>&nbsp;&nbsp;<TT>mod_register</TT></H3><!--SEC END -->
<A NAME="sec:modregister"></A> <A NAME="sec:modregister"></A>
This module adds support for <A HREF="http://www.jabber.org/jeps/jep-0077.html">JEP-0077</A> (In-Band Registration).<BR> This module adds support for <A HREF="http://www.jabber.org/jeps/jep-0077.html">JEP-0077</A> (In-Band Registration).<BR>
@ -1146,7 +1197,7 @@ Example:
</PRE> </PRE>
<!--TOC subsection <TT>mod_roster</TT>--> <!--TOC subsection <TT>mod_roster</TT>-->
<H3><A NAME="htoc45">A.14</A>&nbsp;&nbsp;<TT>mod_roster</TT></H3><!--SEC END --> <H3><A NAME="htoc46">A.14</A>&nbsp;&nbsp;<TT>mod_roster</TT></H3><!--SEC END -->
<A NAME="sec:modroster"></A> <A NAME="sec:modroster"></A>
This module implements roster management.<BR> This module implements roster management.<BR>
@ -1158,7 +1209,7 @@ discipline (see&nbsp;<A HREF="#sec:modiqdiscoption">A.1.1</A>).
</DL> </DL>
<!--TOC subsection <TT>mod_service_log</TT>--> <!--TOC subsection <TT>mod_service_log</TT>-->
<H3><A NAME="htoc46">A.15</A>&nbsp;&nbsp;<TT>mod_service_log</TT></H3><!--SEC END --> <H3><A NAME="htoc47">A.15</A>&nbsp;&nbsp;<TT>mod_service_log</TT></H3><!--SEC END -->
<A NAME="sec:modservicelog"></A> <A NAME="sec:modservicelog"></A>
This module adds support for logging of user packets via any jabber service. This module adds support for logging of user packets via any jabber service.
@ -1181,7 +1232,7 @@ Example:
</PRE> </PRE>
<!--TOC subsection <TT>mod_stats</TT>--> <!--TOC subsection <TT>mod_stats</TT>-->
<H3><A NAME="htoc47">A.16</A>&nbsp;&nbsp;<TT>mod_stats</TT></H3><!--SEC END --> <H3><A NAME="htoc48">A.16</A>&nbsp;&nbsp;<TT>mod_stats</TT></H3><!--SEC END -->
<A NAME="sec:modstats"></A> <A NAME="sec:modstats"></A>
This module adds support for <A HREF="http://www.jabber.org/jeps/jep-0039.html">JEP-0039</A> (Statistics Gathering).<BR> This module adds support for <A HREF="http://www.jabber.org/jeps/jep-0039.html">JEP-0039</A> (Statistics Gathering).<BR>
@ -1193,7 +1244,7 @@ discipline (see&nbsp;<A HREF="#sec:modiqdiscoption">A.1.1</A>).
</DL> </DL>
<!--TOC subsection <TT>mod_time</TT>--> <!--TOC subsection <TT>mod_time</TT>-->
<H3><A NAME="htoc48">A.17</A>&nbsp;&nbsp;<TT>mod_time</TT></H3><!--SEC END --> <H3><A NAME="htoc49">A.17</A>&nbsp;&nbsp;<TT>mod_time</TT></H3><!--SEC END -->
<A NAME="sec:modtime"></A> <A NAME="sec:modtime"></A>
This module answers UTC time on <TT>jabber:iq:time</TT> queries.<BR> This module answers UTC time on <TT>jabber:iq:time</TT> queries.<BR>
@ -1205,7 +1256,7 @@ discipline (see&nbsp;<A HREF="#sec:modiqdiscoption">A.1.1</A>).
</DL> </DL>
<!--TOC subsection <TT>mod_vcard</TT>--> <!--TOC subsection <TT>mod_vcard</TT>-->
<H3><A NAME="htoc49">A.18</A>&nbsp;&nbsp;<TT>mod_vcard</TT></H3><!--SEC END --> <H3><A NAME="htoc50">A.18</A>&nbsp;&nbsp;<TT>mod_vcard</TT></H3><!--SEC END -->
<A NAME="sec:modvcard"></A> <A NAME="sec:modvcard"></A>
This module implements simple Jabber User Directory (based on user vCards) This module implements simple Jabber User Directory (based on user vCards)
@ -1213,29 +1264,41 @@ and answers server vCard on <TT>vcard-temp</TT> queries.<BR>
<BR> <BR>
Options: Options:
<DL COMPACT=compact><DT> <DL COMPACT=compact><DT>
<B><TT>host</TT></B><DD> Defines hostname of service
(see&nbsp;<A HREF="#sec:modhostoption">A.1.2</A>). If not present <B><TT>host</TT></B><DD> Defines hostname of the service
then prefix <TT>vjud.</TT> is added to main <TT>ejabberd</TT> hostname. (see&nbsp;<A HREF="#sec:modhostoption">A.1.2</A>).
<DT><B><TT>hosts</TT></B><DD> Defines hostnames of the service
(see&nbsp;<A HREF="#sec:modhostsoption">A.1.3</A>). If neither <TT>host</TT> nor <TT>hosts</TT>
are not present, then prefix <TT>vjud.</TT> is added to all <TT>ejabberd</TT> hostnames.
<DT><B><TT>iqdisc</TT></B><DD> <TT>vcard-temp</TT> IQ queries processing <DT><B><TT>iqdisc</TT></B><DD> <TT>vcard-temp</TT> IQ queries processing
discipline (see&nbsp;<A HREF="#sec:modiqdiscoption">A.1.1</A>). discipline (see&nbsp;<A HREF="#sec:modiqdiscoption">A.1.1</A>).
<DT><B><TT>search</TT></B><DD> Specifies wheather search is enabled (value is <TT>true</TT>, default) or <DT><B><TT>search</TT></B><DD> Specifies whether search is enabled (value is <TT>true</TT>, default) or
disabled (value is <TT>false</TT>) by the service. If <TT>search</TT> is set to <TT>false</TT>, disabled (value is <TT>false</TT>) by the service. If <TT>search</TT> is set to <TT>false</TT>,
option <TT>host</TT> is ignored and service does not appear in Jabber Discovery items. option <TT>host</TT> is ignored and service does not appear in Jabber Discovery items.
<DT><B><TT>matches</TT></B><DD> Limits the number of reported search results. If value is set to <DT><B><TT>matches</TT></B><DD> Limits the number of reported search results. If value is set to
<TT>infinity</TT> then all search results are reported. Default value is <TT>30</TT>. <TT>infinity</TT> then all search results are reported. Default value is <TT>30</TT>.
<DT><B><TT>allow_return_all</TT></B><DD> Specifies whether search with empty input fields can
return all known users. Default is <TT>false</TT>.
<DT><B><TT>search_all_hosts</TT></B><DD> If set in <TT>true</TT> then search returns matched
items at all virtual hosts. Otherwise only current host items are returned.
Default is <TT>true</TT>.
</DL> </DL>
Example: Example:
<PRE> <PRE>
{modules, {modules,
[ [
... ...
{mod_vcard, [{search, false}, {matches, 20}]} {mod_vcard, [{search, true},
{matches, 20},
{allow_return_all, true},
{search_all_hosts, false}]}
... ...
]}. ]}.
</PRE> </PRE>
<!--TOC subsection <TT>mod_version</TT>--> <!--TOC subsection <TT>mod_version</TT>-->
<H3><A NAME="htoc50">A.19</A>&nbsp;&nbsp;<TT>mod_version</TT></H3><!--SEC END --> <H3><A NAME="htoc51">A.19</A>&nbsp;&nbsp;<TT>mod_version</TT></H3><!--SEC END -->
<A NAME="sec:modversion"></A> <A NAME="sec:modversion"></A>
This module answers <TT>ejabberd</TT> version on <TT>jabber:iq:version</TT> queries.<BR> This module answers <TT>ejabberd</TT> version on <TT>jabber:iq:version</TT> queries.<BR>
@ -1247,7 +1310,7 @@ discipline (see&nbsp;<A HREF="#sec:modiqdiscoption">A.1.1</A>).
</DL> </DL>
<!--TOC section I18n/L10n--> <!--TOC section I18n/L10n-->
<H2><A NAME="htoc51">B</A>&nbsp;&nbsp;I18n/L10n</H2><!--SEC END --> <H2><A NAME="htoc52">B</A>&nbsp;&nbsp;I18n/L10n</H2><!--SEC END -->
<A NAME="sec:i18nl10n"></A> <A NAME="sec:i18nl10n"></A>
All built-in modules support <TT>xml:lang</TT> attribute inside IQ queries. All built-in modules support <TT>xml:lang</TT> attribute inside IQ queries.

View File

@ -69,9 +69,13 @@
\newcommand{\iqdiscitem}[1]{\titem{iqdisc} #1 IQ queries processing \newcommand{\iqdiscitem}[1]{\titem{iqdisc} #1 IQ queries processing
discipline (see~\ref{sec:modiqdiscoption}).} discipline (see~\ref{sec:modiqdiscoption}).}
\newcommand{\hostitem}[1]{\titem{host} Defines hostname of service \newcommand{\hostitem}[1]{
(see~\ref{sec:modhostoption}). If not present \titem{host} Defines hostname of the service
then prefix \jid{#1.} is added to main \ejabberd{} hostname.} (see~\ref{sec:modhostoption}).
\titem{hosts} Defines hostnames of the service
(see~\ref{sec:modhostsoption}). If neither \texttt{host} nor \texttt{hosts}
are not present, then prefix \jid{#1.} is added to all \ejabberd{} hostnames.
}
\title{Ejabberd Installation and Operation Guide} \title{Ejabberd Installation and Operation Guide}
\author{Alexey Shchepin \\ \author{Alexey Shchepin \\
@ -109,6 +113,7 @@ The main features of \ejabberd{} are:
permanently on more than one node. This means that if one of the nodes permanently on more than one node. This means that if one of the nodes
crashes, then the others will continue working without disruption. crashes, then the others will continue working without disruption.
You can also add or replace nodes ``on the fly''. You can also add or replace nodes ``on the fly''.
\item Support for virtual hosting
\item Built-in \tjepref{0045}{Multi-User Chat} service \item Built-in \tjepref{0045}{Multi-User Chat} service
\item Built-in IRC transport \item Built-in IRC transport
\item Built-in \tjepref{0060}{Publish-Subscribe} service \item Built-in \tjepref{0060}{Publish-Subscribe} service
@ -127,8 +132,9 @@ The main features of \ejabberd{} are:
The misfeatures of \ejabberd{} are: The misfeatures of \ejabberd{} are:
\begin{itemize} \begin{itemize}
\item No support for virtual domains
\item No support for authentication and STARTTLS in S2S connections \item No support for authentication and STARTTLS in S2S connections
\item Access rules can be defined only for global conext, not for specific
virtual host
\end{itemize} \end{itemize}
@ -309,13 +315,25 @@ With this lines old global or local options or ACLs will be removed before
adding new ones. adding new ones.
\subsubsection{Host Name} \subsubsection{Host Names}
\label{sec:confighostname} \label{sec:confighostname}
Option \option{hostname} defines name of \Jabber{} domain that \ejabberd{} Option \option{hosts} defines a list of \Jabber{} domains that \ejabberd{}
serves. E.\,g.\ to use \jid{jabber.org} domain add the following line in the config: serves. E.\,g.\ to serve \jid{example.org} and \jid{example.com} domains add
the following line in the config:
\begin{verbatim} \begin{verbatim}
{host, "jabber.org"}. {hosts, ["example.org", "example.com"]}.
\end{verbatim}
Option \option{host} defines one \Jabber{} domain that \ejabberd{} serves.
E.\,g.\ to serve only \jid{example.org} domain add the following line in the
config:
\begin{verbatim}
{host, "example.org"}.
\end{verbatim}
It have the same effect as
\begin{verbatim}
{hosts, ["example.org"]}.
\end{verbatim} \end{verbatim}
%This option is mandatory. %This option is mandatory.
@ -347,8 +365,8 @@ declarations of ACL in config file have following syntax:
\begin{verbatim} \begin{verbatim}
{acl, all, all}. {acl, all, all}.
\end{verbatim} \end{verbatim}
\titem{\{user, <username>\}} Matches local user with name \titem{\{user, <username>\}} Matches user with name
\term{<username>}. Example: \term{<username>} at the first virtual host. Example:
\begin{verbatim} \begin{verbatim}
{acl, admin, {user, "aleksey"}}. {acl, admin, {user, "aleksey"}}.
\end{verbatim} \end{verbatim}
@ -363,7 +381,7 @@ declarations of ACL in config file have following syntax:
{acl, jabberorg, {server, "jabber.org"}}. {acl, jabberorg, {server, "jabber.org"}}.
\end{verbatim} \end{verbatim}
\titem{\{user\_regexp, <regexp>\}} Matches local user with name that \titem{\{user\_regexp, <regexp>\}} Matches local user with name that
matches \term{<regexp>}. Example: matches \term{<regexp>} at the first virtual host. Example:
\begin{verbatim} \begin{verbatim}
{acl, tests, {user, "^test[0-9]*$"}}. {acl, tests, {user, "^test[0-9]*$"}}.
\end{verbatim} \end{verbatim}
@ -400,7 +418,7 @@ declarations of ACL in config file have following syntax:
\end{description} \end{description}
\end{description} \end{description}
The following ACLs pre-defined: The following ACLs are pre-defined:
\begin{description} \begin{description}
\titem{all} Matches all JIDs. \titem{all} Matches all JIDs.
\titem{none} Matches none JIDs. \titem{none} Matches none JIDs.
@ -428,8 +446,8 @@ Example:
Following access rules pre-defined: Following access rules pre-defined:
\begin{description} \begin{description}
\titem{all} Always return ``\term{allow}'' \titem{all} Always returns ``\term{allow}''
\titem{none} Always return ``\term{deny}'' \titem{none} Always returns ``\term{deny}''
\end{description} \end{description}
@ -620,6 +638,7 @@ Example:
{mod_stats, []}, {mod_stats, []},
{mod_vcard, []}, {mod_vcard, []},
{mod_offline, []}, {mod_offline, []},
{mod_announce, [{access, announce}]},
{mod_echo, [{host, "echo.localhost"}]}, {mod_echo, [{host, "echo.localhost"}]},
{mod_private, []}, {mod_private, []},
{mod_irc, []}, {mod_irc, []},
@ -895,6 +914,22 @@ Example:
]}. ]}.
\end{verbatim} \end{verbatim}
\subsubsection{\option{hosts}}
\label{sec:modhostsoption}
This option explicitly defines a list of hostnames for the module which acts as
a service.
Example:
\begin{verbatim}
{modules,
[
...
{mod_echo, [{hosts, ["echo.example.org", "echo.example.com"]}]},
...
]}.
\end{verbatim}
\subsection{\modannounce{}} \subsection{\modannounce{}}
\label{sec:modannounce} \label{sec:modannounce}
@ -903,20 +938,24 @@ This module adds support for broadcast announce messages and MOTD.
When the module is loaded, it handles messages sent to the following JID's When the module is loaded, it handles messages sent to the following JID's
(suppose that main server has address \jid{example.org}): (suppose that main server has address \jid{example.org}):
\begin{description} \begin{description}
\titem{example.org/announce/all} Message is sent to all registered users. \titem{example.org/announce/all} Message is sent to all registered users at
If the user is online and connected to several resources, only resource with \jid{example.org}. If the user is online and connected to several resources,
the highest priority will receive the message. If the registered user is only resource with the highest priority will receive the message. If the
not connected, the message will be stored offline (if oflline storage is registered user is not connected, the message will be stored offline (if
available). oflline storage is available).
\titem{example.org/announce/online} Message is sent to all connected users. \titem{example.org/announce/online} Message is sent to all connected users at
If the user is online and connected to several resources, all resources \jid{example.org}. If the user is online and connected to several resources,
will receive the message. all resources will receive the message.
\titem{example.org/announce/all-hosts/online} Message is sent to all connected
users at every virtual host. If the user is online and connected to several
resources, all resources will receive the message.
\titem{example.org/announce/motd} Message is set as MOTD (Message of the Day) \titem{example.org/announce/motd} Message is set as MOTD (Message of the Day)
and will be sent to users as they login. In addition the message is sent to and is sent to users at \jid{example.org} as they login. In addition the
all connected users (similar to \term{announce/online} resource). message is sent to all connected users (similar to \term{announce/online}
\titem{example.org/announce/motd/update} Message is set as MOTD (Message of the Day) resource).
and will be sent to users as they login. The message is \emph{not sent} to \titem{example.org/announce/motd/update} Message is set as MOTD (Message of the
all connected users. Day) and is sent to users at \jid{example.org} as they login. The message
is \emph{not sent} to all connected users.
\titem{example.org/announce/motd/delete} Any message sent to this JID \titem{example.org/announce/motd/delete} Any message sent to this JID
removes existing MOTD. removes existing MOTD.
\end{description} \end{description}
@ -1207,11 +1246,16 @@ Options:
\begin{description} \begin{description}
\hostitem{vjud} \hostitem{vjud}
\iqdiscitem{\ns{vcard-temp}} \iqdiscitem{\ns{vcard-temp}}
\titem{search} Specifies wheather search is enabled (value is \term{true}, default) or \titem{search} Specifies whether search is enabled (value is \term{true}, default) or
disabled (value is \term{false}) by the service. If \term{search} is set to \term{false}, disabled (value is \term{false}) by the service. If \term{search} is set to \term{false},
option \term{host} is ignored and service does not appear in Jabber Discovery items. option \term{host} is ignored and service does not appear in Jabber Discovery items.
\titem{matches} Limits the number of reported search results. If value is set to \titem{matches} Limits the number of reported search results. If value is set to
\term{infinity} then all search results are reported. Default value is \term{30}. \term{infinity} then all search results are reported. Default value is \term{30}.
\titem{allow\_return\_all} Specifies whether search with empty input fields can
return all known users. Default is \term{false}.
\titem{search\_all\_hosts} If set in \term{true} then search returns matched
items at all virtual hosts. Otherwise only current host items are returned.
Default is \term{true}.
\end{description} \end{description}
Example: Example:
@ -1219,7 +1263,10 @@ Example:
{modules, {modules,
[ [
... ...
{mod_vcard, [{search, false}, {matches, 20}]} {mod_vcard, [{search, true},
{matches, 20},
{allow_return_all, true},
{search_all_hosts, false}]}
... ...
]}. ]}.
\end{verbatim} \end{verbatim}