Skip to content


Module Description

Inbox is an experimental feature implemented as a few separate modules. To use it, enable mod_inbox in the config file.



  • Syntax: array of strings, out of "displayed", "received", "acknowledged"
  • Default: ["displayed"]
  • Example: reset_markers = ["received"]

List of chat markers that when sent, will reset the unread message counter for a conversation. This works when Chat Markers are enabled on the client side. Setting as empty list (not recommended) means that no chat marker can decrease the counter value.


  • Syntax: array of strings
  • Default: ["muclight"]
  • Example: groupchat = ["muclight"]

The list indicating which groupchats will be included in inbox. Possible values are muclight Multi-User Chat Light or muc Multi-User Chat.


  • Syntax: boolean
  • Default: true
  • Example: aff_changes = true

Use this option when muclight is enabled. Indicates if MUC Light affiliation change messages should be included in the conversation inbox. Only changes that affect the user directly will be stored in their inbox.


  • Syntax: boolean
  • Default: true
  • Example: remove_on_kicked = true

Use this option when muclight is enabled. If true, the inbox conversation is removed for a user when they are removed from the groupchat.


  • Syntax: string, one of "one_queue", "no_queue", "queues", "parallel"
  • Default: "no_queue"

Strategy to handle incoming stanzas. For details, please refer to IQ processing policies.

Note about supported RDBMS

mod_inbox executes upsert queries, which have different syntax in every supported RDBMS. Inbox currently supports the following DBs:

  • MySQL via native driver
  • PgSQL via native driver
  • MSSQL via ODBC driver

Legacy MUC support

Inbox comes with support for the legacy MUC as well. It stores all groupchat messages sent to room in each sender's and recipient's inboxes and private messages. Currently it is not possible to configure it to store system messages like subject or affiliation change.

Example configuration

  reset_markers = ["displayed"]
  aff_changes = true
  remove_on_kicked = true
  groupchat = ["muclight"]