The server administrator can define default API version
for a vhost using the new module option:
modules:
mod_http_api:
default_version: 1
The server administrator can define default API version
for a port using the path:
listen:
-
request_handlers:
/api/v2: mod_http_api
The client can use a specific API version,
regardless of what the admin has set,
by appending it in the URL:
http://localhost:5280/api/v2/get_loglevel/v3
Commands accept as argument: user, host, room, service
and return as result JIDs
Commands that change in API v3:
get_room_affiliations
muc_register_nick
muc_unregister_nick
set_room_affiliation
status_list
status_list_host
subscribe_room
subscribe_room_many
unsubscribe_room
Define and macro by setting as environment variable:
EJABBERD_MACRO_ + macro name
For example, if you configure in ejabberd.yml:
define_macro:
LOGLEVEL: 4
loglevel: LOGLEVEL
You can define (and overwrite) that macro definition when starting ejabberd:
EJABBERD_MACRO_LOGLEVEL=5 make relive
Until now it was possible to create a shared roster group with name
"Group1", and it was a different group that "group1".
From now on, new group names will be stored lowercase,
just like the username in a Jabber ID.
This only affects commands srg_add and srg_create.
All the other commands are still case sensitive, to allow admins of
existing databases with case-sensitive groups manage them.
Until now it created all the rooms in the storage of the first vhost
listed in the ejabberd configuration file. Similarly, it used only
the default room options defined for the first vhost.
Allow to specify an Elixir module name in `auth_method`.
If the referenced module, `M`, cannot be loaded as `ejabberd_auth_M`,
try to load it as `Elixir.M`.
The problem appeared when there are several vhosts,
the first vhost uses SQL for persistent data (and RAM for volatile),
and another vhost wants to use Mnesia
Example config to trigger the problem:
hosts:
- mysql.localhost
- localhost
host_config:
mysql.localhost:
default_db: sql
In that case, ejabberd crashed at start with an error like:
[critical] Internal error of module mod_muc has occurred during start:
...
** exception exit: {aborted,
{no_exists,
[muc_room,
[{{muc_room,{'_',<<"conference.localhost">>},'_'},
[],
['$_']}]]}}