* Add stun listener to example config file, disabled.
* Improve enumeration of listeners options
* Mention STUN in release notes
* Mention new STUN listener in release notes
* Mention new network protocol syntax in release notes
SVN Revision: 2454
]}.
</PRE><P> <A NAME="listened"></A> </P><!--TOC subsection Listening Ports-->
<H3 CLASS="subsection"><!--SEC ANCHOR --><A NAME="htoc23">3.1.3</A>  <A HREF="#listened">Listening Ports</A></H3><!--SEC END --><P> <A NAME="listened"></A>
-</P><P>The option <TT>listen</TT> defines for which addresses, protocols and ports <TT>ejabberd</TT>
+</P><P>The option <TT>listen</TT> defines for which ports, addresses and network protocols <TT>ejabberd</TT>
will listen and what services will be run on them. Each element of the list is a
tuple with the following elements:
</P><UL CLASS="itemize"><LI CLASS="li-itemize">
</PRE><P> <A NAME="listened-port"></A> </P><!--TOC subsubsection Port Number, IP Address and Transport Protocol-->
<H4 CLASS="subsubsection"><!--SEC ANCHOR --><A HREF="#listened-port">Port Number, IP Address and Transport Protocol</A></H4><!--SEC END --><P> <A NAME="listened-port"></A> </P><P>The port number defines which port to listen for incoming connections.
It can be a Jabber/XMPP standard port
-(see section <A HREF="#firewall">5.1</A>) or any other valid port number.</P><P>The transport protocol is always <TT>tcp</TT> or <TT>udp</TT> if defined.
-Default is <TT>tcp</TT>.</P><P>The IP address can be represented with a string
+(see section <A HREF="#firewall">5.1</A>) or any other valid port number.</P><P>The IP address can be represented with a string
or an Erlang tuple with decimal or hexadecimal numbers.
The socket will listen only in that network interface.
It is possible to specify a generic address,
</LI><LI CLASS="li-itemize"><CODE>{10, 11, 12, 13}</CODE> is the IPv4 address <CODE>10.11.12.13</CODE>
</LI><LI CLASS="li-itemize"><CODE>{0, 0, 0, 0, 0, 65535, 32512, 1}</CODE> is the IPv6 address <CODE>::FFFF:127.0.0.1/128</CODE>
</LI><LI CLASS="li-itemize"><CODE>{16#fdca, 16#8ab6, 16#a243, 16#75ef, 0, 0, 0, 1}</CODE> is the IPv6 address <CODE>FDCA:8AB6:A243:75EF::1/128</CODE>
-</LI></UL><P> <A NAME="listened-module"></A> </P><!--TOC subsubsection Listening Module-->
+</LI></UL><P>The transport protocol can be <TT>tcp</TT> or <TT>udp</TT>.
+Default is <TT>tcp</TT>.</P><P> <A NAME="listened-module"></A> </P><!--TOC subsubsection Listening Module-->
<H4 CLASS="subsubsection"><!--SEC ANCHOR --><A HREF="#listened-module">Listening Module</A></H4><!--SEC END --><P> <A NAME="listened-module"></A> </P><P>
The available modules, their purpose and the options allowed by each one are:
</P><DL CLASS="description"><DT CLASS="dt-description">
\makesubsection{listened}{Listening Ports}
\ind{options!listen}
-The option \option{listen} defines for which addresses, protocols and ports \ejabberd{}
+The option \option{listen} defines for which ports, addresses and network protocols \ejabberd{}
will listen and what services will be run on them. Each element of the list is a
tuple with the following elements:
\begin{itemize}
It can be a Jabber/XMPP standard port
(see section \ref{firewall}) or any other valid port number.
-The transport protocol is always \term{tcp} or \term{udp} if defined.
-Default is \term{tcp}.
-
The IP address can be represented with a string
or an Erlang tuple with decimal or hexadecimal numbers.
The socket will listen only in that network interface.
\item \verb|{16#fdca, 16#8ab6, 16#a243, 16#75ef, 0, 0, 0, 1}| is the IPv6 address \verb|FDCA:8AB6:A243:75EF::1/128|
\end{itemize}
+The transport protocol can be \term{tcp} or \term{udp}.
+Default is \term{tcp}.
+
\makesubsubsection{listened-module}{Listening Module}
- Check certfiles are readable on server start and listener start
- Config file management mix file reading and sanity check
- Include example PAM configuration file: ejabberd.pam
+- New ejabberd listener: ejabberd_stun
- Support to bind the same port to multiple interfaces
- New syntax to specify the IP address and IPv6 in listeners
configuration. The old options {ip,{1,2,3,4}} and inet6 are
supported even if they aren't documented.
+- New syntax to specify the network protocol: tcp or udp
- Report error at startup if a listener module isn't available
- Only listen in a port when actually ready to serve requests
- HTTP-Bind: allow configuration of max_inactivity timeout
- HTTP-Poll: turn session timeout into a config file parameter
+* Jingle
+- STUN server that facilitates the client-to-client negotiation process
+
* LDAP
- Faster reconnection to LDAP servers
- LDAP filter optimisation: Add ability to filter user in ejabberd and not LDAP
- Added XEP-0085 Chat State Notifications
- Added XEP-0157 Contact Addresses for XMPP Services
- Added XEP-0158 CAPTCHA Forms (in MUC rooms)
+- Added STUN server, for XEP-0176: Jingle ICE-UDP Transport Method
- Added XEP-0199 XMPP Ping
- Added XEP-0202 Entity Time
- Added XEP-0203 Delayed Delivery
%% }
%% ]},
+ %%
+ %% ejabberd_stun: Handles STUN Binding requests
+ %%
+ %%{{3478, udp}, ejabberd_stun, []},
+
{5280, ejabberd_http, [
%%{request_handlers,
%% [