This are great news for the XMPP community. Microsoft has added XMPP client support to their Windows Live servers. You can read the announcement here.

Microsoft does not support any of the mandatory SASL mechanisms SCRAM, DIGEST-MD5 and PLAIN. Instead they have implemented their own X-MESSENGER-OAUTH2 SASL mechanism. This means that all existing XMPP Software is not able to connect to their server without code changes or updates.

I have updated the MatriX library to support the X-MESSENGER-OAUTH2 SASL mechanism. You can download the latest binary here.

Here is an example how you can connect to Windows Live Messenger with MatriX.

The XMPP domain is messenger.live.com. Microsoft has the proper SRV records, so MatriX discovers the hostname automatically. All you have to do is subscribe to the OnBeforeSasl event and disable the the automatic SASL mechanism selection and choose the X_MESSENGER_OAUTH2 mechanism for authentication. Additional you have to pass SaslProperties which include your access token.

var xmppClient = new XmppClient {XmppDomain = "messenger.live.com"}; xmppClient.OnBeforeSasl += xmppClient_OnBeforeSasl; xmppClient.Open(); private void xmppClient_OnBeforeSasl(object sender, SaslEventArgs e) { e.Auto = false; const string ACCESS_TOKEN = "your_access_token"; e.SaslMechanism = SaslMechanism.X_MESSENGER_OAUTH2; e.SaslProperties = new LiveMessengerProperties { AccessToken = ACCESS_TOKEN }; }

Of course you must retrieve your access token before you can connect with MatriX.

Some additional useful resources from Microsoft: