• High performance & Good Scaling
  • Good interoperability with deployed XMPP & Jabber clients and servers
  • SASL Authentication
  • Very easy to set up
  • Account configuration held in directory
  • SNMP Monitoring following Network Services MIB (RFC 2788)

What is M-Link?

M-Link is Isode's Instant Messaging and Presence server based on the XMPP (eXtensible Messaging and Presence Protocol).

XMPP is the Open Standard for Instant Messaging and Presence, formalized by the IETF in 2002-2004, and continuously extended through the standards process of the XMPP Standards Foundation. You can read more about Isode's strategy in this area in the whitepaper Isode's Presence, Real Time Messaging and XMPP Strategy.

On this page you can find information on the XMPP protocol, M-Link Authentication and use of directory, M-Link management, clients and applications and conformance. M-Link can be evaluated either as part of Isode Internet Messaging Suite or as a standalone Instant Messaging system supported by Isode's LDAP Directory server, M-Vault.

 

XMPP: Messaging & Presence

XMPP defines protocols for communicating between a client and a server (C/S), and between servers (S/S), as illustrated in the diagram below. An XMPP Client will talk to the server with which it is registered.

A client will report its status to the service (e.g., "free for chat"). Clients can build a roster or buddy list of peers that they communicate with that is held in the XMPP server. The XMPP server will maintain the presence status of each member of the roster, and allow messages to be sent and received.

This scenario is familiar to many Instant Messaging (IM) users, although some of the well known IM services are single server and do not communicate with other servers in the way that XMPP does, some of the newer high-profile IM services do use the increasingly popular XMPP protocol. The key benefit of XMPP is that it provides a distributed IM and Presence service.

 

Support of XMPP Clients

Each M-Link client has a name (e.g., romeo@capulet.com). Each client has an M-Link (XMPP) server identified by the domain, so romeo@capulet.com would use the capulet.com XMPP server. A client registers with the server, and informs the server of change of status. A user can connect multiple clients to the server. A client manages the roster (buddy list) and the XMPP server informs the client of presence status of members of the roster. XMPP clients can exchange XML formatted messages using the XMPP service. This is the basis for IM and other services.

 

M-Link Authentication and Use of Directory

User account and password information is maintained in the directory, and used by M-Link and other applications for authentication. In particular, this authentication information is shared with Isode messaging applications. Passwords may be controlled with Isode's password policy framework. This is described in the white paper Password Policy for Directories.

M-Link uses SASL (Simple Authentication and Security Layer) for authentication, and this will be shared with other servers using Isode's SASL support. This integrated authentication approach enables common authentication and shared passwords between XMPP and other applications.

 

M-Link Management

M-Link can be deployed as part of a complete internet messaging system or as a standalone instant messaging server.

As part of an Internet Messaging System

Isode provides Web based configuration of its Internet messaging servers, including M-Link, using Internet Messaging Administrator (IMA).

User Creation
Click image for more detail

XMPP accounts are automatically provisioned when a user is added to the messaging system, with email address and XMPP address being the same. This integrated provisioning is provided using a directory back end, and so can be easily be integrated with a third-party provisioning system to give the same result.

As a stand-alone system

XMPP user accounts can be configured for stand-alone M-Link installations utilizing Isode's Sodium directory management tool.

Configuring XMPP client accounts using Sodium

For more information on configuring M-Link for stand-alone use, please refer to the evaluation guide from the M-Link evaluation page.

Clients and Applications

Many XMPP clients can be used with M-Link. A list of some of these can be found here.

Whilst IM is an important and well known use of the messaging part of XMPP, it is important to understand that the basic messaging part of XMPP can be used as a building block for more complex applications, and in particular to transfer XML data defined in support of other applications. Chat rooms are an extension to the core XMPP service, providing a mechanism for multiple users to exchange and share information.

In order to function correctly, these IM and other messaging services require that the presence status of clients connected to the XMPP network (specifically those in the client's 'roster' or 'buddy list' which each client maintains on its XMPP server) is available.

When a client initially connects, its presence status is registered by its own XMPP server, that information is maintained and updated by the server and shared with other XMPP servers whose client rosters demand it.

Presence is critical to enabling IM and to enabling direct Client to Client communications for services whose high data volumes make it inappropriate to route communications indirectly through the server.

In the diagram above, after establishing presence information via their XMPP servers, two clients have initiated client to client voice communication using the XMPP-based JINGLE mechanism. This architecture can be used to support a wide range of applications enabled in the XMPP Client, including Voice, Video, Whiteboarding and File Transfer.

Conformance

RFC 3920 Extensible Messaging and Presence Protocol (XMPP): Core, P. Saint-Andre, October 2004. Including updates based on implementation experience set out in draft-saintandre-rfc3920bis-04.txt
RFC 3921 Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence, P. Saint-Andre, October 2004. Including updates based on implementation experience set out in draft-saintandre-rfc3921bis-04.txt
XEP 0030 Service Discovery, J. Hildebrand, P. Millard, R. Eatmon, P. Saint-Andre, February 2007
XEP 0054 vCard Profiles, P. Saint-Andre, March 2003
XEP 0078 Non-SASL Authentication (for support of older clients), P. Saint-Andre
XEP 0220 Server Dialback, P. Saint-Andre, J Miller, December 2007
XEP 0212 XMPP Basic Server 2008, P. Saint-Andre, July 2007

Availability

M-Link is available on Linux, Solaris and Windows. Details on supported platforms and versions can be found here.

 

Copyright © 2008 Isode privacy   feedback Subscribe to our rss newsfeed