Produits Support Open Source Company
 
 
 
Home > Open Source > ejabberd > Release notes > Release Note ejabberd 2.0.0-beta1

Release Note ejabberd 2.0.0-beta1 - 24 Dec 2007

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 more 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.

LDAP

  • 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 attributes.

Multi-user chat

  • 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 authorized 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.

File transfer

  • XEP-0065 - Proxy65 file transfer proxy. The proxy can run in cluster mode.

Authentication

  • 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 Web 2.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).

System administration

  • 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.
  • The ejabberdctl command-line administration script now can start and stop ejabberd. It also includes other useful options.

Localization

  • ejabberd is now available in 22 languages: Catalan, Chinese, Czech, Dutch, English, French, Galician, German, Italian, Japanese, Polish, Portuguese, Portuguese (Brazil), Russian, Slovak, Spanish, Swedish, Thai, Turkish, Ukrainian, Vietnamese, Wallon.

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.

Development API

  • 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.

Bugfixes

  • ejabberd 2.0.0 also fixes numerous small bugs smile Read the full changelog for details.

Important Notes

  • 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.
  • The 'ssl' option is no longer available in the listening ports. To get legacy SSL encryption use the option 'tls'.
  • The new ejabberdctl command line administration script can start, stop and perform many other administrative tasks in ejabberd.

Bug reports

You can officially report bugs on Process-one support site.