ejabberd 15.09 released, with OAuth 2.0 support

This month’s ejabberd release contains some major improvements and few fixes since the last release two months ago. On top of improvements is support of:

  • OAuth 2.0 delegation framework
  • preliminary OAuth and HTTP based ejabberd API,
  • X-AUTH2 authentication mechanism,
  • and message archiving for Multi-User Chat.

This is a major milestone for ejabberd, as it makes it a central components that can integrates and play well with Web HTTP based clients, components and services. You can learn more about our OAuth support from ejabberd OAuth documentation. With this support, we are exposing 13 commands from ejabberd API over HTTP with OAuth. This is just a start to get feedback and bootstrap a community effort to make ejabberd API right. We are expecting to hear from you !

Moreover, Message Archive Management now supports the latest proposal for Archiving and Multi-User Chat support, based on recent clarifications we proposed in XEP-0313.

Finally, we are keeping improving our support for Microsoft ecosystem. As Microsoft Windows support is back since 15.07, we also restored the MSSQL / Azure database server support through ODBC driver. This is a big step for users under Windows Server infrastructures.

Please read further for our full detailed changelog.


Major changes

  • Added OAuth delegation framework
  • Preliminary OAuth and HTTP based ejabberd API
  • X-AUTH2 authentication mechanism,
  • MAM now can store MUC room
  • MSSQL: improved schema, simplified config, and fixed support

Note: ejabberd now requires erlang 17.1 or higher

Core improvements

  • New set_loglevel admin command to ease changing loglevel.
  • Configuration: allow to override main config file options with data from included files
  • Improve S2S certificate checks
  • Log TLS errors as [debug] messages only
  • XEP-0198: new option “max_resume_timeout”
  • XEP-0198: Improve handling of non-message stanzas
  • ext_mod: Check external modules configuration on load
  • ext_mod: Don’t override custom configuration on module upgrade
  • Several Elixir fixes
  • Updated most translation languages

Modules improvements

  • Carbon Copy: Don’t copy messages of type “normal” without body
  • HTTP-Bind: More eye-candy mod_http_bind help page
  • HTTP-Bind: Nameprep host name passed to http-bind before using in
  • HTTP-Bind: Set disable caching headers in http-bind responses
  • HTTP: pass stream management options defined in http listener to http-bind and websocket
  • MAM: Add XEP-0359 to archived messages
  • MAM: Add XEP-0313 v0.4 support
  • MUC commands: Changed argument names in two commands
  • MUC commands: Fix and document create_rooms_file and destroy_rooms_file
  • MUC hooks: added muc_filter_presence
  • MUC hooks: renamed muc_filter_packet to muc_filter_message
  • MUC logging: check for hint
  • Multicast: many improvements in the source code
  • SIP: Do not crash SIP authentication on SCRAMed passwords


  • Remove bashisms in join_cluster leave_cluster and postinstall scripts
  • Allow root to run join_cluster and leave_cluster
  • Allow building an ejabberd release with mix and elixir release manager
  • Allow installing as root
  • Fix Debian/Ubuntu package
  • Rename idna to ejabberd_idna
  • Improve ‘make install’ to remove useless failure cases


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.



Great milestone!

Great milestone!

Hi I install

I install ejabberd-15.09-linux-x86_64-installer.run on debian(jessie). I try to cluster them and I cant.
who did clustering with ejabberd 15.09 ?
I do follow steps:

- I Install erlang(18) and ejabberd
- Create ejabberd.cfg file
- In ejabberdctl.cfg: set(local) INET_DIST_INTERFACE={10,0,0,1} and ERLANG NODE NAME
- same .erlang cookie(/root/.erlangcookie)
I use join_cluster and joincluster commands
/opt/ejabberd-15.09/bin/ejabberdctl join_cluster 'ejabberd@server1'
/opt/ejabberd-15.09/bin/joincluster 'ejabberd@server1'
it return:


ejabberd cluster configuration

This ejabberd node will be configured for use in an ejabberd cluster.
IMPORTANT: all local data from the database will be lost, and
cluster database will be initialized. All data from the master
node will be replicated to this one.

Press any key to continue, or Ctrl+C to stop now

Using passed parameter for remote master node name: ejabberd@70_slave
Using commands:

and try with easy_cluster.erl(https://raymii.org/s/tutorials/Set_up_a_federated_XMPP_Chat_Network_with...) , but it not working,too

please some body help me.plz

Syndicate content