# Table of contents:
# Introduction
MSNP13 is the twelfth released version of the Mobile Status Notification Protocol.
It was introduced officially in Client Version 8.0.0787, along with
MSNP14.
# Command information
It introduces the notification service commands:
No switchboard or dispatch service commands were known to be introduced in this version
The following commands were removed in this version:
- ADC (automatic disconnection)
- ADG (automatic disconnection)
- REG (automatic disconnection)
- REM (automatic disconnection)
- RMG (automatic disconnection)
- GTC (automatic disconnection)
- SYN (automatic disconnection)
- SBP (unconfirmed, could be used for HSB and stuff, automatic disconnection)
# Known changes
(from MSNP12):
-
This is the second protocol split since
MSNP8.
No clients supporting this protocol are expected to support MSNP12 or below. -
XFR
NS format has been changed.
The unused parameter from MSNP3 and the current server parameter from MSNP7 have been replaced with two new parameters, one containingU
, and one containing aD
.
The use of these parameters is unknown. -
The
Passport Request Security Token service
authentication request
will now include a request for few more security tokens,
notably
contacts.msn.com
for the Address Book Service. -
Replaced
SYN
with both the
Address Book Service's
ABFindAll
and the Contact Sharing Service'sFindMembership
actions. -
Instead of
ADC
adding new users to the Forward List (FL), Allow List (AL),
Block List (BL), or the Reverse List (RL), the
Address Book Service's
ABContactAdd
action is used for the Forward List (FL), and the Contact Sharing Service'sAddMember
action for the other lists. -
Instead of
REM
removing existing users from the Forward List (FL), Allow List (AL),
Block List (BL), or the Pending List (PL), the
Address Book Service's
ABContactDelete
action is used for the Forward List (FL), and the Contact Sharing Service'sDeleteMember
action for the other lists. -
Instead of
GTC, use the
Address Book Service's
ABContactUpdate
action on your own user to set theMSN.IM.GTC
annotation's value to 0 or 1:-
0
: Automatically add to AL -
1
: Ask before adding to AL/BL
-
-
Instead of
ADG, use the
Address Book Service's
ABGroupAdd
action. -
Instead of
RMG, use the
Address Book Service's
ABGroupDelete
action. -
Instead of
REG, use the
Address Book Service's
ABGroupUpdate
action. -
Instead of
SBP, use the
Address Book Service's
ABContactUpdate
action. -
NOT:
<NotificationData>
notifications are used for updates to your contact list as well as ADL. -
GCF: All policies are now always sent after your first
USR
command,
including the contents of
Shields.xml
in the policy with the type ofSHIELDS
. -
UUX,
UBX: Added
<MachineGuid>
element to<Data>
. -
The contact management commands (ADL
and
RML)
now only manage the state of the Forward List (FL), Allow List (AL) and Block List (BL) for the current session.
For managing contacts persistently, you have to use both the Address Book Service and the Contact Sharing Services SOAP services. -
RNG
and
XFR
SB commands now have two extra parameters.
The use of these parameters is currently unknown. - Offline instant messages can now be sent via the Offline Instant Messaging SOAP service.
# Client-server communication example
NOTE: This has been line-breaked.
Lines beginning with
..
followed by a space are continuations of the previous line.
C: VER 1 MSNP13 CVR0
S: VER 1 MSNP13
C: CVR 2 0x0409 winnt 5.1 i386 MSG80BETA 8.0.0566 msmsgs example@hotmail.com
S: CVR 2 8.0.0566 8.0.0566 8.0.0566
.. http://msgr.dlservice.microsoft.com/download/4/5/b/45beb06f-5a08-4694-abd8-d6e706b06b68/Install_Messenger_Beta.exe
.. http://ideas.live.com
C: USR 3 TWN 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 MSNP13 CVR0
S: VER 4 MSNP13
C: CVR 5 0x0409 winnt 5.1 i386 MSNMSGR 8.0.0566 MSMSGS example@hotmail.com
S: CVR 5 8.0.0566 8.0.0566 8.0.0566
.. http://msgr.dlservice.microsoft.com/download/4/5/b/45beb06f-5a08-4694-abd8-d6e706b06b68/Install_Messenger_Beta.exe
.. http://ideas.live.com
C: USR 6 TWN I example@hotmail.com
The HTTPS interlude is described in the Passport Request Security Token service article.
S: USR 6 TWN S passport=parameters,neat=huh,lc=1033,id=507
S: GCF 0 201
<Policies>
<Policy type="SHIELDS">
<config>
<shield>
<cli maj="7" min="0" minbld="0" maxbld="9999" deny=" " />
</shield>
<block>
</block>
</config>
</Policy>
</Policies>
C: USR 7 TWN S $(xmldecode(RequestSecurityTokenResponse.BinarySecurityToken#Compact1))
S: USR 7 OK example@hotmail.com 1 0
S: SBS 0 null
S: MSG Hotmail Hotmail 481
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+TWN+S$
ClientIP: 192.168.1.111
ClientPort: 18183
ABCHMigrated: 1
BetaInvites: 10
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.
C: BLP 7 AL
S: BLP 7 AL
C: ADL 8 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 8 OK
C: PRP 9 MFN example%20user
S: PRP 9 MFN example%20user
C: CHG 10 NLN
S: CHG 10 NLN
C: UUX 11 118
<Data>
<PSM></PSM>
<CurrentMedia></CurrentMedia>
<MachineGuid>{44BFD5A4-7450-4BDA-BA3A-C51B3031126D}</MachineGuid>
</Data>
S: UUX 11 0