Since March 10, 2003 - Version 2.1
hypothetic.org

MSN Messenger Protocol

Home Page

Forum

About
Contact us

Resources

Research

Documentation
 General
 Notification
 Switchboard
 Client
 Reference

Validate XHTML
Validate CSS
Client - Messages
Printable Version

Types of Messages

There are three standard types of messages used by the official client: instant messages (text), typing notifications, and application invitations. Each type of message is differentiated by a unique Content-Type field in the header. Clients may send messages with nonstandard content types for special features such as encryption and feature negotiation. The official client ignores all messages with nonstandard content types, and therefore all clients should as well. In addition, the official client completely ignores malformed messages: e.g. a message without a MIME header.

Instant Messages (text/plain)

Instant messages, also known as plaintext messages, are the regular messages sent back and forth on MSN. They are sent with either Content-Type: text/plain or Content-Type: text/plain; charset=UTF-8 (each specify a different message encoding). Because the explanation for this type of message is quite long, it is fully explained in the Plaintext page.

Typing Notifications (text/x-msmsgscontrol)

A typing notification is sent to inform the other participants in a switchboard session that you are currently typing a message.

  • It uses Content-Type: text/x-msmsgscontrol. It must not include charset=UTF-8.
  • It has a TypingUser field in the header. Its value should be your account name.
  • The body consists only of a single newline (\r\n).

Below is an example of a typing message (just the payload, not the MSG line):

MIME-Version: 1.0\r\n
Content-Type: text/x-msmsgscontrol\r\n
TypingUser: example@passport.com\r\n
\r\n
\r\n

  • The official client sends a typing notification every five seconds if the user has been typing.
  • If the official client receives a typing notification, it will indicate that a principal is typing a message. It will remove this indicator after receiving a message from the principal or after ten seconds with no new typing notification.
  • There is a bug in the official client where if someone changes the value of the TypingUser field, it may display that value instead of your display name for the principal who is typing a message. Third party clients should just ignore the value of this field and use the source of the MSG to determine who is typing the message.

Application Invitations (text/x-msmsgsinvite)

Application invitations are used to invite principals to join applications such as file transfer, voice conversation, video conferencing, NetMeeting, remote assistance, whiteboard, games, and more. Invitations use Content-Type: text/x-msmsgsinvite; charset=UTF-8 and the charset parameter is not optional. Because the explanation for this type of message is quite long, it is fully explained in the Invitations page.

Unofficial Types of Messages

If you write your own MSN Messenger client, you can send any type of message you like, which will just be ignored by the official client. If you choose to do this, you're encouraged to write up a specification for your new message type so that others can use it too. Please contact us with a name, URL, and brief description of your entry so we can add it to this page.

At present, we know about the following proposals for unofficial message types:

  • Secure Messaging
    Proposals and current implementations for encrypted messaging over MSN Messenger.

  • x-clientcaps
    A message type designed to identify and negotiate features and information between third party clients.

Search website:


Copyright©2002-2004 to Mike Mintz.