> ## Content Index
> Fetch the complete content index at: https://www.process-one.net/llms.txt
> Use this file to discover other available public pages before exploring further.

# ejabberd 15.06: Message archive, configuration checker and new packages
- URL: https://www.process-one.net/blog/ejabberd-15-06/
- Published: 2015-06-24T22:00:00.000Z
- Updated: 2024-10-10T15:16:12.000Z
- Description: ejabberd 15.06 includes over 100 changes since the last release two months ago. Among those changes it includes several major new features.
- Author: Jérôme Sautret

## New features

The focus of this release is archiving and easier configuration.

### Message Archive Management support

Message Archive Management (aka MAM, defined in [XEP-313](https://xmpp.org/extensions/xep-0313.html?ref=process-one.net)) is now the de facto standard for message archiving in XMPP world.

ejabberd now comes with its own full feature message archiving implementation:  
– It support both version 0.2 and the more recent version 0.3 of the protocol.  
– It support Mnesia internal storage and relational database backend (aka odbc, but actually use native drivers).

To enable it, simply add `mod_mam` in ejabberd modules configuration section, telling it to use your configured relational database.

```
modules:
...
  mod_mam:
    db_type: odbc

```

Please, also check the [sql directory](https://github.com/processone/ejabberd/tree/83cce468a573d3ca58a0c6653a2ccc17c7b4dbc3/sql?ref=process-one.net) to find about the table to add to your relational database. MAM relational storage is supported for MySQL, Postgres and SQLite.

### Configuration checking on launch

ejabberd is sometime difficult to configure, especially when you want to define complex setup. After having changed the configuration file to support YAML format, we now introduce a new feature to help you get your configuration right.

On ejabberd launch, you will now see report about possible misconfiguration, with explicit error message.

For example, suppose there is a typo on the `registration_timeout` option, you’ll get the following error in the log file:

```
16:15:20.487 [error] unknown option 'registrtion_timeout' will be likely ignored

```

This can be of great help when trying to understand why an option is not taken into account.

### Windows installer

The Microsoft Windows installer is back, as a beta version. Windows is not a good platform to run a production ejabberd server, for various reasons. However, many users are developing on Windows or want to try ejabberd from their Windows Desktop. Building ejabberd on Windows is very complex, so we decided to finally update our packaging to bring latest ejabberd to Windows users. The installer is 64 bits only, it supports Windows 7 and Windows 8.

The installer is still considered experimental. For example, we did not yet sign the installer with Windows developer account to become a trusted developer. This may come depending on the feedback we get regarding our Windows version.

Please, send us your feedback and contributions!

### RPM and DEB packages

We have been providing for years a binary installer that includes everything you need to run ejabberd. It includes all the dependencies and a minimal version of Erlang, independently from the one installed on your system.

We now provide the same binary packaging as RPM and DEB for 64bit Linux. This is generated from the same source so it includes its own minimal version of Erlang and doesn’t have any dependencies on other packages. This is still a work in progress, it means that your feedback is welcome. The packages can be downloaded from [ProcessOne ejabberd download page](https://www.process-one.net/en/ejabberd/downloads/).

We hope that this is another step in making ejabberd simpler to deal with and even more ubiquitous. It should also help you stay up to date and always be able to run the latest ejabberd version.

## Improvements

We now have an installer for contributed modules since ejabberd 15.04\. In that new release, we’ve improved automatic compilation of external modules, it’s now more robust and able to handle more complex modules.

[Documentation](https://www.ejabberd.im/protocols?ref=process-one.net) now includes supported protocols with versions by parsing directly modules source code.

## Changelog overview

Here is a complete changelog. We’ll detail some of these changes in the coming days with follow up blog posts.

### Message archiving

- Add support for message archiving in Mnesia or relational databases.

### Protocol

- Document protocol support and version inside each module and use that info in documentation
- Remove deprecated XEP-0090 Entity Time and XEP-0091 Delayed Delivery
- Don’t add body element to MUC subject messages
- Do not bounce normal messages sent to unavailable resource

### Admin command-line tool

- Fixed several ejabberd commands
- Allow password with ‘;’ passed in ejabberdctl
- Improve ejabberdctl external module install code, allows better error checking
- New ping ejabberdctl command to check if the node is up and running
- New commands for Multi-User chat management: get\_room\_options and get\_user\_rooms

### Configuration

- Add config validation at startup
- Fix include of non yaml config files
- New option hide\_sensitive\_log\_data to hide client IP address in log
- New option net\_ticktime, to fine tune Erlang cluster networking
- New option max\_users\_presence in mod\_muc, to avoid broadcasting presence packet from users after a chat room has reached a given size

### Elixir

- Add correct package version for mix

### Security

- New options to configure your own custom Diffie-Helman parameters: dhfile and s2s\_dhfile

### PubSub

- Enforce definition of pubsub node max\_items
- Fix pubsub/odbc crash on remote user unsubscribe
- Fix use of publish\_only affiliation with odbc backend

### Multicast

- Pick first local multicast service, otherwise remote

### Databases

- Fix anonymous user login, it wasn’t stored in anonymous mnesia table
- Fixed some string/binary issues in ejabberd\_odbc
- PostgreSQL storage: added missing sm (session manager) table

### Packaging

- Microsoft Windows 64 bits installer
- Provide RPM and DEB binary packages for linux 64 bits.

### Clean up

- Remove obsolete doc and win32 files

## Feedback

As usual, the release is tagged in the Git source code repository on [Github](https://github.com/processone/ejabberd.git?ref=process-one.net).

The source package and binary installers are available at [ProcessOne](https://www.process-one.net/en/ejabberd/downloads/).

If you suspect that you’ve found a bug, please search or fill a bug report on [Github](https://github.com/processone/ejabberd/issues?ref=process-one.net).