On this page you'll find information on M-Link server capabilities not covered in-depth by other pages including statistics, PubSub/PEP, integraton with non-XMPP services and Peering Controls. On other pages in this section, you’ll find information on M-Link’s use of Directory for configuration/authentication, security features, support for wide and local area clustering, operation over constrained/unreliable networks, Federated/Multi-User Chat, Archive & Search, and support for Military Forms using FDP.

Statistics

The M-Link server provides a range of statistics which are made available in two ways:

  1. Through M-Link Console as shown below.
  2. Through the M-Link monitoring Web Application.

Key statistics are published by M-Link using XMPP PubSub (XEP-0060). This enables monitoring clients to subscribe to statistics of interest and to receive updates. This eliminates the requirement for polling and enables up to date statistics to be presented in a clear manner. These statistics cover a range of measurements, including server and cluster uptime, connections, and MUC usage.

The statistics which are published by PubSub may be archived as part of the M-Link archiving capability. This means that historical statistics are stored in the XMPP archives and are available to XMPP clients using MAM (XEP-0313). MLink Console uses the capability to display historical statistics.

Some advanced statistics and server operational measurements are available directly from MLink using Ad Hoc (XEP-0050) commands. These are made available to the operator by M-Link Console.

PubSub and Personal Eventing (PEP)

XMPP includes a Publish/Subscribe capability (XEP 0060) to enable flexible sharing of data. Personal Eventing is a subset of this, which allows a user to publish and share data, and in particular "extended presence" information. Personal Eventing is expected to be the basis of important XMPP developments, and support is starting to appear in XMPP clients and applications. M-Link supports Publish/Subscribe and PEP is supported using Publish/Subscribe. Further information on Publish/Subscribe can be found in the whitepaper [XMPP PubSub].

Migration

M-Link enables easy migration from other servers by use of XEP-0227 (Portable Import/Export Format for XMPP-IM Servers). An import tool enables use of XEP-0227 files to set up user configuration, and in particular roster import. XEP-0227 export is also supported, to enable export of M-Link data.

Ad Hoc commands

M-Link supports Ad Hoc commands as a mechanism to provide a number of services. M-Link uses ad hoc commands to give user access to configuration options, as shown below in this screenshot of the Swift XMPP client.

Swift XMPP Client User configuration screenshot

M-Link also uses ad hoc commands to perform various management tasks. These are available to clients configured as server managers (by membership of the manager group). This includes some commands standardized in XEP-0133, and additional commands specific to M-Link.  XEP-0133 commands supported are: add, delete, end user session, disable, enable, change password, get user stats, number of online users, list active users, send announcement. Isode commands include: rename user, list s2s sessions, s2s stats, cluster info (membership), dump router table, user config. M-Link Console uses ad hoc commands for M-Link management.

Integration with non-XMPP IM Services

M-Link support XEP-0114 (Jabber Component Protocol) that allows integrated access to a local and remote services. A common use is to provide connections to non-XMPP instant messaging services (such as AIM, ICQ, Windows Live/MSN and Yahoo Instant Messenger) by use of a compatible XMPP Gateway. M-Link provides flexible access control to manage XEP-0114 access.

M-Link also directly provides gatewaying to Internet Relay Chat (IRC) as described on the M-Link IRC Gateway page. and integration with HF Operator Chat as described on the page covering Constrained Network Operation.

Peering Controls

M-Link provides a number of peering controls, controlling what is sent to and received from other XMPP peer servers. Key controls are:

  • Security Label Checks and Transformations.
  • Filtering of Traffic types.
  • 'Folding' of messages and presence data to remove selected information.

The following controls can be applied either as peering controls, or as core server controls.

  • Blocking in-band file transfer and requests for out of band file transfer.
  • Restrict to 1:1 chat only or to MUC only.
  • Block encrypted traffic
  • Message size limits
  • Control of who can send to who, based on JID
  • Requirements on peer authentication, including ability to require TLS and Strong Authentication

These controls are described in more details in the M-Link Security and M-Link Edge pages.

User Search

M-Link supports client user search (XEP-0055: Jabber Search) that enables an XMPP client to look find other users. M-Link does this user search by a back-end LDAP directory, such as M-Vault, so that searches may be across a user base larger than just those users on the local server.

BOSH

BOSH (XEP-0124: Bidirectional-streams Over Synchronous HTTP) is a mechanism to operate XMPP over HTTP. This facilitates development of Web XMPP clients running in a browser. M-Link supports BOSH in the core server.

Miscellaneous Capabilities

Other capabilities provided by M-Link include:

  • The ability for users to block messages from selected users. Client support can be by either XEP-0191 or ad hoc command.
  • Support for anonymous users. This is often important for BOSH (Web) applications.
  • Configurable "Message of The Day".
  • XEP-0288: BIDI. Optimized server to server communication, to just use a single TCP connection.
  • An HTTP API, which gives a mechanism to provide presence information on local users for integration to web applications. For example, this can allow a directory web application to show user presence status.
  • User warnings, including last login time, and last failures, delivered via XMPP on authentication.