msnp-wiki/docs/versions/msnp8.md

5.7 KiB

Introduction

MSNP8 is the seventh released version of the Mobile Status Notification Protocol. It was introduced officially in Client Version 5.0.0537.

Command information

No commands for any service were known to be introduced in this version

No error codes were known to be introduced in this version

The following commands were removed in this version:

  • INF (automatic disconnection)
  • FND (502 by July 2003, see Known changes for client details.)

Known changes

(from MSNP7):

  • CVQ: Client codebase identification parameter is no longer empty.
  • Being the first protocol split, all released clients that support MSNP8 do not support any previous versions.
  • Login process now VER-CVR-USR instead of VER-INF-USR.
  • USR OK has a new parameter, Account restriction status, if set to 1, the Official Client will log out and ask to log in using MSN Explorer instead. Unrestricted accounts (those that do not need to log in using MSN Explorer) will have 0 instead.
  • Introduced TWN authentication method, which uses Passport 1.4 over HTTPS.
  • Reworked SYN and related response commands (notably LSG and LST) drastically: Iterators are gone, now total size of both groups and total contacts included in SYN response. All transaction IDs and list versions have been removed from response commands (now treated as asynchronous commands). Unset properties (PRP commands) are now omitted. Hurray.
  • CVR request now has a new 8th parameter, which is the current user. This also applies to CVQ in CVR0.
  • New initial profile fields: ClientIP and ClientPort. ClientPort needs to be endian swapped for it's correct value. Formula: y = (((x & 0xff) * 256) + ((x & 0xff00)/256)).
  • NOTE: FND might still exist in client, but theres no way of triggering it. Practically removed. All previous protocols also received the 502 error code.
  • BPR removes related user, for some reason, default fields share same optimization as PRP does.
  • LST (for SYN): Lists are now all combined into a single number, where: 1 = Forward List (FL), 2 = Allow List (AL), 4 = BlocK List (BL), 8 = Reverse List (RL), For example, a contact on the Forward List (FL), Allow List (AL) and Reverse List (RL) would have their combined list number be 11.
  • CHG, ILN, NLN: Client Capabilities are introduced. You can now tell other clients what features you support.
  • Official Client: Connectivity field added to application requests to notify the other user about what the network conditions are.
  • Official Client: Introduced ABCH (Address Book Clearing House) support. The URL is gathered from svcs.microsoft.com. abch_config.asp provides an XML document with a <abchconfig> element. It has a <url> element containing the service URL, a <refresh> element, and finally a <percent> element. Example values are http://contacts.msn.com/abservice/abservice.asmx, 0 and 0.0 respectively.
  • Official Client: Added new URL services ADDRBOOK, ADVSEARCH and INTSEARCH

Changes to error codes

TODO: this section

Added: 603

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 MSNP8 CVR0
S: VER 1 MSNP8
C: CVR 2 0x0409 win 4.10 i386 MSNMSGR 5.0.0537 MSMSGS example@hotmail.com
S: CVR 2 5.0.0537 5.0.0537 1.0.0863
.. http://download.microsoft.com/download/msnmessenger/install/5.0/w98nt42kmexp/en-us/setupdl.exe
.. http://messenger.microsoft.com
C: USR 3 TWN I example@hotmail.com
S: XFR 3 NS 10.0.0.5:1863 0 10.0.0.1:1863

Client disconnects from server

Client opens a connection to 10.0.0.5:1863

C: VER 4 MSNP8 CVR0
S: VER 4 MSNP8
C: CVR 5 0x0409 win 4.10 i386 MSNMSGR 5.0.0537 MSMSGS example@hotmail.com
S: CVR 5 5.0.0537 5.0.0537 1.0.0863
.. http://download.microsoft.com/download/msnmessenger/install/5.0/w98nt42kmexp/en-us/setupdl.exe
.. http://messenger.microsoft.com
C: USR 6 TWN I example@hotmail.com
S: USR 6 TWN S passport=parameters,neat=huh,lc=1033,id=507

The HTTPS interlude is described in the Passport 1.4 article.

C: USR 7 TWN S $(pp14response.headers.authenticationInfo["from-PP"])
S: USR 7 OK example@hotmail.com example%20user 1 0
S: MSG Hotmail Hotmail 448
MIME-Version: 1.0
Content-Type: text/x-msmsgsprofile; charset=UTF-8
LoginTime: 1726321960
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

C: SYN 8 14
S: SYN 8 15 1 1
S: GTC A
S: BLP AL
S: PRP PHH 123%20(4567)
S: LSG 0 Other%20Contacts 0
S: LST anotheruser@hotmail.com another%20user 11 0
S: BPR PHH 1%20(222)%20333%204444
C: CHG 9 NLN 0
S: CHG 9 NLN 0
S: ILN 9 NLN anotheruser@hotmail.com another%20user 28
S: NLN NLN anotheruser@hotmail.com another%20user 2
S: NLN NLN anotheruser@hotmail.com another%20user 28
C: OUT

Client disconnects from server

S: OUT

Server disconnects client