Difference between revisions of "Protocols/MSNP"

From NINA Wiki
Jump to navigation Jump to search
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Clients ==
+
{{Protocols/MSNP}}
 +
 
 +
MSNP stands for "Microsoft Notification Protocol", the protocol used on MSN/Windows Live Messenger, all the way to when it was discontinued, and Skype's network used a heavily modified version of MSNP in the past. We not only will fully document the protocol, but will maintain and update it.
 +
 
 +
If you want to contribute, you can request an account by sending an email to [mailto:accounts@wiki.nina.chat accounts@wiki.nina.chat] with desired username and also a few words on what you have to contribute (for spam control). You should also check the [[Needed]], which is a list of things we are looking for.
 +
 
 +
If you want to contribute something anonymously or without registering, send it to [mailto:contribute@wiki.nina.chat contribute@wiki.nina.chat]. If anonymity is desired, state so, and your name/email will not be mentioned.
 +
 
 +
You can also [[Donate|donate]] to help with this MSN/Windows Live revival, because it is a full time job at this point.
 +
 
 +
 
 +
 
 +
= Clients =
 
* [[Clients/Windows_Live_Messenger|Windows Live Messenger]]
 
* [[Clients/Windows_Live_Messenger|Windows Live Messenger]]
 
** [[Clients/Windows_Live_Messenger/Messenger_Plus!|Messenger Plus!]]
 
** [[Clients/Windows_Live_Messenger/Messenger_Plus!|Messenger Plus!]]
Line 5: Line 17:
 
Read additional [[Protocols/MSNP/FAQ|frequently asked questions]] for clients and the Escargot service.
 
Read additional [[Protocols/MSNP/FAQ|frequently asked questions]] for clients and the Escargot service.
  
== Overview ==
+
= Protocol History =
 +
MSNP was first implemented with version 2 - MSNP2 - on July 17 1999. It only used TCP, no webservices or anything like that.
 +
 
 +
As time went along, MSNP was extended and improved upon, incrementing its version number. By MSNP8, a new authentication system was being used: .NET Passport / Tweener. This was first time something essential was used that wasn't sent via the regular MSNP TCP socket.
 +
 
 +
From a technical standpoint the MD5 method that was used in [[Protocols/MSNP/MSN Protocol Version 7|MSNP7]] was completely secure even from man in the middle attacks but Microsoft decided that it would be beneficial to MSN Messenger to authenticate directly with the passport servers, and [[Protocols/MSNP/Tweener]] was born.
 +
 
 +
After MSNP8, other, newer protocol versions were released ([[Protocols/MSNP/MSN Protocol Version 9|MSNP9]], [[Protocols/MSNP/MSN Protocol Version 10|MSNP10]], [[Protocols/MSNP/MSN Protocol Version 11|MSNP11]], [[Protocols/MSNP/MSN Protocol Version 12|MSNP12]], [[Protocols/MSNP/MSN Protocol Version 13|MSNP13]] for WLM 8, et al). Most of the times the protocols introduced a more efficient way of storing contact lists and other properties, but also added new features as new clients were released to the public by the MSN Messenger team.
 +
 
 +
MSNP's final version was MSNP21, if we consider Windows Live Messenger 2012 the last version. However, MSNP22 existed, it was used on the Metro Messaging app on Windows 8.0, and MSNP24 was used on Skype for a while - although very different from regular old MSNP.
 +
 
 +
All connections to MSN servers take place over TCP/IP. The client always makes the outgoing connections to the servers. The official port for MSN Messenger is 1863, although there are many places in the protocol where alternate ports could be specified, so this may be subject to change.
 +
 
 +
The connection to the server must be considered asynchronous - you can send many commands to the server without waiting for a reply, and the server won't necessarily reply to your commands in the order you sent them. The server may also send messages that are not in reply to any particular message from the client. However, sometimes (for example, when logging into a notification server) the protocol requires you to send one command then receive one command, and so on.
 +
 
 +
There are also several OOB (out-of-band) protocols that take place directly between clients and do not involve the server. These protocols are described in their respective sections, and are not necessary for basic functionality of a client.
 +
 
 +
= What is MSN Messenger? =
 +
The term 'MSN Messenger' is quite ambiguous, as Microsoft use the term to refer to several different parts of their instant messaging solution. You chat over the 'MSN Messenger network', the most popular program to connect to the MSN Messenger network is 'MSN Messenger', and the language that programs on the MSN Messenger network speak is 'MSNP', the '''M'''icro'''s'''oft '''N'''otification '''P'''rotocol.
 +
 
 +
== What is the MSN Messenger Network? ==
 +
The MSN Messenger network is a presence and instant messaging network from [http://www.microsoft.com Microsoft]. It went online in July 1999, and is neither the first nor the last instant messaging network. MSN Messenger is among the top four proprietary instant messaging networks. As of March 2003, there were far fewer unique users on the MSN Messenger network than on [[Protocols/OSCAR|AOL Instant Messenger]] or [[Protocols/OSCAR|ICQ]] but more than on [[Protocols/YMSG|Yahoo Messenger]].
 +
 
 +
== What is the MSN Messenger Protocol? ==
 +
The MSN Messenger protocol consists of a series of commands sent between the client and the server. For example, when someone on your contact list signs out, the server sends a message like this to your client: '''FLN example@hotmail.com'''. On receiving this, the client should mark that contact as offline.
 +
 
 +
The MSN Messenger protocol has undergone several revisions over the years. Microsoft's servers allow clients to use versions 8, 9, 12, 13, 14 & 15 of the protocol. Individual protocol versions are often written as 'MSNP8', 'MSNP9' and 'MSNP12', which stands for '''M'''icro'''s'''oft '''N'''otification '''P'''rotocol and is followed by the version number of the protocol.
 +
 
 +
This site intends to fully document the MSN Messenger protocol and quirks of MSN Messenger servers so that third party software developers can write their own programs to interact with the network.
 +
 
 +
The information on the protocol was gathered by reading the official IETF draft, reading various sources, analysing packets, analysing the official client, and writing programs. Most of this work was done by other members of the MSN Messenger research community, which we have just written up. If you have discovered something new about the protocol, please make it known in the [https://escargot.chat/forums/ forum].
 +
 
 +
== What is the MSN Client Protocol? ==
 +
The MSN Client protocol consists of messages sent between clients. For example, when you say "hello" to a friend, your client sends a message to their client with hello as the body of the message.
 +
 
 +
Until relatively recently, the MSN client protocol grew quite organically - one version of the official client would behave differently to another, and you just had to guess what behavior was expected by whom. Recently, attempts have been made to impose a version numbering system.
 +
 
 +
= How does the protocol work? =
 +
MSN Messenger is a presence and instant messaging system. 'Presence' is whether you're online, whether you're sharing a webcam, etc. 'Instant messaging' is talking with other people. Users of presence and instant messaging systems (people, bots, etc.) are referred to as 'principals'. RFC 2778 provides a very good general overview of what a presence and instant messaging system does, and you're advised to read it if you haven't worked on one before. Where possible, technical terms used on this site have been taken from that document.
 +
 
 +
An MSN Messenger session involves a connection to a 'Notification Server' (or 'NS'), which provides a presence service. The notification server allows you to connect to 'Switchboard Servers' ('SBs'), which provide an instant messaging service.
 +
 
 +
== Notification Server (NS) ==
 +
The connection to a notification server is the basis of an MSN Messenger session, as it handles your presence information: if you are disconnected from the notification server, you are no longer online to your buddies. The main purpose of the notification server is to handle presence information about yourself and the principals whose presence you've subscribed to.
 +
 
 +
The notification server also performs some other services like notifying you about new e-mail in your [http://www.hotmail.com Hotmail] inbox and letting you create new (or join existing) switchboard sessions. When you're directed to join a switchboard session, you should open a new connection to the switchboard, and keep the notification server open.
 +
 
 +
Note: The original draft refers to a third type of server known as a 'Dispatch Server', or 'DS'. However, throughout our documentation, the Dispatch Server is just treated as the default notification server.
 +
 
 +
== Switchboard (SB) ==
 +
The switchboard handles instant messaging sessions between principals. In other words, each person in an MSN chat corresponds to a connection to a shared switchboard session. Being in two conversations at once means connecting to two switchboard servers at once. Directly connected conversations between principals are not used in MSN Messenger, and the switchboard acts as a proxy between you and those you are chatting with.
 +
 
 +
A switchboard session can have as many people in it as you like - there's no equivalent of the one-to-one conversations that there's no way of forcing a session not to accept more than two people. This can be quite awkward because some of the uses for a switchboard session (like initiating a file transfer)
 +
 
 +
The SB is also where invitations to other services such as file transfer and NetMeeting are sent and received. Mobile paging is one of the only forms of communication that does not take place over a switchboard server.
 +
 
 +
Note that the SB and the NS are not very tightly integrated. For example, when a principal in a switchboard session change his or her display name, the switchboard still sends out messages and other commands with the old display name. In addition, when a principal disconnects from the NS, all switchboard sessions still remain open until the client explicitly closes them.
 +
 
 +
 
 +
== Encoding ==
 +
At the lowest level, computers can only send 1s and 0s to each other. In order for two computers to communicate, they must agree on what the 1s and 0s represent. In MSN Messenger (except in file transfer), they represent characters, such as "Latin Capital letter A", "Digital Four", or "Runic letter short-twig-sol". In other words, MSN Messenger is a text-based protocol.
 +
 
 +
 
 +
<!--
 +
= Overview =
 
Since the original sort of lacked a good overview page, because it just redirected to Version 8, below is the former side bar, which will be turned back into a sidebar later, but for now is a temporary overview/index.  
 
Since the original sort of lacked a good overview page, because it just redirected to Version 8, below is the former side bar, which will be turned back into a sidebar later, but for now is a temporary overview/index.  
  
Line 36: Line 112:
 
* [[Protocols/MSNP#URLs_used_by_MSN|URLs used by MSN/WLM]]
 
* [[Protocols/MSNP#URLs_used_by_MSN|URLs used by MSN/WLM]]
  
Successful login logs:
+
-->
 +
 
 +
= Login logs =
  
 
* [[Protocols/MSNP/Clients/Logs/WLM_2009|WLM 2009 v14.0.8117.416]]
 
* [[Protocols/MSNP/Clients/Logs/WLM_2009|WLM 2009 v14.0.8117.416]]
 
* [[Protocols/MSNP/Clients/Logs/WLM_2012|WLM 2012 v16.4.3528.331]]
 
* [[Protocols/MSNP/Clients/Logs/WLM_2012|WLM 2012 v16.4.3528.331]]
  
 +
<!--
 
== Index ==
 
== Index ==
 
''Windows Live Network Protocol''
 
''Windows Live Network Protocol''
Line 135: Line 214:
 
</pre>
 
</pre>
  
==== Polygamy ====
 
 
<pre>
 
The MSN polygamy program changes one byte (0xb7 -> 0xb6) at 0x1406b1 (7.0.0770):
 
 
```diff
 
- 01406b0: b73d 0000 0f00 b585 0001 6a00 ffff 2877
 
+ 01406b0: b63d 0000 0f00 b585 0001 6a00 ffff 2877
 
```
 
 
Location of this byte in several version of MSN (English):
 
 
```
 
MSN 1.0.0863: 0x 263ce
 
MSN 2.0.0083: 0x 2acef
 
MSN 2.0.0085: 0x 2ad07
 
MSN 2.2.1053: 0x 17160
 
MSN 3.0.0286: 0x 1f234
 
MSN 3.5.0077: 0x 30389
 
MSN 3.6.0025: 0x 2f82d
 
MSN 4.5.0121: 0x 4e692
 
MSN 4.6.0073: 0x 1e794
 
MSN 4.6.0083: 0x 2b9c4
 
MSN 5.0.0544: 0x 46739 | nexus: 0x655a0 | 0x f048
 
MSN 6.0.0602: 0x ccbf2 | nexus: 0x1f164 | 0x1f238
 
MSN 6.2.0137: 0x dffe1 | nexus: 0x22ce0 | 0x22d68
 
MSN 7.0.0777: 0x1406b1 | nexus: 0x2cd80 | 0x2ce18
 
MSN 7.0.0813: 0x147079 | nexus: 0x2d098 | 0x2d140
 
MSN 7.0.0820: 0x147112 | nexus: 0x2cfb8 | 0x2d060
 
MSN 7.5.0311: 0x157607 | nexus: 0x2e8f8 | 0x2e9b8
 
MSN 7.5.0324: 0x1580ec | --            | 0x2e9e8
 
WLM 8.1.0178: 0x1430ef
 
 
MSN <  5: uses registry for messenger.hotmail.com
 
MSN 5 - 7.0: uses nexus (5 - 6 also use registry as cache for NS)
 
MSN 7.5 - 8: uses RST
 
WLM 2009+: uses RST2
 
</pre>
 
 
==== MSN/MSNP Grid ====
 
 
<pre>
 
MSN  1.0  (1999-07-17):                                                  2
 
MSN  2.0  (1999-11-16):                                                3 2
 
MSN  2.2+ (2000-03-28):                                              4 3
 
MSN  3.0+ (2000-08-07):                                            5 4
 
MSN  4.5+ (2002-09-24):                                        7 6 5 4
 
MSN  5.0  (2003-02-19):                                      8
 
MSN  6.0  (2003-07-11):                                    9 8
 
MSN  6.1+ (2004-06-01):                                  10 9
 
MSN  7.0  (2005-03-31):                              11 10
 
MSN  7.5  (2005-10-18):                            12 11 10
 
WLM  8.0  (2006-06-19):                      14 13
 
WLM  8.1+ (2007-01-29):                  15 14 13
 
WLM  9.0  (2007-11-07):                16 15
 
WLM 14    (2009-01-07):          18 17
 
WLM 15    (2010-09-30): 21 20 19 18 17
 
WLM 16    (2012-08-07): 21 20 19 18 17
 
</pre>
 
 
''MSN Era (199X - 2012)''
 
 
<pre>
 
MSNP0 - Existence unconfirmed; most likely doesn't exist
 
MSNP1 - Existence unconfirmed; possibly doesn't exist
 
MSNP2 - Used in MSN Messenger 1.0; first publicly released version of the MSNP protocol; recognized MD5 and `CTP` authentication methods (plaintext); supports basic contact management (add/remove contacts to `FL`, `AL`, and `BL`), `RL` notifications, sending service invitations to unregistered users via e-mail (`SND`), and switchboard messaging.
 
MSNP3 - Used in MSN Messenger 2.0 and WebTV/MSNTV build 2.5; removed `CTP` authentication; introduced `IMS` command to toggle the ability to send switchboard requests and receive switchboard invitations (only officially used on WebTV's Messenger client)
 
MSNP4 - Used in MSN Messenger 2.2; No known changes
 
MSNP5 - Used in MSN Messenger 3.0; introduces custom user/contact properties (`PRP`/`BPR`), server-side alerts (`NOT`), paging MSN Mobile devices (`PAG`/`IPG`), and the ability to add a custom message and name to service invitation emails (`SDC`)
 
MSNP6 - Used in MSN Messenger 3.6 and WebTV/MSNTV build 2.8; Now requires users to have their account verified to use services and introduces required challenge/response authentication post-login (`CHL`/`QRY`)
 
MSNP7 - Used in MSN Messenger 4.5 - 4.7 (to our knowledge); Adds support for contact groups
 
MSNP8 - Used in MSN Messenger 5.0, Windows Messenger 5.1, and MSN Messenger 4.7 builds 2005 - 3001; obsoletes MD5 authentication in favor of new HTTPS-based `TWN` authentication; restricts MSN subscriber accounts to be logged on to MSN Explorer to use Messenger services; adds capabilities support for contacts
 
MSNP9 - Used in MSN Messenger 6.0; adds basic P2P support with the MSNObject for contacts and the `D` type for switchboard messages, which facilitates the MSNC P2P protocol; `QNG` now sends an argument - a randomly generated number that is believed to range from 40 - 60 that signifies the timeout in seconds before the client should send another `PNG`
 
MSNP10 - Used in MSN Messenger 6.1 and 6.2; starts integrating Messenger with Hotmail with several updated versions of commands and using UUIDs in place of numeric IDs for user items (on official servers Messenger and Hotmail groups were also integrated with each other); also allows changing a user's display name through `PRP`
 
MSNP11 - Used in MSN Messenger 7.0; adds support for notifying users of updated MSN Spaces blogs from contacts, managing MSN Mobile credits (`SBS`), server-side client configuration (`GCF`), `UBX` (setting user details like PSM, current media, etc.), and retrieval of OIMs (offline messages, at the time called Offline Mobile Messages and were only possible to send through supported mobile devices); challenge/response authentication is updated to be more complex.
 
MSNP12 - Used in MSN Messenger 7.5; still uses `TWN` authentication method but official client used an HTTPS SOAP-based login service for the process (the previous HTTPS service was primarily header-based); adds support for network IDs to identify contacts from different networks (in this case mainly to identify Messenger and phone contacts) and also allows for real-time and detailed notifications regarding contacts' MSN Spaces blogs thanks to `NOT`; sends capabilities ID of users in switchboard rosters/join notifications
 
MSNP13 - Used in Windows Live Messenger 8.0 betas (and possibly some final versions?); deprecates client-side `GCF` in favor of server-side `GCF` sent during the initial authentication phase; also deprecates `SYN` and contact/group-related commands in favor of SOAP-based ABCH services and XML-based `ADL` and `RML` commands for adding/removing contacts to lists (ABCH services are used to better integrate Messenger and Hotmail together) - `ADL` is also used to sync contact lists to the server using data from the ABCH services, so server-side contact lists on the protocol server are nonexistent at this point; `GTC` is obsoleted and sending the command results in a server disconnection; allows sending of OIMs on desktop clients through SOAP services; server can now request client for its lists (`RFS`); support for sending of client-specific messages to other users (`UUN`/`UBN`); server-side ABCH sync notifications with `NOT`
 
MSNP14 - Used in Windows Live Messenger 8.0.0792; supports interoperability with Yahoo! Messenger (`UUM`/`UBM`); switchboard invitations can now be marked by the server to indicate if the client should connect through direct protocol servers or gateways
 
MSNP15 - Used in Windows Live Messenger 8.1 and 8.5; adds `SSO` login method - uses the same HTTPS SOAP login service, but now [another challenge/response function](http://web.archive.org/web/20100402035335/http://msnpiki.msnfanatic.com/index.php/MSNP15:SSO) is required to login completely; 8.5-specific features: allows the ability to make profile roaming through several new ABCH services and new MSNObject type "14" is defined ("Location"; removed after betas for privacy reasons)
 
MSNP16 - Used in Windows Live Messenger 9.0 Beta and Messenger:mac 8.0.2; introduces support for MPoP (Multiple Points of Presence), allowing users to sign in on several devices at once with the same account, and signature sounds (sounds that your contacts can hear when you log in); switchboards now have to accommodate with the new MPoP system by requiring switchboard initiators to invite their other sessions and for the servers to send join notifications and roster information in a specific order
 
MSNP17 - Used in early Windows Live Messenger 2009 betas; not much is known about it but it appears to have support for an earlier version of Circles (those use ABCH services that are undocumented at the moment)
 
MSNP18 - Used in later Windows Live Messenger 2009 betas and final WLM 2009 builds; official client uses revamped version of the HTTPS SOAP login service, but `SSO` authentication method is still the same; utilizes `UUM` to send offline messages in place of OIM SOAP services (SOAP is still used to retrieve them); supports Circles, officially named Groups (a mix of ABCH services and new/reutilized MSNP commands, `SDG` being a major example of a new command heavily used for Circles); introduces ability to report users from NS (`VAS`, at this time currently undocumented)
 
MSNP19 - Existence unknown
 
MSNP20 - Used in Windows Live Messenger 2010 Beta; not much else is known aside from this right now
 
MSNP21 - Used in Windows Live Messenger 2011 and 2012; complete revamp of MSNP protocol; uses `PUT`/`NFY PUT` to broadcast statuses of contacts to users and `SDG` completely replaces switchboards; `ADL` and `RML` commands have their payload data restructured; server migration commands can now be specified to redirect to an HTTP gateway server; introduces dedicated multi-user chats referred to as "Multiparties"; setting PSM is now delegated to a web service; introduces ability to tell other PoPs when you close a window in one session
 
</pre>
 
 
'' Metro & Post-Live Era (2012 - 2019(?)) ''
 
 
<pre>
 
MSNP22 - Used in Windows 8's UWP Messaging app; only works through HTTPS gateway; official client used `WEB` authentication method, but official servers also accepted `SSO` method as well; only login portion has been documented fully, the rest is up for debate
 
MSNP23 - Existence unconfirmed; most likely doesn't exist
 
MSNP24 - Another revamp of the MSNP protocol used in Skype clients from 6.14 all the way to 7.x (Windows); new commands are used to authenticate (meaning no specified authentication methods anymore) and also for normal service usage (`SDG` being a major exception), and almost all currently available commands are payload commands; the fact that Microsoft kept this version of MSNP in use some time after they discontinued their Messenger service (and finally killed off the servers for that around 2017) until around 2019 is surprising, as at that point MSNP as a protocol was around 20 years old and on life support
 
MSNP25 - Speculation has been made about this version potentially existing due to the behavior of the protocol servers when MSNP24 was initially discovered, but at this point we still don't have hard proof that it even existed at all.
 
MSNP26+ - Most likely that these versions don't exist, period
 
</pre>
 
 
==== URLs used by MSN ====
 
 
<pre>
 
Essential:
 
- `messenger.hotmail.com`: MSNP connection; all versions
 
- `messenger.hotmail-int.com`: MSNP connection; some betas, including 5.0.0327?
 
- `gateway.messenger.hotmail.com`: HTTP proxy for around the MSNP connection; all versions
 
- `nexus.passport.com`: Provides login url; MSN 5 - 7.0
 
- `config.messenger.msn.com`: MsgrConfig file that specifies tabs, ads, etc; MSN 6+
 
- `loginnet.passport.com`, `login.live.com`: IDCRL login; MSN 7.5+
 
- `byrdr.omega.contacts.msn.com`: SOAP contacts; WLM 8
 
 
Non-essential/additional services:
 
- `ows.messenger.msn.com`, `rsi.hotmail.com`: Offline messaging servers, send and receive respectively
 
- `login.live.com`: HTTP(S) authentication to Windows Live ID and acquiring of x509 certificates for secure peer-to-peer (p2p) connections for the Sharing Folders feature
 
- `*.storage.msn.com`: Online storage of user tile, status message, display name, and Windows Live Space storage? WLM 8.0+?
 
- `sup.live.com`: What's New service; WLM 2009+
 
- `sqm.msn.com`: Software Quality Management; telemetry/log submission
 
- [`g.msn.com URLs`](g.msn.com-urls): URL shortener for various Microsoft/MSN/Live services and downloads
 
- `c.msn.com`: "To set an anonymous unique ID for a user to personalize the Windows Live experience"
 
- `crl.microsoft.com`: "To access the latest Certificate Revocation List (CRL) in order to check the validity of a certificate"
 
- `*.edge.messenger.live.com`: "Various core Messenger operations. For example, echo servers that are used to establish direct connectivity between two messenger clients for peer-to-peer (p2p) communication when clients are behind firewalls"
 
- `relay.data.edge.messenger.live.com`: "Media relay used to transfer binary data (files, voice, or video)"
 
- `rad.msn.com`: "To download advertising content display in the client and to download ad-sponsored personal expression content, such as display pictures, and emoticons"
 
- `appdirectory.messenger.msn.com`: "Used by Messenger activities/games applications that run inside Messenger applications"
 
- `images.messenger.msn.com`: "For messenger image files"
 
- `spaces.live.com`: "For the contact card"
 
- `relay.voice.messenger.msn.com`: "Media relay used for voice"
 
 
g.msn.com:
 
 
Final URLs from this Microsoft URL shortener.
 
 
```
 
g.msn.com/5meen_us/1 http://www.microsoft.com/exchange/downloads/2000/imclient.asp
 
g.msn.com/5meen_us/2 "No such link"
 
g.msn.com/5meen_us/3 http://www.microsoft.com/windowsxp/pro/default.asp
 
g.msn.com/5meen_us/4 ?
 
g.msn.com/5meen_us/5 http://www.microsoft.com/windowsxp/home/default.asp
 
g.msn.com/5meen_us/6 ?
 
g.msn.com/5meen_us/7 http://www.microsoft.com/windowsxp
 
g.msn.com/5meen_us/8 ?
 
g.msn.com/5meen_us/9 ?
 
g.msn.com/5meen_us/10 "No such link"
 
g.msn.com/5meen_us/11 http://loginnet.passport.com/login.srf?id=2&svc=mail&cbid=24325&msppjph=1&lc=1033 -> http://www.hotmail.msn.com/cgi-bin/sbox -> http://lc2.law5.hotmail.passport.com/cgi-bin/login?_lang=EN&lc=1033&fs=1&ct=1043371254&tw=86400&id=2&kv=0&rru=%2fcgi%2dbin%2fhmhome&reason=nocookies
 
g.msn.com/5meen_us/12 "No such link"
 
g.msn.com/5meen_us/13 http://www.passport.com/
 
g.msn.com/5meen_us/14 ?
 
g.msn.com/5meen_us/15 http://memberservices.passport.com/
 
g.msn.com/5meen_us/16 ?
 
g.msn.com/5meen_us/17 ?
 
g.msn.com/5meen_us/18 ?
 
g.msn.com/5meen_us/19 http://www.msn.com/
 
g.msn.com/5meen_us/20 ?
 
g.msn.com/5meen_us/21 http://my.msn.com/
 
g.msn.com/5meen_us/22 ?
 
g.msn.com/5meen_us/23 ?
 
g.msn.com/5meen_us/24 ?
 
g.msn.com/5meen_us/25 http://search.msn.com
 
g.msn.com/5meen_us/26 ?
 
g.msn.com/5meen_us/27 http://eshop.msn.com/
 
g.msn.com/5meen_us/28 ?
 
g.msn.com/5meen_us/29 http://moneycentral.msn.com/home.asp
 
g.msn.com/5meen_us/30 ?
 
g.msn.com/5meen_us/31 http://communities.msn.com/people/
 
g.msn.com/5meen_us/32 ?
 
g.msn.com/5meen_us/33 ?
 
g.msn.com/5meen_us/34 ?
 
g.msn.com/5meen_us/35 http://join.msn.com/
 
g.msn.com/5meen_us/36 ?
 
g.msn.com/5meen_us/37 http://explorer.msn.com/
 
g.msn.com/5meen_us/38 ?
 
g.msn.com/5meen_us/39 ?
 
g.msn.com/5meen_us/40 ?
 
g.msn.com/5meen_us/41 ?
 
g.msn.com/5meen_us/42 ?
 
g.msn.com/5meen_us/43 ?
 
g.msn.com/5meen_us/44 ?
 
g.msn.com/5meen_us/45 ?
 
g.msn.com/5meen_us/46 ?
 
g.msn.com/5meen_us/47 ?
 
g.msn.com/5meen_us/48 ?
 
g.msn.com/5meen_us/49 ?
 
g.msn.com/5meen_us/50 http://members.msn.com/find.msnw?pgmarket=en-us
 
g.msn.com/5meen_us/51 http://members.msn.com/rootcat.msnw?pgmarket=en-us
 
g.msn.com/5meen_us/52 ?
 
g.msn.com/5meen_us/53 ?
 
g.msn.com/5meen_us/54 ?
 
g.msn.com/5meen_us/55 http://g.msn.com/5meen_ms/55 -> http://status.messenger.msn.com/Status.aspx
 
g.msn.com/5meen_us/56 ?
 
g.msn.com/5meen_us/57 ?
 
g.msn.com/5meen_us/58 ?
 
g.msn.com/5meen_us/59 ?
 
g.msn.com/5meen_us/60 http://messenger.microsoft.com/tabs/tabxml.asp
 
g.msn.com/5meen_us/61 ?
 
g.msn.com/5meen_us/62 ?
 
g.msn.com/5meen_us/63 http://help.msn.com/EN_US/HelpWindow_msg.asp?INI=Messengerv60DL.ini&H_VER=1.7
 
g.msn.com/5meen_us/64 http://help.msn.com/EN_US/HelpWindow_msg.asp?INI=Messengerv60XP.ini&H_VER=1.7
 
g.msn.com/5meen_us/65 http://messenger.microsoft.com/redirs/validate.asp -> http://memberservices.passport.net/uiemailval.srf?id=507&ru=http://messenger.microsoft.com&lc=1031
 
g.msn.com/5meen_us/66 ?
 
g.msn.com/5meen_us/67 ?
 
g.msn.com/5meen_us/68 http://help.microsoft.com/EN_US/HelpWindow_msg.asp?INI=macmsgv35.ini&H_VER=1.5&H_APP=MSN%20Messenger
 
g.msn.com/5meen_us/69 http://www.pocketpc.com/
 
g.msn.com/5meen_us/70 http://www.microsoft.com/products/ceip/en-us/default.mspx
 
g.msn.com/5meen_us/71 http://groups.msn.com/messengerv6beta
 
g.msn.com/5meen_us/72 http://groups.msn.com/messengerv6beta/emoticons.msnw
 
g.msn.com/5meen_us/73 http://groups.msn.com/themsnmessengergroup/displaypictures.msnw
 
g.msn.com/5meen_us/74 http://groups.msn.com/messengerv6beta/backgrounds.msnw
 
g.msn.com/5meen_us/75 http://support.microsoft.com/directory/worldwide/en-us/oemdirectory.asp?sd=gn
 
g.msn.com/5meen_us/76 http://messenger.msn.com/resource/Emoticons.aspx?mkt=en-us
 
g.msn.com/5meen_us/77 http://messenger.msn.com/resource/cTiles.aspx?mkt=en-us
 
g.msn.com/5meen_us/78 ?
 
g.msn.com/5meen_us/79 ?
 
g.msn.com/5meen_us/80 http://messenger.msn.com/
 
g.msn.com/5meen_us/81 ?
 
g.msn.com/5meen_us/82 http://messenger.msn.com/redirs/EDIT_PASSPORT_PROFILE.ASP
 
g.msn.com/5meen_us/83 ?
 
g.msn.com/5meen_us/84 ?
 
g.msn.com/5meen_us/85 ?
 
g.msn.com/5meen_us/86 ?
 
g.msn.com/5meen_us/87 ?
 
g.msn.com/5meen_us/88 ?
 
g.msn.com/5meen_us/89 ?
 
g.msn.com/5meen_us/90 ?
 
g.msn.com/5meen_us/91 ?
 
g.msn.com/5meen_us/92 http://www.mcafee.com/
 
g.msn.com/5meen_us/93 http://www.norton.com/
 
g.msn.com/5meen_us/94 http://messenger.msn.com:80/redirs/IE6_DOWNLOAD.ASP -> http://www.microsoft.com/downloads/details.aspx?FamilyID=1e1550cb-5e5d-48f5-b02b-20b602228de6&DisplayLang=en
 
g.msn.com/5meen_us/95 ?
 
g.msn.com/5meen_us/96 http://communities.microsoft.com/newsgroups/default.asp?icp=msn&slcid=US
 
g.msn.com/5meen_us/97 http://www.microsoft.com/windows/netmeeting/
 
g.msn.com/5meen_us/98 http://privacy.msn.com/
 
g.msn.com/5meen_us/99 http://www.microsoft.com/windowsmobile/resources/msnmessenger/default.mspx
 
g.msn.com/5meen_us/100 http://messenger.msn.com/redirs/MOBILE_SETTINGS.asp -> http://mobile.msn.com/
 
g.msn.com/5meen_us/101 http://messenger.msn.com/redirs/SEARCH.asp -> http://g.msn.com/5meen_us/50
 
g.msn.com/5meen_us/102 http://messenger.msn-int.com/redirs/FORGOT_PASSWORD.asp
 
g.msn.com/5meen_us/103 http://messenger.msn-int.com/redirs/PORTAL.asp -> http://g.msn.com/5meen_us/19
 
g.msn.com/5meen_us/104 http://messenger.msn-int.com/redirs/BUDDY_BROWSE.asp
 
g.msn.com/5meen_us/105 http://messenger.msn.com/redirs/SIGNUP.asp -> http://registernet.passport.net/reg.srf?lc=1033
 
g.msn.com/5meen_us/106 http://messenger.msn-int.com/redirs/VIEW_PROFILE.asp -> http://members.msn.com/?pgmarket=-&mem=
 
g.msn.com/5meen_us/107 http://messenger.msn.com/redirs/PANE_HELP.asp -> http://help.msn.com/EN_US/HelpWindow_msg.asp?INI=&H_VER=1.7&
 
g.msn.com/5meen_us/108 http://messenger.msn.com/redirs/COPPA.asp -> http://kids.passport.net/Default.srf?lc=1033,id=507,ru=http%3A%2F%2Fmessenger%2Ehotmail
 
g.msn.com/5meen_us/109 http://messenger.msn-int.com/redirs/SERVER_STATUS.asp
 
g.msn.com/5meen_us/110 http://messenger.msn.com/redirs/WHATS_NEW.asp -> http://messenger.msn.com/Feature/WhatsNew.aspx
 
g.msn.com/5meen_us/111 http://messenger.msn.com/redirs/TERMS_OF_USE.asp -> http://messenger.msn.com/Help/Terms.aspx
 
g.msn.com/5meen_us/112 http://messenger.msn.com/redirs/PRIVACY.asp -> http://messenger.msn.com/Help/Privacy.aspx
 
g.msn.com/5meen_us/113 ?
 
g.msn.com/5meen_us/114 http://messenger.msn.com/redirs/QUALITY.asp -> http://messenger.msn.com/Help/ceip.aspx
 
g.msn.com/5meen_us/115 ?
 
g.msn.com/5meen_us/116 http://messenger.msn.com/redirs/BACKGROUNDS.asp -> http://messenger.msn.com/resource/cBackgrounds.aspx?mkt=-
 
g.msn.com/5meen_us/117 http://messenger.msn-int.com/redirs/INT/DISPLAY_PICTURES.asp
 
g.msn.com/5meen_us/118 ?
 
g.msn.com/5meen_us/119 ?
 
g.msn.com/5meen_us/120 ?
 
g.msn.com/5meen_us/121 http://messenger.msn.com/redirs/WINMSGR_UPGRADE.asp
 
g.msn.com/5meen_us/122 http://messenger.msn.com/download/v6preview.asp?client=1
 
g.msn.com/5meen_us/123 http://messenger.msn.com/redirs/SQM_PROGRAM.asp -> http://g.msn.com/5meen_ms/70
 
g.msn.com/5meen_us/125 http://messenger.msn.com/redirs/ADVANCED_SEARCH.asp -> http://g.msn.com/5meen_us/50
 
g.msn.com/5meen_us/126 http://messenger.msn-int.com/redirs/SEARCH_BY_INTEREST.asp
 
g.msn.com/5meen_us/127 ?
 
g.msn.com/5meen_us/128 http://messenger.msn-int.com/redirs/GET_A_CAMERA.asp
 
g.msn.com/5meen_us/129 http://messenger.msn-int.com/redirs/CAMERA_INFO.asp
 
g.msn.com/5meen_us/130 http://messenger.msn.com/redirs/HELP_TOUR.asp -> http://messenger.msn.com/Tour/
 
g.msn.com/5meen_us/131 http://registernet.passport.net/reg.srf?lc=1033&id=956 -> https://login.passport.com/ppsecure/secure.srf?lc=1033&id=10&ru=https://registernet.passport.net/reg.srf%3Flc%3D1033%26id%3D956%26sl%3D1&tw=20&kv=7&ct=1080343292&cb=&checkda=1&msppjph=1&ems=1&seclog=10&ver=2.5.0809.2&tpf=8efe35464f32f67488bfc47aaf806eb2
 
g.msn.com/5meen_us/132 http://register.passport.net/reg.srf?lc=1033&id=956
 
g.msn.com/5meen_us/133 http://messenger.msn-int.com/redirs/EMOTICONS.asp -> http://help.msn.com/EN_US/HelpWindow_msg.asp?INI=Messengerv50.ini&H_VER=1.7&Topic=emoticons.htm&H_APP=MSN%20Messenger
 
 
g.msn.com/5meen_us/140 http://messenger.msn.com/redirs/TSG.asp -> http://messenger.msn.com/ct/
 
g.msn.com/5meen_us/141 http://messenger.msn.com/redirs/CONTACTUS.asp
 
 
g.msn.com/5meen_us/150 http://messenger.msn.com/redirs/SURVEY_FREE.asp -> http://feedback.live.com/eform.aspx?productkey=wlmessenger
 
g.msn.com/5meen_us/151 http://messenger.msn.com/redirs/SURVEY.asp -> http://feedback.live.com/eform.aspx?productkey=wlmessenger
 
 
g.msn.com/5meen_us/155 http://messenger.msn.com/redirs/IE6_DOWNLOAD.ASP -> http://g.msn.com/5meen_ms/94
 
 
g.msn.com/5meen_us/161 http://messenger.msn.com/redirs/MOBILE_LEARN.ASP -> http://g.msn.com/5meen_us/167
 
g.msn.com/5meen_us/167 http://mobile.msn.com/?lc=EN-US
 
 
g.msn.com/5meen_us/177 http://ideas.live.com/programPage.aspx?versionId=7adb59de-a857-45ba-81cc-685ee3e858fe
 
 
g.msn.com/5meen_us/61229 "No such link"
 
```
 
</pre>
 
 
==== Other ====
 
 
Clicking "MSN Today" does a request to http://config.messenger.msn.com/Config/MsgrConfig.asmx.
 
MSN also keeps trying to get that URL for a while, until it gives up.
 
When it gives up, it removes the "MSN Today" button.
 
 
Example response: http://www.mail-archive.com/amsn-devel@lists.sourceforge.net/msg04225/getclientconfig.log
 
 
==== Documents ====
 
 
Here is a list of documents that may prove useful:
 
 
''Client''
 
 
* Microsoft Messenger:mac v5.1 - Deployment Guide: [Messenger51_NetAdminGuide__2_.pdf](https://storage.levelleap.com/nina/wiki/msnp/Messenger51_NetAdminGuide__2_.pdf)
 
* Microsoft Messenger for Mac 8 Beta Build 08.00.00.100305 - Release Notes: [Messenger8Beta_ReleaseNotes__1_.pdf](https://storage.levelleap.com/nina/wiki/msnp/Messenger8Beta_ReleaseNotes__1_.pdf)
 
* MSN Messenger on PocketPC - Help: [2003_MSN_20Messenger_PPC__1_.pdf](https://storage.levelleap.com/nina/wiki/msnp/2003_MSN_20Messenger_PPC__1_.pdf)
 
 
''Activities''
 
 
* ~~MSN Messenger Activity SDK  - Documentation (September 2005): messengerActivitySDK__1_.zip~~ File possibly lost
 
* ~~MSN Messenger Activity SDK - Documentation (September 2006): msnmessengeractivitysdk__1_.zip~~ File possibly lost
 
* MCG APIs for MSN Games and Messenger: [MCG_20APIs_20for_20MSN_20Games_20and_20Messenger.zip](https://storage.levelleap.com/nina/wiki/msnp/MCG_20APIs_20for_20MSN_20Games_20and_20Messenger.zip)
 
 
''Web''
 
 
* Live Connect Preliminary - Documentation (November 2012): [LiveSDK.chm](https://storage.levelleap.com/nina/wiki/msnp/LiveSDK.chm)
 
* A Guide to MSN Communication Services: MSN Spaces, MSN Messenger, MSN Hotmail - Reviewers Guide (December 2004): [MSNWave10RG__1_.doc](https://storage.levelleap.com/nina/wiki/msnp/MSNWave10RG__1_.doc)
 
* A Guide to MSN Integrated Communication Services: MSN Spaces, MSN Messenger, MSN Hotmail (April 2005): [MSNWave10RG__5_.doc](https://storage.levelleap.com/nina/wiki/msnp/MSNWave10RG__5_.doc)
 
 
''Captures''
 
 
If you have pcap files from Messenger, it would be interesting to share them as they will be useful in order to understand the protocol.
 
 
On pcapr.net (now defunct), a search for "msnms" gave these files:
 
 
* [91a4d900-9804-012b-b2a6-0016cb8cea27.pcap](https://storage.levelleap.com/nina/wiki/msnp/91a4d900-9804-012b-b2a6-0016cb8cea27.pcap)
 
* [Authentication_MSNM1.0.pcap](https://storage.levelleap.com/nina/wiki/msnp/Authentication_MSNM1.0.pcap)
 
* [1-500.pcap](https://storage.levelleap.com/nina/wiki/msnp/1-500.pcap)
 
* ~~h_263_fast_cif_00000_20050908165359.pcap~~ File lost
 
* ~~h_263_fast_cif_00004_20050908165454.pcap~~ File lost
 
* ~~MSN_and_XMPP_00002_20090928130210.pcap~~ File lost
 
* ~~MSN_and_XMPP_00001_20090928130006.pcap~~ File lost
 
* [oicq.pcap](https://storage.levelleap.com/nina/wiki/msnp/oicq.pcap)
 
* On this webpage (https://seginfo.com.br/2011/11/01/demonstracoes-e-gabarito-do-desafio-pratico-analise-forense-em-trafego-de-rede-2/), you can find this file:
 
** [padaria.pcap](https://storage.levelleap.com/nina/wiki/msnp/padaria.pcap)
 
* In this github project (https://github.com/hc9725/my_etherdump), you can find these files:
 
* [msn.pcap](https://storage.levelleap.com/nina/wiki/msnp/msn.pcap)
 
* [msn_test.pcap](https://storage.levelleap.com/nina/wiki/msnp/msn_test.pcap)
 
* In this github project (https://github.com/markofu/pcaps), you can find this file:
 
** [msnms.pcap](https://storage.levelleap.com/nina/wiki/msnp/msnms_markofu.pcap)
 
* In this github project (https://github.com/ntop/nDPI), you can find this file:
 
** ~~msnms.pcap~~ File lost
 
* On the WireShark website (https://wiki.wireshark.org/MSNMS), you can find this file:
 
** [msnms.pcap](https://storage.levelleap.com/nina/wiki/msnp/msnms_wireshark.pcap)
 
  
  

Latest revision as of 19:47, 21 September 2023

MSNP Protocol
IntroductionTermsClients
Reference
Error ListCommandsRelying Party SuiteSpotlife
Services
XMPPHTTP GatewayTabsActivities
Documentation
Development ToolsMSNP Grid
PolygamyURLs used by MSN
Documents
Protocol Versions
Version 21
Version 18
Version 16
Version 15
Version 14
Version 13
Version 12
Version 11
Version 9
Version 8
Version 2
MSNC
IntroductionP2PObject DescriptorDisplay PicturesFile Transfer
Scenarios
Microsoft Messenger for Mac
MSNP on WebTV (MSNTV)

MSNP stands for "Microsoft Notification Protocol", the protocol used on MSN/Windows Live Messenger, all the way to when it was discontinued, and Skype's network used a heavily modified version of MSNP in the past. We not only will fully document the protocol, but will maintain and update it.

If you want to contribute, you can request an account by sending an email to accounts@wiki.nina.chat with desired username and also a few words on what you have to contribute (for spam control). You should also check the Needed, which is a list of things we are looking for.

If you want to contribute something anonymously or without registering, send it to contribute@wiki.nina.chat. If anonymity is desired, state so, and your name/email will not be mentioned.

You can also donate to help with this MSN/Windows Live revival, because it is a full time job at this point.


Clients

Read additional frequently asked questions for clients and the Escargot service.

Protocol History

MSNP was first implemented with version 2 - MSNP2 - on July 17 1999. It only used TCP, no webservices or anything like that.

As time went along, MSNP was extended and improved upon, incrementing its version number. By MSNP8, a new authentication system was being used: .NET Passport / Tweener. This was first time something essential was used that wasn't sent via the regular MSNP TCP socket.

From a technical standpoint the MD5 method that was used in MSNP7 was completely secure even from man in the middle attacks but Microsoft decided that it would be beneficial to MSN Messenger to authenticate directly with the passport servers, and Protocols/MSNP/Tweener was born.

After MSNP8, other, newer protocol versions were released (MSNP9, MSNP10, MSNP11, MSNP12, MSNP13 for WLM 8, et al). Most of the times the protocols introduced a more efficient way of storing contact lists and other properties, but also added new features as new clients were released to the public by the MSN Messenger team.

MSNP's final version was MSNP21, if we consider Windows Live Messenger 2012 the last version. However, MSNP22 existed, it was used on the Metro Messaging app on Windows 8.0, and MSNP24 was used on Skype for a while - although very different from regular old MSNP.

All connections to MSN servers take place over TCP/IP. The client always makes the outgoing connections to the servers. The official port for MSN Messenger is 1863, although there are many places in the protocol where alternate ports could be specified, so this may be subject to change.

The connection to the server must be considered asynchronous - you can send many commands to the server without waiting for a reply, and the server won't necessarily reply to your commands in the order you sent them. The server may also send messages that are not in reply to any particular message from the client. However, sometimes (for example, when logging into a notification server) the protocol requires you to send one command then receive one command, and so on.

There are also several OOB (out-of-band) protocols that take place directly between clients and do not involve the server. These protocols are described in their respective sections, and are not necessary for basic functionality of a client.

What is MSN Messenger?

The term 'MSN Messenger' is quite ambiguous, as Microsoft use the term to refer to several different parts of their instant messaging solution. You chat over the 'MSN Messenger network', the most popular program to connect to the MSN Messenger network is 'MSN Messenger', and the language that programs on the MSN Messenger network speak is 'MSNP', the Microsoft Notification Protocol.

What is the MSN Messenger Network?

The MSN Messenger network is a presence and instant messaging network from Microsoft. It went online in July 1999, and is neither the first nor the last instant messaging network. MSN Messenger is among the top four proprietary instant messaging networks. As of March 2003, there were far fewer unique users on the MSN Messenger network than on AOL Instant Messenger or ICQ but more than on Yahoo Messenger.

What is the MSN Messenger Protocol?

The MSN Messenger protocol consists of a series of commands sent between the client and the server. For example, when someone on your contact list signs out, the server sends a message like this to your client: FLN example@hotmail.com. On receiving this, the client should mark that contact as offline.

The MSN Messenger protocol has undergone several revisions over the years. Microsoft's servers allow clients to use versions 8, 9, 12, 13, 14 & 15 of the protocol. Individual protocol versions are often written as 'MSNP8', 'MSNP9' and 'MSNP12', which stands for Microsoft Notification Protocol and is followed by the version number of the protocol.

This site intends to fully document the MSN Messenger protocol and quirks of MSN Messenger servers so that third party software developers can write their own programs to interact with the network.

The information on the protocol was gathered by reading the official IETF draft, reading various sources, analysing packets, analysing the official client, and writing programs. Most of this work was done by other members of the MSN Messenger research community, which we have just written up. If you have discovered something new about the protocol, please make it known in the forum.

What is the MSN Client Protocol?

The MSN Client protocol consists of messages sent between clients. For example, when you say "hello" to a friend, your client sends a message to their client with hello as the body of the message.

Until relatively recently, the MSN client protocol grew quite organically - one version of the official client would behave differently to another, and you just had to guess what behavior was expected by whom. Recently, attempts have been made to impose a version numbering system.

How does the protocol work?

MSN Messenger is a presence and instant messaging system. 'Presence' is whether you're online, whether you're sharing a webcam, etc. 'Instant messaging' is talking with other people. Users of presence and instant messaging systems (people, bots, etc.) are referred to as 'principals'. RFC 2778 provides a very good general overview of what a presence and instant messaging system does, and you're advised to read it if you haven't worked on one before. Where possible, technical terms used on this site have been taken from that document.

An MSN Messenger session involves a connection to a 'Notification Server' (or 'NS'), which provides a presence service. The notification server allows you to connect to 'Switchboard Servers' ('SBs'), which provide an instant messaging service.

Notification Server (NS)

The connection to a notification server is the basis of an MSN Messenger session, as it handles your presence information: if you are disconnected from the notification server, you are no longer online to your buddies. The main purpose of the notification server is to handle presence information about yourself and the principals whose presence you've subscribed to.

The notification server also performs some other services like notifying you about new e-mail in your Hotmail inbox and letting you create new (or join existing) switchboard sessions. When you're directed to join a switchboard session, you should open a new connection to the switchboard, and keep the notification server open.

Note: The original draft refers to a third type of server known as a 'Dispatch Server', or 'DS'. However, throughout our documentation, the Dispatch Server is just treated as the default notification server.

Switchboard (SB)

The switchboard handles instant messaging sessions between principals. In other words, each person in an MSN chat corresponds to a connection to a shared switchboard session. Being in two conversations at once means connecting to two switchboard servers at once. Directly connected conversations between principals are not used in MSN Messenger, and the switchboard acts as a proxy between you and those you are chatting with.

A switchboard session can have as many people in it as you like - there's no equivalent of the one-to-one conversations that there's no way of forcing a session not to accept more than two people. This can be quite awkward because some of the uses for a switchboard session (like initiating a file transfer)

The SB is also where invitations to other services such as file transfer and NetMeeting are sent and received. Mobile paging is one of the only forms of communication that does not take place over a switchboard server.

Note that the SB and the NS are not very tightly integrated. For example, when a principal in a switchboard session change his or her display name, the switchboard still sends out messages and other commands with the old display name. In addition, when a principal disconnects from the NS, all switchboard sessions still remain open until the client explicitly closes them.


Encoding

At the lowest level, computers can only send 1s and 0s to each other. In order for two computers to communicate, they must agree on what the 1s and 0s represent. In MSN Messenger (except in file transfer), they represent characters, such as "Latin Capital letter A", "Digital Four", or "Runic letter short-twig-sol". In other words, MSN Messenger is a text-based protocol.


Login logs