MongooseIM provides a wide range of pluggable and configurable modules, that implement various features including XEPs.
For instance mod_muc
enables Multi-User Chat (group chat), mod_mam
gives us Message Archive Management, and mod_stream_management
is for stanza acknowledgement and stream resumption.
This modular architecture provides great flexibility for everyday operations and feature development.
A module configuration generally looks like this:
{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 for 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_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_auth_token
A module used by SASL X-OAUTH mechanism. It provides an API to manage custom OAuth tokens. It requires mod_keystore as an actual key database.
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_caps
Implements XEP-0115 Entity Capabilities. It queries clients for their supported functionalities and caches them in Mnesia. This module tightly cooperates with mod_pubsub in order to deliver PEP events to user's subscribers.
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_commands
A central gateway providing access to a subset of MongooseIM functions by channels other than XMPP. Commands defined there are currently accessible via REST API.
mod_csi
Enables the XEP-0352: Client State Indication functionality.
mod_disco
Implements XEP-0030: Service Discovery for discovering information (capabilities, protocols, features) about other XMPP entities.
mod_event_pusher
A framework module to build other notification-based modules on.
mod_event_pusher_sns
Allows sending online/offline notifications, chat and groupchat messages as events to Amazon Simple Notification Service.
mod_event_pusher_rabbit
Allows sending presence changes (to available/unavailable), chat and groupchat messages as events to a RabbitMQ server.
mod_event_pusher_push
Implements XEP-0357 Push Notifiactions to provide push notifications to clients that are temporary unavailable.
mod_event_pusher_http
Forward events to an external HTTP service. This applies to situations such as sending messages or presences to mobile/SMS/email push service, big data, or an analytics service.
mod_http_upload
Implements XEP-0363: HTTP File Upload for coordinating with an XMPP server to upload files via HTTP and receive URLs that can be shared in messages.
mod_inbox
Implements custom inbox XEP
mod_global_distrib
Enables sharing a single XMPP domain between distinct datacenters (experimental).
mod_jingle_sip
Enables Jingle to SIP and SIP to Jingle translator.
mod_keystore
Serves as a storage for crypto keys for mod_auth_token
.
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, 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 with user presence in chat rooms.
mod_muc_commands
Provides mod_muc
related mongoose_commands
, accessible via the client REST API.
mod_muc_log
Implements a logging subsystem for [mod_muc].
mod_muc_light
Implements XEP Multi-User Chat Light.
mod_muc_light_commands
Provides mod_muc_light
related mongoose_commands
, accessible via client REST API.
mod_offline
Provides an offline messages storage that is compliant with XEP-0160: Best Practices for Handling Offline Messages).
mod_offline_stub
Prevents <service-unavailable/>
error when the message recipient is offline.
mod_ping
Implements XEP-0199 XMPP Ping, enabling periodic XMPP pings sent to clients and responds to those sent from clients.
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_pubsub
This extension implements XEP-0060 (Publish-Subscribe). It is a pluggable implementation using behaviours provided by node_*.erl
and nodetree_*.erl
modules.
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 creating an account and changing the password once connected. This does not provide a solution to the forgotten password use case via SMS or email.
mod_revproxy
With this extension, MongooseIM may serve as a reverse proxy.
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 the active management of an XML stream between two XMPP entities, including features for stanza acknowledgements and stream resumption.
mod_time
XEP-0202: Entity Time implementation. With this extensions, clients can get the current server time.
mod_vcard
Provides support for vCards, as specified in XEP-0054: vcard-temp and XEP-0055: Jabber Search.
mod_version
This module provides the functionality specified in XEP-0092: Software Version.