MongooseIM provides a wide range of pluggable and configurable modules, that implement various features such as XEPs. For example mod_muc for Multi-User Chat (group chat), mod_mam for Message Archive Management, mod_stream_management for stanza acknowledgements and stream resumption, and mod_websockets. This modules architecture provides a great flexibility for everyday operations and feature development.

A module configuration generally looks like:

  {mod_muc, [
             {host, "muc.@HOST@"},
             {access, muc},
             {access_create, muc_create}

Module list

Some of the modules feature an iqdisc parameter. It defines the method of handling incoming IQ stanzas. Please refer to [[IQ handlers]] for more information. Valid values: no_queue, one_queue, {queues, N}, parallel. Default: one_queue.


Significantly extends the mongooseimctl script capabilities.


Implements XEP-0050: Ad-Hoc Commands for advertising and executing application-specific commands, such as those related to a configuration workflow, using XEP-0004: Data Forms in order to structure the information exchange. This is extremely useful for use cases such as remote administration, user engagement via polls, and ChatBots.


Implements a subset of XEP-0079: Advanced Message Processing functionality, that enables entities to request, and servers to perform, advanced processing of XMPP message stanzas, including reliable data transport, time-sensitive delivery, and expiration of transient messages.


Allows sending online/offline notifications, chat and groupchat messages as events to Amazon Simple Notification Service.


Implements XEP-0191: Blocking Command, a simplified interface to privacy lists.


Allows users to connect to MongooseIM using BOSH (Bidirectional-streams Over Synchronous HTTP), the HTTP long-polling technique described in XEP-0124: Bidirectional-streams Over Synchronous HTTP (BOSH) and XEP-0206: XMPP Over BOSH.


Implements XEP-0280: Message Carbons, in order to keep all IM clients for a user engaged in a real-time conversation, by carbon-copying all inbound and outbound messages to all interested resources (Full JIDs).


Implements XEP-0030: Service Discovery for discovering information (capabilities, protocols, features) about other XMPP entities.


Enables forwarding events to an external HTTP service, such as messages or presences to mobile/SMS/email push service, big data, or analytics service.


Implements XEP-0363: HTTP File Upload for coordinating with XMPP server to upload files via HTTP and receive URLs that can be shared in messages.


Implements XEP-0012: Last Activity) for communicating information about the last activity associated with an XMPP entity (most recent presence information from an offline contact).


Implements XEP-0313: Message Archive Management (current version), that defines a protocol to query and control an archive of messages stored on a server.


Implements XEP-0045: Multi-User Chat), for a featureful multi-user text chat (group chat), whereby multiple XMPP users can exchange messages in the context of a chat room. It is tightly coupled to users' presences in chat rooms.


Implements a logging subsystem for [mod_muc].


Implements XEP Multi-User Chat Light (still being reviewed by XMPP community).


Provides offline messages storage that is compliant with XEP-0160: Best Practices for Handling Offline Messages).


This module implements XEP-0016: Privacy Lists), for enabling or disabling communication with other entities on a network.


Implements XEP-0049 (Private XML Storage) to store and query private user data in XML format.


Implements XEP-0357 Push Notifiactions to provide push notifications to clients that are temporary unavailable.


Handles push notifications generated by mod_pubsub's node_push and passes them to MongoosePush service.


Implements XEP-0077: In-Band Registration), that enables to create an account and change password once connected. This does not provide a solution to the forgotten password use case, via SMS or email.


Roster support, specified in RFC 6121. Includes support for XEP-0237: Roster Versioning.


This module, when enabled, will inject roster entries fetched from LDAP.


Implements XEP-0279: Server IP Check) that enables a client to discover its external IP address.


Enables XEP-0198: Stream Management functionality that defines active management of an XML stream between two XMPP entities, including features for stanza acknowledgements and stream resumption.


Provides support for vCards, as specified in XEP-0054: vcard-temp and XEP-0055: Jabber Search.


Allows users to connect to MongooseIM using Websockets.