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.

mod_admin_extra

Significantly extends the mongooseimctl script capabilities.

mod_adhoc

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.

mod_amp

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.

mod_aws_sns

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

mod_blocking

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

mod_bosh

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.

mod_carboncopy

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).

mod_disco

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

mod_http_notification

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

mod_http_upload

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.

mod_last

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).

mod_mam

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

mod_muc

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.

mod_muc_log

Implements a logging subsystem for [mod_muc].

mod_muc_light

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

mod_offline

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

mod_privacy

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

mod_private

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

mod_push

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

mod_push_service_mongoosepush

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

mod_register

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.

mod_roster

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

mod_shared_roster_ldap

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

mod_sic

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

mod_stream_management

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.

mod_vcard

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

mod_websockets

Allows users to connect to MongooseIM using Websockets.