ejabberd 18.04

This ejabberd 18.04 release includes bugfixes, and a few improvements.

New configuration options

New ‘access_register’ option for mod_muc

This option specifies who is allowed to register nickname within the Multi-User Chat service. The default is all for backward compatibility, which means that any user is allowed to register any free nick.

New ‘include_sender’ and ‘include_body’ options for mod_push

If one or both of them are set to ‘true’, a urn:xmpp:push:summary form with the enabled field(s) is included in push notifications that are generated for messages with a body.

The ‘include_body’ option can instead be set to a static text. In this case, the specified text will be included in place of the actual message body. This can be useful to signal the push service whether the
notification was triggered by a message with body (as opposed to other types of traffic) without leaking actual message contents.

SQL schema change

Pubsub creation/modification columns in pubsub_item table now use varchar. This minor change will speedup requests on pubsub_item table. See upgrade details in the upgrade note.


  • Don’t produce a crash dump during intentional exit
  • ejabberdctl: fix parameter parsing
  • New hook ‘component_send_packet’ for sending packet from component
  • gen_mod: Carefully validate options list
  • gen_mod: Support global module processes
  • gen_mod: Remove frontend process support
  • gen_mod: Don’t crash on invalid module’s sub-options
  • config: move section about direct-tls for c2s just under regular c2s config
  • fast_tls: Clear cache on configuration reload
  • http: Add support for PATCH http method
  • mod_client_state: Add ‘csi_activity’ hook
  • mod_http_upload: Accept characters of any script
  • mod_http_upload: Add MIME type for M4A files
  • mod_mam: Add commands for cleaning up archives for a given user
  • mod_muc: Let a MUC room to route presences from its bare JID
  • mod_muc: Introduce new mod_muc option: access_register
  • mod_muc_room: Add stubs for affiliation-specific backend callbacks
  • mod_muc_log: Fix Code format when logging a MUC room kick/ban
  • mod_multicast: Improved
  • mod_push: New options include_sender and include_body
  • mod_push: Don’t notify on stream errors
  • mod_push_keepalive: Reset timeout on messages only
  • mod_roster: Use ‘lserver’ for configuration lookup
  • mod_vcard_ldap: Fix returning value from mod_vcard_ldap’s search() callback
  • mod_pubsub: Fix notification payload generated by pubsub
  • mod_pubsub: Improve pubsub#itemreply implementation
  • mod_pubsub: PubSub purge_node must use a transaction
  • Utils: Use httpc directly instead of using p1_http wrapper
  • Rest: Add flexibility on rest url config
  • SystemMonitors: Get rid of useless memory/disk usage warnings
  • WebSocket: Pass access option from websocket to c2s


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

The source package and binary installers are available at ejabberd XMPP & MQTT server download page.

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

Let us know what you think 💬

One thought on “ejabberd 18.04

  1. Hi. I use ejabberd from ~18.01 (now 18.04). Switched from jd2.
    It seems with shared roster enabling (not ldap) my ejabberd overload my cpu.
    400-600% cpu (2xE5405, <90 users) is standart for me now. Load high on every new connection. My psi/gajim/xabber wait when ejabberd ~1min.
    Any chance to fix it? I seen somewere here, shared roster need rewiriting.

Leave a Comment

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