Mickaël posted yesterday On MSN / Live Messenger adopting XMPP. Today, we’ll dig a little more in technical details.
Here are some technical details and some explainations, as well as some questions.
Microsoft’s public XMPP server
Microsoft’s public XMPP server is located at: xmpp:messenger.live.com. You can double check on IMtrends:
IMtrends test results say:
Software IMTrends couldn't determine the server running behind messenger.live.com.
This makes sense, since it may be a completely new server.
C2S, but no S2S
C2S stands for client-to-server and S2S stands for server-to-server, which are meaningfull: these describe the connections between clients and servers.
On this matter, IMtrends says:
- DNS Client-To-Server record
- Client-To-Server Stream
- DNS Server-To-Server record
- Server-To-Server Stream
What does this mean?
- XMPP clients may be able to connect to this XMPP service
- XMPP servers are not allowed to connect to this XMPP server: Microsoft’s XMPP server does not federate with Google’s, like Facebook’s.
- As a consequence, we still need gateways (“transports”) to MSN service, with MSNP or XMPP protocols, in order to aggregate MSN contacts in an XMPP client.
- Will Microsoft’s XMPP server federate with Google’s and the rest of the world?
- Microsoft has invested in Facebook: will Facebook’s XMPP server federate with Microsoft’s, Google’s and the rest of the world?
- Microsoft has bought Skype: will Skype (which already offers XMPP on their client) offer an XMPP server? Will it federate?
JID, Jabber ID, XMPP addresses
Justin Karneges, of Psi and Livefyre fame, brought our attention to JID and authentication.
JIDs are in the form:
- Users will have long JIDs, instead of the short
[username]@live.com: it would have been simpler to provide the JID as the email address, like it is the case on Gmail/Gtalk and TextOne
- I hope
[identifier]is the username, or something human-readable…
The client-to-server authentication used is SASL, with a specific and proprietary mechanism called
X_MESSENGER_OAUTH2. According to Thijs Alkemade (Adium), it is documented, and “extremely similar to Facebook’s OAuth2 mechanism”.
Which means that all current XMPP clients are NOT able to connect to messenger.live.com. This new authentication schema will need to be developed and tested.
TLS is required, good point.
Here is a small summary:
- Microsoft only offers a client interface to their MSN chat, much like Facebook: they both keep their internal and proprietary chat system
- Current standard XMPP clients can not connect to Microsoft’s XMPP server, since it has a specific and proprietary authentication schema, unlike Facebook
- Microsoft’s XMPP server does not talk to any public and federated XMPP server.
This is a big step, and quite a surprise at internet scale (even if some were aware of their beta server). Indeed Microsoft has defended over time their proprietary protocol MSNP (and its mobile version) by changing small bits of their protocol in order to prevent third party clients to connect to their service. A big step, but still a long way to go until full interop and federation with the full XMPP network, including Gtalk, Facebook, and Skype (soon AIM?). ICQ, Yahoo! and QQ are still lagging behind.
Now, given Microsoft’s habits to cheat on interop, and “embrace and extend” the open standards, it is needed, not only to run deeper and more strict and exhaustive interop tests, but also run ACID-like tests over XMPP.