MSN Messenger Protocol
What is MSN Instant Messenger?
MSN Instant Messenger [http://messenger.msn.com/] is a proprietary instant messaging network brought to you by Microsoft. The client software was first released in July, 1999, and is neither the first nor the last instant messaging network. The software is now bundled with Windows (TM). MSN Messenger is sometimes also known as .NET Messenger or Windows Messenger. The term MSN Messenger can refer to the protocol, the server, and the official client from Microsoft.
Who is this site aimed at?
This site is written for programmers who are interested in writing their own MSN Messenger client or server. It describes the technical details of the Messenger protocol, and how to write a program to speak that protocol. If you're an end-user - of Microsoft's client or someone else's - this site won't be of any use to you. There are other sites that might.
What is the protocol?
The MSN Instant Messenger protocol is the "language" used in communication between the client (the program on your PC) and the server. This site attempts to fully document the protocol so that third party software developers can write their own programs to interact with the network.
For example, when someone on your contact list goes offline, the servers sends a message like this to your client:
How did you learn the protocol?
All of the information on the protocol was learned by reading the official IETF draft, reading various sources, analyzing packets, and writing programs. A lot of information was contributed by readers who discovered aspects of the protocol on their own through testing and research. If you make any discoveries, we would certainly like to hear about them.
What versions of the protocol are covered?
This website attempts to fully uncover the protocol version MSNP7, which was the latest protocol until MSN Messenger 5.0 was released. MSN 5 uses a new MSNP8, which is very different from any older versions, and will be researched and discussed in the MSNP8 page. Differences in versions older than MSNP7 will be discussed in their relavent pages.
This site includes many examples of dialogues between client and server, and between two clients. Client/server dialogues are always described from the point-of-view of the client. Client/client dialogues are described from the point-of-view of one or other client. A bold monospace font is always used for these dialogues. Text sent from the (local) client is always
A block of text sent by the (local) client is always preceded by
At the end of a line of text sent by the server or the client, there are often newline characters. In most cases, it is a carriage return followed by a linefeed which is expressed as the light-gray
When short examples of protocol are found in paragraphs, such as the name of a command or an example of a nickname, they are usually found in