mirror of
https://github.com/processone/ejabberd.git
synced 2024-12-22 17:28:25 +01:00
* src/ejabberd_sm.erl: The max_user_sessions has been moved to
host configuration. * src/ejabberd.cfg.example: Likewise. * doc/guide.tex: Likewise. SVN Revision: 568
This commit is contained in:
parent
043c2ccf51
commit
753e768090
@ -1,3 +1,10 @@
|
|||||||
|
2006-05-22 Mickael Remond <mickael.remond@process-one.net>
|
||||||
|
|
||||||
|
* src/ejabberd_sm.erl: The max_user_sessions has been moved to
|
||||||
|
host configuration.
|
||||||
|
* src/ejabberd.cfg.example: Likewise.
|
||||||
|
* doc/guide.tex: Likewise.
|
||||||
|
|
||||||
2006-05-21 Mickael Remond <mickael.remond@process-one.net>
|
2006-05-21 Mickael Remond <mickael.remond@process-one.net>
|
||||||
|
|
||||||
* src/ejabberd_sm.erl: An option to limit the number of opened sessions
|
* src/ejabberd_sm.erl: An option to limit the number of opened sessions
|
||||||
|
303
doc/guide.html
303
doc/guide.html
@ -55,6 +55,106 @@ BLOCKQUOTE{margin-left:4ex;margin-right:4ex;text-align:left;}
|
|||||||
|
|
||||||
<H2 CLASS="section">Contents</H2><!--SEC END -->
|
<H2 CLASS="section">Contents</H2><!--SEC END -->
|
||||||
|
|
||||||
|
<UL CLASS="toc"><LI CLASS="li-toc">
|
||||||
|
<A HREF="#htoc1">1 Introduction</A>
|
||||||
|
<UL CLASS="toc"><LI CLASS="li-toc">
|
||||||
|
<A HREF="#htoc2">1.1 Key Features</A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc3">1.2 Additional Features</A>
|
||||||
|
</UL>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc4">2 Installation from Source</A>
|
||||||
|
<UL CLASS="toc"><LI CLASS="li-toc">
|
||||||
|
<A HREF="#htoc5">2.1 Installation Requirements</A>
|
||||||
|
<UL CLASS="toc"><LI CLASS="li-toc">
|
||||||
|
<A HREF="#htoc6">2.1.1 “Unix-like” operating systems</A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc7">2.1.2 Windows</A>
|
||||||
|
</UL>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc8">2.2 Obtaining <TT>ejabberd</TT></A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc9">2.3 Compilation</A>
|
||||||
|
<UL CLASS="toc"><LI CLASS="li-toc">
|
||||||
|
<A HREF="#htoc10">2.3.1 “Unix-like” operating systems</A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc11">2.3.2 Windows</A>
|
||||||
|
</UL>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc12">2.4 Starting</A>
|
||||||
|
</UL>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc13">3 Configuration</A>
|
||||||
|
<UL CLASS="toc"><LI CLASS="li-toc">
|
||||||
|
<A HREF="#htoc14">3.1 Initial Configuration</A>
|
||||||
|
<UL CLASS="toc"><LI CLASS="li-toc">
|
||||||
|
<A HREF="#htoc15">3.1.1 Host Names</A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc16">3.1.2 Default Language</A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc17">3.1.3 Access Rules</A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc18">3.1.4 Shapers</A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc19">3.1.5 Limitation of the number of opened sessions</A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc20">3.1.6 Listened Sockets</A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc21">3.1.7 Modules</A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc22">3.1.8 Virtual Hosting</A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc23">3.1.9 SASL anonymous and anonymous login</A>
|
||||||
|
</UL>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc24">3.2 Relational Database Support</A>
|
||||||
|
<UL CLASS="toc"><LI CLASS="li-toc">
|
||||||
|
<A HREF="#htoc25">3.2.1 Authentication against a relational database</A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc26">3.2.2 Relational database for other modules</A>
|
||||||
|
</UL>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc27">3.3 Creating an Initial Administrator</A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc28">3.4 Online Configuration and Monitoring</A>
|
||||||
|
<UL CLASS="toc"><LI CLASS="li-toc">
|
||||||
|
<A HREF="#htoc29">3.4.1 Web Interface</A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc30">3.4.2 <TT>ejabberdctl</TT></A>
|
||||||
|
</UL>
|
||||||
|
</UL>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc31">4 Firewall Settings</A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc32">5 SRV Records</A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc33">6 Clustering</A>
|
||||||
|
<UL CLASS="toc"><LI CLASS="li-toc">
|
||||||
|
<A HREF="#htoc34">6.1 How it Works</A>
|
||||||
|
<UL CLASS="toc"><LI CLASS="li-toc">
|
||||||
|
<A HREF="#htoc35">6.1.1 Router</A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc36">6.1.2 Local Router</A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc37">6.1.3 Session Manager</A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc38">6.1.4 s2s Manager</A>
|
||||||
|
</UL>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc39">6.2 Clustering Setup</A>
|
||||||
|
</UL>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc40">A Built-in Modules</A>
|
||||||
|
<UL CLASS="toc"><LI CLASS="li-toc">
|
||||||
|
<A HREF="#htoc41">A.1 Overview</A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc42">A.2 Common Options</A>
|
||||||
|
<UL CLASS="toc"><LI CLASS="li-toc">
|
||||||
|
<A HREF="#htoc43">A.2.1 <TT>iqdisc</TT></A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc44">A.2.2 <TT>hosts</TT></A>
|
||||||
|
</UL>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc45">A.3 <TT>mod_announce</TT></A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc46">A.4 <TT>mod_disco</TT></A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc47">A.5 <TT>mod_echo</TT></A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc48">A.6 <TT>mod_irc</TT></A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc49">A.7 <TT>mod_last</TT></A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc50">A.8 <TT>mod_muc</TT></A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc51">A.9 <TT>mod_muc_log</TT></A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc52">A.10 <TT>mod_offline</TT></A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc53">A.11 <TT>mod_privacy</TT></A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc54">A.12 <TT>mod_private</TT></A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc55">A.13 <TT>mod_pubsub</TT></A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc56">A.14 <TT>mod_register</TT></A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc57">A.15 <TT>mod_roster</TT></A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc58">A.16 <TT>mod_service_log</TT></A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc59">A.17 <TT>mod_shared_roster</TT></A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc60">A.18 <TT>mod_stats</TT></A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc61">A.19 <TT>mod_time</TT></A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc62">A.20 <TT>mod_vcard</TT></A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc63">A.21 <TT>mod_version</TT></A>
|
||||||
|
</UL>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc64">B Internationalization and Localization</A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc65">C Release Notes</A>
|
||||||
|
<UL CLASS="toc"><LI CLASS="li-toc">
|
||||||
|
<A HREF="#htoc66">C.1 ejabberd 0.9</A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc67">C.2 ejabberd 0.9.1</A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc68">C.3 ejabberd 0.9.8</A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc69">C.4 ejabberd 1.0.0</A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc70">C.5 ejabberd 1.1.0</A>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc71">C.6 ejabberd 1.1.1</A>
|
||||||
|
</UL>
|
||||||
|
<LI CLASS="li-toc"><A HREF="#htoc72">D Acknowledgements</A>
|
||||||
|
</UL>
|
||||||
|
|
||||||
<!--TOC section Introduction-->
|
<!--TOC section Introduction-->
|
||||||
|
|
||||||
@ -506,9 +606,24 @@ To define a shaper named “<TT>normal</TT>” with traffic speed limite
|
|||||||
<PRE CLASS="verbatim">
|
<PRE CLASS="verbatim">
|
||||||
{shaper, fast, {maxrate, 50000}}.
|
{shaper, fast, {maxrate, 50000}}.
|
||||||
</PRE></UL>
|
</PRE></UL>
|
||||||
|
<!--TOC subsubsection Limitation of the number of opened sessions-->
|
||||||
|
|
||||||
|
<H4 CLASS="subsubsection"><A NAME="htoc19">3.1.5</A> Limitation of the number of opened sessions</H4><!--SEC END -->
|
||||||
|
|
||||||
|
<A NAME="sec:configmaxsessions"></A>
|
||||||
|
|
||||||
|
This option specifies the maximum number of sessions (authenticated
|
||||||
|
connections) per user. If a user tries to open more than the maximum number of
|
||||||
|
allowed sessions, with different resources, the first opened session will be
|
||||||
|
disconnected. The error “<TT>session replaced</TT>” is send to the
|
||||||
|
disconnected session. This value is either a number or <TT>infinity</TT>. For
|
||||||
|
example <CODE>{max\_user\_sessions, 10}</CODE>. The default value is <TT>10</TT>.<BR>
|
||||||
|
<BR>
|
||||||
|
This option can be define per virtual host. See section <A HREF="#sec:configvirtualhost">3.1.8</A>.<BR>
|
||||||
|
<BR>
|
||||||
<!--TOC subsubsection Listened Sockets-->
|
<!--TOC subsubsection Listened Sockets-->
|
||||||
|
|
||||||
<H4 CLASS="subsubsection"><A NAME="htoc19">3.1.5</A> Listened Sockets</H4><!--SEC END -->
|
<H4 CLASS="subsubsection"><A NAME="htoc20">3.1.6</A> Listened Sockets</H4><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:configlistened"></A>
|
<A NAME="sec:configlistened"></A>
|
||||||
|
|
||||||
@ -532,9 +647,9 @@ Currently next modules are implemented:
|
|||||||
<TR><TD VALIGN=top ALIGN=left NOWRAP> </TD>
|
<TR><TD VALIGN=top ALIGN=left NOWRAP> </TD>
|
||||||
<TD VALIGN=top ALIGN=left NOWRAP>Options</TD>
|
<TD VALIGN=top ALIGN=left NOWRAP>Options</TD>
|
||||||
<TD VALIGN=top ALIGN=left><TT>access</TT>, <TT>certfile</TT>, <TT>inet6</TT>,
|
<TD VALIGN=top ALIGN=left><TT>access</TT>, <TT>certfile</TT>, <TT>inet6</TT>,
|
||||||
<TT>ip</TT>, <TT>max_stanza_size</TT>, <TT>max_user_sessions</TT>,
|
<TT>ip</TT>, <TT>max_stanza_size</TT>, <TT>shaper</TT>, <TT>ssl</TT>,
|
||||||
<TT>shaper</TT>, <TT>ssl</TT>, <TT>tls</TT>, <TT>starttls</TT>,
|
<TT>tls</TT>, <TT>starttls</TT>, <TT>starttls_required</TT>,
|
||||||
<TT>starttls_required</TT>, <TT>zlib</TT></TD>
|
<TT>zlib</TT></TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR><TD VALIGN=top ALIGN=left NOWRAP><TT>ejabberd_s2s_in</TT></TD>
|
<TR><TD VALIGN=top ALIGN=left NOWRAP><TT>ejabberd_s2s_in</TT></TD>
|
||||||
<TD VALIGN=top ALIGN=left NOWRAP>Description</TD>
|
<TD VALIGN=top ALIGN=left NOWRAP>Description</TD>
|
||||||
@ -595,19 +710,9 @@ If HTTP Polling is enabled, it will be available at
|
|||||||
<DT CLASS="dt-description"><B><TT>{max_stanza_size, Size}</TT></B><DD CLASS="dd-description"> This
|
<DT CLASS="dt-description"><B><TT>{max_stanza_size, Size}</TT></B><DD CLASS="dd-description"> This
|
||||||
option specifies an approximate maximal size in bytes of XML stanzas.
|
option specifies an approximate maximal size in bytes of XML stanzas.
|
||||||
For example <CODE>{max\_stanza\_size, 65536}</CODE>. The default value
|
For example <CODE>{max\_stanza\_size, 65536}</CODE>. The default value
|
||||||
is “<TT>infinity</TT>”.<BR>
|
is “<TT>infinity</TT>”.
|
||||||
<BR>
|
<DT CLASS="dt-description"><B><TT>{shaper, <access rule>}</TT></B><DD CLASS="dd-description"> This option defines a
|
||||||
<DT CLASS="dt-description"><B><TT>{max_user_sessions, Max}</TT></B><DD CLASS="dd-description"> This
|
shaper for the port (see section <A HREF="#sec:configshaper">3.1.4</A>). The default value
|
||||||
option specifies the maximum number of sessions (authenticated
|
|
||||||
connections) per user. If a user tries to open more than the maximum
|
|
||||||
number of allowed sessions, with different resources, the first opened
|
|
||||||
session will be disconnected. The error “<TT>session replaced</TT>” is
|
|
||||||
send to the disconnected session. This value is either a number or
|
|
||||||
<TT>infinity</TT>. For example <CODE>{max\_user\_sessions, 10}</CODE>. The
|
|
||||||
default value is <TT>10</TT>.<BR>
|
|
||||||
<BR>
|
|
||||||
<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:configshaper">??</A>). The default value
|
|
||||||
is “<TT>none</TT>”.
|
is “<TT>none</TT>”.
|
||||||
<DT CLASS="dt-description"><B><TT>ssl</TT></B><DD CLASS="dd-description"> This option specifies that traffic on
|
<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. You should also set the
|
||||||
@ -652,7 +757,7 @@ c2s connections are listened for on port 5222 and 5223 (SSL) and denied
|
|||||||
traffic enabled.
|
traffic enabled.
|
||||||
<LI CLASS="li-itemize">Port 5280 is serving the web interface and the HTTP Polling service. Note
|
<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
|
that it is also possible to serve them on different ports. The second
|
||||||
example in section <A HREF="#sec:webadm">??</A> shows how exactly this can be done.
|
example in section <A HREF="#sec:webadm">3.4.1</A> shows how exactly this can be done.
|
||||||
<LI CLASS="li-itemize">All users except for the administrators have a traffic of limit
|
<LI CLASS="li-itemize">All users except for the administrators have a traffic of limit
|
||||||
1,000 Bytes/second
|
1,000 Bytes/second
|
||||||
<LI CLASS="li-itemize">The
|
<LI CLASS="li-itemize">The
|
||||||
@ -740,14 +845,14 @@ services you have to make the transports log and do XDB by themselves:
|
|||||||
</PRE>
|
</PRE>
|
||||||
<!--TOC subsubsection Modules-->
|
<!--TOC subsubsection Modules-->
|
||||||
|
|
||||||
<H4 CLASS="subsubsection"><A NAME="htoc20">3.1.6</A> Modules</H4><!--SEC END -->
|
<H4 CLASS="subsubsection"><A NAME="htoc21">3.1.7</A> Modules</H4><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:configmodules"></A>
|
<A NAME="sec:configmodules"></A>
|
||||||
|
|
||||||
The option <TT>modules</TT> defines the list of modules that will be loaded after
|
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
|
<TT>ejabberd</TT>'s startup. Each entry in the list is a tuple in which the first
|
||||||
element is the name of a module and the second is a list of options for that
|
element is the name of a module and the second is a list of options for that
|
||||||
module. Read section <A HREF="#sec:modules">??</A> for detailed information about modules.<BR>
|
module. Read section <A HREF="#sec:modules">A</A> for detailed information about modules.<BR>
|
||||||
<BR>
|
<BR>
|
||||||
Examples:
|
Examples:
|
||||||
<UL CLASS="itemize"><LI CLASS="li-itemize">
|
<UL CLASS="itemize"><LI CLASS="li-itemize">
|
||||||
@ -769,7 +874,7 @@ In this simple example, only the module <TT>mod_echo</TT> is loaded and no
|
|||||||
</PRE></UL>
|
</PRE></UL>
|
||||||
<!--TOC subsubsection Virtual Hosting-->
|
<!--TOC subsubsection Virtual Hosting-->
|
||||||
|
|
||||||
<H4 CLASS="subsubsection"><A NAME="htoc21">3.1.7</A> Virtual Hosting</H4><!--SEC END -->
|
<H4 CLASS="subsubsection"><A NAME="htoc22">3.1.8</A> Virtual Hosting</H4><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:configvirtualhost"></A>
|
<A NAME="sec:configvirtualhost"></A>
|
||||||
|
|
||||||
@ -809,7 +914,7 @@ Domain <TT>example.net</TT> is using the internal authentication method while
|
|||||||
</PRE></UL>
|
</PRE></UL>
|
||||||
<!--TOC subsubsection SASL anonymous and anonymous login-->
|
<!--TOC subsubsection SASL anonymous and anonymous login-->
|
||||||
|
|
||||||
<H4 CLASS="subsubsection"><A NAME="htoc22">3.1.8</A> SASL anonymous and anonymous login</H4><!--SEC END -->
|
<H4 CLASS="subsubsection"><A NAME="htoc23">3.1.9</A> SASL anonymous and anonymous login</H4><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:configsaslanonymous"></A>
|
<A NAME="sec:configsaslanonymous"></A>
|
||||||
|
|
||||||
@ -833,7 +938,7 @@ very special cases. It defaults to false.<BR>
|
|||||||
enabled.
|
enabled.
|
||||||
</UL>
|
</UL>
|
||||||
Those options are defined for each virtual host with the <TT>host_config</TT>
|
Those options are defined for each virtual host with the <TT>host_config</TT>
|
||||||
parameter (see section <A HREF="#sec:configvirtualhost">??</A>).<BR>
|
parameter (see section <A HREF="#sec:configvirtualhost">3.1.8</A>).<BR>
|
||||||
<BR>
|
<BR>
|
||||||
Examples:
|
Examples:
|
||||||
<UL CLASS="itemize"><LI CLASS="li-itemize">
|
<UL CLASS="itemize"><LI CLASS="li-itemize">
|
||||||
@ -865,12 +970,12 @@ available from:
|
|||||||
<BR>
|
<BR>
|
||||||
<!--TOC subsection Relational Database Support-->
|
<!--TOC subsection Relational Database Support-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc23">3.2</A> Relational Database Support</H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc24">3.2</A> Relational Database Support</H3><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:relationaldatabase"></A>
|
<A NAME="sec:relationaldatabase"></A>
|
||||||
<!--TOC subsubsection Authentication against a relational database-->
|
<!--TOC subsubsection Authentication against a relational database-->
|
||||||
|
|
||||||
<H4 CLASS="subsubsection"><A NAME="htoc24">3.2.1</A> Authentication against a relational database</H4><!--SEC END -->
|
<H4 CLASS="subsubsection"><A NAME="htoc25">3.2.1</A> Authentication against a relational database</H4><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:relationaldatabaseauth"></A>
|
<A NAME="sec:relationaldatabaseauth"></A>
|
||||||
ejabberd use its internal Mnesia database as a default. It is however possible
|
ejabberd use its internal Mnesia database as a default. It is however possible
|
||||||
@ -925,7 +1030,7 @@ available from: <A HREF="http://support.process-one.net/doc/display/MESSENGER/Us
|
|||||||
<BR>
|
<BR>
|
||||||
<!--TOC subsubsection Relational database for other modules-->
|
<!--TOC subsubsection Relational database for other modules-->
|
||||||
|
|
||||||
<H4 CLASS="subsubsection"><A NAME="htoc25">3.2.2</A> Relational database for other modules</H4><!--SEC END -->
|
<H4 CLASS="subsubsection"><A NAME="htoc26">3.2.2</A> Relational database for other modules</H4><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:relationaldatabaseextra"></A>
|
<A NAME="sec:relationaldatabaseextra"></A>
|
||||||
It is possible to use a relational database to store pieces of
|
It is possible to use a relational database to store pieces of
|
||||||
@ -942,7 +1047,7 @@ Last connection date and time: Use <TT>mod_last_odbc</TT> instead of
|
|||||||
</UL>
|
</UL>
|
||||||
<!--TOC subsection Creating an Initial Administrator-->
|
<!--TOC subsection Creating an Initial Administrator-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc26">3.3</A> Creating an Initial Administrator</H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc27">3.3</A> Creating an Initial Administrator</H3><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:initialadmin"></A>
|
<A NAME="sec:initialadmin"></A>
|
||||||
Before the web interface can be entered to perform administration tasks, an
|
Before the web interface can be entered to perform administration tasks, an
|
||||||
@ -954,10 +1059,10 @@ Register an account on your <TT>ejabberd</TT> deployment. An account can be
|
|||||||
created in two ways:
|
created in two ways:
|
||||||
<OL CLASS="enumerate" type=a><LI CLASS="li-enumerate">
|
<OL CLASS="enumerate" type=a><LI CLASS="li-enumerate">
|
||||||
Using the tool <TT>ejabberdctl</TT> (see
|
Using the tool <TT>ejabberdctl</TT> (see
|
||||||
section <A HREF="#sec:ejabberdctl">??</A>):
|
section <A HREF="#sec:ejabberdctl">3.4.2</A>):
|
||||||
<PRE CLASS="verbatim">
|
<PRE CLASS="verbatim">
|
||||||
% ejabberdctl node@host register admin example.org password
|
% ejabberdctl node@host register admin example.org password
|
||||||
</PRE><LI CLASS="li-enumerate">Using In-Band Registration (see section <A HREF="#sec:modregister">??</A>): you can
|
</PRE><LI CLASS="li-enumerate">Using In-Band Registration (see section <A HREF="#sec:modregister">A.14</A>): you can
|
||||||
use a Jabber client to register an account.
|
use a Jabber client to register an account.
|
||||||
</OL>
|
</OL>
|
||||||
<LI CLASS="li-enumerate">Edit the configuration file to promote the account created in the previous
|
<LI CLASS="li-enumerate">Edit the configuration file to promote the account created in the previous
|
||||||
@ -974,22 +1079,22 @@ Register an account on your <TT>ejabberd</TT> deployment. An account can be
|
|||||||
</OL>
|
</OL>
|
||||||
<!--TOC subsection Online Configuration and Monitoring-->
|
<!--TOC subsection Online Configuration and Monitoring-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc27">3.4</A> Online Configuration and Monitoring</H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc28">3.4</A> Online Configuration and Monitoring</H3><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:onlineconfig"></A>
|
<A NAME="sec:onlineconfig"></A>
|
||||||
<!--TOC subsubsection Web Interface-->
|
<!--TOC subsubsection Web Interface-->
|
||||||
|
|
||||||
<H4 CLASS="subsubsection"><A NAME="htoc28">3.4.1</A> Web Interface</H4><!--SEC END -->
|
<H4 CLASS="subsubsection"><A NAME="htoc29">3.4.1</A> Web Interface</H4><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:webadm"></A>
|
<A NAME="sec:webadm"></A>
|
||||||
|
|
||||||
To perform online configuration of <TT>ejabberd</TT> you need to enable the
|
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
|
<TT>ejabberd_http</TT> listener with the option <TT>web_admin</TT> (see
|
||||||
section <A HREF="#sec:configlistened">??</A>). Then you can open
|
section <A HREF="#sec:configlistened">3.1.6</A>). Then you can open
|
||||||
<CODE>http://server:port/admin/</CODE> in your favourite web browser. You
|
<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
|
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
|
of an <TT>ejabberd</TT> user with administrator rights. After authentication
|
||||||
you will see a page similar to figure <A HREF="#fig:webadmmain">??</A>.
|
you will see a page similar to figure <A HREF="#fig:webadmmain">1</A>.
|
||||||
<BLOCKQUOTE CLASS="figure"><DIV CLASS="center"><DIV CLASS="center"><HR WIDTH="80%" SIZE=2></DIV>
|
<BLOCKQUOTE CLASS="figure"><DIV CLASS="center"><DIV CLASS="center"><HR WIDTH="80%" SIZE=2></DIV>
|
||||||
|
|
||||||
<IMG SRC="webadmmain.png">
|
<IMG SRC="webadmmain.png">
|
||||||
@ -1053,7 +1158,7 @@ You can serve the web interface on the same port as the
|
|||||||
</PRE></UL>
|
</PRE></UL>
|
||||||
<!--TOC subsubsection <TT>ejabberdctl</TT>-->
|
<!--TOC subsubsection <TT>ejabberdctl</TT>-->
|
||||||
|
|
||||||
<H4 CLASS="subsubsection"><A NAME="htoc29">3.4.2</A> <TT>ejabberdctl</TT></H4><!--SEC END -->
|
<H4 CLASS="subsubsection"><A NAME="htoc30">3.4.2</A> <TT>ejabberdctl</TT></H4><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:ejabberdctl"></A>
|
<A NAME="sec:ejabberdctl"></A>
|
||||||
It is possible to do some administration operations using the command
|
It is possible to do some administration operations using the command
|
||||||
@ -1099,7 +1204,7 @@ Additional information:
|
|||||||
</DL>
|
</DL>
|
||||||
<!--TOC section Firewall Settings-->
|
<!--TOC section Firewall Settings-->
|
||||||
|
|
||||||
<H2 CLASS="section"><A NAME="htoc30">4</A> Firewall Settings</H2><!--SEC END -->
|
<H2 CLASS="section"><A NAME="htoc31">4</A> Firewall Settings</H2><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:firewall"></A>
|
<A NAME="sec:firewall"></A>
|
||||||
|
|
||||||
@ -1119,16 +1224,16 @@ You need to take the following TCP ports in mind when configuring your firewall:
|
|||||||
<TD ALIGN=left NOWRAP>s2s connections.</TD>
|
<TD ALIGN=left NOWRAP>s2s connections.</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR><TD ALIGN=left NOWRAP>4369</TD>
|
<TR><TD ALIGN=left NOWRAP>4369</TD>
|
||||||
<TD ALIGN=left NOWRAP>Only for clustering (see <A HREF="#sec:clustering">??</A>).</TD>
|
<TD ALIGN=left NOWRAP>Only for clustering (see <A HREF="#sec:clustering">6</A>).</TD>
|
||||||
</TR>
|
</TR>
|
||||||
<TR><TD ALIGN=left NOWRAP>port range</TD>
|
<TR><TD ALIGN=left NOWRAP>port range</TD>
|
||||||
<TD ALIGN=left NOWRAP>Only for clustring (see <A HREF="#sec:clustering">??</A>). This range
|
<TD ALIGN=left NOWRAP>Only for clustring (see <A HREF="#sec:clustering">6</A>). This range
|
||||||
is configurable (see <A HREF="#sec:starting">??</A>).</TD>
|
is configurable (see <A HREF="#sec:starting">2.4</A>).</TD>
|
||||||
</TR></TABLE>
|
</TR></TABLE>
|
||||||
<DIV CLASS="center"><HR WIDTH="80%" SIZE=2></DIV></DIV></BLOCKQUOTE>
|
<DIV CLASS="center"><HR WIDTH="80%" SIZE=2></DIV></DIV></BLOCKQUOTE>
|
||||||
<!--TOC section SRV Records-->
|
<!--TOC section SRV Records-->
|
||||||
|
|
||||||
<H2 CLASS="section"><A NAME="htoc31">5</A> SRV Records</H2><!--SEC END -->
|
<H2 CLASS="section"><A NAME="htoc32">5</A> SRV Records</H2><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:srv"></A>
|
<A NAME="sec:srv"></A>
|
||||||
|
|
||||||
@ -1140,13 +1245,13 @@ General information:
|
|||||||
</UL>
|
</UL>
|
||||||
<!--TOC section Clustering-->
|
<!--TOC section Clustering-->
|
||||||
|
|
||||||
<H2 CLASS="section"><A NAME="htoc32">6</A> Clustering</H2><!--SEC END -->
|
<H2 CLASS="section"><A NAME="htoc33">6</A> Clustering</H2><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:clustering"></A>
|
<A NAME="sec:clustering"></A>
|
||||||
|
|
||||||
<!--TOC subsection How it Works-->
|
<!--TOC subsection How it Works-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc33">6.1</A> How it Works</H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc34">6.1</A> How it Works</H3><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:howitworks"></A>
|
<A NAME="sec:howitworks"></A>
|
||||||
|
|
||||||
@ -1167,7 +1272,7 @@ router,
|
|||||||
</UL>
|
</UL>
|
||||||
<!--TOC subsubsection Router-->
|
<!--TOC subsubsection Router-->
|
||||||
|
|
||||||
<H4 CLASS="subsubsection"><A NAME="htoc34">6.1.1</A> Router</H4><!--SEC END -->
|
<H4 CLASS="subsubsection"><A NAME="htoc35">6.1.1</A> Router</H4><!--SEC END -->
|
||||||
|
|
||||||
|
|
||||||
This module is the main router of Jabber packets on each node. It
|
This module is the main router of Jabber packets on each node. It
|
||||||
@ -1178,7 +1283,7 @@ appropriate process. If not, it is sent to the s2s manager.<BR>
|
|||||||
<BR>
|
<BR>
|
||||||
<!--TOC subsubsection Local Router-->
|
<!--TOC subsubsection Local Router-->
|
||||||
|
|
||||||
<H4 CLASS="subsubsection"><A NAME="htoc35">6.1.2</A> Local Router</H4><!--SEC END -->
|
<H4 CLASS="subsubsection"><A NAME="htoc36">6.1.2</A> Local Router</H4><!--SEC END -->
|
||||||
|
|
||||||
|
|
||||||
This module routes packets which have a destination domain equal to
|
This module routes packets which have a destination domain equal to
|
||||||
@ -1188,7 +1293,7 @@ on its content.<BR>
|
|||||||
<BR>
|
<BR>
|
||||||
<!--TOC subsubsection Session Manager-->
|
<!--TOC subsubsection Session Manager-->
|
||||||
|
|
||||||
<H4 CLASS="subsubsection"><A NAME="htoc36">6.1.3</A> Session Manager</H4><!--SEC END -->
|
<H4 CLASS="subsubsection"><A NAME="htoc37">6.1.3</A> Session Manager</H4><!--SEC END -->
|
||||||
|
|
||||||
|
|
||||||
This module routes packets to local users. It looks up to which user
|
This module routes packets to local users. It looks up to which user
|
||||||
@ -1198,7 +1303,7 @@ storage, or bounced back.<BR>
|
|||||||
<BR>
|
<BR>
|
||||||
<!--TOC subsubsection s2s Manager-->
|
<!--TOC subsubsection s2s Manager-->
|
||||||
|
|
||||||
<H4 CLASS="subsubsection"><A NAME="htoc37">6.1.4</A> s2s Manager</H4><!--SEC END -->
|
<H4 CLASS="subsubsection"><A NAME="htoc38">6.1.4</A> s2s Manager</H4><!--SEC END -->
|
||||||
|
|
||||||
|
|
||||||
This module routes packets to other Jabber servers. First, it
|
This module routes packets to other Jabber servers. First, it
|
||||||
@ -1209,7 +1314,7 @@ serving this connection, otherwise a new connection is opened.<BR>
|
|||||||
<BR>
|
<BR>
|
||||||
<!--TOC subsection Clustering Setup-->
|
<!--TOC subsection Clustering Setup-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc38">6.2</A> Clustering Setup</H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc39">6.2</A> Clustering Setup</H3><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:cluster"></A>
|
<A NAME="sec:cluster"></A>
|
||||||
|
|
||||||
@ -1282,13 +1387,13 @@ domain.<BR>
|
|||||||
|
|
||||||
<!--TOC section Built-in Modules-->
|
<!--TOC section Built-in Modules-->
|
||||||
|
|
||||||
<H2 CLASS="section"><A NAME="htoc39">A</A> Built-in Modules</H2><!--SEC END -->
|
<H2 CLASS="section"><A NAME="htoc40">A</A> Built-in Modules</H2><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:modules"></A>
|
<A NAME="sec:modules"></A>
|
||||||
|
|
||||||
<!--TOC subsection Overview-->
|
<!--TOC subsection Overview-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc40">A.1</A> Overview</H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc41">A.1</A> Overview</H3><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:modoverview"></A>
|
<A NAME="sec:modoverview"></A>
|
||||||
|
|
||||||
@ -1500,7 +1605,7 @@ XMPP compliancy.<BR>
|
|||||||
<BR>
|
<BR>
|
||||||
<!--TOC subsection Common Options-->
|
<!--TOC subsection Common Options-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc41">A.2</A> Common Options</H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc42">A.2</A> Common Options</H3><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:modcommonopts"></A>
|
<A NAME="sec:modcommonopts"></A>
|
||||||
The following options are used by many modules. Therefore, they are described in
|
The following options are used by many modules. Therefore, they are described in
|
||||||
@ -1508,7 +1613,7 @@ this separate section.<BR>
|
|||||||
<BR>
|
<BR>
|
||||||
<!--TOC subsubsection <TT>iqdisc</TT>-->
|
<!--TOC subsubsection <TT>iqdisc</TT>-->
|
||||||
|
|
||||||
<H4 CLASS="subsubsection"><A NAME="htoc42">A.2.1</A> <TT>iqdisc</TT></H4><!--SEC END -->
|
<H4 CLASS="subsubsection"><A NAME="htoc43">A.2.1</A> <TT>iqdisc</TT></H4><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:modiqdiscoption"></A>
|
<A NAME="sec:modiqdiscoption"></A>
|
||||||
|
|
||||||
@ -1542,7 +1647,7 @@ Example:
|
|||||||
</PRE>
|
</PRE>
|
||||||
<!--TOC subsubsection <TT>hosts</TT>-->
|
<!--TOC subsubsection <TT>hosts</TT>-->
|
||||||
|
|
||||||
<H4 CLASS="subsubsection"><A NAME="htoc43">A.2.2</A> <TT>hosts</TT></H4><!--SEC END -->
|
<H4 CLASS="subsubsection"><A NAME="htoc44">A.2.2</A> <TT>hosts</TT></H4><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:modhostsoption"></A>
|
<A NAME="sec:modhostsoption"></A>
|
||||||
|
|
||||||
@ -1581,7 +1686,7 @@ Serving the echo module on one domain:
|
|||||||
</PRE></UL>
|
</PRE></UL>
|
||||||
<!--TOC subsection <TT>mod_announce</TT>-->
|
<!--TOC subsection <TT>mod_announce</TT>-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc44">A.3</A> <TT>mod_announce</TT></H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc45">A.3</A> <TT>mod_announce</TT></H3><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:modannounce"></A>
|
<A NAME="sec:modannounce"></A>
|
||||||
|
|
||||||
@ -1597,7 +1702,7 @@ hosts:
|
|||||||
to several resources, only the resource with the highest priority will receive
|
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
|
the message. If the registered user is not connected, the message will be
|
||||||
stored offline in assumption that offline storage
|
stored offline in assumption that offline storage
|
||||||
(see section <A HREF="#sec:modoffline">??</A>) is enabled.
|
(see section <A HREF="#sec:modoffline">A.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
|
<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
|
message is sent to all connected users. If the user is online and connected
|
||||||
to several resources, all resources will receive the message.
|
to several resources, all resources will receive the message.
|
||||||
@ -1647,7 +1752,7 @@ Only administrators can send announcements:
|
|||||||
</PRE></UL>
|
</PRE></UL>
|
||||||
<!--TOC subsection <TT>mod_disco</TT>-->
|
<!--TOC subsection <TT>mod_disco</TT>-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc45">A.4</A> <TT>mod_disco</TT></H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc46">A.4</A> <TT>mod_disco</TT></H3><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:moddisco"></A>
|
<A NAME="sec:moddisco"></A>
|
||||||
|
|
||||||
@ -1664,7 +1769,7 @@ Options:
|
|||||||
<B><TT>iqdisc</TT></B><DD CLASS="dd-description"> This specifies
|
<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
|
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
|
<TT>http://jabber.org/protocol/disco#info</TT>) IQ queries
|
||||||
(see section <A HREF="#sec:modiqdiscoption">??</A>).
|
(see section <A HREF="#sec:modiqdiscoption">A.2.1</A>).
|
||||||
<DT CLASS="dt-description"><B><TT>extra_domains</TT></B><DD CLASS="dd-description"> With this option,
|
<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.
|
extra domains can be added to the Service Discovery item list.
|
||||||
</DL>
|
</DL>
|
||||||
@ -1699,7 +1804,7 @@ To serve a link to the Jabber User Directory on <TT>jabber.org</TT>:
|
|||||||
</PRE></UL>
|
</PRE></UL>
|
||||||
<!--TOC subsection <TT>mod_echo</TT>-->
|
<!--TOC subsection <TT>mod_echo</TT>-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc46">A.5</A> <TT>mod_echo</TT></H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc47">A.5</A> <TT>mod_echo</TT></H3><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:modecho"></A>
|
<A NAME="sec:modecho"></A>
|
||||||
|
|
||||||
@ -1711,7 +1816,7 @@ Options:
|
|||||||
<DL CLASS="description" COMPACT=compact><DT CLASS="dt-description">
|
<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
|
<B><TT>hosts</TT></B><DD CLASS="dd-description"> This option defines the hostnames of the
|
||||||
service (see section <A HREF="#sec:modhostsoption">??</A>). If neither <TT>hosts</TT> nor
|
service (see section <A HREF="#sec:modhostsoption">A.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
|
the old <TT>host</TT> is present, the prefix “<TT>echo.</TT>” is added to all
|
||||||
<TT>ejabberd</TT> hostnames.
|
<TT>ejabberd</TT> hostnames.
|
||||||
|
|
||||||
@ -1728,11 +1833,11 @@ Mirror, mirror, on the wall, who is the most beautiful
|
|||||||
...
|
...
|
||||||
]}.
|
]}.
|
||||||
</PRE><LI CLASS="li-itemize">If you still do not understand the inner workings of <TT>mod_echo</TT>,
|
</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">??</A>.
|
you can find a few more examples in section <A HREF="#sec:modhostsoption">A.2.2</A>.
|
||||||
</UL>
|
</UL>
|
||||||
<!--TOC subsection <TT>mod_irc</TT>-->
|
<!--TOC subsection <TT>mod_irc</TT>-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc47">A.6</A> <TT>mod_irc</TT></H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc48">A.6</A> <TT>mod_irc</TT></H3><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:modirc"></A>
|
<A NAME="sec:modirc"></A>
|
||||||
|
|
||||||
@ -1761,7 +1866,7 @@ Options:
|
|||||||
<DL CLASS="description" COMPACT=compact><DT CLASS="dt-description">
|
<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
|
<B><TT>hosts</TT></B><DD CLASS="dd-description"> This option defines the hostnames of the
|
||||||
service (see section <A HREF="#sec:modhostsoption">??</A>). If neither <TT>hosts</TT> nor
|
service (see section <A HREF="#sec:modhostsoption">A.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
|
the old <TT>host</TT> is present, the prefix “<TT>irc.</TT>” is added to all
|
||||||
<TT>ejabberd</TT> hostnames.
|
<TT>ejabberd</TT> hostnames.
|
||||||
|
|
||||||
@ -1802,7 +1907,7 @@ In the first example, the IRC transport is available on (all) your
|
|||||||
</PRE></UL>
|
</PRE></UL>
|
||||||
<!--TOC subsection <TT>mod_last</TT>-->
|
<!--TOC subsection <TT>mod_last</TT>-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc48">A.7</A> <TT>mod_last</TT></H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc49">A.7</A> <TT>mod_last</TT></H3><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:modlast"></A>
|
<A NAME="sec:modlast"></A>
|
||||||
|
|
||||||
@ -1815,11 +1920,11 @@ Options:
|
|||||||
<DL CLASS="description" COMPACT=compact><DT CLASS="dt-description">
|
<DL CLASS="description" COMPACT=compact><DT CLASS="dt-description">
|
||||||
<B><TT>iqdisc</TT></B><DD CLASS="dd-description"> This specifies
|
<B><TT>iqdisc</TT></B><DD CLASS="dd-description"> This specifies
|
||||||
the processing discipline for Last activity (<TT>jabber:iq:last</TT>) IQ queries
|
the processing discipline for Last activity (<TT>jabber:iq:last</TT>) IQ queries
|
||||||
(see section <A HREF="#sec:modiqdiscoption">??</A>).
|
(see section <A HREF="#sec:modiqdiscoption">A.2.1</A>).
|
||||||
</DL>
|
</DL>
|
||||||
<!--TOC subsection <TT>mod_muc</TT>-->
|
<!--TOC subsection <TT>mod_muc</TT>-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc49">A.8</A> <TT>mod_muc</TT></H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc50">A.8</A> <TT>mod_muc</TT></H3><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:modmuc"></A>
|
<A NAME="sec:modmuc"></A>
|
||||||
|
|
||||||
@ -1839,7 +1944,7 @@ Options:
|
|||||||
<DL CLASS="description" COMPACT=compact><DT CLASS="dt-description">
|
<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
|
<B><TT>hosts</TT></B><DD CLASS="dd-description"> This option defines the hostnames of the
|
||||||
service (see section <A HREF="#sec:modhostsoption">??</A>). If neither <TT>hosts</TT> nor
|
service (see section <A HREF="#sec:modhostsoption">A.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
|
the old <TT>host</TT> is present, the prefix “<TT>conference.</TT>” is added to all
|
||||||
<TT>ejabberd</TT> hostnames.
|
<TT>ejabberd</TT> hostnames.
|
||||||
|
|
||||||
@ -1909,7 +2014,7 @@ In the first example everyone is allowed to use the Multi-User Chat
|
|||||||
</PRE></UL>
|
</PRE></UL>
|
||||||
<!--TOC subsection <TT>mod_muc_log</TT>-->
|
<!--TOC subsection <TT>mod_muc_log</TT>-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc50">A.9</A> <TT>mod_muc_log</TT></H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc51">A.9</A> <TT>mod_muc_log</TT></H3><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:modmuclog"></A>
|
<A NAME="sec:modmuclog"></A>
|
||||||
|
|
||||||
@ -1981,7 +2086,7 @@ Example configuration:
|
|||||||
</PRE>
|
</PRE>
|
||||||
<!--TOC subsection <TT>mod_offline</TT>-->
|
<!--TOC subsection <TT>mod_offline</TT>-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc51">A.10</A> <TT>mod_offline</TT></H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc52">A.10</A> <TT>mod_offline</TT></H3><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:modoffline"></A>
|
<A NAME="sec:modoffline"></A>
|
||||||
|
|
||||||
@ -1989,11 +2094,11 @@ 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
|
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
|
online again. Thus it is very similar to how email works. Note that
|
||||||
<TT>ejabberdctl</TT> has a command to delete expired messages
|
<TT>ejabberdctl</TT> has a command to delete expired messages
|
||||||
(see section <A HREF="#sec:ejabberdctl">??</A>).<BR>
|
(see section <A HREF="#sec:ejabberdctl">3.4.2</A>).<BR>
|
||||||
<BR>
|
<BR>
|
||||||
<!--TOC subsection <TT>mod_privacy</TT>-->
|
<!--TOC subsection <TT>mod_privacy</TT>-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc52">A.11</A> <TT>mod_privacy</TT></H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc53">A.11</A> <TT>mod_privacy</TT></H3><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:modprivacy"></A>
|
<A NAME="sec:modprivacy"></A>
|
||||||
|
|
||||||
@ -2024,11 +2129,11 @@ Options:
|
|||||||
<DL CLASS="description" COMPACT=compact><DT CLASS="dt-description">
|
<DL CLASS="description" COMPACT=compact><DT CLASS="dt-description">
|
||||||
<B><TT>iqdisc</TT></B><DD CLASS="dd-description"> This specifies
|
<B><TT>iqdisc</TT></B><DD CLASS="dd-description"> This specifies
|
||||||
the processing discipline for Blocking Communication (<TT>jabber:iq:privacy</TT>) IQ queries
|
the processing discipline for Blocking Communication (<TT>jabber:iq:privacy</TT>) IQ queries
|
||||||
(see section <A HREF="#sec:modiqdiscoption">??</A>).
|
(see section <A HREF="#sec:modiqdiscoption">A.2.1</A>).
|
||||||
</DL>
|
</DL>
|
||||||
<!--TOC subsection <TT>mod_private</TT>-->
|
<!--TOC subsection <TT>mod_private</TT>-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc53">A.12</A> <TT>mod_private</TT></H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc54">A.12</A> <TT>mod_private</TT></H3><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:modprivate"></A>
|
<A NAME="sec:modprivate"></A>
|
||||||
|
|
||||||
@ -2043,11 +2148,11 @@ Options:
|
|||||||
<DL CLASS="description" COMPACT=compact><DT CLASS="dt-description">
|
<DL CLASS="description" COMPACT=compact><DT CLASS="dt-description">
|
||||||
<B><TT>iqdisc</TT></B><DD CLASS="dd-description"> This specifies
|
<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
|
the processing discipline for Private XML Storage (<TT>jabber:iq:private</TT>) IQ queries
|
||||||
(see section <A HREF="#sec:modiqdiscoption">??</A>).
|
(see section <A HREF="#sec:modiqdiscoption">A.2.1</A>).
|
||||||
</DL>
|
</DL>
|
||||||
<!--TOC subsection <TT>mod_pubsub</TT>-->
|
<!--TOC subsection <TT>mod_pubsub</TT>-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc54">A.13</A> <TT>mod_pubsub</TT></H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc55">A.13</A> <TT>mod_pubsub</TT></H3><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:modpubsub"></A>
|
<A NAME="sec:modpubsub"></A>
|
||||||
|
|
||||||
@ -2077,7 +2182,7 @@ Options:
|
|||||||
<DL CLASS="description" COMPACT=compact><DT CLASS="dt-description">
|
<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
|
<B><TT>hosts</TT></B><DD CLASS="dd-description"> This option defines the hostnames of the
|
||||||
service (see section <A HREF="#sec:modhostsoption">??</A>). If neither <TT>hosts</TT> nor
|
service (see section <A HREF="#sec:modhostsoption">A.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
|
the old <TT>host</TT> is present, the prefix “<TT>pubsub.</TT>” is added to all
|
||||||
<TT>ejabberd</TT> hostnames.
|
<TT>ejabberd</TT> hostnames.
|
||||||
|
|
||||||
@ -2096,7 +2201,7 @@ Example:
|
|||||||
</PRE>
|
</PRE>
|
||||||
<!--TOC subsection <TT>mod_register</TT>-->
|
<!--TOC subsection <TT>mod_register</TT>-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc55">A.14</A> <TT>mod_register</TT></H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc56">A.14</A> <TT>mod_register</TT></H3><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:modregister"></A>
|
<A NAME="sec:modregister"></A>
|
||||||
|
|
||||||
@ -2115,7 +2220,7 @@ Options:
|
|||||||
restrictions by default).
|
restrictions by default).
|
||||||
<DT CLASS="dt-description"><B><TT>iqdisc</TT></B><DD CLASS="dd-description"> This specifies
|
<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
|
the processing discipline for In-Band Registration (<TT>jabber:iq:register</TT>) IQ queries
|
||||||
(see section <A HREF="#sec:modiqdiscoption">??</A>).
|
(see section <A HREF="#sec:modiqdiscoption">A.2.1</A>).
|
||||||
</DL>
|
</DL>
|
||||||
Examples:
|
Examples:
|
||||||
<UL CLASS="itemize"><LI CLASS="li-itemize">
|
<UL CLASS="itemize"><LI CLASS="li-itemize">
|
||||||
@ -2153,7 +2258,7 @@ Next example prohibits the registration of too short account names and of
|
|||||||
</PRE></UL>
|
</PRE></UL>
|
||||||
<!--TOC subsection <TT>mod_roster</TT>-->
|
<!--TOC subsection <TT>mod_roster</TT>-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc56">A.15</A> <TT>mod_roster</TT></H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc57">A.15</A> <TT>mod_roster</TT></H3><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:modroster"></A>
|
<A NAME="sec:modroster"></A>
|
||||||
|
|
||||||
@ -2163,11 +2268,11 @@ Options:
|
|||||||
<DL CLASS="description" COMPACT=compact><DT CLASS="dt-description">
|
<DL CLASS="description" COMPACT=compact><DT CLASS="dt-description">
|
||||||
<B><TT>iqdisc</TT></B><DD CLASS="dd-description"> This specifies
|
<B><TT>iqdisc</TT></B><DD CLASS="dd-description"> This specifies
|
||||||
the processing discipline for Roster Management (<TT>jabber:iq:roster</TT>) IQ queries
|
the processing discipline for Roster Management (<TT>jabber:iq:roster</TT>) IQ queries
|
||||||
(see section <A HREF="#sec:modiqdiscoption">??</A>).
|
(see section <A HREF="#sec:modiqdiscoption">A.2.1</A>).
|
||||||
</DL>
|
</DL>
|
||||||
<!--TOC subsection <TT>mod_service_log</TT>-->
|
<!--TOC subsection <TT>mod_service_log</TT>-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc57">A.16</A> <TT>mod_service_log</TT></H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc58">A.16</A> <TT>mod_service_log</TT></H3><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:modservicelog"></A>
|
<A NAME="sec:modservicelog"></A>
|
||||||
|
|
||||||
@ -2207,7 +2312,7 @@ To log all end user packets to the Bandersnatch service running on
|
|||||||
</PRE></UL>
|
</PRE></UL>
|
||||||
<!--TOC subsection <TT>mod_shared_roster</TT>-->
|
<!--TOC subsection <TT>mod_shared_roster</TT>-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc58">A.17</A> <TT>mod_shared_roster</TT></H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc59">A.17</A> <TT>mod_shared_roster</TT></H3><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:modsharedroster"></A>
|
<A NAME="sec:modsharedroster"></A>
|
||||||
|
|
||||||
@ -2334,7 +2439,7 @@ Take the case of a computer club that wants all its members seeing each
|
|||||||
</UL>
|
</UL>
|
||||||
<!--TOC subsection <TT>mod_stats</TT>-->
|
<!--TOC subsection <TT>mod_stats</TT>-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc59">A.18</A> <TT>mod_stats</TT></H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc60">A.18</A> <TT>mod_stats</TT></H3><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:modstats"></A>
|
<A NAME="sec:modstats"></A>
|
||||||
|
|
||||||
@ -2350,7 +2455,7 @@ Options:
|
|||||||
<DL CLASS="description" COMPACT=compact><DT CLASS="dt-description">
|
<DL CLASS="description" COMPACT=compact><DT CLASS="dt-description">
|
||||||
<B><TT>iqdisc</TT></B><DD CLASS="dd-description"> This specifies
|
<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
|
the processing discipline for Statistics Gathering (<TT>http://jabber.org/protocol/stats</TT>) IQ queries
|
||||||
(see section <A HREF="#sec:modiqdiscoption">??</A>).
|
(see section <A HREF="#sec:modiqdiscoption">A.2.1</A>).
|
||||||
</DL>
|
</DL>
|
||||||
As there are only a small amount of clients (for example
|
As there are only a small amount of clients (for example
|
||||||
<A HREF="http://tkabber.jabber.ru/">Tkabber</A>) and software libraries with
|
<A HREF="http://tkabber.jabber.ru/">Tkabber</A>) and software libraries with
|
||||||
@ -2376,7 +2481,7 @@ You can request the number of online users on the current virtual host
|
|||||||
</PRE></UL>
|
</PRE></UL>
|
||||||
<!--TOC subsection <TT>mod_time</TT>-->
|
<!--TOC subsection <TT>mod_time</TT>-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc60">A.19</A> <TT>mod_time</TT></H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc61">A.19</A> <TT>mod_time</TT></H3><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:modtime"></A>
|
<A NAME="sec:modtime"></A>
|
||||||
|
|
||||||
@ -2387,11 +2492,11 @@ Options:
|
|||||||
<DL CLASS="description" COMPACT=compact><DT CLASS="dt-description">
|
<DL CLASS="description" COMPACT=compact><DT CLASS="dt-description">
|
||||||
<B><TT>iqdisc</TT></B><DD CLASS="dd-description"> This specifies
|
<B><TT>iqdisc</TT></B><DD CLASS="dd-description"> This specifies
|
||||||
the processing discipline for Entity Time (<TT>jabber:iq:time</TT>) IQ queries
|
the processing discipline for Entity Time (<TT>jabber:iq:time</TT>) IQ queries
|
||||||
(see section <A HREF="#sec:modiqdiscoption">??</A>).
|
(see section <A HREF="#sec:modiqdiscoption">A.2.1</A>).
|
||||||
</DL>
|
</DL>
|
||||||
<!--TOC subsection <TT>mod_vcard</TT>-->
|
<!--TOC subsection <TT>mod_vcard</TT>-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc61">A.20</A> <TT>mod_vcard</TT></H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc62">A.20</A> <TT>mod_vcard</TT></H3><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:modvcard"></A>
|
<A NAME="sec:modvcard"></A>
|
||||||
|
|
||||||
@ -2404,13 +2509,13 @@ Options:
|
|||||||
<DL CLASS="description" COMPACT=compact><DT CLASS="dt-description">
|
<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
|
<B><TT>hosts</TT></B><DD CLASS="dd-description"> This option defines the hostnames of the
|
||||||
service (see section <A HREF="#sec:modhostsoption">??</A>). If neither <TT>hosts</TT> nor
|
service (see section <A HREF="#sec:modhostsoption">A.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
|
the old <TT>host</TT> is present, the prefix “<TT>vjud.</TT>” is added to all
|
||||||
<TT>ejabberd</TT> hostnames.
|
<TT>ejabberd</TT> hostnames.
|
||||||
|
|
||||||
<DT CLASS="dt-description"><B><TT>iqdisc</TT></B><DD CLASS="dd-description"> This specifies
|
<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
|
the processing discipline for <TT>vcard-temp</TT> IQ queries
|
||||||
(see section <A HREF="#sec:modiqdiscoption">??</A>).
|
(see section <A HREF="#sec:modiqdiscoption">A.2.1</A>).
|
||||||
<DT CLASS="dt-description"><B><TT>search</TT></B><DD CLASS="dd-description"> This option specifies whether the search
|
<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
|
functionality is enabled (value: <TT>true</TT>) or disabled
|
||||||
(value: <TT>false</TT>). If disabled, the option <TT>hosts</TT> will be
|
(value: <TT>false</TT>). If disabled, the option <TT>hosts</TT> will be
|
||||||
@ -2457,7 +2562,7 @@ In this first situation, search results are limited to twenty items,
|
|||||||
</PRE></UL>
|
</PRE></UL>
|
||||||
<!--TOC subsection <TT>mod_version</TT>-->
|
<!--TOC subsection <TT>mod_version</TT>-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc62">A.21</A> <TT>mod_version</TT></H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc63">A.21</A> <TT>mod_version</TT></H3><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:modversion"></A>
|
<A NAME="sec:modversion"></A>
|
||||||
|
|
||||||
@ -2468,16 +2573,16 @@ Options:
|
|||||||
<DL CLASS="description" COMPACT=compact><DT CLASS="dt-description">
|
<DL CLASS="description" COMPACT=compact><DT CLASS="dt-description">
|
||||||
<B><TT>iqdisc</TT></B><DD CLASS="dd-description"> This specifies
|
<B><TT>iqdisc</TT></B><DD CLASS="dd-description"> This specifies
|
||||||
the processing discipline for Software Version (<TT>jabber:iq:version</TT>) IQ queries
|
the processing discipline for Software Version (<TT>jabber:iq:version</TT>) IQ queries
|
||||||
(see section <A HREF="#sec:modiqdiscoption">??</A>).
|
(see section <A HREF="#sec:modiqdiscoption">A.2.1</A>).
|
||||||
</DL>
|
</DL>
|
||||||
<!--TOC section Internationalization and Localization-->
|
<!--TOC section Internationalization and Localization-->
|
||||||
|
|
||||||
<H2 CLASS="section"><A NAME="htoc63">B</A> Internationalization and Localization</H2><!--SEC END -->
|
<H2 CLASS="section"><A NAME="htoc64">B</A> Internationalization and Localization</H2><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:i18nl10n"></A>
|
<A NAME="sec:i18nl10n"></A>
|
||||||
|
|
||||||
All built-in modules support the <TT>xml:lang</TT> attribute inside IQ queries.
|
All built-in modules support the <TT>xml:lang</TT> attribute inside IQ queries.
|
||||||
Figure <A HREF="#fig:discorus">??</A>, for example, shows the reply to the following query:
|
Figure <A HREF="#fig:discorus">2</A>, for example, shows the reply to the following query:
|
||||||
<PRE CLASS="verbatim">
|
<PRE CLASS="verbatim">
|
||||||
<iq id='5'
|
<iq id='5'
|
||||||
to='example.org'
|
to='example.org'
|
||||||
@ -2499,7 +2604,7 @@ Figure <A HREF="#fig:discorus">??</A>, for example, shows the reply to the
|
|||||||
<A NAME="fig:discorus"></A>
|
<A NAME="fig:discorus"></A>
|
||||||
<DIV CLASS="center"><HR WIDTH="80%" SIZE=2></DIV></DIV></BLOCKQUOTE>
|
<DIV CLASS="center"><HR WIDTH="80%" SIZE=2></DIV></DIV></BLOCKQUOTE>
|
||||||
The web interface also supports the <CODE>Accept-Language</CODE> HTTP header (compare
|
The web interface also supports the <CODE>Accept-Language</CODE> HTTP header (compare
|
||||||
figure <A HREF="#fig:webadmmainru">??</A> with figure <A HREF="#fig:webadmmain">??</A>)
|
figure <A HREF="#fig:webadmmainru">3</A> with figure <A HREF="#fig:webadmmain">1</A>)
|
||||||
<BLOCKQUOTE CLASS="figure"><DIV CLASS="center"><DIV CLASS="center"><HR WIDTH="80%" SIZE=2></DIV>
|
<BLOCKQUOTE CLASS="figure"><DIV CLASS="center"><DIV CLASS="center"><HR WIDTH="80%" SIZE=2></DIV>
|
||||||
|
|
||||||
<IMG SRC="webadmmainru.png">
|
<IMG SRC="webadmmainru.png">
|
||||||
@ -2515,13 +2620,13 @@ figure <A HREF="#fig:webadmmainru">??</A> with figure <A HREF="#fig:we
|
|||||||
<DIV CLASS="center"><HR WIDTH="80%" SIZE=2></DIV></DIV></BLOCKQUOTE>
|
<DIV CLASS="center"><HR WIDTH="80%" SIZE=2></DIV></DIV></BLOCKQUOTE>
|
||||||
<!--TOC section Release Notes-->
|
<!--TOC section Release Notes-->
|
||||||
|
|
||||||
<H2 CLASS="section"><A NAME="htoc64">C</A> Release Notes</H2><!--SEC END -->
|
<H2 CLASS="section"><A NAME="htoc65">C</A> Release Notes</H2><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:releasenotes"></A>
|
<A NAME="sec:releasenotes"></A>
|
||||||
|
|
||||||
<!--TOC subsection ejabberd 0.9-->
|
<!--TOC subsection ejabberd 0.9-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc65">C.1</A> ejabberd 0.9</H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc66">C.1</A> ejabberd 0.9</H3><!--SEC END -->
|
||||||
|
|
||||||
<PRE CLASS="verbatim">
|
<PRE CLASS="verbatim">
|
||||||
Release notes
|
Release notes
|
||||||
@ -2615,7 +2720,7 @@ Bugfixes
|
|||||||
</PRE>
|
</PRE>
|
||||||
<!--TOC subsection ejabberd 0.9.1-->
|
<!--TOC subsection ejabberd 0.9.1-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc66">C.2</A> ejabberd 0.9.1</H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc67">C.2</A> ejabberd 0.9.1</H3><!--SEC END -->
|
||||||
|
|
||||||
<PRE CLASS="verbatim">
|
<PRE CLASS="verbatim">
|
||||||
Release notes
|
Release notes
|
||||||
@ -2683,7 +2788,7 @@ Bugfixes
|
|||||||
</PRE>
|
</PRE>
|
||||||
<!--TOC subsection ejabberd 0.9.8-->
|
<!--TOC subsection ejabberd 0.9.8-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc67">C.3</A> ejabberd 0.9.8</H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc68">C.3</A> ejabberd 0.9.8</H3><!--SEC END -->
|
||||||
|
|
||||||
<PRE CLASS="verbatim">
|
<PRE CLASS="verbatim">
|
||||||
Release notes
|
Release notes
|
||||||
@ -2788,7 +2893,7 @@ END
|
|||||||
</PRE>
|
</PRE>
|
||||||
<!--TOC subsection ejabberd 1.0.0-->
|
<!--TOC subsection ejabberd 1.0.0-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc68">C.4</A> ejabberd 1.0.0</H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc69">C.4</A> ejabberd 1.0.0</H3><!--SEC END -->
|
||||||
|
|
||||||
<PRE CLASS="verbatim">
|
<PRE CLASS="verbatim">
|
||||||
Release Notes
|
Release Notes
|
||||||
@ -2914,7 +3019,7 @@ END
|
|||||||
</PRE>
|
</PRE>
|
||||||
<!--TOC subsection ejabberd 1.1.0-->
|
<!--TOC subsection ejabberd 1.1.0-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc69">C.5</A> ejabberd 1.1.0</H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc70">C.5</A> ejabberd 1.1.0</H3><!--SEC END -->
|
||||||
|
|
||||||
<PRE CLASS="verbatim">
|
<PRE CLASS="verbatim">
|
||||||
Release Notes
|
Release Notes
|
||||||
@ -3035,7 +3140,7 @@ END
|
|||||||
</PRE>
|
</PRE>
|
||||||
<!--TOC subsection ejabberd 1.1.1-->
|
<!--TOC subsection ejabberd 1.1.1-->
|
||||||
|
|
||||||
<H3 CLASS="subsection"><A NAME="htoc70">C.6</A> ejabberd 1.1.1</H3><!--SEC END -->
|
<H3 CLASS="subsection"><A NAME="htoc71">C.6</A> ejabberd 1.1.1</H3><!--SEC END -->
|
||||||
|
|
||||||
<PRE CLASS="verbatim">
|
<PRE CLASS="verbatim">
|
||||||
Release Notes
|
Release Notes
|
||||||
@ -3160,7 +3265,7 @@ END
|
|||||||
</PRE>
|
</PRE>
|
||||||
<!--TOC section Acknowledgements-->
|
<!--TOC section Acknowledgements-->
|
||||||
|
|
||||||
<H2 CLASS="section"><A NAME="htoc71">D</A> Acknowledgements</H2><!--SEC END -->
|
<H2 CLASS="section"><A NAME="htoc72">D</A> Acknowledgements</H2><!--SEC END -->
|
||||||
|
|
||||||
<A NAME="sec:acknowledgements"></A>
|
<A NAME="sec:acknowledgements"></A>
|
||||||
|
|
||||||
|
@ -505,6 +505,19 @@ Examples:
|
|||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
\subsubsection{Limitation of the number of opened sessions}
|
||||||
|
\label{sec:configmaxsessions}
|
||||||
|
\ind{options!max\_user\_sessions}
|
||||||
|
|
||||||
|
This option specifies the maximum number of sessions (authenticated
|
||||||
|
connections) per user. If a user tries to open more than the maximum number of
|
||||||
|
allowed sessions, with different resources, the first opened session will be
|
||||||
|
disconnected. The error ``\term{session replaced}'' is send to the
|
||||||
|
disconnected session. This value is either a number or \term{infinity}. For
|
||||||
|
example \verb|{max\_user\_sessions, 10}|. The default value is \term{10}.
|
||||||
|
|
||||||
|
This option can be define per virtual host. See section~\ref{sec:configvirtualhost}.
|
||||||
|
|
||||||
\subsubsection{Listened Sockets}
|
\subsubsection{Listened Sockets}
|
||||||
\label{sec:configlistened}
|
\label{sec:configlistened}
|
||||||
\ind{options!listen}
|
\ind{options!listen}
|
||||||
@ -526,9 +539,9 @@ Currently next modules are implemented:
|
|||||||
\begin{tabular}{|l|l|p{87mm}|}
|
\begin{tabular}{|l|l|p{87mm}|}
|
||||||
\hline \texttt{ejabberd\_c2s}& Description& Handles c2s connections.\\
|
\hline \texttt{ejabberd\_c2s}& Description& Handles c2s connections.\\
|
||||||
\cline{2-3} & Options& \texttt{access}, \texttt{certfile}, \texttt{inet6},
|
\cline{2-3} & Options& \texttt{access}, \texttt{certfile}, \texttt{inet6},
|
||||||
\texttt{ip}, \texttt{max\_stanza\_size}, \texttt{max\_user\_sessions},
|
\texttt{ip}, \texttt{max\_stanza\_size}, \texttt{shaper}, \texttt{ssl},
|
||||||
\texttt{shaper}, \texttt{ssl}, \texttt{tls}, \texttt{starttls},
|
\texttt{tls}, \texttt{starttls}, \texttt{starttls\_required},
|
||||||
\texttt{starttls\_required}, \texttt{zlib}\\
|
\texttt{zlib}\\
|
||||||
\hline \texttt{ejabberd\_s2s\_in}& Description& Handles incoming s2s
|
\hline \texttt{ejabberd\_s2s\_in}& Description& Handles incoming s2s
|
||||||
connections.\\
|
connections.\\
|
||||||
\cline{2-3} & Options& \texttt{inet6}, \texttt{ip},
|
\cline{2-3} & Options& \texttt{inet6}, \texttt{ip},
|
||||||
@ -574,16 +587,6 @@ The following options are available:
|
|||||||
option specifies an approximate maximal size in bytes of XML stanzas.
|
option specifies an approximate maximal size in bytes of XML stanzas.
|
||||||
For example \verb|{max\_stanza\_size, 65536}|. The default value
|
For example \verb|{max\_stanza\_size, 65536}|. The default value
|
||||||
is ``\term{infinity}''.
|
is ``\term{infinity}''.
|
||||||
|
|
||||||
\titem{\{max\_user\_sessions, Max\}} \ind{options!max\_user\_sessions}This
|
|
||||||
option specifies the maximum number of sessions (authenticated
|
|
||||||
connections) per user. If a user tries to open more than the maximum
|
|
||||||
number of allowed sessions, with different resources, the first opened
|
|
||||||
session will be disconnected. The error ``\term{session replaced}'' is
|
|
||||||
send to the disconnected session. This value is either a number or
|
|
||||||
\term{infinity}. For example \verb|{max\_user\_sessions, 10}|. The
|
|
||||||
default value is \term{10}.
|
|
||||||
|
|
||||||
\titem{\{shaper, <access rule>\}} \ind{options!shaper}This option defines a
|
\titem{\{shaper, <access rule>\}} \ind{options!shaper}This option defines a
|
||||||
shaper for the port (see section~\ref{sec:configshaper}). The default value
|
shaper for the port (see section~\ref{sec:configshaper}). The default value
|
||||||
is ``\term{none}''.
|
is ``\term{none}''.
|
||||||
|
@ -97,6 +97,9 @@
|
|||||||
% Host name:
|
% Host name:
|
||||||
{hosts, ["localhost"]}.
|
{hosts, ["localhost"]}.
|
||||||
|
|
||||||
|
%% Define the maximum number of time a single user is allowed to connect:
|
||||||
|
{max_user_sessions, 10}.
|
||||||
|
|
||||||
%% Anonymous login support:
|
%% Anonymous login support:
|
||||||
%% auth_method: anonymous
|
%% auth_method: anonymous
|
||||||
%% anonymous_protocol: sasl_anon|login_anon|both
|
%% anonymous_protocol: sasl_anon|login_anon|both
|
||||||
@ -114,7 +117,6 @@
|
|||||||
{listen,
|
{listen,
|
||||||
[{5222, ejabberd_c2s, [{access, c2s}, {shaper, c2s_shaper},
|
[{5222, ejabberd_c2s, [{access, c2s}, {shaper, c2s_shaper},
|
||||||
{max_stanza_size, 65536},
|
{max_stanza_size, 65536},
|
||||||
{max_user_sessions, 10},
|
|
||||||
starttls, {certfile, "./ssl.pem"}]},
|
starttls, {certfile, "./ssl.pem"}]},
|
||||||
{5223, ejabberd_c2s, [{access, c2s},
|
{5223, ejabberd_c2s, [{access, c2s},
|
||||||
{max_stanza_size, 65536},
|
{max_stanza_size, 65536},
|
||||||
|
@ -43,7 +43,7 @@
|
|||||||
-record(state, {}).
|
-record(state, {}).
|
||||||
|
|
||||||
%% default value for the maximum number of user connections
|
%% default value for the maximum number of user connections
|
||||||
-define(MAX_USER_SESSIONS, 10).
|
-define(MAX_USER_SESSIONS, infinity).
|
||||||
|
|
||||||
%%====================================================================
|
%%====================================================================
|
||||||
%% API
|
%% API
|
||||||
@ -534,7 +534,7 @@ check_max_sessions(LUser, LServer) ->
|
|||||||
SIDs = mnesia:dirty_select(
|
SIDs = mnesia:dirty_select(
|
||||||
session,
|
session,
|
||||||
[{#session{sid = '$1', usr = {LUser, LServer, '_'}, _ = '_'}, [], ['$1']}]),
|
[{#session{sid = '$1', usr = {LUser, LServer, '_'}, _ = '_'}, [], ['$1']}]),
|
||||||
MaxSessions = get_max_user_sessions(),
|
MaxSessions = get_max_user_sessions(LServer),
|
||||||
if length(SIDs) =< MaxSessions -> ok;
|
if length(SIDs) =< MaxSessions -> ok;
|
||||||
true -> {_, Pid} = lists:min(SIDs),
|
true -> {_, Pid} = lists:min(SIDs),
|
||||||
Pid ! replaced
|
Pid ! replaced
|
||||||
@ -544,21 +544,11 @@ check_max_sessions(LUser, LServer) ->
|
|||||||
%% Get the user_max_session setting
|
%% Get the user_max_session setting
|
||||||
%% This option defines the max number of time a given users are allowed to
|
%% This option defines the max number of time a given users are allowed to
|
||||||
%% log in
|
%% log in
|
||||||
%% This option is only used on c2s connections
|
%% Defaults to infinity
|
||||||
%% Defaults to 10
|
get_max_user_sessions(Host) ->
|
||||||
%% Can be set to infinity
|
case ejabberd_config:get_local_option({max_user_sessions, Host}) of
|
||||||
get_max_user_sessions() ->
|
|
||||||
case ejabberd_config:get_local_option(listen) of
|
|
||||||
undefined -> ?MAX_USER_SESSIONS;
|
undefined -> ?MAX_USER_SESSIONS;
|
||||||
Listeners ->
|
Max -> Max
|
||||||
case lists:keysearch(ejabberd_c2s, 2, Listeners) of
|
|
||||||
{value, {_Port, _Method, Opts}} ->
|
|
||||||
case lists:keysearch(max_user_sessions, 1, Opts) of
|
|
||||||
{value, {_, Max}} -> Max;
|
|
||||||
_ -> ?MAX_USER_SESSIONS
|
|
||||||
end;
|
|
||||||
_ -> ?MAX_USER_SESSIONS
|
|
||||||
end
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user