# 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](../commands/inf.md) (automatic disconnection) * [FND](../commands/fnd.md) (`502` by July 2003, see Known changes for client details.) # Known changes (from [MSNP7](msnp7.md)): * [CVQ](../commands/cvq.md): 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](../commands/ver.md)-[CVR](../commands/cvr.md)-USR instead of [VER](../commands/ver.md)-[INF](../commands/inf.md)-USR. * USR OK has a new parameter, usually? 0, but of currently unknown use. * Introduced `TWN` authentication method, which uses Passport 1.4 over HTTPS. * Reworked SYN and related response commands (notably [LSG](../commands/lsg.md) and [LST](../commands/lst.md)) 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/prp.md) commands) are now omitted. Hurray. * [CVR](../commands/cvr.md) request now has a new 8th parameter, which is the current user. This also applies to [CVQ](../commands/cvq.md) in [CVR0](cvr0.md). * 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](../commands/fnd.md) might still exist in client, but theres no way of triggering it. Practically removed. * [BPR](../commands/bpr.md) removes related user, for some reason, default fields share same optimization as [PRP](../commands/prp.md) does. * [LST](../commands/lst.md) (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](../commands/chg.md), [ILN](../commands/iln.md), [NLN](../commands/nln.md): Client Capabilities are introduced. You can now tell other clients what features you support. * Official Client: Error 711 is now handled. Error 603 isn't handled again after Client Version 4.5 supported it. * 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 `` element. It has a `` element containing the service URL, a `` element, and finally a `` element. Example values are `http://contacts.msn.com/abservice/abservice.asmx`, `0` and `0.0` respectively. * Official Client: Added new [URL](../commands/url.md) services `ADDRBOOK`, `ADVSEARCH` and `INTSEARCH` # 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 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