mod_muc

Multi-user chat (MUC) is Prosody's module for allowing you to create hosted chatrooms/conferences for XMPP users.

General information on setting up and using MUC chatrooms can be found in our 'Chatrooms' documentation, which you should read if you are new to XMPP chatrooms.

Details

mod_muc implements XEP-0045, which is supported by most XMPP clients to some degree. Rooms are identified by their address, which will be along the lines of 'room_name@conference.example.com'.

Usage

Replace 'conference.example.com' with the address you want to use for the MUC service. It must be different to any other host/server on Prosody, and is usually a subdomain of a normal host. Using 'conference' is a common convention, but is completely up to you.

Configuration

Here follows all configuration options. Examples show the default values that are used if the option is not present in the config file.

Note that each room has its own configuration which can be configured by room owners using supporting clients.

Room name

The name to return in service discovery responses.

Room creation restrictions

If true will only allow admins to create new chatrooms otherwise anyone can create a room.

false
The default. No restrictions, anyone can create rooms.
true or "admin"
Restricts room creation to service administrators only.
"local"
Restricts room creation to users on the service's parent domain. E.g. user@example.com can create rooms on rooms.example.com.

"local" and "admin" were added in Prosody version 0.8.0.

History

The setting max_history_messages specifies a limit on what each room can be configured to keep. This does not directly affect how many messages are send when a client joins a room. Each room carries its own setting for how much recent history to keep, which defaults to 20. Clients can specify how much history they wish to receive, which is taken into account when deciding how much of available history to send.

Locking

Setting this to true enables room locking, which means that a room must be configured before it can be used. Locked rooms are invisible and cannot be entered by anyone but the creator. If the room has not been configured after the timeout, it is either destroyed or unlocked.

Room locking was added in Prosody version 0.10.0, but disabled by default. It is enabled by default in 0.11 and trunk (as of this writing).

Tombstones

Starting with Prosody 0.11.x, when a room is destroyed, it leaves behind a tombstone which prevents the room being entered or recreated. It also allows anyone who was not in the room at the time it was destroyed to learn about it, and to update their bookmarks. Tombstones prevents the case where someone could recreate a previously semi-anonymous room in order to learn the real JIDs of those who often join there.

There are two related settings:

Setting this to false disables the tombstone behavior.

This settings controls how long a tombstone is considered valid. It defaults to 31 days. After this time, the room in question can be created again.

Room configuration defaults

Prosody 0.11 adds these settings that influence the defaults for newly created rooms.

Example