Release Note ejabberd 2.0.0 - 21 Feb 2008
ejabberd 2.0.0 is a major new version for ejabberd adding plenty of new features, performance and scalability improvements and architectural changes.
ejabberd 2.0.0 includes near than 200 improvements over ejabberd 1.1.x. A complete list of changes can be retrieved from Process-one support site.
The new code can be downloaded from ejabberd download page.
Recent changes include:
Clustering and Architecture
- New front-end and back-end cluster architecture for better scalability and robustness. Back-end nodes are able to run a fully fault-tolerant XMPP router and services, but you can now deploy many front-end nodes to share the load without needing to synchronize any state with the back-ends.
- All components now run in cluster mode (For example, Multi-User chat service and file transfer proxy).
- New load balancing algorithm to support Multi-User chat and gateways clustering. More generally it supports any external component load balancing.
- ejabberd watchdog to receive warning on suspicious resources consumption.
- Traffic shapers are now supported on components. This protect ejabberd from components and gateways abuses.
Publish and Subscribe
- Complete rewrite of the PubSub module. The new PubSub module is plugin-based, allowing developers to create new nodes type. Any application can be plugged to ejabberd and can provide rich presence as a pubsub plugin.
- Personal Eventing via Pubsub support (XEP-0163). This module is implemented as a PubSub service. It supports user mood (XEP-107), User Tune (XEP-118), user location (XEP-0080) or user avatar (XEP-0084) for example.
Server to Server (s2s)
- More robust code with connection timeout implementation.
- Support for multiple s2s connections per domain.
- s2s whitelist and blacklist support.
- s2s retrial interval.
- Many enterprise-class enhancements such as better behaviour under heavy load.
- Support for LDAP servers pool.
- Simplified use of virtual hosting with LDAP with domain substitution in config.
- Ability to match on several userid attibutes.
- Clustering and load balancing support.
- Ability to define default room configuration in ejabberd config file.
- Many anti abuse features have been added:
- New ACL to limit the creation of persistent room to autorized users.
- Ability to define the maximum number of users per room.
- Limitation of the rate of message and presence packets.
- Limitation of the maximum number of room a user can join at the same time.
- XEP-0065 - Proxy65 file transfer proxy. The proxy can run in cluster mode.
- PAM (Pluggable Authentication Modules) support on *nix systems.
- External Authentication protocol is now fully documented.
Web Client Support
XEP-0124 - BOSH support: BOSH (Bidirectional-streams Over Synchronous HTTP) was formerly known as "HTTP binding". It provides an efficient alternative to HTTP polling for scalable Web based chat solutions.
- HTTP module can now serve static documents (with mod_http_fileserver). It is needed for high-performance Web2.0 chat / IM application. System administrators can now avoid using a proxy (like Apache) that handles much less simultaneous than ejabberd HTTP module.
- Added limitations enforcement on HTTP poll and HTTP bind modules (bandwidth, packet size).
- XEP-0133 - Service administration support. System administrators can
now perform lot of ejabberd related admin tasks from their XMPP
client, through adhoc commands.
- Dynamic log levels: Improved logging with more log levels. You can now change the loglevel at run time. No performance penalty is
involved when less verbose levels are used.
- Better command-line tool, with more options available.
- ejabberd is now translated to 24 languages: Catalan, Chinese, Czech, Dutch, English, Esperanto, French, Galician, German, Italian, Japanese, Norwegian, Polish, Portuguese, Portuguese (Brazil), Russian, Slovak, Spanish, Swedish, Thai, Turkish, Ukrainian, Vietnamese, Walloon.
Build and Installer
- Many launch script improvements.
- New translations. The binary installer is now available in Chinese,
Dutch, English, French, German, Spanish, Russian.
- Makefile now implements uninstall command.
- Full MacOSX compliance in Makefile.
- Configure script is clever at finding libraries in unusual places.
- Several hooks have been added for module developers (most notably
presence related hooks).
- HTTP request handler to write HTTP based plugins.
- Manage connections IP address.
- ejabberd 2.0 also fixes numerous small bugs :) Read the full
changelog for details.
Since this release, ejabberd requires Erlang R10B-5 or higher. R11B-5 is the recommended version. R12 is not yet officially supported, and is not recommended for production servers.
Upgrading From ejabberd 1.x
- If you upgrade from a version older than 1.1.4, please check the Release Notes of the intermediate versions for additional information about database or configuration changes.
- The database schemas didn't change since ejabberd 1.1.4. Of course, you are encouraged to make a database backup of your SQL database,
or your Mnesia spool directory before upgrading ejabberd.
- The ejabberdctl command line administration script is improved in ejabberd 2.0.0, and now it can start and stop ejabberd. If you
already wrote your own start script for ejabberd 1.x, you can continue using it, or try ejabberdctl. For your convenience, the
ejabberd Guide describes all the ejabberd and Erlang options used by ejabberdctl.
- The example ejabberd.cfg file has been reorganized, but its format and syntax rules are the same. So, you can continue using your
ejabberd.cfg file from 1.x if you want. The most important changes are described now:
- The 'ssl' option is no longer available in the listening ports. For legacy SSL encryption use the option 'tls'. For STARTTLS encryption
as defined in RFC 3920 XMPP-CORE use the option 'starttls'. Check the ejabberd Guide for more information about configuring listening
- The options 'welcome_message' and 'registration_watchers' are now options of the module mod_register. Check in the ejabberd Guide how to configure that module.
- To enable PEP support in mod_pubsub, you need to enable it in the mod_pubsub configuration, and also enable the new module
mod_caps. Check the section about mod_pubsub in the ejabberd Guide.
- Other new features and improvements also require changes in the ejabberd.cfg, like mod_http_bind, mod_http_fileserver, mod_proxy65,
loglevel, pam_service, and watchdog_admins. Search for those words in the ejabberd Guide and the example ejabberd.cfg.
You can officially report bugs on Process-one support site.