# Introduction MSNP3 is the second released version of the Mobile Status Notification Protocol. It was introduced officially in Client Version 2.0.0085. # Command information It introduces the notification service commands: * [IMS](../commands/ims.md) *No switchboard or dispatch commands were known to be introduced in this version* It introduces the error codes: * 131 * 217 * 800 *No commands were known to be removed in this version* # Known changes (from [MSNP2](msnp2.md)): * [XFR](../commands/xfr.md): Added a new parameter that is always `0`. No use is known or documented. * Added Passport Site IDs to [URL](../commands/url.md) (parameter 3). * Removed `PASSWORD` service from [URL](../commands/url.md). * Added Hotmail's Passport Site ID to new e-mail notifications. * Initial profile: Added Passport intergration fields. * Font information has been added to Switchboard MSGs. * Multiple error-codes unimplemented in 1.x that were in the draft are now implemented in the Official Client. Examples include: 208, 215, 501, 604 (bizzarely enough), 715 and finally 913. * Non-protocol: Client can now use non-hotmail domains in relevant places. * Non-protocol: WebTV 2.5+ clients (example@webtv.net) can talk to other users (example@hotmail.com) * More URL requests implemented (assumed) * Clear-Text Password (CTP) authentication method discontinued. * Entire content of initial email notification changed from `text/x-msmsgsemailnotification` to `application/x-msmsgsinitialemailnotification`, the format is likely different. Now includes unread email count. [Examination needed] * Official Client: Automatic login form now supports Passport if parameter 3 is set in [URL](../commands/url.md). To generate `creds`, MD5 hash the following as one concatenated string: `auth` (from Initial Profile's `MSPAuth`, also included in the form) + `sl` (amount of seconds since `LoginTime`, also included in the form) + `passwd` (plain-text password). * Official Client: Legacy automatic login form parameters has changed. This only applies for [URL](../commands/url.md) commands without parameter 3. To generate `k2`, MD5 hash the following as one concatenated string: `login` (The local-part of your user handle, also included in the form) + `k1` (A short 2 digit number that you generate and is also included in the form) + `passwd` (plain-text password). * Official Client: Removed [URL](../commands/url.md) service `PASSWORD`. # Client-server communication example ``` C: VER 1 MSNP3 MSNP2 CVR0 S: VER 1 MSNP3 C: INF 2 S: INF 2 MD5 C: USR 3 MD5 I example@hotmail.com S: XFR 3 NS 10.0.0.5:1863 0 ``` Client disconnects from server Client opens a connection to 10.0.0.5:1863 ``` C: VER 4 MSNP3 MSNP2 CVR0 S: VER 4 MSNP3 C: INF 5 S: INF 5 MD5 C: USR 6 MD5 I example@hotmail.com S: USR 6 MDS S prefix C: USR 7 MD5 S $md5(prefix + password) S: USR 7 OK example@hotmail.com example%20user S: MSG Hotmail Hotmail 367 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: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA$$ C: SYN 8 5 S: SYN 8 5 C: CHG 9 NLN S: CHG 9 NLN C: IMS 10 OFF S: IMS 10 0 OFF C: IMS 11 ON S: IMS 11 0 ON C: OUT ``` Client disconnects from server ``` S: OUT ``` Server disconnects client