<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 -->
<LI><A HREF="#htoc45">A.13 <TT>mod_register</TT></A>
<LI><A HREF="#htoc46">A.14 <TT>mod_roster</TT></A>
<LI><A HREF="#htoc47">A.15 <TT>mod_service_log</TT></A>
-<LI><A HREF="#htoc48">A.16 <TT>mod_stats</TT></A>
-<LI><A HREF="#htoc49">A.17 <TT>mod_time</TT></A>
-<LI><A HREF="#htoc50">A.18 <TT>mod_vcard</TT></A>
-<LI><A HREF="#htoc51">A.19 <TT>mod_version</TT></A>
+<LI><A HREF="#htoc48">A.16 <TT>mod_shared_roster</TT></A>
+<LI><A HREF="#htoc49">A.17 <TT>mod_stats</TT></A>
+<LI><A HREF="#htoc50">A.18 <TT>mod_time</TT></A>
+<LI><A HREF="#htoc51">A.19 <TT>mod_vcard</TT></A>
+<LI><A HREF="#htoc52">A.20 <TT>mod_version</TT></A>
</UL>
-<LI><A HREF="#htoc52">B I18n/L10n</A>
+<LI><A HREF="#htoc53">B I18n/L10n</A>
</UL>
<!--TOC section Introduction-->
<H3><A NAME="htoc37">A.5</A> <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
-useful for debugging.<BR>
+This module acts as a service and simply returns to sender any Jabber
+packet. Module may be useful for debugging.<BR>
<BR>
Options:
<DL COMPACT=compact><DT>
...
]}.
</PRE>
+<!--TOC subsection <TT>mod_shared_roster</TT>-->
+
+<H3><A NAME="htoc48">A.16</A> <TT>mod_shared_roster</TT></H3><!--SEC END -->
+
+<A NAME="sec:modsharedroster"></A>
+This module implements shared roster groups support.<BR>
+<BR>
+You can edit shared roster groups via web-interface. Each group has an unique
+ID and the following parameters:
+<DL COMPACT=compact><DT>
+<B>Name</B><DD> The name of the group, which will be displayed in roster.
+<DT><B>Description</B><DD> Textual description of this group, doesn't affect anything.
+<DT><B>Members</B><DD> List of full JIDs of group members, entered one per line in
+ web-interface.
+<DT><B>Displayed groups</B><DD> List of IDs of groups which will be in rosters of this
+ group members.
+</DL>
+For example, to have a group of users which can see each other in roster,
+create a group like on table <A HREF="#tab:srge1">1</A>.
+<BLOCKQUOTE><DIV ALIGN=center><DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV>
+ <TABLE BORDER=1 CELLSPACING=0 CELLPADDING=1>
+<TR><TD ALIGN=left NOWRAP> </TD>
+<TD ALIGN=left NOWRAP>Group `<TT>users</TT>'</TD>
+</TR>
+<TR><TD ALIGN=left NOWRAP>Name</TD>
+<TD ALIGN=left NOWRAP>Users</TD>
+</TR>
+<TR><TD ALIGN=left NOWRAP>Members</TD>
+<TD ALIGN=left NOWRAP><TABLE CELLSPACING=2 CELLPADDING=0>
+<TR><TD ALIGN=left NOWRAP><TT>user1@example.org</TT></TD>
+</TR>
+<TR><TD ALIGN=left NOWRAP><TT>user2@example.org</TT></TD>
+</TR>
+<TR><TD ALIGN=left NOWRAP><TT>user3@example.org</TT></TD>
+</TR></TABLE></TD>
+</TR>
+<TR><TD ALIGN=left NOWRAP>Displayed groups</TD>
+<TD ALIGN=left NOWRAP><TT>users</TT></TD>
+</TR></TABLE>
+ <BR>
+<DIV ALIGN=center>Table 1: Shared group example N1</DIV><BR>
+
+ <A NAME="tab:srge1"></A>
+<DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV></DIV></BLOCKQUOTE>
+To have 3 groups `<TT>managers</TT>', `<TT>workgroup1</TT>', and
+`<TT>workgroup2</TT>', where group `<TT>managers</TT>' can see members of all
+groups, and other two groups can see `<TT>managers</TT>' group and themselves,
+create groups like on table <A HREF="#tab:srge2">2</A>.
+<BLOCKQUOTE><DIV ALIGN=center><DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV>
+ <TABLE BORDER=1 CELLSPACING=0 CELLPADDING=1>
+<TR><TD ALIGN=left NOWRAP> </TD>
+<TD ALIGN=left NOWRAP>Group `<TT>managers</TT>'</TD>
+<TD ALIGN=left NOWRAP>Group `<TT>workgroup1</TT>'</TD>
+<TD ALIGN=left NOWRAP>Group `<TT>workgroup2</TT>'</TD>
+</TR>
+<TR><TD ALIGN=left NOWRAP>Name</TD>
+<TD ALIGN=left NOWRAP>Managers</TD>
+<TD ALIGN=left NOWRAP>Workgroup1</TD>
+<TD ALIGN=left NOWRAP>Workgroup2</TD>
+</TR>
+<TR><TD ALIGN=left NOWRAP>Members</TD>
+<TD ALIGN=left NOWRAP><TABLE CELLSPACING=2 CELLPADDING=0>
+<TR><TD ALIGN=left NOWRAP><TT>manager1@example.org</TT></TD>
+</TR>
+<TR><TD ALIGN=left NOWRAP><TT>manager2@example.org</TT></TD>
+</TR>
+<TR><TD ALIGN=left NOWRAP><TT>manager3@example.org</TT></TD>
+</TR></TABLE>
+ </TD>
+<TD ALIGN=left NOWRAP><TABLE CELLSPACING=2 CELLPADDING=0>
+<TR><TD ALIGN=left NOWRAP><TT>user1@example.org</TT></TD>
+</TR>
+<TR><TD ALIGN=left NOWRAP><TT>user2@example.org</TT></TD>
+</TR>
+<TR><TD ALIGN=left NOWRAP><TT>user3@example.org</TT></TD>
+</TR></TABLE>
+ </TD>
+<TD ALIGN=left NOWRAP><TABLE CELLSPACING=2 CELLPADDING=0>
+<TR><TD ALIGN=left NOWRAP><TT>user4@example.org</TT></TD>
+</TR>
+<TR><TD ALIGN=left NOWRAP><TT>user5@example.org</TT></TD>
+</TR>
+<TR><TD ALIGN=left NOWRAP><TT>user6@example.org</TT></TD>
+</TR></TABLE></TD>
+</TR>
+<TR><TD ALIGN=left NOWRAP>Displayed groups</TD>
+<TD ALIGN=left NOWRAP><TABLE CELLSPACING=2 CELLPADDING=0>
+<TR><TD ALIGN=left NOWRAP><TT>managers</TT></TD>
+</TR>
+<TR><TD ALIGN=left NOWRAP><TT>workgroup1</TT></TD>
+</TR>
+<TR><TD ALIGN=left NOWRAP><TT>workgroup2</TT></TD>
+</TR></TABLE>
+ </TD>
+<TD ALIGN=left NOWRAP><TABLE CELLSPACING=2 CELLPADDING=0>
+<TR><TD ALIGN=left NOWRAP><TT>managers</TT></TD>
+</TR>
+<TR><TD ALIGN=left NOWRAP><TT>workgroup1</TT></TD>
+</TR></TABLE>
+ </TD>
+<TD ALIGN=left NOWRAP><TABLE CELLSPACING=2 CELLPADDING=0>
+<TR><TD ALIGN=left NOWRAP><TT>managers</TT></TD>
+</TR>
+<TR><TD ALIGN=left NOWRAP><TT>workgroup2</TT></TD>
+</TR></TABLE></TD>
+</TR></TABLE>
+ <BR>
+<DIV ALIGN=center>Table 2: Shared group example N2</DIV><BR>
+
+ <A NAME="tab:srge2"></A>
+<DIV ALIGN=center><HR WIDTH="80%" SIZE=2></DIV></DIV></BLOCKQUOTE>
<!--TOC subsection <TT>mod_stats</TT>-->
-<H3><A NAME="htoc48">A.16</A> <TT>mod_stats</TT></H3><!--SEC END -->
+<H3><A NAME="htoc49">A.17</A> <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>
</DL>
<!--TOC subsection <TT>mod_time</TT>-->
-<H3><A NAME="htoc49">A.17</A> <TT>mod_time</TT></H3><!--SEC END -->
+<H3><A NAME="htoc50">A.18</A> <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>
</DL>
<!--TOC subsection <TT>mod_vcard</TT>-->
-<H3><A NAME="htoc50">A.18</A> <TT>mod_vcard</TT></H3><!--SEC END -->
+<H3><A NAME="htoc51">A.19</A> <TT>mod_vcard</TT></H3><!--SEC END -->
<A NAME="sec:modvcard"></A>
This module implements simple Jabber User Directory (based on user vCards)
</PRE>
<!--TOC subsection <TT>mod_version</TT>-->
-<H3><A NAME="htoc51">A.19</A> <TT>mod_version</TT></H3><!--SEC END -->
+<H3><A NAME="htoc52">A.20</A> <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>
</DL>
<!--TOC section I18n/L10n-->
-<H2><A NAME="htoc52">B</A> I18n/L10n</H2><!--SEC END -->
+<H2><A NAME="htoc53">B</A> I18n/L10n</H2><!--SEC END -->
<A NAME="sec:i18nl10n"></A>
All built-in modules support <TT>xml:lang</TT> attribute inside IQ queries.
\newcommand{\modregister}{\module{mod\_register}}
\newcommand{\modroster}{\module{mod\_roster}}
\newcommand{\modservicelog}{\module{mod\_service\_log}}
+\newcommand{\modsharedroster}{\module{mod\_shared\_roster}}
\newcommand{\modstats}{\module{mod\_stats}}
\newcommand{\modtime}{\module{mod\_time}}
\newcommand{\modvcard}{\module{mod\_vcard}}
\subsection{\modecho{}}
\label{sec:modecho}
-This module acts as a service and simply returns to sender any \Jabber{} packet. Module may be
-useful for debugging.
+This module acts as a service and simply returns to sender any \Jabber{}
+packet. Module may be useful for debugging.
Options:
\begin{description}
\end{verbatim}
+\subsection{\modsharedroster{}}
+\label{sec:modsharedroster}
+
+This module implements shared roster groups support.
+
+You can edit shared roster groups via web-interface. Each group has an unique
+ID and the following parameters:
+\begin{description}
+\item[Name] The name of the group, which will be displayed in roster.
+\item[Description] Textual description of this group, doesn't affect anything.
+\item[Members] List of full JIDs of group members, entered one per line in
+ web-interface.
+\item[Displayed groups] List of IDs of groups which will be in rosters of this
+ group members.
+\end{description}
+
+For example, to have a group of users which can see each other in roster,
+create a group like on table~\ref{tab:srge1}.
+\begin{table}[htbp]
+ \centering
+ \begin{tabular}{|l|l|}
+ & Group `\texttt{users}'\\
+ Name& Users\\
+ Members&
+ {\begin{tabular}{l}
+ \jid{user1@example.org}\\
+ \jid{user2@example.org}\\
+ \jid{user3@example.org}
+ \end{tabular}
+ }\\
+ Displayed groups& \texttt{users}
+ \end{tabular}
+ \caption{Shared group example N1}
+ \label{tab:srge1}
+\end{table}
+
+To have 3 groups `\texttt{managers}', `\texttt{workgroup1}', and
+`\texttt{workgroup2}', where group `\texttt{managers}' can see members of all
+groups, and other two groups can see `\texttt{managers}' group and themselves,
+create groups like on table~\ref{tab:srge2}.
+\begin{table}[htbp]
+ \centering
+ \begin{tabular}{|l|l|l|l|}
+ &
+ Group `\texttt{managers}'&
+ Group `\texttt{workgroup1}'&
+ Group `\texttt{workgroup2}'\\
+ Name& Managers& Workgroup1& Workgroup2\\
+ Members&
+ {\begin{tabular}{l}
+ \jid{manager1@example.org}\\
+ \jid{manager2@example.org}\\
+ \jid{manager3@example.org}
+ \end{tabular}
+ }&
+ {\begin{tabular}{l}
+ \jid{user1@example.org}\\
+ \jid{user2@example.org}\\
+ \jid{user3@example.org}
+ \end{tabular}
+ }&
+ {\begin{tabular}{l}
+ \jid{user4@example.org}\\
+ \jid{user5@example.org}\\
+ \jid{user6@example.org}
+ \end{tabular}
+ }\\
+ Displayed groups&
+ {\begin{tabular}{l}
+ \texttt{managers}\\
+ \texttt{workgroup1}\\
+ \texttt{workgroup2}
+ \end{tabular}
+ }&
+ {\begin{tabular}{l}
+ \texttt{managers}\\
+ \texttt{workgroup1}
+ \end{tabular}
+ }&
+ {\begin{tabular}{l}
+ \texttt{managers}\\
+ \texttt{workgroup2}
+ \end{tabular}
+ }
+ \end{tabular}
+ \caption{Shared group example N2}
+ \label{tab:srge2}
+\end{table}
+
\subsection{\modstats{}}
\label{sec:modstats}