~ubuntu-branches/ubuntu/trusty/ejabberd/trusty-proposed

« back to all changes in this revision

Viewing changes to doc/guide.tex

  • Committer: Bazaar Package Importer
  • Author(s): Konstantin Khomoutov, Konstantin Khomoutov, Gerfried Fuchs
  • Date: 2010-04-06 13:00:03 UTC
  • mfrom: (1.1.14 upstream) (13.1.1 sid)
  • Revision ID: james.westby@ubuntu.com-20100406130003-ub626hx26kgazp79
Tags: 2.1.3-1
[ Konstantin Khomoutov ]
* New upstream release.
* Remove obsolete c2s-p1-fsm.patch
* Remove obsolete ejabberdctl-help-dashes.patch
* Update mod_admin_extra to revision 1078
* Refresh shared_roster_recent.patch
* Refresh shared_roster_online.patch
* Clarify how to do mixed IPv4/IPv6 setup of ejabberd listeners
  as suggested by Marc Dequènes in the discussion of #573801.

[ Gerfried Fuchs ]
* Remove Torsten Werner from maintainer field on his own wish - thanks for
  your work so far! (closes: #578722)
* Promote Konstantin to Maintainer to best fit reality. Enjoy. :)

Show diffs side-by-side

added added

removed removed

Lines of Context:
92
92
\newcommand{\modrosterodbc}{\module{mod\_roster\_odbc}}
93
93
\newcommand{\modservicelog}{\module{mod\_service\_log}}
94
94
\newcommand{\modsharedroster}{\module{mod\_shared\_roster}}
 
95
\newcommand{\modsic}{\module{mod\_sic}}
95
96
\newcommand{\modstats}{\module{mod\_stats}}
96
97
\newcommand{\modtime}{\module{mod\_time}}
97
98
\newcommand{\modvcard}{\module{mod\_vcard}}
325
326
Released versions of \ejabberd{} are available in the ProcessOne \ejabberd{} downloads page:
326
327
\ahrefurl{http://www.process-one.net/en/ejabberd/downloads}
327
328
 
328
 
\ind{Subversion repository}
329
 
Alternatively, the latest development version can be retrieved from the Subversion repository using this command:
 
329
\ind{Git repository}
 
330
Alternatively, the latest development source code can be retrieved from the Git repository using the commands:
330
331
\begin{verbatim}
331
 
svn co http://svn.process-one.net/ejabberd/trunk ejabberd
 
332
git clone git://git.process-one.net/ejabberd/mainline.git ejabberd
 
333
cd ejabberd
 
334
git checkout -b 2.1.x origin/2.1.x
332
335
\end{verbatim}
333
336
 
334
337
 
380
383
        Disable the use of Erlang/OTP supervision for transient processes.
381
384
\end{description}
382
385
 
383
 
\makesubsection{snowleopard}{Compiling ejabberd under Snow Leopard with Erlang R13B}
384
 
\ind{install!snowleopard}
385
 
 
386
 
Erl Interface, the library to link Erlang with C code, is compiled as
387
 
32-bits code in Erlang R13B-2. Mac OS X Snow Leopard is a 64-bits
388
 
system and will try compiling ejabberd C code in 64-bits as a default.
389
 
 
390
 
To compile ejabberd on Mac OS X Snow Leopard with Erlang R13B-2, you
391
 
need to force C code to be compiled with 32-bits. This is done with
392
 
the following configure command:
393
 
 
394
 
\begin{verbatim}
395
 
CC='gcc -m32' CFLAGS=-m32 LDFLAGS=-m32 ./configure
396
 
\end{verbatim}
397
 
 
398
386
\makesubsection{install}{Install}
399
387
\ind{install!install}
400
388
 
809
797
\begin{description}
810
798
  \titem{\texttt{ejabberd\_c2s}}
811
799
    Handles c2s connections.\\
812
 
    Options: \texttt{access}, \texttt{certfile},
 
800
    Options: \texttt{access}, \texttt{certfile}, \texttt{max\_fsm\_queue},
813
801
    \texttt{max\_stanza\_size}, \texttt{shaper},
814
802
    \texttt{starttls}, \texttt{starttls\_required}, \texttt{tls},
815
803
    \texttt{zlib}
894
882
    The option can be defined in \term{ejabberd.cfg}, expressing the time
895
883
    in seconds: \verb|{http_poll_timeout, 300}.|
896
884
  \titem{\{max\_fsm\_queue, Size\}}
897
 
    This option specifies the maximum number of elements in the queue of the FSM.
898
 
    This option can be specified for an \term{ejabberd\_service} listener,
 
885
    This option specifies the maximum number of elements in the queue of the FSM
 
886
    (Finite State Machine).
 
887
    Roughly speaking, each message in such queues represents one XML
 
888
    stanza queued to be sent into its relevant outgoing stream. If queue size
 
889
    reaches the limit (because, for example, the receiver of stanzas is too slow),
 
890
    the FSM and the corresponding connection (if any) will be terminated
 
891
    and error message will be logged.
 
892
    The reasonable value for this option depends on your hardware configuration.
 
893
    However, there is no much sense to set the size above 1000 elements.
 
894
    This option can be specified for \term{ejabberd\_service} and
 
895
    \term{ejabberd\_c2s} listeners,
899
896
    or also globally for \term{ejabberd\_s2s\_out}.
900
 
    If the option is not specified for an \term{ejabberd\_service} listener,
 
897
    If the option is not specified for \term{ejabberd\_service} or
 
898
    \term{ejabberd\_c2s} listeners,
901
899
    the globally configured value is used.
902
900
    The allowed values are integers and 'undefined'.
903
901
    Default value: 'undefined'.
980
978
  The maximum allowed delay for retry to connect after a failed connection attempt.
981
979
  Specified in seconds. The default value is 300 seconds (5 minutes).
982
980
  \titem{\{max\_fsm\_queue, Size\}}
983
 
    This option specifies the maximum number of elements in the queue of the FSM.
984
 
    This option can be specified for an \term{ejabberd\_service} listener,
 
981
    This option specifies the maximum number of elements in the queue of the FSM
 
982
    (Finite State Machine).
 
983
    Roughly speaking, each message in such queues represents one XML
 
984
    stanza queued to be sent into its relevant outgoing stream. If queue size
 
985
    reaches the limit (because, for example, the receiver of stanzas is too slow),
 
986
    the FSM and the corresponding connection (if any) will be terminated
 
987
    and error message will be logged.
 
988
    The reasonable value for this option depends on your hardware configuration.
 
989
    However, there is no much sense to set the size above 1000 elements.
 
990
    This option can be specified for \term{ejabberd\_service} and
 
991
    \term{ejabberd\_c2s} listeners,
985
992
    or also globally for \term{ejabberd\_s2s\_out}.
986
 
    If the option is not specified for an \term{ejabberd\_service} listener,
 
993
    If the option is not specified for \term{ejabberd\_service} or
 
994
    \term{ejabberd\_c2s} listeners,
987
995
    the globally configured value is used.
988
996
    The allowed values are integers and 'undefined'.
989
997
    Default value: 'undefined'.
1485
1493
\ind{options!max\_s2s\_connections}
1486
1494
 
1487
1495
The special access \term{max\_s2s\_connections} specifies how many
1488
 
simultaneus S2S connections can be established to a specific remote XMPP server.
 
1496
simultaneous S2S connections can be established to a specific remote XMPP server.
1489
1497
The default value is \term{1}.
1490
1498
There's also available the access \term{max\_s2s\_connections\_per\_node}.
1491
1499
 
2231
2239
  not forget to close brackets and do not use superfluous whitespaces. Also you
2232
2240
  \emph{must not} use \option{ldap\_uidattr} attribute in filter because this
2233
2241
  attribute will be substituted in LDAP filter automatically.
2234
 
 
 
2242
  \titem{\{ldap\_dn\_filter, \{ Filter, FilterAttrs \}\}}\ind{options!ldap\_dn\_filter}
 
2243
  This filter is applied on the results returned by the main filter. This filter
 
2244
  performs additional LDAP lookup to make the complete result. This is useful
 
2245
  when you are unable to define all filter rules in \term{ldap\_filter}. You
 
2246
  can define \term{"\%u"}, \term{"\%d"}, \term{"\%s"} and \term{"\%D"} pattern
 
2247
  variables in Filter: \term{"\%u"} is replaced by a user's part of a JID,
 
2248
  \term{"\%d"} is replaced by the corresponding domain (virtual host),
 
2249
  all \term{"\%s"} variables are consecutively replaced by values of FilterAttrs
 
2250
  attributes and \term{"\%D"} is replaced by Distinguished Name. By default
 
2251
  \term{ldap\_dn\_filter} is undefined.
 
2252
  Example:
 
2253
\begin{verbatim}
 
2254
{ldap_dn_filter, {"(&(name=%s)(owner=%D)(user=%u@%d))", ["sn"]}}.
 
2255
\end{verbatim}
 
2256
  Since this filter makes additional LDAP lookups, use it only in the
 
2257
  last resort: try to define all filter rules in \term{ldap\_filter} if possible.
2235
2258
  \titem{\{ldap\_local\_filter, Filter\}}\ind{options!ldap\_local\_filter}
2236
2259
  If you can't use \term{ldap\_filter} due to performance reasons
2237
2260
  (the LDAP server has many users registered),
2458
2481
    \hline \ahrefloc{modservicelog}{\modservicelog{}} & Copy user messages to logger service &  \\
2459
2482
    \hline \ahrefloc{modsharedroster}{\modsharedroster{}} & Shared roster management & \modroster{} or \\
2460
2483
    & & \modrosterodbc\\
 
2484
    \hline \ahrefloc{modsic}{\modsic{}} & Server IP Check (\xepref{0279}) &  \\
2461
2485
    \hline \ahrefloc{modstats}{\modstats{}} & Statistics Gathering (\xepref{0039}) &  \\
2462
2486
    \hline \ahrefloc{modtime}{\modtime{}} & Entity Time (\xepref{0202}) &  \\
2463
2487
    \hline \ahrefloc{modvcard}{\modvcard{}} & vcard-temp (\xepref{0054}) &  \\
3524
3548
if fails, \verb|{127,0,0,1}|.
3525
3549
\titem{\{port, Number\}}\ind{options!port}This option defines port to listen for
3526
3550
incoming connections. Default is~7777.
 
3551
\titem{\{hostname, HostName\}}\ind{options!hostname}Defines a hostname advertised
 
3552
by the service when establishing a session with clients. This is useful when
 
3553
you run the service behind a NAT. The default is the value of \term{ip} option.
 
3554
Examples: \term{"proxy.mydomain.org"}, \term{"200.150.100.50"}. Note that 
 
3555
not all clients understand domain names in stream negotiation,
 
3556
so you should think twice before setting domain name in this option.
3527
3557
\titem{\{auth\_type, anonymous|plain\}}\ind{options!auth\_type}SOCKS5 authentication type.
3528
3558
Possible values are \term{anonymous} and \term{plain}. Default is
3529
3559
\term{anonymous}.
3681
3711
  rules to restrict registration. If a rule returns `deny' on the requested
3682
3712
  user name, registration for that user name is denied. (there are no
3683
3713
  restrictions by default).
 
3714
\titem{\{access\_from, AccessName\}} \ind{options!access\_from}By default, \ejabberd{}
 
3715
doesn't allow to register new accounts from s2s or existing c2s sessions. You can
 
3716
change it by defining access rule in this option. Use with care: allowing registration
 
3717
from s2s leads to uncontrolled massive accounts creation by rogue users.
3684
3718
\titem{\{welcome\_message, Message\}} \ind{options!welcomem}Set a welcome message that
3685
3719
  is sent to each newly registered account. The first string is the subject, and
3686
3720
  the second string is the message body.
3942
3976
\end{table}
3943
3977
\end{itemize}
3944
3978
 
 
3979
\makesubsection{modsic}{\modsic{}}
 
3980
\ind{modules!\modstats{}}\ind{protocols!XEP-0279: Server IP Check}
 
3981
 
 
3982
This module adds support for Server IP Check (\xepref{0279}). This protocol
 
3983
enables a client to discover its external IP address.
 
3984
 
 
3985
Options:
 
3986
\begin{description}
 
3987
\iqdiscitem{\ns{urn:xmpp:sic:0}}
 
3988
\end{description}
 
3989
 
3945
3990
\makesubsection{modstats}{\modstats{}}
3946
3991
\ind{modules!\modstats{}}\ind{protocols!XEP-0039: Statistics Gathering}\ind{statistics}
3947
3992
 
4404
4449
  \titem{-name ejabberd}
4405
4450
        The Erlang node will be fully identified.
4406
4451
    This is only useful if you plan to setup an \ejabberd{} cluster with nodes in different networks.
4407
 
  \titem{-kernel inetrc "/etc/ejabberd/inetrc"}
 
4452
  \titem{-kernel inetrc '"/etc/ejabberd/inetrc"'}
4408
4453
        Indicates which IP name resolution to use.
4409
4454
        If using \term{-sname}, specify either this option or \term{ERL\_INETRC}.
4410
4455
  \titem{-kernel inet\_dist\_listen\_min 4200 inet\_dist\_listen\_min 4210}
4419
4464
        Specify the directory where Erlang binary files (*.beam) are located.
4420
4465
  \titem{-s ejabberd}
4421
4466
        Tell Erlang runtime system to start the \ejabberd{} application.
4422
 
  \titem{-mnesia dir "/var/lib/ejabberd/"}
 
4467
  \titem{-mnesia dir '"/var/lib/ejabberd/"'}
4423
4468
        Specify the Mnesia database directory.
4424
4469
  \titem{-sasl sasl\_error\_logger \{file, "/var/log/ejabberd/erlang.log"\}}
4425
4470
        Path to the Erlang/OTP system log file.
4954
4999
 
4955
5000
\begin{verbatim}
4956
5001
erl -sname ejabberd \
4957
 
    -mnesia dir "/var/lib/ejabberd/" \
 
5002
    -mnesia dir '"/var/lib/ejabberd/"' \
4958
5003
    -mnesia extra_db_nodes "['ejabberd@first']" \
4959
5004
    -s mnesia
4960
5005
\end{verbatim}