1
0
Fork 0
mirror of https://github.com/processone/ejabberd synced 2025-10-03 09:49:18 +02:00

*** empty log message ***

SVN Revision: 65
This commit is contained in:
Alexey Shchepin 2003-02-08 18:21:05 +00:00
parent 5169ce43b0
commit 4f7d0c5030
8 changed files with 149 additions and 39 deletions

BIN
doc/confacls.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

BIN
doc/confhostname.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6 KiB

BIN
doc/disco.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

BIN
doc/discoallusers.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

BIN
doc/discorunnodes.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
doc/discorus.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

View file

@ -296,7 +296,7 @@ password ``<TT>secret</TT>''.<BR>
<A NAME="sec:configmodules"></A>Option <TT>modules</TT> defines list of modules that will be loaded after <A NAME="sec:configmodules"></A>Option <TT>modules</TT> defines list of modules that will be loaded after
<TT>ejabberd</TT> startup. Each list element is a tuple where first element is a <TT>ejabberd</TT> startup. Each list element is a tuple where first element is a
name of module and second is list of options to this module. See name of module and second is list of options to this module. See
section&nbsp;<A HREF="#sec:modules">5</A> for detailed information on each module.<BR> section&nbsp;<A HREF="#sec:modules">A</A> for detailed information on each module.<BR>
<BR> <BR>
Example: Example:
<PRE> <PRE>
@ -318,8 +318,8 @@ Example:
<H3>3.2&nbsp;&nbsp; Online Configuration and Monitoring</H3><!--SEC END --> <H3>3.2&nbsp;&nbsp; Online Configuration and Monitoring</H3><!--SEC END -->
<A NAME="sec:onlineconfig"></A>To use facility of online reconfiguration of <TT>ejabberd</TT> needed to have <A NAME="sec:onlineconfig"></A>To use facility of online reconfiguration of <TT>ejabberd</TT> needed to have
<TT>mod_configure</TT> loaded (see section&nbsp;<A HREF="#sec:modconfigure">5.4</A>). Also highly <TT>mod_configure</TT> loaded (see section&nbsp;<A HREF="#sec:modconfigure">A.4</A>). Also highly
recommended to load <TT>mod_disco</TT> (see section&nbsp;<A HREF="#sec:moddisco">5.5</A>), because recommended to load <TT>mod_disco</TT> (see section&nbsp;<A HREF="#sec:moddisco">A.5</A>), because
<TT>mod_configure</TT> highly integrates with it. Also recommended to use disco- and <TT>mod_configure</TT> highly integrates with it. Also recommended to use disco- and
xdata-capable client xdata-capable client
(<A HREF="http://www.jabber.ru/projects/tkabber/index_en.html">Tkabber</A> (<A HREF="http://www.jabber.ru/projects/tkabber/index_en.html">Tkabber</A>
@ -336,7 +336,18 @@ On disco query <TT>ejabberd</TT> returns following items:
<LI> List of JIDs from route table. <LI> List of JIDs from route table.
<LI> List of disco-nodes described in following subsections. <LI> List of disco-nodes described in following subsections.
</UL><!--TOC subsubsection Node <TT>config</TT>: Global Configuration--> </UL>
<BLOCKQUOTE><DIV ALIGN=center><DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV>
<IMG SRC="disco.png">
<BR>
<BR>
<DIV ALIGN=center>Figure 1: Tkabber Discovery window</DIV><BR>
<A NAME="fig:disco"></A>
<DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV></DIV></BLOCKQUOTE><!--TOC subsubsection Node <TT>config</TT>: Global Configuration-->
<H4>3.2.1&nbsp;&nbsp; Node <TT>config</TT>: Global Configuration</H4><!--SEC END --> <H4>3.2.1&nbsp;&nbsp; Node <TT>config</TT>: Global Configuration</H4><!--SEC END -->
Under this node exists following nodes:<BR> Under this node exists following nodes:<BR>
@ -345,25 +356,31 @@ Under this node exists following nodes:<BR>
<H5> Node <TT>config/hostname</TT></H5><!--SEC END --> <H5> Node <TT>config/hostname</TT></H5><!--SEC END -->
Via <TT>jabber:x:data</TT> queries to this node possible to change host name of Via <TT>jabber:x:data</TT> queries to this node possible to change host name of
this <TT>ejabberd</TT> server. (See figure&nbsp;<A HREF="#fig:hostname">1</A>) (Currently will work this <TT>ejabberd</TT> server. (See figure&nbsp;<A HREF="#fig:hostname">2</A>) (Currently will work
correctly only after restart) correctly only after restart)
<BLOCKQUOTE><DIV ALIGN=center><DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV> <BLOCKQUOTE><DIV ALIGN=center><DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV>
[hostname editing window]
<IMG SRC="confhostname.png">
<BR> <BR>
<BR> <BR>
<DIV ALIGN=center>Figure 1: Editing of hostname</DIV><BR> <DIV ALIGN=center>Figure 2: Editing of hostname</DIV><BR>
<A NAME="fig:hostname"></A> <A NAME="fig:hostname"></A>
<DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV></DIV></BLOCKQUOTE><!--TOC paragraph Node <TT>config/acls</TT>--> <DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV></DIV></BLOCKQUOTE><!--TOC paragraph Node <TT>config/acls</TT>-->
<H5> Node <TT>config/acls</TT></H5><!--SEC END --> <H5> Node <TT>config/acls</TT></H5><!--SEC END -->
Via <TT>jabber:x:data</TT> queries to this node possible to edit ACLs list. (See Via <TT>jabber:x:data</TT> queries to this node possible to edit ACLs list. (See
figure&nbsp;<A HREF="#fig:acls">2</A>) figure&nbsp;<A HREF="#fig:acls">3</A>)
<BLOCKQUOTE><DIV ALIGN=center><DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV> <BLOCKQUOTE><DIV ALIGN=center><DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV>
[acls editing window]
<IMG SRC="confacls.png">
<BR> <BR>
<BR> <BR>
<DIV ALIGN=center>Figure 2: Editing of ACLs</DIV><BR> <DIV ALIGN=center>Figure 3: Editing of ACLs</DIV><BR>
<A NAME="fig:acls"></A> <A NAME="fig:acls"></A>
<DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV></DIV></BLOCKQUOTE><!--TOC paragraph Node <TT>config/access</TT>--> <DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV></DIV></BLOCKQUOTE><!--TOC paragraph Node <TT>config/access</TT>-->
@ -381,16 +398,36 @@ removed user is online, then he will be disconnected. Also user-related data
<!--TOC subsubsection Node <TT>online users</TT>: List of Online Users--> <!--TOC subsubsection Node <TT>online users</TT>: List of Online Users-->
<H4>3.2.2&nbsp;&nbsp; Node <TT>online users</TT>: List of Online Users</H4><!--SEC END --> <H4>3.2.2&nbsp;&nbsp; Node <TT>online users</TT>: List of Online Users</H4><!--SEC END -->
<!--TOC subsubsection Node <TT>all users</TT>: List of Connected User--> <!--TOC subsubsection Node <TT>all users</TT>: List of Registered User-->
<H4>3.2.3&nbsp;&nbsp; Node <TT>all users</TT>: List of Connected User</H4><!--SEC END --> <H4>3.2.3&nbsp;&nbsp; Node <TT>all users</TT>: List of Registered User</H4><!--SEC END -->
<!--TOC subsubsection Node <TT>outgoing s2s</TT>: List of Outgoing S2S connections--> <BLOCKQUOTE><DIV ALIGN=center><DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV>
<IMG SRC="discoallusers.png">
<BR>
<BR>
<DIV ALIGN=center>Figure 4: Discovery all users</DIV><BR>
<A NAME="fig:discoallusers"></A>
<DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV></DIV></BLOCKQUOTE><!--TOC subsubsection Node <TT>outgoing s2s</TT>: List of Outgoing S2S connections-->
<H4>3.2.4&nbsp;&nbsp; Node <TT>outgoing s2s</TT>: List of Outgoing S2S connections</H4><!--SEC END --> <H4>3.2.4&nbsp;&nbsp; Node <TT>outgoing s2s</TT>: List of Outgoing S2S connections</H4><!--SEC END -->
<!--TOC subsubsection Node <TT>running nodes</TT>: List of Running <TT>ejabberd</TT> Nodes--> <!--TOC subsubsection Node <TT>running nodes</TT>: List of Running <TT>ejabberd</TT> Nodes-->
<H4>3.2.5&nbsp;&nbsp; Node <TT>running nodes</TT>: List of Running <TT>ejabberd</TT> Nodes</H4><!--SEC END --> <H4>3.2.5&nbsp;&nbsp; Node <TT>running nodes</TT>: List of Running <TT>ejabberd</TT> Nodes</H4><!--SEC END -->
<!--TOC subsubsection Node <TT>stopped nodes</TT>: List of Stopped Nodes--> <BLOCKQUOTE><DIV ALIGN=center><DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV>
<IMG SRC="discorunnodes.png">
<BR>
<BR>
<DIV ALIGN=center>Figure 5: Discovery running nodes</DIV><BR>
<A NAME="fig:discorunnodes"></A>
<DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV></DIV></BLOCKQUOTE><!--TOC subsubsection Node <TT>stopped nodes</TT>: List of Stopped Nodes-->
<H4>3.2.6&nbsp;&nbsp; Node <TT>stopped nodes</TT>: List of Stopped Nodes</H4><!--SEC END --> <H4>3.2.6&nbsp;&nbsp; Node <TT>stopped nodes</TT>: List of Stopped Nodes</H4><!--SEC END -->
TBD<BR> TBD<BR>
@ -455,19 +492,21 @@ destination. If it opened on another node, then it routed to S2S manager on
that node, if it opened on this node, then it routed to process that serve this that node, if it opened on this node, then it routed to process that serve this
connection, and if this connection not exists, then it opened and registered.<BR> connection, and if this connection not exists, then it opened and registered.<BR>
<BR> <BR>
<BR>
<BR>
<!--TOC section Built-in Modules--> <!--TOC section Built-in Modules-->
<H2>5&nbsp;&nbsp; Built-in Modules</H2><!--SEC END --> <H2>A&nbsp;&nbsp; Built-in Modules</H2><!--SEC END -->
<A NAME="sec:modules"></A><!--TOC subsection Common Options--> <A NAME="sec:modules"></A><!--TOC subsection Common Options-->
<H3>5.1&nbsp;&nbsp; Common Options</H3><!--SEC END --> <H3>A.1&nbsp;&nbsp; Common Options</H3><!--SEC END -->
<A NAME="sec:modcommonopts"></A>Following options used by many modules, so they described in separate section.<BR> <A NAME="sec:modcommonopts"></A>Following options used by many modules, so they described in separate section.<BR>
<BR> <BR>
<!--TOC subsubsection Option <TT>iqdisc</TT>--> <!--TOC subsubsection Option <TT>iqdisc</TT>-->
<H4>5.1.1&nbsp;&nbsp; Option <TT>iqdisc</TT></H4><!--SEC END --> <H4>A.1.1&nbsp;&nbsp; Option <TT>iqdisc</TT></H4><!--SEC END -->
Many modules define handlers for processing IQ queries of different namespaces Many modules define handlers for processing IQ queries of different namespaces
to this server or to user (e.&nbsp;g. to <TT>myjabber.org</TT> or to to this server or to user (e.&nbsp;g. to <TT>myjabber.org</TT> or to
<TT>user@myjabber.org</TT>). This option defines processing discipline of this <TT>user@myjabber.org</TT>). This option defines processing discipline of this
@ -497,7 +536,7 @@ queries. Possible values are:
]}. ]}.
</PRE><!--TOC subsubsection Option <TT>host</TT>--> </PRE><!--TOC subsubsection Option <TT>host</TT>-->
<H4>5.1.2&nbsp;&nbsp; Option <TT>host</TT></H4><!--SEC END --> <H4>A.1.2&nbsp;&nbsp; Option <TT>host</TT></H4><!--SEC END -->
Some modules may act as services, and wants to have different domain name. Some modules may act as services, and wants to have different domain name.
This option explicitly defines this name.<BR> This option explicitly defines this name.<BR>
<BR> <BR>
@ -510,23 +549,23 @@ Example:
]}. ]}.
</PRE><!--TOC subsection <TT>mod_register</TT>--> </PRE><!--TOC subsection <TT>mod_register</TT>-->
<H3>5.2&nbsp;&nbsp; <TT>mod_register</TT></H3><!--SEC END --> <H3>A.2&nbsp;&nbsp; <TT>mod_register</TT></H3><!--SEC END -->
<A NAME="sec:modregister"></A><!--TOC subsection <TT>mod_roster</TT>--> <A NAME="sec:modregister"></A><!--TOC subsection <TT>mod_roster</TT>-->
<H3>5.3&nbsp;&nbsp; <TT>mod_roster</TT></H3><!--SEC END --> <H3>A.3&nbsp;&nbsp; <TT>mod_roster</TT></H3><!--SEC END -->
<A NAME="sec:modroster"></A><!--TOC subsection <TT>mod_configure</TT>--> <A NAME="sec:modroster"></A><!--TOC subsection <TT>mod_configure</TT>-->
<H3>5.4&nbsp;&nbsp; <TT>mod_configure</TT></H3><!--SEC END --> <H3>A.4&nbsp;&nbsp; <TT>mod_configure</TT></H3><!--SEC END -->
<A NAME="sec:modconfigure"></A><!--TOC subsection <TT>mod_disco</TT>--> <A NAME="sec:modconfigure"></A><!--TOC subsection <TT>mod_disco</TT>-->
<H3>5.5&nbsp;&nbsp; <TT>mod_disco</TT></H3><!--SEC END --> <H3>A.5&nbsp;&nbsp; <TT>mod_disco</TT></H3><!--SEC END -->
<A NAME="sec:moddisco"></A><!--TOC subsection <TT>mod_stats</TT>--> <A NAME="sec:moddisco"></A><!--TOC subsection <TT>mod_stats</TT>-->
<H3>5.6&nbsp;&nbsp; <TT>mod_stats</TT></H3><!--SEC END --> <H3>A.6&nbsp;&nbsp; <TT>mod_stats</TT></H3><!--SEC END -->
<A NAME="sec:modstats"></A>This module adds support of <A NAME="sec:modstats"></A>This module adds support of
<A HREF="http://www.jabber.org/jeps/jep-0039.html">JEP-0039</A> (Statistics Gathering).<BR> <A HREF="http://www.jabber.org/jeps/jep-0039.html">JEP-0039</A> (Statistics Gathering).<BR>
@ -540,19 +579,19 @@ Options:
<BR> <BR>
<!--TOC subsection <TT>mod_vcard</TT>--> <!--TOC subsection <TT>mod_vcard</TT>-->
<H3>5.7&nbsp;&nbsp; <TT>mod_vcard</TT></H3><!--SEC END --> <H3>A.7&nbsp;&nbsp; <TT>mod_vcard</TT></H3><!--SEC END -->
<A NAME="sec:modvcard"></A><!--TOC subsection <TT>mod_offline</TT>--> <A NAME="sec:modvcard"></A><!--TOC subsection <TT>mod_offline</TT>-->
<H3>5.8&nbsp;&nbsp; <TT>mod_offline</TT></H3><!--SEC END --> <H3>A.8&nbsp;&nbsp; <TT>mod_offline</TT></H3><!--SEC END -->
<A NAME="sec:modoffline"></A><!--TOC subsection <TT>mod_echo</TT>--> <A NAME="sec:modoffline"></A><!--TOC subsection <TT>mod_echo</TT>-->
<H3>5.9&nbsp;&nbsp; <TT>mod_echo</TT></H3><!--SEC END --> <H3>A.9&nbsp;&nbsp; <TT>mod_echo</TT></H3><!--SEC END -->
<A NAME="sec:modecho"></A><!--TOC subsection <TT>mod_private</TT>--> <A NAME="sec:modecho"></A><!--TOC subsection <TT>mod_private</TT>-->
<H3>5.10&nbsp;&nbsp; <TT>mod_private</TT></H3><!--SEC END --> <H3>A.10&nbsp;&nbsp; <TT>mod_private</TT></H3><!--SEC END -->
<A NAME="sec:modprivate"></A>This module adds support of <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 <A HREF="http://www.jabber.org/jeps/jep-0049.html">JEP-0049</A> (Private XML
@ -564,7 +603,7 @@ Options:
<TT>iqdisc</TT><DD> <TT>jabber:iq:private</TT> IQ queries processing discipline. <TT>iqdisc</TT><DD> <TT>jabber:iq:private</TT> IQ queries processing discipline.
</DL><!--TOC subsection <TT>mod_time</TT>--> </DL><!--TOC subsection <TT>mod_time</TT>-->
<H3>5.11&nbsp;&nbsp; <TT>mod_time</TT></H3><!--SEC END --> <H3>A.11&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> <A NAME="sec:modtime"></A>This module answers UTC time on <TT>jabber:iq:time</TT> queries.<BR>
<BR> <BR>
@ -574,7 +613,7 @@ Options:
<TT>iqdisc</TT><DD> <TT>jabber:iq:time</TT> IQ queries processing discipline. <TT>iqdisc</TT><DD> <TT>jabber:iq:time</TT> IQ queries processing discipline.
</DL><!--TOC subsection <TT>mod_version</TT>--> </DL><!--TOC subsection <TT>mod_version</TT>-->
<H3>5.12&nbsp;&nbsp; <TT>mod_version</TT></H3><!--SEC END --> <H3>A.12&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> <A NAME="sec:modversion"></A>This module answers <TT>ejabberd</TT> version on <TT>jabber:iq:version</TT> queries.<BR>
<BR> <BR>
@ -582,7 +621,31 @@ Options:
<DL COMPACT=compact> <DL COMPACT=compact>
<DT> <DT>
<TT>iqdisc</TT><DD> <TT>jabber:iq:version</TT> IQ queries processing discipline. <TT>iqdisc</TT><DD> <TT>jabber:iq:version</TT> IQ queries processing discipline.
</DL><!--HTMLFOOT--> </DL><!--TOC section I18n/L10n-->
<H2>B&nbsp;&nbsp; I18n/L10n</H2><!--SEC END -->
<A NAME="sec:i18nl10n"></A>Many modules supports <TT>xml:lang</TT> attribute inside IQ queries. E.&nbsp;g.
on figure&nbsp;<A HREF="#fig:discorus">6</A> (compare with figure&nbsp;<A HREF="#fig:disco">1</A>) showed reply
on following query:
<PRE>
&lt;iq id='5'
to='e.localhost'
type='get'&gt;
&lt;query xmlns='http://jabber.org/protocol/disco#items'
xml:lang='ru'/&gt;
&lt;/iq&gt;
</PRE><BLOCKQUOTE><DIV ALIGN=center><DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV>
<IMG SRC="discorus.png">
<BR>
<BR>
<DIV ALIGN=center>Figure 6: Discovery result when <TT>xml:lang='ru'</TT></DIV><BR>
<A NAME="fig:discorus"></A>
<DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV></DIV></BLOCKQUOTE><!--HTMLFOOT-->
<!--ENDHTML--> <!--ENDHTML-->
<!--FOOTER--> <!--FOOTER-->

View file

@ -5,11 +5,14 @@
\usepackage{verbatim} \usepackage{verbatim}
\newcommand{\imgscale}{0.7} \newcommand{\logoscale}{0.7}
\newcommand{\insimg}[1]{ \newcommand{\imgscale}{0.58}
\imgsrc{#1}{} \newcommand{\insimg}[1]{\insscaleimg{\imgscale}{#1}}
\newcommand{\insscaleimg}[2]{
\imgsrc{#2}{}
\begin{latexonly} \begin{latexonly}
\scalebox{\imgscale}{\includegraphics{#1}} \scalebox{#1}{\includegraphics{#2}}
\end{latexonly} \end{latexonly}
} }
@ -42,7 +45,7 @@
\maketitle{} \maketitle{}
{\centering {\centering
\insimg{logo.png} \insscaleimg{\logoscale}{logo.png}
\par \par
} }
\end{titlepage} \end{titlepage}
@ -381,7 +384,12 @@ On disco query \ejabberd{} returns following items:
\item List of JIDs from route table. \item List of JIDs from route table.
\item List of disco-nodes described in following subsections. \item List of disco-nodes described in following subsections.
\end{itemize} \end{itemize}
\begin{figure}[htbp]
\centering
\insimg{disco.png}
\caption{Tkabber Discovery window}
\label{fig:disco}
\end{figure}
\subsubsection{Node \texttt{config}: Global Configuration} \subsubsection{Node \texttt{config}: Global Configuration}
@ -394,7 +402,7 @@ this \ejabberd{} server. (See figure~\ref{fig:hostname}) (Currently will work
correctly only after restart) correctly only after restart)
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
[hostname editing window] \insimg{confhostname.png}
\caption{Editing of hostname} \caption{Editing of hostname}
\label{fig:hostname} \label{fig:hostname}
\end{figure} \end{figure}
@ -406,7 +414,7 @@ Via \ns{jabber:x:data} queries to this node possible to edit ACLs list. (See
figure~\ref{fig:acls}) figure~\ref{fig:acls})
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
[acls editing window] \insimg{confacls.png}
\caption{Editing of ACLs} \caption{Editing of ACLs}
\label{fig:acls} \label{fig:acls}
\end{figure} \end{figure}
@ -431,12 +439,27 @@ removed user is online, then he will be disconnected. Also user-related data
\subsubsection{Node \texttt{all users}: List of Connected User} \subsubsection{Node \texttt{all users}: List of Registered User}
\begin{figure}[htbp]
\centering
\insimg{discoallusers.png}
\caption{Discovery all users}
\label{fig:discoallusers}
\end{figure}
\subsubsection{Node \texttt{outgoing s2s}: List of Outgoing S2S connections} \subsubsection{Node \texttt{outgoing s2s}: List of Outgoing S2S connections}
\subsubsection{Node \texttt{running nodes}: List of Running \ejabberd{} Nodes} \subsubsection{Node \texttt{running nodes}: List of Running \ejabberd{} Nodes}
\begin{figure}[htbp]
\centering
\insimg{discorunnodes.png}
\caption{Discovery running nodes}
\label{fig:discorunnodes}
\end{figure}
\subsubsection{Node \texttt{stopped nodes}: List of Stopped Nodes} \subsubsection{Node \texttt{stopped nodes}: List of Stopped Nodes}
@ -505,6 +528,9 @@ that node, if it opened on this node, then it routed to process that serve this
connection, and if this connection not exists, then it opened and registered. connection, and if this connection not exists, then it opened and registered.
\appendix{}
\section{Built-in Modules} \section{Built-in Modules}
\label{sec:modules} \label{sec:modules}
@ -648,6 +674,27 @@ Options:
\section{I18n/L10n}
\label{sec:i18nl10n}
Many modules supports \texttt{xml:lang} attribute inside IQ queries. E.\,g.\
on figure~\ref{fig:discorus} (compare with figure~\ref{fig:disco}) showed reply
on following query:
\begin{verbatim}
<iq id='5'
to='e.localhost'
type='get'>
<query xmlns='http://jabber.org/protocol/disco#items'
xml:lang='ru'/>
</iq>
\end{verbatim}
\begin{figure}[htbp]
\centering
\insimg{discorus.png}
\caption{Discovery result when \texttt{xml:lang='ru'}}
\label{fig:discorus}
\end{figure}
\end{document} \end{document}