[ejabberd] [ANN] ejabberd 16.08

Jérôme Sautret jerome.sautret at process-one.net
Thu Aug 4 17:27:11 MSK 2016

Welcome ejabberd summer release!

This new release is the culmination of several months of work to
improve your experience using ejabberd. It contains as usual a lot of
small bug fixes and some enhancements. However, this version contains
some new major features:
- MUC/Sub
- Major clean-up and improvement on OAuth ReST API
- Database backend for OAuth tokens
- Better support of Elixir modules
- Full compatibility with Erlang 19
- Modules loading in a dependent order

The biggest improvement in ejabberd 16.08 is a new experimental
feature in ejabberd that makes group conversations in XMPP work
seamlessly with mobile clients: MUC/Sub.

The main issue with XMPP group chat (based on XEP-0045) is that it is
bound to user presence. On mobile, presence is almost irrelevant. You
are always somewhat loosely reachable, but often seen as offline from
XMPP point of view. MUC/Sub relies as much as possible on existing MUC
specification, while making the smallest possible change that make
mobile group conversation client development easy without having to
send presence.
See all details in our dedicated blogpost

This release also covers needs of the Elixir community: Erlang 19,
Elixir 1.2.6, better mix integration. It's also possible to write
Elixir module handled by the contributed module extension
of ejabberd. We've also tested ejabberd with Elixir 1.3.2 with
success, so you can likely upgrade without issues.

Finally, it is worth noting that development team is growing and three
new official contributors joined the project: Gabriel, Anna and
Thiago. Welcome!

## Changes
This is a selection of the most relevant changes:

### MUC
- New MUC/Sub support
- Add 'allow_subscription' room configuration option for MUC/Sub

### OAuth and ReST API
- Add OAUTH SQL backend
- New special scope: ejabberd:admin and ejabberd:user, to more easily
grant group of privileges
- Add DB backend support for ejabberd_oauth
- Added ejabberdctl commands to manage OAuth tokens:
oauth_issue_token, oauth_list_tokens, oauth_list_scopes,
- Simplified OAuth form: username and password merged into JID field
- User configurable validity duration for tokens on OAuth token generation form
- Add support for sending back missing scope error to API ReST command calls
- Oauth: several minor fixes
- Support oauth password grant type, to generate token programmatically

### Elixir support

- Update supported Elixir version to 1.2 and 1.3.
- Support installation of Elixir contributions with external module
command line tool.

### PubSub
- Fix use of like parameter in sql pubsub's requests
- Fix node configuration change with sql backends
- Fix send_last_items duplication with multi-plugin setup

### MAM
- Always limit result set page size
- Use hooks instead of direct calls

### API
- Add support for checking access rules conformance for commands
- Add support for rich error reporting for API
- Add support for sending back missing scope error to API ReST command calls
- Fix handling of complex values as arguments in http_api
- Improve error handling

### Other improvements
- External Component Connection Hooks
- Fix compilation issues on R19
- Support for OpenSSL 1.1
- Make access rules in ejabberd_web_admin configurable
- Make modules loading in a dependent order (#1191)
- Make s2s stats commands more robust
- Preserve PID for offline sessions
- Several quoting fixes for PostgreSQL
- Switch supervised workers from temporary to transient

## Feedback

As usual, the release is tagged in the Git source code repository on

The source package and binary installers are available at

If you suspect that you've found a bug, please search or fill a bug report on

More information about the ejabberd mailing list