# Table of contents:
# Introduction
MSNP16 is the fifteenth released version of the Messenger Service Notification Protocol.
It was introduced unofficially in Client Version 9.0.1407.
# Support Information
9.0.1407 wasn't an officially released version,
instead it was a beta release intended for testing groups only that got leaked publically.
However, no generally available version of the Official Client supports this protocol version.
The C# web client (WLM.Core era, 2008) and Mac Client 8.0 (2011)
are the only officially released clients supporting this protocol version.
# Command information
It introduces the notification service commands:
No commands were known to be removed in this version.
# Known changes
(from MSNP15):
- The WEB authentication method has been introduced, which is controlled by HTTP Gateway headsers.
- Multiple Points of Presence has been implemented. You can now login with multiple clients on the same account.
Using a client that does not support this feature, such as those only supporting MSNP15 or below will automatically disconnect all sessions on the account.
The commands that changed as a result of this are:- USR: Both NS and SB changed.
- ANS
- UUN: Can now target specific endpoints and yourself
- UBN: Can now be received from endpoints and yourself
- UBX: Now sent to your endpoints at various times
- XFR: XFR NS can now transfer other endpoints to the same Notification Server. (TODO: I'm assuming this)
- OUT:
TME(Too Many Endpoints) has been added as a disconnect reason.
- Initial profile field
MPOPEnabledhas been added. If it is set to1. The Multiple Points of Presence feature is enabled. - UBM now includes the source where the message was sent from.
- UUX and UBX now can transfer endpoint-related data between clients.
- Extended Client Capabilities have been introduced, changing these commands:
- UUN and UBN now support various endpoint-related notification messages:
4: Log out an endpoint.5: Close a conversation window on all clients.6: Request an endpoint to download current contact information.7: Close a pending user dialog.8: Log out all endpoints.
- XFR: XFR NS: In inclusion to being able to specify that the transfer was because of an endpoint, you can now specify a HTTP Gateway-only Dispatch Server to use as the default Dispatch Server.
- Official Client: MSNFTP support has removed.
Trying to receive a File Transfer invitation now results in a "The invitation from someone to start File Transfer was automatically declined because they are using an older version of the client." message. - Official Client: Signature Sounds are now implemented.
- Official Client: GIFs now animate if used as a User Tile (display picture).
- Official Client: The client no longer uses a global Transaction ID counter. Every session now starts from
1. - Official Client: The client no longer allows a "truncated" NLN or ILN.
Both commands now require their Client Capabilities parameter, and a empty user tile location? (TODO: confirm). - Official Client: The client does not consider a user logged in until it receives their UBX.
This is to ensure Signature Sound object references are available.
Empty UBX payloads also work for this, in case one isn't available (yet). - Official Client: The client now sends a
Rosterheader in every Switchboard MSG. These are used for UUN5. - Official Client: Due to a programming oversight,
the transaction ID now increases twice after the client sends it's USR S.
The commands sent after (notably the first ADL) will have a number1higher than it should be.
# Client-server communication example
NOTE: This has been line-broken.
Lines beginning with .. followed by a space are continuations of the previous line.
C: VER 1 MSNP16 MSNP15 CVR0
S: VER 1 MSNP16
C: CVR 2 0x0409 winnt 5.1 i386 WLMSGRBETA 9.0.1407 msmsgs example@hotmail.com
S: CVR 2 8.5.1302 8.5.1302 8.1.0178
.. http://msgr.dlservice.microsoft.com/download/5/6/4/5646481F-33EF-4B08-AF00-4904F7677B89/EN/Install_WLMessenger.exe
.. http://get.live.com
C: USR 3 SSO I example@hotmail.com
S: XFR 3 NS 10.0.0.5:1863 U D
Client disconnects from server.
Client opens a connection to 10.0.0.5:1863.
C: VER 4 MSNP16 MSNP15 CVR0
S: VER 4 MSNP16
C: CVR 5 0x0409 winnt 5.1 i386 WLMSGRBETA 9.0.1407 msmsgs example@hotmail.com
S: CVR 5 8.5.1302 8.5.1302 8.1.0178
.. http://msgr.dlservice.microsoft.com/download/5/6/4/5646481F-33EF-4B08-AF00-4904F7677B89/EN/Install_WLMessenger.exe
.. http://get.live.com
C: USR 6 SSO I example@hotmail.com
S: GCF 0 245
<Policies>
<Policy type="SHIELDS" checksum="83B30425941CE296DED998A20861F87B">
<config>
<shield>
<cli maj="7" min="0" minbld="0" maxbld="9999" deny=" " />
</shield>
<block>
</block>
</config>
</Policy>
</Policies>
S: USR 6 SSO S MBI_KEY_OLD AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
The HTTPS interlude is described in the Passport Request Security Token service article. *
C: USR 7 SSO S $(xmldecode(RequestSecurityTokenResponse.BinarySecurityToken#Compact1))
.. $(base64(key_challenge_response)) {44bfd5a4-7450-4bda-ba3a-c51b3031126d}
S: USR 7 OK example@hotmail.com 1 0
S: SBS 0 null
S: MSG Hotmail Hotmail 559
MIME-Version: 1.0
Content-Type: text/x-msmsgsprofile; charset=UTF-8
LoginTime: 1732890086
EmailEnabled: 1
MemberIdHigh: 1
MemberIdLow: 2
lang_preference: 1033
preferredEmail: example@hotmail.com
country: US
PostalCode:
Gender:
Kid: 0
Age:
BDayPre:
Birthday:
Wallet:
Flags: 1027
sid: 507
kv: 11
MSPAuth: whatever+t+is+in+your+passport+login+ticket+that+you+sent+for+USR+SSO+S$
ClientIP: 192.168.1.111
ClientPort: 18183
ABCHMigrated: 1
Nickname: example user
BetaInvites: 10
RouteInfo: msnp://10.0.0.5/18631863
MPOPEnabled: 1
S: UBX example@hotmail.com 1 0
The Client now uses both the ABFindAll
and the FindMembership actions
to get the current state of all lists and the last stored name and privacy mode.
NOTE: The following ADL and UUX payloads
have been exploded for visibility and formatting reasons.
No whitespace is allowed in ADL's payload and the payload size reflects this,
and is set to the correct value.
NOTE: The 8th command is skipped due to a programming oversight in the Official Client.
C: ADL 9 110
<ml l="1">
<d n="hotmail.com">
<c n="anotheruser" l="3" t="1" />
</d>
<t>
<c n="tel:+15551111222" l="3" />
</t>
</ml>
S: ADL 9 OK
C: UUX 10 70
<EndpointData>
<Capabilities>2522660900:0</Capabilities>
</EndpointData>
S: UUX 10 0
C: UUX 11 104
<PrivateEndpointData>
<EpName>EXAMPLE</EpName>
<Idle>false</Idle>
<State>NLN</State>
</PrivateEndpointData>
S: UUX 11 0
C: BLP 12 AL
S: BLP 12 AL
C: UUX 13 161
<Data>
<PSM></PSM>
<CurrentMedia></CurrentMedia>
<MachineGuid>{44BFD5A4-7450-4BDA-BA3A-C51B3031126D}</MachineGuid>
<SignatureSound></SignatureSound>
</Data>
S: UUX 13 0
C: PRP 14 MFN example%20user
S: PRP 14 MFN example%20user
S: UBX example@hotmail.com 1 422
<Data>
<PSM></PSM>
<CurrentMedia></CurrentMedia>
<MachineGuid>{44BFD5A4-7450-4BDA-BA3A-C51B3031126D}</MachineGuid>
<SignatureSound></SignatureSound>
<EndpointData id="{44bfd5a4-7450-4bda-ba3a-c51b3031126d}">
<Capabilities>2522660900:0</Capabilities>
</EndpointData>
<PrivateEndpointData id="{44bfd5a4-7450-4bda-ba3a-c51b3031126d}">
<EpName>EXAMPLE</EpName>
<Idle>false</Idle>
<State>NLN</State>
</PrivateEndpointData>
</Data>
C: CHG 15 NLN 2522660900 %3Cmsnobj
.. %20Creator%3D%22example%40hotmail.com%22
.. %20Type%3D%223%22
.. %20SHA1D%3D%22pXI0BNTg0vF6rw%2BkSe3V0b7p%2BXc%3D%22
.. %20Size%3D%2218101%22
.. %20Location%3D%220%22
.. %20Friendly%3D%22UwBrAGEAdABlAGIAbwBhAHIAZABlAHIAAAA%3D%22%2F%3E
S: CHG 15 NLN 2522660900 %3Cmsnobj
.. %20Creator%3D%22example%40hotmail.com%22
.. %20Type%3D%223%22
.. %20SHA1D%3D%22pXI0BNTg0vF6rw%2BkSe3V0b7p%2BXc%3D%22
.. %20Size%3D%2218101%22
.. %20Location%3D%220%22
.. %20Friendly%3D%22UwBrAGEAdABlAGIAbwBhAHIAZABlAHIAAAA%3D%22%2F%3E
S: ILN 15 NLN anotheruser@hotmail.com 1 another%20user 2524823596:16 %3Cmsnobj
.. %20Creator%3D%22anotheruser%40hotmail.com%22
.. %20Type%3D%223%22
.. %20SHA1D%3D%22DFKYnCMyFdOsXpKkM8WCize%2B%2FBo%3D%22
.. %20Size%3D%2275227%22
.. %20Location%3D%220%22
.. %20Friendly%3D%22TQB1AHMAaQBjAGEAbAAgAE4AbwB0AGUAcwAAAA%3D%3D%22%2F%3E
S: UBX anotheruser@hotmail.com 1 546
<Data>
<PSM></PSM>
<CurrentMedia></CurrentMedia>
<MachineGuid>{0061D708-CD9B-4D56-B64B-FFFAA92FF344}</MachineGuid>
<SignatureSound>
<msnobj
Creator="anotheruser@hotmail.com"
Type="14"
SHA1D="NpHZ1rVACsZCmDoDpDkMch0fPeE="
Size="50037"
Location="0"
Friendly="QgBhAG4AZAAgAEkAbgB0AHIAbwAAAA=="
PlaybackLength="5016"
DisplayNamePostFix="0"
/>
</SignatureSound>
<EndpointData id="{0061d708-cd9b-4d56-b64b-fffaa92ff344}">
<Capabilities>2524823596:16</Capabilities>
</EndpointData>
</Data>
C: OUT
Client disconnects from server.
Server disconnects client.