ejabberd 15.10: HTTP upload, metrics and performance

This month’s ejabberd release contains brand new features, performance optimisations, bugfixes and many other improvements.

This release includes a brand new module to help with file transfer. In XMPP transferring files between users required users to be online at the same time. It all changed with XEP-0363 and it is now possible to share file using HTTP protocol while doing the signaling over XMPP. Thanks to Holger and Evgeny, we are now pleases to include this feature in ejabberd core, with mod_http_upload.

ejabberd now also include a module to export metrics information about ejabberd behaviour to Grapherl, a tool that was developed during the Google Summer of Code by Vanshdeep Singh. This is only the beginning, as we are planning to both increase the number of metrics and available backends in upcoming releases. As a start, you can now track the traffic (both from clients and between servers), the offline messages and the user registration and account deletion.

We improved the overall performance of ejabberd, thanks to optimisation in the XML parser.

We also improved the documentation to help you set up mod_xmlrpc with OAuth for those who were already using it prior to 15.09 release.

Finally, as usual, we fixed bugs and improved many features across the whole server.

Here is the full list of changes.



  • c2s: Let stop/1 close XEP-0198 sessions
  • c2s: Close socket when waiting for resume
  • s2s: Don’t crash on certificates without extensions
  • xml: Optimizations in memory allocator
  • OAuth: Fix cyrsasl_oauth:mech_new call


  • mod_http_upload: New HTTP File Upload module (XEP-0363)
  • mod_http_upload_quota: New module to support user quotas
  • mod_metrics: New simple metrics module for use with grapherl
  • mod_mam: Advertise XEP-0313 v0.4 support in room disco
  • mod_mam: Avoid MAM dups when routing to multiple resources


  • Make: Pass {C,CPP,LD}FLAGS used in main ./configure to deps
  • Use OTP directory structure for ‘make install’
  • mix.lock should be commited to ensure consistent builds
  • Code cosmetic cleanup


  • Let modules_update_specs report failures
  • Fix problem with –auth
  • Fix unauthenticated calls to commands with policy=user
  • Improve access_commands option backward compatibility


  • ejabberdctl.cfg: New CONTRIB_MODULES_CONF_DIR
  • Be able to merge old style configs with {listen,…}
  • Fix support for macros
  • mod_ping: New option ping_ack_timeout


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

The source package and binary installers are available at ProcessOne.

If you suspect that you’ve found a bug, please search or fill a bug report on Github.

Let us know what you think 💬

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.