Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/processone/ejabberd.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorAlexey Shchepin <alexey@process-one.net>2005-04-18 18:47:13 +0400
committerAlexey Shchepin <alexey@process-one.net>2005-04-18 18:47:13 +0400
commit78f3e2edb04648bb15b9f33c04c9baa64b19f74d (patch)
tree6c1f2970d86cc226dd2aaceb920aa39048a1f098 /doc
parente0d1e6809665078c3ea74b056cf3a3f1ef9f1b8f (diff)
* doc/guide.tex: Updated
SVN Revision: 312
Diffstat (limited to 'doc')
-rw-r--r--doc/guide.html229
-rw-r--r--doc/guide.tex107
2 files changed, 223 insertions, 113 deletions
diff --git a/doc/guide.html b/doc/guide.html
index 9609458aa..bcb4f57b1 100644
--- a/doc/guide.html
+++ b/doc/guide.html
@@ -4,7 +4,7 @@
<HEAD><TITLE>Ejabberd Installation and Operation Guide</TITLE>
<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>
<BODY >
<!--HEVEA command line is: /usr/bin/hevea -charset ISO8859-1 guide.tex -->
@@ -55,7 +55,7 @@
<UL><LI>
<A HREF="#htoc12">3.1&nbsp;&nbsp;Initial Configuration</A>
<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="#htoc15">3.1.3&nbsp;&nbsp;Access Rules</A>
<LI><A HREF="#htoc16">3.1.4&nbsp;&nbsp;Shapers Configuration</A>
@@ -85,27 +85,28 @@
<UL><LI>
<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="#htoc33">A.1.3&nbsp;&nbsp;<TT>hosts</TT></A>
</UL>
-<LI><A HREF="#htoc33">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.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.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.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.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.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.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.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.18&nbsp;&nbsp;<TT>mod_vcard</TT></A>
-<LI><A HREF="#htoc50">A.19&nbsp;&nbsp;<TT>mod_version</TT></A>
+<LI><A HREF="#htoc34">A.2&nbsp;&nbsp;<TT>mod_announce</TT></A>
+<LI><A HREF="#htoc35">A.3&nbsp;&nbsp;<TT>mod_configure</TT></A>
+<LI><A HREF="#htoc36">A.4&nbsp;&nbsp;<TT>mod_disco</TT></A>
+<LI><A HREF="#htoc37">A.5&nbsp;&nbsp;<TT>mod_echo</TT></A>
+<LI><A HREF="#htoc38">A.6&nbsp;&nbsp;<TT>mod_irc</TT></A>
+<LI><A HREF="#htoc39">A.7&nbsp;&nbsp;<TT>mod_last</TT></A>
+<LI><A HREF="#htoc40">A.8&nbsp;&nbsp;<TT>mod_muc</TT></A>
+<LI><A HREF="#htoc41">A.9&nbsp;&nbsp;<TT>mod_offline</TT></A>
+<LI><A HREF="#htoc42">A.10&nbsp;&nbsp;<TT>mod_privacy</TT></A>
+<LI><A HREF="#htoc43">A.11&nbsp;&nbsp;<TT>mod_private</TT></A>
+<LI><A HREF="#htoc44">A.12&nbsp;&nbsp;<TT>mod_pubsub</TT></A>
+<LI><A HREF="#htoc45">A.13&nbsp;&nbsp;<TT>mod_register</TT></A>
+<LI><A HREF="#htoc46">A.14&nbsp;&nbsp;<TT>mod_roster</TT></A>
+<LI><A HREF="#htoc47">A.15&nbsp;&nbsp;<TT>mod_service_log</TT></A>
+<LI><A HREF="#htoc48">A.16&nbsp;&nbsp;<TT>mod_stats</TT></A>
+<LI><A HREF="#htoc49">A.17&nbsp;&nbsp;<TT>mod_time</TT></A>
+<LI><A HREF="#htoc50">A.18&nbsp;&nbsp;<TT>mod_vcard</TT></A>
+<LI><A HREF="#htoc51">A.19&nbsp;&nbsp;<TT>mod_version</TT></A>
</UL>
-<LI><A HREF="#htoc51">B&nbsp;&nbsp;I18n/L10n</A>
+<LI><A HREF="#htoc52">B&nbsp;&nbsp;I18n/L10n</A>
</UL>
<!--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
crashes, then the others will continue working without disruption.
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 IRC transport
<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>
The misfeatures of <TT>ejabberd</TT> are:
<UL><LI>
-No support for virtual domains
-<LI>No support for authentication and STARTTLS in S2S connections
+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>
<!--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
adding new ones.<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>
-Option <TT>hostname</TT> defines name of Jabber domain that <TT>ejabberd</TT>
-serves. E.&nbsp;g. to use <TT>jabber.org</TT> domain add the following line in the config:
+Option <TT>hosts</TT> defines a list of Jabber domains that <TT>ejabberd</TT>
+serves. E.&nbsp;g. to serve <TT>example.org</TT> and <TT>example.com</TT> domains add
+the following line in the config:
<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>
<!--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:
<PRE>
{acl, all, all}.
-</PRE><DT><B><TT>{user, &lt;username&gt;}</TT></B><DD> Matches local user with name
- <TT>&lt;username&gt;</TT>. Example:
+</PRE><DT><B><TT>{user, &lt;username&gt;}</TT></B><DD> Matches user with name
+ <TT>&lt;username&gt;</TT> at the first virtual host. Example:
<PRE>
{acl, admin, {user, "aleksey"}}.
</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>
{acl, jabberorg, {server, "jabber.org"}}.
</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>
{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
@@ -405,7 +418,7 @@ declarations of ACL in config file have following syntax:
character not enclosed is matched.
</DL>
</DL>
-The following ACLs pre-defined:
+The following ACLs are pre-defined:
<DL COMPACT=compact><DT>
<B><TT>all</TT></B><DD> Matches all JIDs.
<DT><B><TT>none</TT></B><DD> Matches none JIDs.
@@ -430,8 +443,8 @@ Example:
</PRE>
Following access rules pre-defined:
<DL COMPACT=compact><DT>
-<B><TT>all</TT></B><DD> Always return ``<TT>allow</TT>''
-<DT><B><TT>none</TT></B><DD> Always return ``<TT>deny</TT>''
+<B><TT>all</TT></B><DD> Always returns ``<TT>allow</TT>''
+<DT><B><TT>none</TT></B><DD> Always returns ``<TT>deny</TT>''
</DL>
<!--TOC subsubsection Shapers Configuration-->
@@ -617,6 +630,7 @@ Example:
{mod_stats, []},
{mod_vcard, []},
{mod_offline, []},
+ {mod_announce, [{access, announce}]},
{mod_echo, [{host, "echo.localhost"}]},
{mod_private, []},
{mod_irc, []},
@@ -892,29 +906,50 @@ Example:
...
]}.
</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>-->
-<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>
This module adds support for broadcast announce messages and MOTD.
When the module is loaded, it handles messages sent to the following JID's
(suppose that main server has address <TT>example.org</TT>):
<DL COMPACT=compact><DT>
-<B><TT>example.org/announce/all</TT></B><DD> Message is sent to all registered users.
-If the user is online and connected to several resources, only resource with
-the highest priority will receive the message. If the registered user is
-not connected, the message will be stored offline (if oflline storage is
-available).
-<DT><B><TT>example.org/announce/online</TT></B><DD> Message is sent to all connected users.
-If the user is online and connected to several resources, all resources
-will receive the message.
+<B><TT>example.org/announce/all</TT></B><DD> Message is sent to all registered users at
+<TT>example.org</TT>. If the user is online and connected to several resources,
+only resource with the highest priority will receive the message. If the
+registered user is not connected, the message will be stored offline (if
+oflline storage is available).
+<DT><B><TT>example.org/announce/online</TT></B><DD> Message is sent to all connected users at
+<TT>example.org</TT>. If the user is online and connected to several resources,
+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)
-and will be sent to users as they login. In addition the message is sent to
-all connected users (similar to <TT>announce/online</TT> resource).
-<DT><B><TT>example.org/announce/motd/update</TT></B><DD> Message is set as MOTD (Message of the Day)
-and will be sent to users as they login. The message is <EM>not sent</EM> to
-all connected users.
+and is sent to users at <TT>example.org</TT> as they login. In addition the
+message is sent to all connected users (similar to <TT>announce/online</TT>
+resource).
+<DT><B><TT>example.org/announce/motd/update</TT></B><DD> Message is set as MOTD (Message of the
+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
removes existing MOTD.
</DL>
@@ -937,7 +972,7 @@ Example:
</PRE>
<!--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>
Options:
@@ -947,7 +982,7 @@ discipline (see&nbsp;<A HREF="#sec:modiqdiscoption">A.1.1</A>).
</DL>
<!--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>
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>
<!--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>
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>
Options:
<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
-then prefix <TT>echo.</TT> is added to main <TT>ejabberd</TT> hostname.
+
+ <B><TT>host</TT></B><DD> Defines hostname of the service
+ (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>
<!--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>
This module implements IRC transport.<BR>
<BR>
Options:
<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
-then prefix <TT>irc.</TT> is added to main <TT>ejabberd</TT> hostname.
+
+ <B><TT>host</TT></B><DD> Defines hostname of the service
+ (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>).
</DL>
Example:
@@ -1009,7 +1052,7 @@ Example:
</PRE>
<!--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>
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>
<!--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>
This module implements <A HREF="http://www.jabber.org/jeps/jep-0045.html">JEP-0045</A> (Multi-User Chat) service.<BR>
<BR>
Options:
<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
-then prefix <TT>conference.</TT> is added to main <TT>ejabberd</TT> hostname.
+
+ <B><TT>host</TT></B><DD> Defines hostname of the service
+ (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_create</TT></B><DD> Specifies who is allowed to create new rooms at
MUC service (default value is <TT>all</TT>).
@@ -1056,14 +1103,14 @@ Example:
</PRE>
<!--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>
This module implements offline message storage.<BR>
<BR>
<!--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>
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>
<!--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>
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>
<!--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>
This module implements <A HREF="http://www.jabber.org/jeps/jep-0060.html">JEP-0060</A> (Publish-Subscribe Service).<BR>
<BR>
Options:
<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
-then prefix <TT>pubsub.</TT> is added to main <TT>ejabberd</TT> hostname.
+
+ <B><TT>host</TT></B><DD> Defines hostname of the service
+ (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.
If absent then only main <TT>ejabberd</TT> host is served.
</DL>
@@ -1113,7 +1164,7 @@ Example:
</PRE>
<!--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>
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>
<!--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>
This module implements roster management.<BR>
@@ -1158,7 +1209,7 @@ discipline (see&nbsp;<A HREF="#sec:modiqdiscoption">A.1.1</A>).
</DL>
<!--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>
This module adds support for logging of user packets via any jabber service.
@@ -1181,7 +1232,7 @@ Example:
</PRE>
<!--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>
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>
<!--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>
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>
<!--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>
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>
Options:
<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
-then prefix <TT>vjud.</TT> is added to main <TT>ejabberd</TT> hostname.
+
+ <B><TT>host</TT></B><DD> Defines hostname of the service
+ (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
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>,
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
<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>
Example:
<PRE>
{modules,
[
...
- {mod_vcard, [{search, false}, {matches, 20}]}
+ {mod_vcard, [{search, true},
+ {matches, 20},
+ {allow_return_all, true},
+ {search_all_hosts, false}]}
...
]}.
</PRE>
<!--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>
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>
<!--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>
All built-in modules support <TT>xml:lang</TT> attribute inside IQ queries.
diff --git a/doc/guide.tex b/doc/guide.tex
index 2ced9bc60..4d2d4789c 100644
--- a/doc/guide.tex
+++ b/doc/guide.tex
@@ -69,9 +69,13 @@
\newcommand{\iqdiscitem}[1]{\titem{iqdisc} #1 IQ queries processing
discipline (see~\ref{sec:modiqdiscoption}).}
-\newcommand{\hostitem}[1]{\titem{host} Defines hostname of service
-(see~\ref{sec:modhostoption}). If not present
-then prefix \jid{#1.} is added to main \ejabberd{} hostname.}
+\newcommand{\hostitem}[1]{
+ \titem{host} Defines hostname of the service
+ (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}
\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
crashes, then the others will continue working without disruption.
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 IRC transport
\item Built-in \tjepref{0060}{Publish-Subscribe} service
@@ -127,8 +132,9 @@ The main features of \ejabberd{} are:
The misfeatures of \ejabberd{} are:
\begin{itemize}
-\item No support for virtual domains
\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}
@@ -309,13 +315,25 @@ With this lines old global or local options or ACLs will be removed before
adding new ones.
-\subsubsection{Host Name}
+\subsubsection{Host Names}
\label{sec:confighostname}
-Option \option{hostname} defines name of \Jabber{} domain that \ejabberd{}
-serves. E.\,g.\ to use \jid{jabber.org} domain add the following line in the config:
+Option \option{hosts} defines a list of \Jabber{} domains that \ejabberd{}
+serves. E.\,g.\ to serve \jid{example.org} and \jid{example.com} domains add
+the following line in the config:
+\begin{verbatim}
+ {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}
- {host, "jabber.org"}.
+ {hosts, ["example.org"]}.
\end{verbatim}
%This option is mandatory.
@@ -347,8 +365,8 @@ declarations of ACL in config file have following syntax:
\begin{verbatim}
{acl, all, all}.
\end{verbatim}
-\titem{\{user, <username>\}} Matches local user with name
- \term{<username>}. Example:
+\titem{\{user, <username>\}} Matches user with name
+ \term{<username>} at the first virtual host. Example:
\begin{verbatim}
{acl, admin, {user, "aleksey"}}.
\end{verbatim}
@@ -363,7 +381,7 @@ declarations of ACL in config file have following syntax:
{acl, jabberorg, {server, "jabber.org"}}.
\end{verbatim}
\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}
{acl, tests, {user, "^test[0-9]*$"}}.
\end{verbatim}
@@ -400,7 +418,7 @@ declarations of ACL in config file have following syntax:
\end{description}
\end{description}
-The following ACLs pre-defined:
+The following ACLs are pre-defined:
\begin{description}
\titem{all} Matches all JIDs.
\titem{none} Matches none JIDs.
@@ -428,8 +446,8 @@ Example:
Following access rules pre-defined:
\begin{description}
-\titem{all} Always return ``\term{allow}''
-\titem{none} Always return ``\term{deny}''
+\titem{all} Always returns ``\term{allow}''
+\titem{none} Always returns ``\term{deny}''
\end{description}
@@ -620,6 +638,7 @@ Example:
{mod_stats, []},
{mod_vcard, []},
{mod_offline, []},
+ {mod_announce, [{access, announce}]},
{mod_echo, [{host, "echo.localhost"}]},
{mod_private, []},
{mod_irc, []},
@@ -895,6 +914,22 @@ Example:
]}.
\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{}}
\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
(suppose that main server has address \jid{example.org}):
\begin{description}
-\titem{example.org/announce/all} Message is sent to all registered users.
-If the user is online and connected to several resources, only resource with
-the highest priority will receive the message. If the registered user is
-not connected, the message will be stored offline (if oflline storage is
-available).
-\titem{example.org/announce/online} Message is sent to all connected users.
-If the user is online and connected to several resources, all resources
-will receive the message.
+\titem{example.org/announce/all} Message is sent to all registered users at
+\jid{example.org}. If the user is online and connected to several resources,
+only resource with the highest priority will receive the message. If the
+registered user is not connected, the message will be stored offline (if
+oflline storage is available).
+\titem{example.org/announce/online} Message is sent to all connected users at
+\jid{example.org}. If the user is online and connected to several resources,
+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)
-and will be sent to users as they login. In addition the message is sent to
-all connected users (similar to \term{announce/online} resource).
-\titem{example.org/announce/motd/update} Message is set as MOTD (Message of the Day)
-and will be sent to users as they login. The message is \emph{not sent} to
-all connected users.
+and is sent to users at \jid{example.org} as they login. In addition the
+message is sent to all connected users (similar to \term{announce/online}
+resource).
+\titem{example.org/announce/motd/update} Message is set as MOTD (Message of the
+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
removes existing MOTD.
\end{description}
@@ -1207,11 +1246,16 @@ Options:
\begin{description}
\hostitem{vjud}
\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},
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
-\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}
Example:
@@ -1219,7 +1263,10 @@ Example:
{modules,
[
...
- {mod_vcard, [{search, false}, {matches, 20}]}
+ {mod_vcard, [{search, true},
+ {matches, 20},
+ {allow_return_all, true},
+ {search_all_hosts, false}]}
...
]}.
\end{verbatim}