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

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