msnp-wiki/docs/versions/msnp3.md

3.6 KiB

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:

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):

  • XFR: Added a new parameter that is always 0. No use is known or documented.
  • Added Passport Site IDs to URL (parameter 3).
  • Removed PASSWORD service from URL.
  • Added Hotmail's Passport Site ID to new e-mail notifications.
  • SND: Added a target language parameter and a client library parameter, similar to the one in CVR.
  • 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)
  • 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. 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 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 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: SND 12 anotheruser@hotmail.com 0x0409 MSMSGS
S: SND 12 OK
C: OUT

Client disconnects from server

S: OUT

Server disconnects client