ejabberd Changelog

What's new in ejabberd 16.02

Mar 7, 2016
  • Support for flexible offline retrieval, aka XEP-0013. This is a big win for mobile developers.
  • Improvements on archiving, with Message Archive Management (MAM) now supporting version 0.4.1 of the specifications.
  • Full Elixir compliant packaging with the ability to deploy ejabberd as an Hex.pm dependency from your own application. See ejabberd on hex.pm.
  • Performance improvement with faster and more memory efficient XML parsing and TLS encryption. You can also refer to our previous blog post: ejabberd Massive Scalability: 1 Node — 2+ Million Concurrent Users
  • Better stream compression with the ability to enable stream compression after SASL.
  • Easier adoption of ejabberd with a new migration script from Prosody XMPP servers.

New in ejabberd 15.07 (Aug 21, 2015)

  • Message Archive Management (XEP-0313):
  • Add “complete” attribute to MAM final response
  • Fix mod_mam compatibility with RSM
  • Changed mam iq get to set as specified by XEP-0313 v0.3
  • Modules management:
  • Ensure config snippet is loaded at module installation
  • Allow contribution to include .yml or .yaml config file
  • Allow include of simple dependencies
  • Multi User Chat:
  • New API hook: muc_filter_packet
  • Send notifications on MUC configuration changes
  • Omit warning message regarding non-anonymous room
  • During halt only shutdown MUC rooms on local node
  • Pubsub:
  • Allow migration of old pubsub items with old xmlelement structure in body
  • Trigger PEP notifications on CAPS updates
  • Check for node subscription of bare JID
  • Flat is now the default plugin
  • Stream Management (XEP-0198):
  • Increase timeout during resumption
  • Increase default “max_ack_queue” value
  • ejabberd Client connection:
  • API change: user_send_packet is now a run_fold hook and pass the c2s State as a parameter. It was already the
  • case in ejabberd 15.06, but it was not mentioned in the changelog, by mistake. So, now, you know :)
  • Admin:
  • Do not rely on behaviour info when doing config validation, so that it can work with ejabberd binary installers
  • When passwords are scrammed, report check_password_hash cannot work
  • Fix problem with merging values from multiple config files
  • If local guide.html file not found, redirect to the online guide
  • Support RTL page direction in WebAdmin for Hebrew
  • configure.ac: add AC_CONFIG_MACRO_DIR and static AC_INIT
  • WebAdmin:
  • Don’t crash web admin when displaying info about websocket using users
  • Installers:
  • Both RPM and DEB now are using the improved post-install script which creates ejabberd user when installing as
  • root. This let ejabberd running as user without any manual setup.
  • Windows installer now uses %USERPROFILE% to get path of user writable directory. We made numerous other fixes
  • to that version, thanks to your feedback.

New in ejabberd 15.02 (Feb 24, 2015)

  • Add Elixir support, allows to write plugins in Elixir
  • New command to reload configuration without restart
  • Support old style erlang expressions in YAML configuration
  • Improved captcha listener parsing when protocol not specified
  • Fix upgrade of old unbinarized pubsub table from 2.1
  • Minor updates in the documentation
  • Other bugfixes

New in ejabberd 13.10 (Nov 16, 2013)

  • It has some changes, several improvements and many bugfixes over the previous (not officially announced) 13.06. It is also the first official stable release of ejabberd Community after ejabberd 2.1.13. You are now pleased to use ejabberd community as reference for stable releases of ejabberd, from the master branch. ejabberd 2.1.x support is discontinued.

New in ejabberd 2.1.11 (Dec 29, 2011)

  • Support for Erlang/OTP R15B, and other bugfixes.

New in ejabberd 2.1.9 (Oct 4, 2011)

  • Core ejabberd:
  • Decrease CPU usage caused by tls:send with large data
  • Escape iolist correctly when NIFs are disabled (EJAB-1462)
  • Fix code to satisfy Dialyzer warnings
  • Fix compilation in Windows
  • Replace calls of OTP’s Binary, since they would require R14
  • LDAP:
  • Document ldap_tls_cacertfile and ldap_tls_depth options (EJAB-1299)
  • Log an error when an LDAP filter is incorrect (EJAB-1395)
  • New options: ldap_tls_cacertfile and ldap_tls_depth (EJAB-1299)
  • New option: ldap_deref_aliases (EJAB-639)
  • Match ldap_uidattr_format case-insensitively (EJAB-1449)
  • MUC:
  • Support for multiple entry with same nick to MUC rooms (EJAB-305)
  • Support voice request and approvement
  • New room option: allow_private_messages_from_visitors
  • New room options: allow_voice_requests and voice_request_min_interval
  • Include status 110 in presence to new occupant (EJAB-740)
  • Fix mod_muc_log crash when first log entry is room destroy (EJAB-1499)
  • Many fixes and improvements in mod_muc
  • Pubsub:
  • Enable pubsub#deliver_notification checking (EJAB-1453)
  • Fix Denial of Service when user sends malformed publish stanza (EJAB-1498)
  • ODBC:
  • Fix ODBC account counting (EJAB-1491)
  • Optimized mod_roster_odbc:get_roster
  • Miscellanea:
  • New SASL SCRAM-SHA-1 authentication mechanism (EJAB-1196)
  • New option: resource_conflict (EJAB-650)

New in ejabberd 2.1.8 (Jun 5, 2011)

  • This version fixes PubSub, which was broken in 2.1.7.

New in ejabberd 2.1.7 (Jun 2, 2011)

  • BOSH and Web
  • Clarify error message when BOSH query is sent to non-running module
  • Keep the order of stanzas when BOSH sends several (EJAB-1374)
  • Show configuration for HTTPS http_bind
  • Support as read-only HTTP method not only GET, also HEAD
  • The responses to HEAD must have empty Body
  • CAPTCHA:
  • If the port number isn’t listener, then specify the protocol (EJAB-1418)
  • New CAPTCHA limit
  • New CAPTCHA whitelist support
  • Only check system at startup if option is enabled
  • Provide HTTPS URL in CAPTCHA form when listener has ‘tls’ option (EJAB-1406)
  • Show captcha_limit option in the example config
  • Support more captcha_host value formats (EJAB-1418)
  • Throw error when captcha fails at server start, not later at runtime
  • captcha_host must have the port number to get protocol (EJAB-1418)
  • Core ejabberd:
  • Disable all entity expansions (EJAB-1451)
  • Do not accept XML with undefined prefixes (EJAB-680)
  • Make jlib:ip_to_list safe to use
  • Make sure ‘closed’ event is correctly processed on every state
  • New route_iq/5 accepting Timeout (EJAB-1398)
  • Take into consideration internal queue length when sorting processes queues
  • Use route instead of send_element to go through standard workflow
  • Erlang/OTP compatibility:
  • Remove Type and Spec, backport list comprehensions, so R12B-5 can compile
  • Tweak pg2_backport.erl to work with Erlang older than R13A (EJAB-1349)
  • ODBC:
  • Don’t let presence-in privacy rule block a presence subscription (EJAB-255)
  • Escape user input in mod_privacy_odbc (EJAB-1442)
  • Try to improve support for roster_version in MSSQL (EJAB-1437)
  • Pubsub/PEP/Caps:
  • Apply filtered notification to PEP last items (EJAB-1456)
  • Fix empty pubsub payload check
  • Owner can delete any items from its own node (EJAB-1445)
  • Pubsub node maxitem forced to 0 if non persistent node (EJAB-1434)
  • Reorganize the push_item function, and handle version not_found (EJAB-1420)
  • Scripts:
  • ejabberd.init: Several fixes and improvements
  • ejabberdctl: Escape output from ctlexec() to erl script (EJAB-1399)
  • ejabberdctl: Fix bashism and mimic master branch (EJAB-1404)
  • ejabberdctl: Fix space between INET_DIST_INTERFACE (EJAB-1416)
  • ejabberdctl: New DIST_USE_INTERFACE restricts IP of erlang listen (EJAB-1404)
  • ejabberdctl: New ERL_EPMD_ADDRESS that works since Erlang/OTP R14B03
  • extauth: Fix delayed response of timeout was reused for next login (EJAB-1385)
  • extauth: Forward old messages to newly spawned extauth process (EJAB-1385)
  • extauth: If script crashes, ejabberd should restart it (EJAB-1428)
  • XEP support:
  • mod_blocking: New XEP-0191 Simple Communications Blocking (EJAB-695)
  • No need to inform that XEP-0237 is optional; clarified in XEP version 1.2
  • Miscellanea:
  • If a module start fails during server start, stop erlang (EJAB-1446)
  • New Indonesian translation (EJAB-1407)
  • LDAP: Note that ejabberd works with CGP LDAP server
  • S2S: Handle Tigase’s unexpected version=1.0 (EJAB-1379)
  • mod_irc: Send presence unavailable to the departing occupant (EJAB-1417)
  • mod_last: Allow user to query his own Last activity
  • mod_muc: Do not decrease MUC admin’s role/affiliation
  • mod_muc: Send jid attribute when occupant is banned (EJAB-1432)
  • mod_offline: Change c2s state before offline messages resending
  • mod_ping: Use iqdisc no_queue by default (EJAB-1435)
  • mod_pres_counter: Prevent subscription flood (EJAB-1388)
  • mod_register Access now also controls account unregistrations
  • mod_register: Clarify more the expected content of welcome_message option
  • mod_shared_roster: Fix support for anonymous accounts in @all@ (EJAB-1264)
  • mod_shared_roster: New @online@ directive (EJAB-1391)

New in ejabberd 2.1.6 (Dec 14, 2010)

  • BOSH: Fix rare loop, support vhosts, allow module restart
  • Config: Default configuration allows registrations only from localhost
  • Config: Support to change loglevel per module at runtime
  • Erlang/OTP: Fix compatibility from R10B-9 to R14B01
  • ODBC: Compatibility with PostgreSQL 9.0
  • Privacy lists: Fix to allow block by group and subscription again

New in ejabberd 2.1.5 (Aug 4, 2010)

  • Erlang/OTP R12 support fixed
  • Erlang/OTP R14A support added
  • OpenSSL 0.9.8 or higher is required
  • BOSH: New optional connection attribute process-delay
  • C2S: Don't ask for client certificate when using tls
  • C2S: Inform client that SSL session caching is disabled

New in ejabberd 2.1.4 (Jun 4, 2010)

  • Bounce messages when closing c2s session
  • Bugfixes when handling Service Discovery to contacts
  • Don't send error stanza as reply to error stanza
  • Don't store blocked messages in offline queue
  • Extauth: Optionally cache extauth users in mnesia
  • Full support for XEP-0115 Entity Capabilities v1.5
  • HTTP-Bind (BOSH): Remove unneeded 100 ms delay, and export functions to facilitate prebinding methods

New in ejabberd 2.1.3 (Mar 13, 2010)

  • New ejabberd_c2s option: max_fsm_queue
  • ejabberdctl: Support concurrent connections with bound connection names
  • Cross-domain HTTP-Bind support (EJAB-1168)
  • Hibernate http-bind process after handling a request

New in ejabberd 2.1.2 (Jan 19, 2010)

  • Fix SASL PLAIN authentication message for RFC4616 compliance
  • Fix support for old Erlang/OTP R10 and R11
  • If server start fails due to config file problem, display some lines and stop node
  • PubSub and PEP: several improvements and bugfixes
  • WebAdmin: fix offline message displaying
  • When server stops with new stop_kindly command: inform users, clients, MUC

New in ejabberd 2.0.5 (Apr 3, 2009)

  • Fix two problems introduced in ejabberd 2.0.4: subscription request produced many authorization requests with some clients and transports; and subscription requests were not stored for later delivery when receiver was offline.
  • Fix warning in expat_erl.c about implicit declaration of x_fix_buff.
  • HTTP-Bind (BOSH): Fix a missing stream:error in the returned remote-stream-error stanza.

New in ejabberd 2.0.4 (Mar 18, 2009)

  • Around 20 bugfixes in many parts of the software.

New in ejabberd 2.0.3 (Jan 29, 2009)

  • This release includes more than 30 fixes and improvements.