Project Description
'Pink Ego Box' is a single-process MSNP server suite (Dispatch, Notification, and Switchboard) for with Windows Live Messenger, MSN Messenger, Gaim, KMess, and other clients. It enables people to run older versions of client software.

In English

This software lets you run MSN Messenger 1.0 and 2.0 again and chat with other users connected to the same server. It does not currently let you connect to the "live" Messenger service with old clients, this feature is forthcoming. Support for MSN Messenger 3.0 through 6.2 is also forthcoming.

The Name

The project is named after the Muse song "Pink Ego Box", a B-side on CD2 of the Muscle Museum single (it also appears on the Random 1-8 Japan-only compilation album). The song discusses the depressing reality behind online relationships, specifically those conducted over instant-messages.

Why

In mid-January 2010 I was looking into getting antiquated versions of MSN Messenger working again, for the nostalgia experience and general curiosity. Whilst I started using MSN Messenger since the beginning in 1999 the early versions of the clients were only on the scene for a few months at a time: within a few months of the service being available we were already required to run version 3.0 of the client, robbing people of the opportunity to try the older versions of the software.

How

The protocol MSN Messenger / Windows Live Messenger uses is called "MSNP", though there is a debate as to whether it stands for "Microsoft Network Protocol" or "Mobile Status Notification Protocol" based on two conflicting sources: employees who worked on MSNP versus a sole TechNet document. The first version of the protocol used was MSNP2, there is no information available on MSNP1, I can only presume this was used by a private beta client in late 1998.

Early MSNP services (from MSNP2 through to MSNP8) are provided by three server instances: Dispatch, Notification, and Switchboard (known as DS, NS, and SB for short). Clients connect to "messenger.hotmail.com" to contact a DS to which it authenticates and negotiates a common protocol version, the DS then forwards the client to an NS instance and then disconnects the client. The NS provides all of the non-messaging functionality, which includes management of the user's contact list, updates and notifications, and sends chat invitations to clients. When a client wants to chat with another it asks its NS for a Switchboard session, if successful it is given the address of an SB instance to connect to. Once connected to the SB session the client sends invitations to the other client(s) it wishes to join the chat (these invitations are sent internally between NS and SB servers).

Features like client typing messages, display pictures, file transfers, and "Start an Application" invites are all wrapped up in a general-purpose MSG message exchanged between clients on the SB server, the servers play no part.

Around MSNP6/7 support was added for communicating MSNP commands over HTTP rather than as raw TCP traffic. Later versions of the protocol from MSNP9 onwards change things considerably by adding new authentication systems that require the sending of SOAP messages to other authentication systems, contact list management is also changed (for the worse, from a complexity point of view). For these reasons Pink Ego Box is focused more on providing a solid MSNP implementation for the earlier versions of the protocol, in future support for these features will be added.

Who

You might ask who (besides nostalgia-trippers and computer historians) would need an MSNP server; granted, in its current state Pink Ego Box is useless for any other purpose, but when the server suite gets compatibility with current versions of MSNP client developers can use it to test their clients against a server they control, rather than Microsoft's live servers.

License

Pink Ego Box is licensed under GPLv2 (it would be v3, but CodePlex haven't added GPLv3 as an option yet). I imagine there might be companies interested in using Pink Ego Box as the basis for a proprietary IM solution. As I retain copyright over the PEB codebase I'm willing to dual-license it to anyone provided they stump up the right amount of cash. I can be contacted via the "People" page on the links bar at the top of the page.

Last edited Feb 7, 2010 at 6:30 PM by W3bbo, version 4