From 7488f2af4323b16a27bf8be73918e814b6690d52 Mon Sep 17 00:00:00 2001 From: yellows111 Date: Sat, 30 Nov 2024 17:02:48 +0000 Subject: [PATCH] [0.1.4] MSNP13 and MSNP14, ADL, RML, FQY also add new command findings: * undocumented command GSB * syntax and other errors fixed * explode a bit of xml in places that were a bit too long * find out what a "merchant cab" file is (one line of xml) --- docs/commands/adc.md | 14 +- docs/commands/adl.md | 192 +++++++++++++++++++ docs/commands/fln.md | 16 +- docs/commands/fqy.md | 105 ++++++++++ docs/commands/iln.md | 5 +- docs/commands/ims.md | 5 +- docs/commands/msg.md | 15 +- docs/commands/nln.md | 3 +- docs/commands/rem.md | 2 +- docs/commands/rml.md | 161 ++++++++++++++++ docs/commands/rng.md | 39 +++- docs/commands/ubx.md | 53 ++++- docs/commands/url.md | 9 +- docs/commands/uux.md | 35 +++- docs/commands/xfr.md | 76 ++++++-- docs/files/client_capabilities.md | 2 +- docs/files/notification.md | 6 +- docs/index.md | 19 +- docs/services/abservice/abcontactupdate.md | 1 + docs/services/abservice/contactinfo.md | 6 +- docs/services/msgrconfig.md | 8 +- docs/services/passportsoap.md | 2 +- docs/services/sharingservice/addmember.md | 3 +- docs/services/sharingservice/deletemember.md | 3 +- docs/table_of_commands.md | 15 +- docs/versions/msnp10.md | 5 +- docs/versions/msnp11.md | 13 +- docs/versions/msnp12.md | 2 +- docs/versions/msnp13.md | 182 ++++++++++++++++++ docs/versions/msnp14.md | 137 +++++++++++++ docs/versions/msnp2.md | 2 +- docs/versions/msnp3.md | 17 +- docs/versions/msnp5.md | 4 +- docs/versions/msnp6.md | 9 +- docs/versions/msnp8.md | 18 +- docs/versions/msnp9.md | 4 +- package-lock.json | 4 +- package.json | 2 +- 38 files changed, 1078 insertions(+), 116 deletions(-) create mode 100644 docs/commands/adl.md create mode 100644 docs/commands/fqy.md create mode 100644 docs/commands/rml.md create mode 100644 docs/versions/msnp13.md create mode 100644 docs/versions/msnp14.md diff --git a/docs/commands/adc.md b/docs/commands/adc.md index 7b7102b..0291a59 100644 --- a/docs/commands/adc.md +++ b/docs/commands/adc.md @@ -4,9 +4,9 @@ It is a Notification Server command, without a request or response payload. Adds a user to a list. -For the command that was replaced with this, read [ADD](add.md). -For the command that replaced this command in [MSNP13](../versions/msnp13.md), read ADL. -For the service that complements ADL, read about the [Address Book Service](../services/abservice.md). +For the command that was replaced with this, read [ADD](add.md). +For the command that replaced this command in [MSNP13](../versions/msnp13.md), read [ADL](adl.md). +For the service that complements [ADL](adl.md), read about the [Address Book Service](../services/abservice.md). # Client/Request @@ -104,16 +104,16 @@ C: ADC 5 FL C=anotheruser@hotmail.com f60efbe7-94af-4b16-b926-e4e10878d329 S: ADC 5 FL C=anotheruser@hotmail.com f60efbe7-94af-4b16-b926-e4e10878d329 ``` -## Invalid handle +## Invalid user handle ``` C: ADC 6 FL N=a@b F=a@b S: 201 6 ``` -## Account not found +## Target user not found ``` C: ADC 7 FL N=ghost@hotmail.com F=ghost@hotmail.com -S: 205 7 +S: 208 7 ``` ## Target list is full @@ -173,7 +173,7 @@ S: ADC 0 RL N=anotheruser@hotmail.com F=another%20user * [MSNP11](../versions/msnp11.md): Now supports phone-only (`tel:`) contacts. Requires the `MobileMessaging` element in the [Messenger Config](../services/msgrconfig.md) to be configured for the Official Client to use the feature. -* [MSNP13](../versions/msnp13.md): Removed, use ADL and the +* [MSNP13](../versions/msnp13.md): Removed, use [ADL](adl.md) and the [Address Book Service](../services/abservice.md)'s [`ABContactAdd`](../services/abservice/abcontactadd.md) action or the [Contact Sharing Service](../services/sharingservice.md)'s diff --git a/docs/commands/adl.md b/docs/commands/adl.md new file mode 100644 index 0000000..15f1b33 --- /dev/null +++ b/docs/commands/adl.md @@ -0,0 +1,192 @@ +# Introduction +`ADL` is a command introduced with [MSNP13](../versions/msnp13.md). + +It is a Notification Server command, WITH a request and WITH a response payload. + +Adds a user to a list during a session or initialises the states of the Forward List (FL), +Allow List (AL) and Block List (BL) after retrieving the current state of all lists from the +[Address Book Service](../services/abservice.md) and the +[Contact Sharing Service](../services/sharingservice.md). +For the actions that add a user to the address book or the membership lists, +read either the [`ABContactAdd`](../services/abservice/abcontactadd.md) article +or the [`AddMember`](../services/sharingservice/addmember.md) article respectively. + +# Client/Request +``` +ADL TrID length +payload +``` + +Where `payload` is a [``](#ml) document, without any support for whitespace outside of element parameters. + +## ml +This element has one optional attribute: +* `l`: If this is the initial list, this is set to `1`. + +This element optionally supports one or multiple `` elements, +and optionally only one `` element. + +### d +This element has one attribute: +* `n`: The domain (`...@this`) of the user handle. + +This element contains one or multiple `` elements. + +#### c +This element has three attributes: +* `n`: The local part (`this@...`) of the user handle. +* `l`: A bitfield that denotes what list this user is in: + * `1` (bit 0): Forward List (FL). + * `2` (bit 1): Allow List (AL). + * `4` (bit 2): Block List (BL). + * `8` (bit 3): Reverse List (RL). This value can only be set by the server. + * `16` (bit 4): Pending List (PL). This value can only be set by the server. +* `t`: The Network ID that this user is associated with. + +### t +This element contains one or multiple `` elements. + +#### c +This element has two attributes: +* `n`: The phone number as a `tel:` URI, with the `+` prefix. +* `l`: A bitfield that denotes what list this user is in: + * `1` (bit 0): Forward List (FL). + * `2` (bit 1): Allow List (AL). + * `4` (bit 2): Block List (BL). + * `8` (bit 3): Reverse List (RL). This value can only be set by the server. + * `16` (bit 4): Pending List (PL). This value can only be set by the server. + +This element also has one optional attribute: +* `f`: The friendly name of this user. This attribute can only be set by the server. + +# Server/Response + +## As a response +`ADL TrID OK` + +No payload is attached in this scenario. + +## Asynchronously +``` +ADL 0 length +payload +``` + +Where payload is a [``](#ml) document, without any support for whitespace outside of element parameters. + +# Examples +*NOTE: The XML in these examples has 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.* + +## Initial list +``` +C: ADL 1 110 + + + + + + + + +S: ADL 1 OK +``` + +## Normal use + +### Add a user handle +``` +C: ADL 2 65 + + + + + +S: ADL 2 OK +``` + +### Add a telephone number +``` +C: ADL 3 48 + + + + + +S: ADL 3 OK +``` + +## No services specified +``` +C: ADL 4 9 + +S: 240 4 +``` + +## No domain name specified +``` +C: ADL 5 16 + + + + +S: 241 5 +``` + +## Out of bounds Network ID +``` +C: ADL 6 67 + + + + + +S: 204 6 +``` + +## You cannot add to the Reverse List or Pending List +``` +C: ADL 7 65 + + + + + +S: 241 7 +``` + +## Target user not found +``` +C: ADL 8 59 + + + + + +S: 208 8 +``` + +## Target list is full +``` +C: ADL 9 61 + + + + + +S: 210 9 +``` + +## Asynchronous update +``` +S: ADL 0 82 + + + + + +``` + +# Known changes +* [MSNP17](../versions/msnp17.md): Now manages circles? diff --git a/docs/commands/fln.md b/docs/commands/fln.md index f35d55f..29c621b 100644 --- a/docs/commands/fln.md +++ b/docs/commands/fln.md @@ -9,17 +9,29 @@ It specifies that another user in your contact list has gone offline. This command can not be sent from the client. # Server/Response -`FLN {user-handle}` +`FLN {user-handle} {network-id}` Where `user-handle` is the related user's handle. +Where `network-id` is the Network Identification Number that this user is from. +Added since [MSNP14](../versions/msnp14.md). + # Examples ## User goes offline + +### Without Network IDs +*Only in [MSNP2](../versions/msnp2.md) to [MSNP13](../versions/msnp13.md).* ``` S: FLN anotheruser@hotmail.com ``` +### With Network IDs +*Since [MSNP14](../versions/msnp14.md).* +``` +S: FLN anotheruser@hotmail.com 1 +``` + ## Invalid context *Inherited from being an unimplemented command.* ``` @@ -29,4 +41,4 @@ C: FLN Hotmail Server disconnects client. # Known changes -None. +* [MSNP14](../versions/msnp14.md): Added a new parameter that denotes the Network ID of the user that is now offline. diff --git a/docs/commands/fqy.md b/docs/commands/fqy.md new file mode 100644 index 0000000..116d9bf --- /dev/null +++ b/docs/commands/fqy.md @@ -0,0 +1,105 @@ +# Introduction +`FQY` is a command introduced with [MSNP14](../versions/msnp14.md). + +It is a Notification Server command, WITH a request and WITH a response payload. + +Requests the server on which Network ID the user is assigned to. + +# Client/Request +``` +FQY TrID length +payload +``` + +Where `payload` is a [``](#ml) document, without any support for whitespace outside of element parameters. + +## ml +This element supports one or multiple `` elements. + +### d +This element has one attribute: +* `n`: The domain (`...@this`) of the user handle. + +This element contains one or multiple `` elements. + +#### c +This element has two attributes: +* `n`: The local part (`this@...`) of the user handle. +* `t`: The Network ID that this user is associated with. + This parameter is to be omitted by the client, but not the server. + +# Server/Response +``` +FQY TrID length +payload +``` + +Where payload is a [``](#ml) document, without any support for whitespace outside of element parameters. + +# Examples +*NOTE: The XML in these examples has been exploded for visibility and formatting reasons. +No whitespace is allowed in FQY's payload and the payload size reflects this, +and is set to the correct value.* + +## User on another service +``` +C: FQY 1 53 + + + + + +S: FQY 1 59 + + + + + +``` + +## User on the same service +``` +C: FQY 2 53 + + + + + +S: FQY 2 60 + + + + + +``` + +## No services specified +``` +C: FQY 3 9 + +S: 240 3 +``` + +## No domain name specified +``` +C: FQY 4 16 + + + + +S: 241 4 +``` + +## Target user not found +``` +C: FQY 5 47 + + + + + +S: 208 5 +``` + +# Known changes +None. diff --git a/docs/commands/iln.md b/docs/commands/iln.md index 49d10d0..3a1c8c2 100644 --- a/docs/commands/iln.md +++ b/docs/commands/iln.md @@ -7,7 +7,7 @@ Specifies that a user was already online by the time the client was. For the version of this command without the Transaction ID that is sent at any time, read [NLN](nln.md). This command is sent after the initial [CHG](chg.md) command, using it's Transaction ID. -It may also be sent as a follow-up to a [ADD](add.md), [ADC](adc.md) or ADL command, using it's Transaction ID. +It may also be sent as a follow-up to a [ADD](add.md), [ADC](adc.md) or [ADL](adl.md) command, using it's Transaction ID. # Client/Request This command can not be sent from the client. @@ -28,7 +28,8 @@ Where `status` is any of the defined statuses: Where `user-handle` is the relevant user's handle. -Where `network-id` is the Network Identification Number. Added since [MSNP14](../versions/msnp14.md). +Where `network-id` is the Network Identification Number that this user is from. +Added since [MSNP14](../versions/msnp14.md). Where `friendly-name` is the relevant user's friendly name. diff --git a/docs/commands/ims.md b/docs/commands/ims.md index 9779e53..a3b5fd5 100644 --- a/docs/commands/ims.md +++ b/docs/commands/ims.md @@ -12,7 +12,7 @@ It enables or disables switchboard access without modifying the user's current s `IMS TrID 0 [ ON | OFF ]` Where `0` has an unknown purpose. -Rumored to be a timeout of some kind. [Please confirm this.] +Rumored to be a timeout of some kind. [TODO: Please confirm this.] # Examples @@ -37,4 +37,5 @@ C: IMS 3 TOMORROW Server disconnects client. # Known changes -* Removed in MSNP24... probably? Who really knows... Only WebTV supported it, which only has [MSNP3](../versions/msnp3.md) and [MSNP8](../versions/msnp8.md). +* Removed in MSNP24... probably? Who really knows... Only WebTV supported it, + which only has [MSNP3](../versions/msnp3.md), [MSNP6](../versions/msnp6.md) and [MSNP8](../versions/msnp8.md). diff --git a/docs/commands/msg.md b/docs/commands/msg.md index 9592d75..183a349 100644 --- a/docs/commands/msg.md +++ b/docs/commands/msg.md @@ -119,7 +119,9 @@ LoginTime: 1726321960 ``` #### Initial e-mail configuration -*NOTE: This message is from [MSNP3](../versions/msnp3.md), the [MSNP2](../versions/msnp2.md) version of this is unknown.* +*NOTE: In [MSNP2](../versions/msnp2.md) only, the type of the initial e-mail configuration was +`application/x-msmsgsemailnotification`, which was changed in [MSNP3](../versions/msnp3.md) to +`text/x-msmsgsinitialemailnotification`.* ``` S: MSG Hotmail Hotmail 221 MIME-Version: 1.0 @@ -134,23 +136,26 @@ Post-URL: http://www.hotmail.com ``` #### New e-mail +*NOTE: In [MSNP2](../versions/msnp2.md) only, the type of the e-mail notifications was +`application/x-msmsgsemailnotification`, which was changed in [MSNP3](../versions/msnp3.md) to +`text/x-msmsgsemailnotification`, and also added the `id` header for automatic Passport authentication, +and the `Post-URL` was also changed from `http://www.hotmail.com` to +either the passport `md5auth.srf` of your account server or provided by a Hotmail `law` server.* ``` -S: MSG Hotmail Hotmail 342 +S: MSG Hotmail Hotmail 359 MIME-Version: 1.0 Content-Type: text/x-msmsgsemailnotification; charset=UTF-8 From: Example User Message-URL: /cgi-bin/getmsg?msg=MSG1728932553.00&start=1&len=12&curmbox=ACTIVE Post-URL: https://loginnet.passport.com/ppsecure/md5auth.srf?lc=1033 -Subject: Just saying hello. +Subject: =?"us-ascii"?Q?Just saying hello.?= Dest-Folder: ACTIVE From-Addr: example@hotmail.com id: 2 ``` -Since [MSNP3](../versions/msnp3.md), the `id` header was added for Passport automatic authentication support. - #### Mailbox activity ``` S: MSG Hotmail Hotmail 146 diff --git a/docs/commands/nln.md b/docs/commands/nln.md index f02389d..9030fe5 100644 --- a/docs/commands/nln.md +++ b/docs/commands/nln.md @@ -25,7 +25,8 @@ Where `status` is any of the defined statuses: Where `user-handle` is the relevant user's handle. -Where `network-id` is the Network Identification Number. Added since [MSNP14](../versions/msnp14.md). +Where `network-id` is the Network Identification Number that this user is from. +Added since [MSNP14](../versions/msnp14.md). Where `friendly-name` is the relevant user's friendly name. diff --git a/docs/commands/rem.md b/docs/commands/rem.md index f67b2cf..6b56215 100644 --- a/docs/commands/rem.md +++ b/docs/commands/rem.md @@ -134,7 +134,7 @@ S: REM 0 FL c1f9a363-4ee9-4a33-a434-b056a4c55b98 * [MSNP7](../versions/msnp7.md): Added groups support. * [MSNP10](../versions/msnp10.md): Added GUID support, replacing the user's handle for FL requests and removed updating the List Version. -* [MSNP13](../versions/msnp13.md): Removed, use RML and the +* [MSNP13](../versions/msnp13.md): Removed, use [RML](rml.md) and the [Address Book Service](../services/abservice.md)'s [`ABContactDelete`](../services/abservice/abcontactdelete.md) action or the [Contact Sharing Service](../services/sharingservice.md)'s diff --git a/docs/commands/rml.md b/docs/commands/rml.md new file mode 100644 index 0000000..a6893db --- /dev/null +++ b/docs/commands/rml.md @@ -0,0 +1,161 @@ +# Introduction +`RML` is a command introduced with [MSNP13](../versions/msnp13.md). + +It is a Notification Server command, WITH a request and WITH a response payload. + +Removes a user from a list during a session. +For the actions that removes a user from the address book or the membership lists, +read either the [`ABContactDelete`](../services/abservice/abcontactdelete.md) article +or the [`DeleteMember`](../services/sharingservice/deletemember.md) article respectively. + +# Client/Request +``` +RML TrID length +payload +``` + +Where `payload` is a [``](#ml) document, without any support for whitespace outside of element parameters. + +## ml +This element has one optional attribute: +* `l`: If this is the initial list, this is set to `1`. + +This element optionally supports one or multiple `` elements, +and optionally only one `` element. + +### d +This element has one attribute: +* `n`: The domain (`...@this`) of the user handle. + +This element contains one or multiple `` elements. + +#### c +This element has three attributes: +* `n`: The local part (`this@...`) of the user handle. +* `l`: A bitfield that denotes what list this user is in: + * `1` (bit 0): Forward List (FL). + * `2` (bit 1): Allow List (AL). + * `4` (bit 2): Block List (BL). + * `8` (bit 3): Reverse List (RL). This value can only be set from the server. + * `16` (bit 4): Pending List (PL). This value can only be set from the server. +* `t`: The Network ID that this user is associated with. + +### t +This element contains one or multiple `` elements. + +#### c +This element has two attributes: +* `n`: The phone number as a `tel:` URI, with the `+` prefix. +* `l`: A bitfield that denotes what list this user is in: + * `1` (bit 0): Forward List (FL). + * `2` (bit 1): Allow List (AL). + * `4` (bit 2): Block List (BL). + * `8` (bit 3): Reverse List (RL). This value can only be set from the server. + * `16` (bit 4): Pending List (PL). This value can only be set from the server. + +# Server/Response + +## As a response +`RML TrID OK` + +No payload is attached in this scenario. + +## Asynchronously +``` +RML 0 length +payload +``` + +Where payload is a [``](#ml) document, without any support for whitespace outside of element parameters. + +# Examples +*NOTE: The XML in these examples has been exploded for visibility and formatting reasons. +No whitespace is allowed in RML's payload and the payload size reflects this, +and is set to the correct value.* + +## Normal use + +### Remove a user handle +``` +C: RML 1 65 + + + + + +S: RML 1 OK +``` + +### Remove a telephone number +``` +C: RML 2 48 + + + + + +S: RML 2 OK +``` + +## No services specified +``` +C: RML 3 9 + +S: 240 3 +``` + +## No domain name specified +``` +C: RML 4 16 + + + + +S: 241 4 +``` + +## Out of bounds Network ID +``` +C: RML 5 67 + + + + + +S: 204 5 +``` + +## You cannot remove from the Reverse List or Pending List +``` +C: RML 6 65 + + + + + +S: 241 6 +``` + +## Target user not on that list +``` +C: RML 7 59 + + + + + +S: 216 7 +``` + +## Asynchronous update +``` +S: RML 0 65 + + + + + +``` + +# Known changes +* [MSNP17](../versions/msnp17.md): Now manages circles? diff --git a/docs/commands/rng.md b/docs/commands/rng.md index 66bca91..3866a21 100644 --- a/docs/commands/rng.md +++ b/docs/commands/rng.md @@ -9,7 +9,7 @@ Used to invite ("ring") you to a Switchboard session. This command can not be sent from the client. # Server/Response -`RNG session-id address:port CKI cookie inviter-handle inviter-friendly-name` +`RNG session-id address:port CKI cookie inviter-handle inviter-friendly-name {U} {domain} {direct-connect}` Where `session-id` is the Switchboard session identification number you need in [ANS](ans.md). @@ -23,11 +23,41 @@ Where `inviter-handle` is the inviter's handle. Where `inviter-handle` is the inviter's friendly name. +Where `U` is always `U`. Since [MSNP13](../versions/msnp13.md). +The use of this parameter is unknown. + +Where `domain` is always `messenger.hotmail.com`. Since [MSNP13](../versions/msnp13.md). +The use of this parameter is unknown. + +Where `direct-connect` is set to one of these two values, Since [MSNP14](../versions/msnp14.md): +* `0`: This `address:port` can only be accessed only via the HTTP Gateway. +* `1`: This `address:port` can be connected to via TCP as well as the HTTP Gateway. + # Examples ## Getting a Switchboard invite +*NOTE: This has been line-breaked. +Lines beginning with `..` followed by a space are continuations of the previous line.* + +### Old +*Only in [MSNP2](../versions/msnp2.md) to [MSNP12](../versions/msnp12.md).* ``` -S: RNG 987654331 10.0.1.200:1865 CKI 123456789.123456789.123456789 anotheruser@hotmail.com another%20user +S: RNG 987654331 10.0.1.200:1865 CKI 123456789.123456789.123456789 +.. anotheruser@hotmail.com another%20user +``` + +### New +*Only in [MSNP13](../versions/msnp13.md).* +``` +S: RNG 987654331 10.0.1.200:1865 CKI 123456789.123456789.123456789 +.. anotheruser@hotmail.com another%20user U messenger.hotmail.com +``` + +### Modern +*Since [MSNP14](../versions/msnp14.md).* +``` +S: RNG 987654331 10.0.1.200:1865 CKI 123456789.123456789.123456789 +.. anotheruser@hotmail.com another%20user U messenger.hotmail.com 1 ``` ## Invalid context @@ -39,4 +69,7 @@ C: RNG 1 Server disconnects client. # Known changes -None. +* [MSNP13](../versions/msnp13.md): Added two new parameters, + one of which is always `U`, and the other is always `messenger.hotmail.com`. +* [MSNP14](../versions/msnp14.md): Added a new parameter that is either `0` or `1` + to denote whenever the client should directly connect to the address, or use the HTTP Gateway to connect instead. diff --git a/docs/commands/ubx.md b/docs/commands/ubx.md index 3f30f68..808bc5b 100644 --- a/docs/commands/ubx.md +++ b/docs/commands/ubx.md @@ -28,6 +28,8 @@ contained in a `` element: Added since [MSNP13](../versions/msnp13.md). # Examples +*NOTE: The XML in these examples has been exploded for visibility and formatting reasons. +The payload sizes provided are to represent the size of the unexploded payloads.* ## Without MachineGuid *Only in [MSNP11](../versions/msnp11.md) and [MSNP12](../versions/msnp12.md).* @@ -35,19 +37,28 @@ contained in a `` element: ### Blank status ``` S: UUX anotheruser@hotmail.com 53 - + + + + ``` ### With PSM ``` S: UUX anotheruser@hotmail.com 75 -example status message + + example status message + + ``` ### With playing media ``` S: UUX anotheruser@hotmail.com 137 -example status message\0Music\01\0{0} - {1}\0Song Title\0Song Artist\0Song Album\0\0 + + example status message + \0Music\01\0{0} - {1}\0Song Title\0Song Artist\0Song Album\0\0 + ``` ## With MachineGuid @@ -56,19 +67,31 @@ S: UUX anotheruser@hotmail.com 137 ### Blank status ``` S: UUX anotheruser@hotmail.com 118 -{0061D708-CD9B-4D56-B64B-FFFAA92FF344} + + + + {0061D708-CD9B-4D56-B64B-FFFAA92FF344} + ``` ### With PSM ``` S: UUX anotheruser@hotmail.com 140 -example status message{0061D708-CD9B-4D56-B64B-FFFAA92FF344} + + example status message + + {0061D708-CD9B-4D56-B64B-FFFAA92FF344} + ``` ### With playing media ``` S: UUX anotheruser@hotmail.com 202 -example status message\0Music\01\0{0} - {1}\0Song Title\0Song Artist\0Song Album\0\0{0061D708-CD9B-4D56-B64B-FFFAA92FF344} + + example status message + \0Music\01\0{0} - {1}\0Song Title\0Song Artist\0Song Album\0\0 + {0061D708-CD9B-4D56-B64B-FFFAA92FF344} + ``` ## With Network IDs @@ -77,19 +100,31 @@ S: UUX anotheruser@hotmail.com 202 ### Blank status ``` S: UUX anotheruser@hotmail.com 1 118 -{0061D708-CD9B-4D56-B64B-FFFAA92FF344} + + + + {0061D708-CD9B-4D56-B64B-FFFAA92FF344} + ``` ### With PSM ``` S: UUX anotheruser@hotmail.com 1 140 -example status message{0061D708-CD9B-4D56-B64B-FFFAA92FF344} + + example status message + + {0061D708-CD9B-4D56-B64B-FFFAA92FF344} + ``` ### With playing media ``` S: UUX anotheruser@hotmail.com 1 202 -example status message\0Music\01\0{0} - {1}\0Song Title\0Song Artist\0Song Album\0\0{0061D708-CD9B-4D56-B64B-FFFAA92FF344} + + example status message + \0Music\01\0{0} - {1}\0Song Title\0Song Artist\0Song Album\0\0 + {0061D708-CD9B-4D56-B64B-FFFAA92FF344} + ``` ## Invalid context diff --git a/docs/commands/url.md b/docs/commands/url.md index e3590b7..88aef6d 100644 --- a/docs/commands/url.md +++ b/docs/commands/url.md @@ -41,7 +41,8 @@ Where `login-url` is the service that provides automatic authentication and accepts redirection form parameters. Usually `https://login(net).passport.com/ppsecure/md5auth.srf?lc=` followed by your initial profile's `lang_preference` value since [MSNP3](../versions/msnp3.md). -Where `psid` is the `id` parameter passed to `login-url`. and are required to use absolute URLs as the `redirect-url`. Added since [MSNP3](../versions/msnp3.md). Required since [MSNP5](../versions/msnp5.md). +Where `psid` is the `id` parameter passed to `login-url`. and are required to use absolute URLs as the `redirect-url`. +Added since [MSNP3](../versions/msnp3.md). Required since [MSNP5](../versions/msnp5.md). # Examples *NOTE: All examples will have Site IDs because I don't know what the login URL was without it.* @@ -49,7 +50,7 @@ Where `psid` is the `id` parameter passed to `login-url`. and are required to us ## Open E-mail Inbox ``` C: URL 1 INBOX -S: URL 1 /cgi-bin/HoTMaiL https://loginnet.passport.com/ppsecure/md5autf.srf?lc=1033 2 +S: URL 1 /cgi-bin/HoTMaiL https://loginnet.passport.com/ppsecure/md5auth.srf?lc=1033 2 ``` ## Compose new E-mail @@ -96,8 +97,8 @@ S: URL 7 http://chat.msn.com/Messenger.msnw?lc=1033 https://loginnet.passport.co # Known changes * [MSNP3](../versions/msnp3.md): Added a Passport Site ID parameter to response (parameter 3), - now supports absolute URLs. Removed `PASSWORD` service. -* Client Version 3.0/[MSNP5](../versions/msnp5.md): Made the Passport Site ID parameter mandatory. + now supports absolute URLs instead of only relative URLs for the redirect URL. +* Client Version 3.0 ([MSNP5](../versions/msnp5.md)): Made the Passport Site ID parameter mandatory, * [MSNP5](../versions/msnp5.md): Added `MOBILE` and `CHGMOB` services. * [MSNP6](../versions/msnp6.md): Added `PROFILE`, `N2PACCOUNT` and `N2PFUND` services. * [MSNP7](../versions/msnp7.md): Added `CHAT` service. diff --git a/docs/commands/uux.md b/docs/commands/uux.md index cce290e..7fce36e 100644 --- a/docs/commands/uux.md +++ b/docs/commands/uux.md @@ -26,6 +26,8 @@ contained in a `` element: Where `length` is always `0`. # Examples +*NOTE: The XML in these examples has been exploded for visibility and formatting reasons. +The payload sizes provided are to represent the size of the unexploded payloads.* ## Without MachineGuid *Only in [MSNP11](../versions/msnp11.md) and [MSNP12](../versions/msnp12.md).* @@ -33,21 +35,30 @@ Where `length` is always `0`. ### Blank status ``` C: UUX 1 53 - + + + + S: UUX 1 ``` ### With PSM ``` C: UUX 2 75 -example status message + + example status message + + S: UUX 2 ``` ### With playing media ``` C: UUX 3 137 -example status message\0Music\01\0{0} - {1}\0Song Title\0Song Artist\0Song Album\0\0 + + example status message + \0Music\01\0{0} - {1}\0Song Title\0Song Artist\0Song Album\0\0 + S: UUX 3 ``` @@ -57,21 +68,33 @@ S: UUX 3 ### Blank status ``` C: UUX 4 118 -{44BFD5A4-7450-4BDA-BA3A-C51B3031126D} + + + + {44BFD5A4-7450-4BDA-BA3A-C51B3031126D} + S: UUX 4 ``` ### With PSM ``` C: UUX 5 140 -example status message{44BFD5A4-7450-4BDA-BA3A-C51B3031126D} + + example status message + + {44BFD5A4-7450-4BDA-BA3A-C51B3031126D} + S: UUX 5 ``` ### With playing media ``` C: UUX 6 202 -example status message\0Music\01\0{0} - {1}\0Song Title\0Song Artist\0Song Album\0\0{44BFD5A4-7450-4BDA-BA3A-C51B3031126D} + + example status message + \0Music\01\0{0} - {1}\0Song Title\0Song Artist\0Song Album\0\0 + {44BFD5A4-7450-4BDA-BA3A-C51B3031126D} + S: UUX 6 ``` diff --git a/docs/commands/xfr.md b/docs/commands/xfr.md index 744f1af..5892afe 100644 --- a/docs/commands/xfr.md +++ b/docs/commands/xfr.md @@ -20,28 +20,47 @@ If this is set to `0`, proceed to **ignore** the `server-type` parameter and restart the login process on the current server from [VER](ver.md). ## XFR NS -`XFR TrID NS address:port {0} {current-server}` +`XFR TrID NS address:port {0|U} {current-server|D}` -In [MSNP3](../versions/msnp3.md) or higher, `0` is always `0`. +In [MSNP3](../versions/msnp3.md) and above until [MSNP13](../versions/msnp13.md), +`0` is always set to `0`. -In [MSNP7](../versions/msnp7.md) or higher, `current-server` is the current server you are connected to. +In [MSNP7](../versions/msnp7.md) and above until [MSNP13](../versions/msnp13.md), +`current-server` is the current server you are connected to. + +In [MSNP13](../versions/msnp13.md) and higher, +the `0` is replaced with a constant `U`, +and the `current-server` is replaced with a constant `D`. ## XFR SB -`XFR TrID SB address:port authentication-method authentication-parameter` +`XFR TrID SB address:port authentication-method authentication-parameter {U} {domain} {direct-connect}` Where `authentication-method` is always `CKI`. Where `authentication-parameter` is the "cookie" you need to log in to Switchboard. +Where `U` is always set to `U`. Since [MSNP13](../versions/msnp13.md). +No use documented. + +Where `domain` is always set to `messenger.msn.com`. Since [MSNP13](../versions/msnp13.md). +No use documented. + +Where `direct-connect` is set to one of these two values, Since [MSNP14](../versions/msnp14.md): +* `0`: This `address:port` can only be accessed only via the HTTP Gateway. +* `1`: This `address:port` can be connected to via TCP as well as the HTTP Gateway. + # Examples -## Client requests a new Switchboard connection +## Before rework +*Only in [MSNP2](../versions/msnp2.md) to [MSNP12](../versions/msnp12.md).* + +### Client requests a new Switchboard session ``` C: XFR 1 SB S: XFR 1 SB 10.0.1.200:1865 CKI 123456789.123456789.123456789 ``` -## Client requests a new Notification server +### Client requests a new Notification server *Only used as-is in Beta 2 as the first command sent to a Dispatch Server.* ``` C: XFR 2 NS @@ -51,9 +70,9 @@ Client disconnects from server Client opens a connection to 10.0.0.5:1863 -## Client referred from Dispatch Server +### Client referred from Dispatch Server -### Very Old +#### Very Old *Only in [MSNP2](../versions/msnp2.md).* ``` C: USR 3 MD5 I example@hotmail.com @@ -63,7 +82,7 @@ Client disconnects from server Client opens a connection to 10.0.0.5:1863 -### Classic +#### Classic *Only in [MSNP3](../versions/msnp3.md) to [MSNP6](../versions/msnp6.md).* ``` C: USR 4 MD5 I example@hotmail.com @@ -73,8 +92,8 @@ Client disconnects from server Client opens a connection to 10.0.0.5:1863 -### Modern -*Since [MSNP7](../versions/msnp7.md).* +#### Modern +*Only in [MSNP7](../versions/msnp7.md) to [MSNP12](../versions/msnp12.md).* ``` C: USR 5 MD5 I example@hotmail.com S: XFR 5 NS 10.0.0.5:1863 0 10.0.0.1:1863 @@ -83,12 +102,43 @@ Client disconnects from server Client opens a connection to 10.0.0.5:1863 +## After rework +*Since [MSNP13](../versions/msnp13.md).* + +### Client requests a new Switchboard session + +#### Without direct connect parameter +*Only in [MSNP13](../versions/msnp13.md).* +``` +C: XFR 6 SB +S: XFR 6 SB 10.0.1.200:1865 CKI 123456789.123456789.123456789 U messenger.msn.com +``` + +#### With direct connect parameter +*Since [MSNP14](../versions/msnp14.md).* +``` +C: XFR 7 SB +S: XFR 7 SB 10.0.1.200:1865 CKI 123456789.123456789.123456789 U messenger.msn.com 1 +``` + +### Client referred from Dispatch Server +``` +C: USR 8 TWN I example@hotmail.com +S: XFR 8 NS 10.0.0.5:1863 U D +``` + ## Forced soft reset +*Applies for any protocol version.* ``` S: XFR 0 NS 0 C: VER 6 MSNP7 MSNP6 MSNP5 MSNP4 ``` # Known changes -* [MSNP3](../versions/msnp3.md) adds a new parameter that is always 0 to XFR NS. -* [MSNP7](../versions/msnp7.md) adds a new parameter that is the current server you are communicating with to XFR NS. +* [MSNP3](../versions/msnp3.md): Added a new parameter that is always `0` to XFR NS. +* [MSNP7](../versions/msnp7.md): Added a new parameter that is the current server you are communicating with to XFR NS. +* [MSNP13](../versions/msnp13.md): Replaced `0` and the current server parameter with `U` and `D` respectively in XFR NS, + and also added two parameters to XFR SB, one that is always `U`, + and one that is a domain name, which is always `messenger.msn.com`. +* [MSNP14](../versions/msnp14.md): Added a new parameter that is either `0` or `1` to XFR SB + to denote whenever the client should directly connect to the address, or use the HTTP Gateway to connect instead. diff --git a/docs/files/client_capabilities.md b/docs/files/client_capabilities.md index 3717643..9e5633e 100644 --- a/docs/files/client_capabilities.md +++ b/docs/files/client_capabilities.md @@ -31,7 +31,7 @@ This was expanded in [MSNP16](../versions/msnp16.md) with Extended Client Capabi | `0x00080000` | `524288` | The user's client supports encrypted conversations. | | `0x00100000` | `1048576` | ... | | `0x00200000` | `2097152` | ... | -| `0x00400000` | `4194304` | ... | +| `0x00400000` | `4194304` | The user's client supports sharing folders. | | `0x00800000` | `8388608` | ... | | `0x01000000` | `16777216` | ... | | `0x02000000` | `33554432` | ... | diff --git a/docs/files/notification.md b/docs/files/notification.md index d9b1672..9b396ae 100644 --- a/docs/files/notification.md +++ b/docs/files/notification.md @@ -11,9 +11,9 @@ This is the root element of the document, and supports four attributes: * `id`: A 32-bit unsigned integer that is set by the sending party. * `siteid`: The .NET Alerts Site ID, not to be confused with the .NET Passport Site ID. Setting this to some values changes the default icon: - * `0`: Use stocks (stack of coins or line-chart) icon - * `1`: Use calendar (clock) icon - * Other values: Use default bell icon or custom icon + * `0`: Use stocks (stack of coins or line-chart) icon. + * `1`: Use calendar (clock) icon. + * Other values: Use default bell icon or custom icon. * `siteurl`: The base URL to the service used in later relative URL attributes. ## TO diff --git a/docs/index.md b/docs/index.md index 302b8d6..a8e73be 100644 --- a/docs/index.md +++ b/docs/index.md @@ -25,6 +25,7 @@ A copy of the license is included in the article entitled * [MSNP10](versions/msnp10.md) * [MSNP11](versions/msnp11.md) * [MSNP12](versions/msnp12.md) +* [MSNP13](versions/msnp13.md) More is to come soon! Hopefully! @@ -45,14 +46,14 @@ More is to come soon! Hopefully! * [All Client Capabilities](files/client_capabilities.md) # Wanted Information -* [MSNP2](versions/msnp2.md): What is the format of the initial `text/x-msmsgsemailnotification`? * [MSNP8](versions/msnp8.md): Did [FND](commands/fnd.md) exist? Rumors said it did shortly before it got killed in all protocols. * [MSNP8](versions/msnp8.md): Did [LSG](commands/lsg.md) and [LST](commands/lst.md) change outside of [SYN](commands/syn.md) in this version? * [MSNP10](versions/msnp10.md): Asynchronous `BPR MFN`s from the server. Does it really? * [MSNP10](versions/msnp10.md): Did [LSG](commands/lsg.md) and [LST](commands/lst.md) change outside of [SYN](commands/syn.md) in this version? +* [MSNP11](versions/msnp11.md): Anything about the `GSB` command, and is it related to `SBS`? * [MSNP11](versions/msnp11.md): How does `ABCHMigrated: 0` really work now? `OUT MIG` still exists. * [MSNP12](versions/msnp12.md): Did [LST](commands/lst.md) change outside of [SYN](commands/syn.md) in this version? -* MSNP18: Was ``-based circle updates added in MSNP17 instead? +* [MSNP18](versions/msnp18.md): Did ``-based circle updates get added in [MSNP17](versions/msnp17.md) instead of [MSNP18](versions/msnp18.md)? * Error Codes: A new article for them, seems like they are implemented in wildly different ways. * [MSNP2](versions/msnp2.md) to [MSNP7](versions/msnp7.md): TODO: Add CVR requests as command 10. * All Protocols: Any error code known to exist but is missing from the pages. @@ -85,6 +86,7 @@ More is to come soon! Hopefully! ### We know SOME Information * Offline IMs (OIM) SOAP service: Absolutely needs a service page, since it's been in since [MSNP11](versions/msnp11.md). +* Above requires MSNP11 challenges. Please document those. ## Unsolved Mysteries * [INF command](commands/inf.md): ***Why*** does the [MSNP2](versions/msnp2.md) [draft](https://datatracker.ietf.org/doc/html/draft-movva-msn-messenger-protocol-00#section-7.2) have this in Switchboard? It's not used by any client as far as i'm aware. @@ -119,12 +121,15 @@ More is to come soon! Hopefully! * User handle: An address which supports up to 129 characters that is used across the protocol. May be called "principles" in other places. * Public Key, Private Key: The parameters used in [QRY](commands/qry.md). - * The one you send with it in plain is the Public Key. + * The one you send with it in plain is the Public Key. An example of the Public Key is `msmsgs@msnmsgr.com` or `PROD0090YUAUV{2B`. - * The one you use for the main challenge response hash is the Private Key. + * The one you use for the main challenge response hash is the Private Key. An example of the Private Key is `Q1P7W2E4J9R8U3S5` or `YMM8C_H7KCQ2S_KL`. -# Where do I find or edit these page's source? -The git repo is avaliable at . +# Where can I find or edit the source of the articles provided? +The git repository for the project is avaliable at . -You can submit changes to me via any avaliable contact method as a e-mail merge request, like those made with [`git format-patch`](https://git-scm.com/docs/git-format-patch). +You can submit changes to me via any avaliable contact method as a e-mail merge request, +like those made with [`git format-patch`](https://git-scm.com/docs/git-format-patch). +If such a method is undesired or you do not want to format such a message, +that is fine too, as long as you give a pointer to where you would like the information to go. diff --git a/docs/services/abservice/abcontactupdate.md b/docs/services/abservice/abcontactupdate.md index 4a1c4a0..55e3545 100644 --- a/docs/services/abservice/abcontactupdate.md +++ b/docs/services/abservice/abcontactupdate.md @@ -36,6 +36,7 @@ The most relevant children are: This element only contains the space delimited list of updated items in ``. The valid values are the following: * `DisplayName` +* `Passport` * `IsMessengerUser` * `ContactFirstName` * `ContactLastName` diff --git a/docs/services/abservice/contactinfo.md b/docs/services/abservice/contactinfo.md index 31e7167..998f973 100644 --- a/docs/services/abservice/contactinfo.md +++ b/docs/services/abservice/contactinfo.md @@ -33,7 +33,7 @@ This element can contain many children, all of which optional: * `ContactEmailBusiness` * `ContactEmailOther` * `Passport` -* ``: Contains one or multiple [``](#contactemail) element(s). +* ``: Contains one or multiple [``](#contactemail) element(s). * ``: Can be any of the following: * `ContactPhonePersonal` * `ContactPhonePager` @@ -41,7 +41,7 @@ This element can contain many children, all of which optional: * `ContactPhoneBusiness` * `ContactPhoneOther` * `ContactPhoneMobile` -* ``: Contains one or multiple [``](#contactphone) element(s). +* ``: Contains one or multiple [``](#contactphone) element(s). * ``: Can be any of the following: * `ContactLocationBusiness` * `ContactLocationPersonal` @@ -92,7 +92,7 @@ This element contains two children: * ``: The city associated with the ``. * ``: The state associated with the ``. * ``: The country associated with the ``. -* ``: The postal code associated associated with the ``. +* ``: The postal code associated with the ``. * ``: A space delimited list of changed elements in this ``: * `Name` * `Street` diff --git a/docs/services/msgrconfig.md b/docs/services/msgrconfig.md index 36a944a..eb69ef8 100644 --- a/docs/services/msgrconfig.md +++ b/docs/services/msgrconfig.md @@ -449,7 +449,7 @@ This empty element has five attributes: ### MSNSearch Controls the URLs used by search features. -* ``: The promotional page that opens when attempting a desktop search without the required software installed. +* ``: The promotional page that opens when attempting a desktop search without the required software installed. * ``: The image search service URL. * ``: The search service URL for local services. * ``: The news search service URL. @@ -561,9 +561,9 @@ Where `` contains: * ``: The Passport Site ID used for `` (and ``?). If the item is for a `` product, `` is opened in the internal page browser. -If it is for a `` product instead, `` is sent to `MessengerContentInstaller.InstallIndirectContent`. - -TODO: What is a "Merchant CAB file"? `InstallIndirectContent` wants one. +If it is for a `` product instead, `` is sent to `MessengerContentInstaller.InstallIndirectContent`. +To create a merchant package, simply create a empty `` element in an empty XML document with the +`contentlocationurl` attribute set to a Messenger Content archive file. ## Editorial document ``` diff --git a/docs/services/passportsoap.md b/docs/services/passportsoap.md index b15500a..368013a 100644 --- a/docs/services/passportsoap.md +++ b/docs/services/passportsoap.md @@ -2,7 +2,7 @@ Passport (SOAP), or "Passport 3.0" as it's sometimes called, is a HTTP-based authentication system that was introduced with [MSNP12](../versions/msnp12.md). -The endpoint is called `RST.srf`, reciding on the `login.passport.net` or `login.live.com` domain. +The endpoint is called `RST.srf`, residing on either the `login.passport.net` or `login.live.com` domain. For [MSNP8](../versions/msnp8.md) to [MSNP11](../versions/msnp11.md), read the [Passport 1.4](passport14.md) article. diff --git a/docs/services/sharingservice/addmember.md b/docs/services/sharingservice/addmember.md index 70f9b51..3786787 100644 --- a/docs/services/sharingservice/addmember.md +++ b/docs/services/sharingservice/addmember.md @@ -56,7 +56,8 @@ This element contains two children: This element also contains one of the following mutually exclusive children. 1. ``: The user handle associated with this membership. 2. ``: The e-mail address associated with this membership. -3. ``: The phone number associated with this membership. +3. ``: The phone number associated with this membership, + in the format of the full phone number (including country code) prefixed with a `+`. This element also contains the following children IF the role is set to `ProfileExpression`: * ``: Always `Allow`. diff --git a/docs/services/sharingservice/deletemember.md b/docs/services/sharingservice/deletemember.md index 58dac60..37d675f 100644 --- a/docs/services/sharingservice/deletemember.md +++ b/docs/services/sharingservice/deletemember.md @@ -56,7 +56,8 @@ This element contains three children: This element may instead contain one of the following mutually exclusive children instead of ``: 1. ``: The user handle associated with this membership. 2. ``: The e-mail address associated with this membership. -3. ``: The phone number associated with this membership. +3. ``: The phone number associated with this membership, + in the format of the full phone number (including country code) prefixed with a `+`. This element also contains the following children IF the role is set to `ProfileExpression`: * ``: Always `Allow`. diff --git a/docs/table_of_commands.md b/docs/table_of_commands.md index 81ef6c1..d6002b3 100644 --- a/docs/table_of_commands.md +++ b/docs/table_of_commands.md @@ -9,7 +9,7 @@ This is a list of all known MSNP commands and their originating version. | [`CVR`](commands/cvr.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP4](versions/msnp4.md) (parameter 7), [MSNP8](versions/msnp8.md) (parameter 8) | | [`CVQ`](commands/cvq.md) | N | Y | N | [CVR0](versions/cvr0.md) | [MSNP4](versions/msnp4.md) (parameter 7, but always empty), [MSNP8](versions/msnp8.md) (fixed parameter 7 being empty, parameter 8 ) | | [`USR`](commands/usr.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP3](versions/msnp3.md) (Removed `CTP` security package), [MSNP6](versions/msnp6.md) (Added account verified bit to USR OK), [MSNP8](versions/msnp8.md) (Added account restricted bit to USR OK), [MSNP10](versions/msnp10.md) (removed current friendly name in favour of [PRP](commands/prp.md) MFN), (Removed `MD5` security package, added `TWN` security package, added new unknown bit (parameter 5) to USR OK), [MSNP15](versions/msnp15.md) (Added `SSO` security package.) | -| [`XFR`](commands/xfr.md) | N | Y | Y?| [MSNP2](versions/msnp2.md) | [MSNP3](versions/msnp3.md) (parameter 3), [MSNP7](versions/msnp7.md) (parameter 4) | +| [`XFR`](commands/xfr.md) | N | Y | Y?| [MSNP2](versions/msnp2.md) | [MSNP3](versions/msnp3.md) (XFR NS: parameter 3), [MSNP7](versions/msnp7.md) (XFR NS: parameter 4), [MSNP13](versions/msnp13.md) (XFR NS: replaced parameters 3 and 4 with `U` and `messenger.msn.com`, XFR SB: added parameters 5 and 6, being always `U` and `messenger.msn.com`) | | [`OUT`](commands/out.md) | N | Y | Y | [MSNP2](versions/msnp2.md) | [MSNP10](versions/msnp10.md) (MIG and TOU disconnect reasons added), [MSNP11](versions/msnp11.md) (RCT reason added with parameter for amount of minutes until attempted reconnect.) | | [`FND`](commands/fnd.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP5](versions/msnp5.md) (uses [SDC](commands/sdc.md) instead of [SND](commands/snd.md)), July 2003 (not really any specific MSNP update, just soft-removed with a 502.) | | [`BLP`](commands/blp.md) | N | Y | Y\*| [MSNP2](versions/msnp2.md) | [MSNP10](versions/msnp10.md) (Removed List Version if `ABCHMigrated: 1`) | @@ -26,11 +26,11 @@ This is a list of all known MSNP commands and their originating version. | [`CAL`](commands/cal.md) | N | Y | N | [MSNP2](versions/msnp2.md) | | | [`PRP`](commands/prp.md) | N | Y | N | [MSNP5](versions/msnp5.md) | [MSNP8](versions/msnp8.md) (Removed List Version in [SYN](commands/syn.md)), [MSNP10](versions/msnp10.md) (Removed List Version outside of [SYN](commands/syn.md) if `ABCHMigrated: 1`) | | [`BPR`](commands/bpr.md) | N | N | Y | [MSNP5](versions/msnp5.md) | [MSNP8](versions/msnp8.md) (Removed List Version and user handle in [SYN](commands/syn.md)), [MSNP10](versions/msnp10.md) (Removed List Version outside of SYN if `ABCHMigrated: 1`) | -| [`RNG`](commands/rng.md) | N | N | Y | [MSNP2](versions/msnp2.md) | | +| [`RNG`](commands/rng.md) | N | N | Y | [MSNP2](versions/msnp2.md) | [MSNP13](versions/msnp13.md) (Added parameters 8 and 9, one always `U`, one always `messenger.hotmail.com`.) | | [`LST`](commands/lst.md) | N | Y | Y\*| [MSNP2](versions/msnp2.md) | [MSNP7](versions/msnp7.md) (Added groups support), [MSNP8](versions/msnp8.md) ([SYN](commands/syn.md): removed iterator parameters, condensed all lists into a single parameter, removed List Version), [MSNP10](versions/msnp10.md) (Added prefixes to contact's handle and friendly name, and added a GUID parameter if `ABCHMigrated: 1`. Also changed group IDs to GUIDs.), [MSNP12](versions/msnp12.md) (Added network IDs), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, use [Address Book Service](services/abservice.md)'s [`ABFindAll`](services/abservice/abfindall.md) and [Contact Sharing Service](services/sharingservice.md)'s [`FindMembership`](services/sharingservice/findmembership.md) instead.), November 2003 (Removed outside of [SYN](commands/syn.md), not really any specific MSNP update, just hard removed with an automatic disconnect.) | | [`ADD`](commands/add.md) | N | Y | Y | [MSNP2](versions/msnp2.md) | [MSNP7](versions/msnp7.md) (Added groups support), [MSNP10](versions/msnp10.md) (Removed; automatic disconnect, use [ADC](commands/adc.md) instead) | | [`REM`](commands/rem.md) | N | Y | Y | [MSNP2](versions/msnp2.md) | [MSNP7](versions/msnp7.md) (Added groups support), [MSNP10](versions/msnp10.md) (Replaced user handles with GUIDs if list is the Forward List (FL), and removed list versions from all responses), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, replaced with RML and [Address Book Service](services/abservice.md)'s [`ABContactDelete`](services/abservice/abcontactdelete.md) and [Contact Sharing Service](services/sharingservice.md)'s [`DeleteMember`](services/sharingservice/deletemember.md) instead) | -| [`FLN`](commands/fln.md) | N | N | Y | [MSNP2](versions/msnp2.md) | | +| [`FLN`](commands/fln.md) | N | N | Y | [MSNP2](versions/msnp2.md) | [MSNP14](versions/msnp14.md) (Added Network ID parameter) | | [`PNG`](commands/png.md) | N | Y | N | [MSNP2](versions/msnp2.md) | | | [`QNG`](commands/qng.md) | N | N | Y | [MSNP2](versions/msnp2.md) | [MSNP9](versions/msnp9.md) (Added next seconds parameter) | | [`URL`](commands/url.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP3](versions/msnp3.md) (Added Passport Site ID support as parameter 3), removed `PASSWORD` service), [MSNP5](versions/msnp5.md) (Added `MOBILE` and `CHGMOB` services), [MSNP6](versions/msnp6.md) (Added `PROFILE`, `N2PACCOUNT` and `N2PFUND` services), [MSNP7](versions/msnp7.md) (Added `CHAT` service), [MSNP8](versions/msnp8.md) (Added `ADDRBOOK`, `ADVSEARCH` and `INTSEARCH` services) | @@ -55,12 +55,21 @@ This is a list of all known MSNP commands and their originating version. | [`QRY`](commands/qry.md) | Y | Y | N | [MSNP6](versions/msnp6.md) | [MSNP10](versions/msnp10.md) (Changed challenge response generation algorithm drastically.) | | [`UBX`](commands/ubx.md) | Y | N | Y | [MSNP11](versions/msnp11.md) | [MSNP13](versions/msnp13.md) (Added `` to the default list of elements.) | | [`UUX`](commands/uux.md) | Y | Y | N | [MSNP11](versions/msnp11.md) | [MSNP13](versions/msnp13.md) (Added `` to the default list of elements.), [MSNP14](versions/msnp14.md) (Added support for Network IDs.) | +| [`ADL`](commands/adl.md) | Y | Y | Y | [MSNP13](versions/msnp13.md) | [MSNP17](versions/msnp17.md) (Now can manage circles.) | +| [`RML`](commands/rml.md) | Y | Y | Y | [MSNP13](versions/msnp13.md) | [MSNP17](versions/msnp17.md) (Now can manage circles.) | +| [`FQY`](commands/fqy.md) | Y | Y | N | [MSNP14](versions/msnp14.md) | | # What's Missing Right Now ## In general +* [MSNP11](versions/msnp11.md): GSB * [MSNP11](versions/msnp11.md): SBS * [MSNP12](versions/msnp12.md): LKP +* [MSNP13](versions/msnp13.md): RFS +* [MSNP13](versions/msnp13.md): UBN +* [MSNP13](versions/msnp13.md): UUN +* [MSNP14](versions/msnp14.md): UBM +* [MSNP14](versions/msnp14.md): UUM # Modifiers * `*`: Only in [SYN](commands/syn.md). diff --git a/docs/versions/msnp10.md b/docs/versions/msnp10.md index c7519ab..18fcd46 100644 --- a/docs/versions/msnp10.md +++ b/docs/versions/msnp10.md @@ -45,11 +45,12 @@ The following commands were removed in this version: * [RMG](../commands/rmg.md) * [REM](../commands/rem.md) * [PRP](../commands/prp.md) -* Added a new list: Pending List/PL (bit 5, decimal 16). Is meant for unhandled contact added you notifications. +* Added a new list: Pending List/PL (bit 5, decimal 16). + This list contains users that have unhandled "contact added you" notifications. * Added new server-side [OUT](../commands/out.md) reasons: `MIG`, if the server has migrated you to ABCH, and `TOU`, for not accepting the Service Terms of Use. * Official Client: Now handles the 604, 914, 916 error codes again, - which were last seen in Client Version 3.6.003x. + which were last seen in Client Version 3.6.003x. Error code 913 is no longer handled after being implemented in Client Version 4.5. * First protocol version to remove a core command implemented since [MSNP2](msnp2.md) draft ([ADD](../commands/add.md)). diff --git a/docs/versions/msnp11.md b/docs/versions/msnp11.md index 47c21b3..dc2afb5 100644 --- a/docs/versions/msnp11.md +++ b/docs/versions/msnp11.md @@ -5,6 +5,7 @@ It was introduced officially in Client Version 7.0.0777. # Command information It introduces the notification service commands: * [GCF](../commands/gcf.md) +* GSB * SBS * [UBX](../commands/ubx.md) * [UUX](../commands/uux.md) @@ -17,21 +18,21 @@ It introduces the notification service commands: # Known changes (from [MSNP10](msnp10.md)): -* [QRY](../commands/qry.md): Challenge response generation has been drastically overhauled. +* [QRY](../commands/qry.md): Challenge response generation has been drastically overhauled. TODO: Write annotated source code explaning new algorithm. -* [OUT](../commands/out.md) RCT `TimeBeforeRetry` now exists. +* [OUT](../commands/out.md) RCT `TimeBeforeRetry` now exists. `TimeBeforeRetry` is a numerical value in minutes that specifies the amount of time in minutes the client should wait before reconnecting. * All `ABCHMigrated` changes are now the default - `ABCHMigrated: 0` is Undefined Behaviour from now on. * [ADC](../commands/adc.md): Now supports a telephone address (`tel:`) for `N=`. * Entire content of initial email notification changed from - `text/x-msmsgsinitialemailnotification` to `text/x-msmsgsinitialmdatanotification`. + `text/x-msmsgsinitialemailnotification` to `text/x-msmsgsinitialmdatanotification`. The new format is XML-based. * Offline Instant Messaging has been introduced, using `text/x-msmsgsoimnotification` messages from the Notification Server using a XML-based format, and a SOAP service for receiving message data. -* Official Client: Feature blocks are implemented using the [GCF](../commands/gcf.md) command - to download `Shields.xml`. For more information read the [Shields Configuration Data](../files/shields.md) article. +* Official Client: Feature blocks are implemented using the [GCF](../commands/gcf.md) command to download `Shields.xml`. + For more information read the [Shields Configuration Data](../files/shields.md) article. * Official Client: WebMessenger now canonically exists, the [Client Capability](../files/client_capabilities.md) flag `512` (`0x200` mask) is set for clients online via this method. * Official Client: Notifications ([NOT](../commands/not.md) commands) with encoded @@ -100,7 +101,7 @@ C: SYN 8 2024-09-28T17:18:18.6400000-07:00 2024-09-28T17:18:18.6400000-07:00 S: SYN 8 2024-09-28T17:18:18.6400000-07:00 2024-09-28T17:18:18.6400000-07:00 C: GCF 9 Shields.xml S: GCF 9 Shields.xml 145 - + C: CHG 10 NLN S: CHG 10 NLN C: UUX 11 53 diff --git a/docs/versions/msnp12.md b/docs/versions/msnp12.md index 344309f..a06d012 100644 --- a/docs/versions/msnp12.md +++ b/docs/versions/msnp12.md @@ -91,7 +91,7 @@ S: LST N=anotheruser@hotmail.com F=another%20user C=c1f9a363-4ee9-4a33-a434-b056 S: BPR PHH 1%20(222)%20333%204444 C: GCF 9 Shields.xml S: GCF 9 Shields.xml 145 - + C: CHG 10 NLN S: CHG 10 NLN C: UUX 11 53 diff --git a/docs/versions/msnp13.md b/docs/versions/msnp13.md new file mode 100644 index 0000000..556c58d --- /dev/null +++ b/docs/versions/msnp13.md @@ -0,0 +1,182 @@ +# 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](msnp14.md). + +# Command information + +It introduces the notification service commands: +* [ADL](../commands/adl.md) +* [RML](../commands/rml.md) +* RFS +* UBN +* UUN + +*No switchboard or dispatch service commands 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: +* [ADC](../commands/adc.md) (automatic disconnection) +* [ADG](../commands/adc.md) (automatic disconnection) +* [REG](../commands/reg.md) (automatic disconnection) +* [REM](../commands/rem.md) (automatic disconnection) +* [RMG](../commands/rmg.md) (automatic disconnection) +* [GTC](../commands/gtc.md) (automatic disconnection) +* [SYN](../commands/syn.md) (automatic disconnection) +* [SBP](../commands/sbp.md) (unconfirmed, could be used for HSB and stuff, automatic disconnection) + +# Known changes +(from [MSNP12](msnp12.md)): +* This is the second protocol split since [MSNP8](msnp8.md). + No clients supporting this protocol are expected to support [MSNP12](msnp12.md) or below. +* [XFR](../commands/xfr.md) NS format has been changed. + The unused parameter from [MSNP3](msnp3.md) and the current server parameter from [MSNP7](msnp7.md) + have been replaced with two new parameters, one containing `U`, and one containing a `D`. + The use of these parameters is unknown. +* The [Passport (SOAP)](../services/passportsoap.md) authentication request + will now include a request for few more security tokens, + notably `contacts.msn.com` for the [Address Book Service](../services/abservice.md). +* Replaced [SYN](../commands/syn.md) with both the + [Address Book Service](../services/abservice.md)'s + [`ABFindAll`](../services/abservice/abfindall.md) + and the [Contact Sharing Service](../services/sharingservice.md)'s + [`FindMembership`](../services/sharingservice/findmembership.md) actions. +* Instead of [ADC](../commands/adc.md) adding new users to the Forward List (FL), Allow List (AL), + Block List (BL), or the Reverse List (RL), the [Address Book Service](../services/abservice.md)'s + [`ABContactAdd`](../services/abservice/abcontactadd.md) action is used for the Forward List (FL), + and the [Contact Sharing Service](../services/sharingservice.md)'s + [`AddMember`](../services/sharingservice/addmember.md) action for the other lists. +* Instead of [REM](../commands/rem.md) removing existing users from the Forward List (FL), Allow List (AL), + Block List (BL), or the Pending List (PL), the [Address Book Service](../services/abservice.md)'s + [`ABContactDelete`](../services/abservice/abcontactdelete.md) action is used for the Forward List (FL), + and the [Contact Sharing Service](../services/sharingservice.md)'s + [`DeleteMember`](../services/sharingservice/deletemember.md) action for the other lists. +* Instead of [GTC](../commands/gtc.md), use the [Address Book Service](../services/abservice.md)'s + [`ABContactUpdate`](../services/abservice/abcontactdelete.md) action on your own user to set the + `MSN.IM.GTC` annotation's value to 0 or 1: + * `0`: Automatically add to AL + * `1`: Ask before adding to AL/BL +* Instead of [ADG](../commands/adg.md), use the [Address Book Service](../services/abservice.md)'s + [`ABGroupAdd`](../services/abservice/abgroupadd.md) action. +* Instead of [RMG](../commands/adg.md), use the [Address Book Service](../services/abservice.md)'s + [`ABGroupDelete`](../services/abservice/abgroupdelete.md) action. +* Instead of [REG](../commands/adg.md), use the [Address Book Service](../services/abservice.md)'s + [`ABGroupUpdate`](../services/abservice/abgroupupdate.md) action. +* Instead of [SBP](../commands/sbp.md), use the [Address Book Service](../services/abservice.md)'s + [`ABContactUpdate`](../services/abservice/abcontactupdate.md) action. +* [NOT](../commands/not.md): `` notifications are used for updates to your contact list + as well as [ADL](../commands/adl.md). +* [GCF](../commands/gcf.md): All policies are now always sent after your first [USR](../commands/usr.md) command, + including the contents of `Shields.xml` in the policy with the type of `SHIELDS`. +* [UUX](../commands/uux.md), [UBX](../commands/ubx.md): Added `` element to ``. +* The contact management commands ([ADL](../commands/adl.md) and [RML](../commands/rml.md)) + 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](../services/abservice.md) + and the [Contact Sharing Services](../services/sharingservice.md) SOAP services. +* [RNG](../commands/rng.md) and [XFR](../commands/xfr.md) 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 (SOAP)](../services/passportsoap.md) article.* +``` +S: USR 6 TWN S passport=parameters,neat=huh,lc=1033,id=507 +S: GCF 0 201 + + + + + + + + + + + +C: USR 7 TWN S $(xmldecode(passportsoap.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`](../services/abservice/abfindall.md) +and the [`FindMembership`](../services/sharingservice/findmembership.md) actions +to get the current state of all lists and the last stored name and privacy mode.* + +*NOTE: The following [ADL](../commands/adl.md) and [UUX](../commands/uux.md) payloads +have been exploded for visibility and formatting reasons. +No whitespace is allowed in [ADL](../commands/adl.md)'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 + + + + + + + + +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 + + + + {44BFD5A4-7450-4BDA-BA3A-C51B3031126D} + +S: UUX 11 0 +``` diff --git a/docs/versions/msnp14.md b/docs/versions/msnp14.md new file mode 100644 index 0000000..6e3e32a --- /dev/null +++ b/docs/versions/msnp14.md @@ -0,0 +1,137 @@ +# Introduction +MSNP14 is the thirteenth released version of the Mobile Status Notification Protocol. +It was introduced officially in Client Version 8.0.0787, along with [MSNP13](../versions/msnp13.md). + +# Command information + +It introduces the notificaiton service commands: +* [FQY](../commands/fqy.md) +* UBM +* UUM + +*No switchboard or dispatch service commands were known to be introduced in this version* + +*No error codes were known to be introduced in this version* + +*No commands were known to be removed in this version* + +# Known changes +(from [MSNP13](../versions/msnp13.md)): +* [UBX](../commands/ubx.md) now has an extra parameter for a Network ID of the network + that generated the new XML payload. +* [RNG](../commands/rng.md) and [XFR](../commands/xfr.md) SB commands now have an extra parameter + to specify if the address should be connected to directly or only via the HTTP Gateway. +* [ILN](../commands/iln.md), [NLN](../commands/nln.md) and [FLN](../commands/fln.md) + now have an extra parameter for the Network ID of the network that generated the new status. +* Official Client: Yahoo! Messenger interoperability is now supported. + The [FQY](../command/fqy.md) command is used to discover if a user is from the Yahoo! Messenger network. + This is represented in the [Address Book Service](../services/abservice.md) as a email-only contact + with the `isMessengerEnabled` element set to `true` for the `contactEmailType` of `Messenger2`. + This is also represented in the [Contact Sharing Service](../services/sharingservice.md) as a e-mail membership, + with the `MSN.IM.BuddyType` annotation set to `32:`. + The Network ID 32 (bit 6) is used to specify that this user is from the Yahoo! Messenger service. +* [ILN](../commands/iln.md) and [NLN](../commands/nln.md) now include a new parameter + that specifies what icon to use to denote a user from another 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 MSNP14 MSNP13 CVR0 +S: VER 1 MSNP14 +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 MSNP14 MSNP13 CVR0 +S: VER 4 MSNP14 +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 (SOAP)](../services/passportsoap.md) article.* +``` +S: USR 6 TWN S passport=parameters,neat=huh,lc=1033,id=507 +S: GCF 0 201 + + + + + + + + + + + +C: USR 7 TWN S $(xmldecode(passportsoap.BinarySecurityToken#Compact1)) +S: USR 7 OK example@hotmail.com 1 0 +S: SBS 0 null +S: MSG Hotmail Hotmail 465 +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 + +``` +*The Client now uses both the [`ABFindAll`](../services/abservice/abfindall.md) +and the [`FindMembership`](../services/sharingservice/findmembership.md) actions +to get the current state of all lists and the last stored name and privacy mode.* + +*NOTE: The following [ADL](../commands/adl.md) and [UUX](../commands/uux.md) payloads +have been exploded for visibility and formatting reasons. +No whitespace is allowed in [ADL](../commands/adl.md)'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 + + + + + + + + +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 + + + + {44BFD5A4-7450-4BDA-BA3A-C51B3031126D} + +S: UUX 11 0 +``` diff --git a/docs/versions/msnp2.md b/docs/versions/msnp2.md index 9b197d5..37a277d 100644 --- a/docs/versions/msnp2.md +++ b/docs/versions/msnp2.md @@ -97,7 +97,7 @@ It introduces the error codes: # Known changes (from Beta 2) -* Dispatch servers now go through the normal user proceedure until `USR x MD5 I`. +* Dispatch servers now go through the normal user proceedure until `USR TrID MD5 I user-handle`. # Client-server communication example ``` diff --git a/docs/versions/msnp3.md b/docs/versions/msnp3.md index 24882ff..74f089d 100644 --- a/docs/versions/msnp3.md +++ b/docs/versions/msnp3.md @@ -22,7 +22,13 @@ It introduces the error codes: (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). +* Content types of both e-mail notifications have changed. + * The initial configuration content type was changed from + `application/x-msmsgsemailnotification` to `text/x-msmsgsinitialemailnotification`. + The content remains the same. + * The notifification content type was changed from + `application/x-msmsgsemailnotification` to `text/x-msmsgsemailnotification`. + The only difference in content is the added `id` header. * Added Hotmail's Passport Site ID to new e-mail notifications. * [SND](../commands/snd.md): Added a target language parameter and a client library parameter, similar to the one in [CVR](../commands/cvr.md). @@ -32,17 +38,14 @@ It introduces the error codes: * Non-protocol: WebTV 2.5+ clients (example@webtv.net) can talk to other users (example@hotmail.com) * Clear-Text Password (`CTP`) authentication method removed. Use `MD5` instead. Applies to both [INF](../commands/inf.md) and USR. -* 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). +* Official Client: Automatic login form now supports Passport authentication + 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. + 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) + diff --git a/docs/versions/msnp5.md b/docs/versions/msnp5.md index 358772f..51de4d9 100644 --- a/docs/versions/msnp5.md +++ b/docs/versions/msnp5.md @@ -26,8 +26,8 @@ It introduces the error codes: * Official Client: Log in notifications are now handled by the newly introduced toast system. * Official Client: Introduced emoticons. * Official Client: Introduced File Transfer and Messenger-to-Messenger calling via invitations. -* Introduced first payload commands ([SDC](../commands/sdc.md), PAG) to be sent to the Notification Server from the client. -* Official Client: [FND](../commands/fnd.md) functionality changed slightly(?) to say that Passport +* Introduced first payload commands ([SDC](../commands/sdc.md), [PAG](../commands/pag.md)) to be sent to the Notification Server from the client. +* Official Client: [FND](../commands/fnd.md) functionality changed slightly(?) to say that the Passport privacy policy doesn't allow users to retrieve the e-mails assocated with the user's account, sending the user to a invitation screen with, with it ending in sending an [SDC](../commands/sdc.md) in the format of `SDC TrID {FND index} 0x0409 MSMSGS MSMSGS X X example%20user {length}`. diff --git a/docs/versions/msnp6.md b/docs/versions/msnp6.md index 3446d87..4d5f7a3 100644 --- a/docs/versions/msnp6.md +++ b/docs/versions/msnp6.md @@ -20,10 +20,11 @@ It introduces the error codes: # Known changes (from [MSNP5](msnp5.md)): * [USR](../commands/usr.md) OK now has a verified bit (parameter 4), - if it is `0`, the Official Client shows a warning to verify the account. - NOTE: Your display name will be forced to be - `example@hotmail.com (E-Mail Address Not Verified)`, and can not be changed. -* Client-server challenges were introduced. The format for the response ([QRY](../commands/qry.md) commands) are + if it is `0`, the Official Client shows a warning to verify the account. + *NOTE: Your display name will be forced to be + `example@hotmail.com (E-Mail Address Not Verified)`, and can not be changed.* +* Client-server challenges were introduced. + The format for the response ([QRY](../commands/qry.md) commands) are `MD5(challenge + privateKey)` as a lowercase hexadecimal string. * An example Private Key is `Q1P7W2E4J9R8U3S5`, which is tied to the Public Key of `msmsgs@msnmsgr.com`. * First protocol version added in a patch release (Client Versions 3.6.0025 and 3.6.0026 do not support MSNP6). diff --git a/docs/versions/msnp8.md b/docs/versions/msnp8.md index 13f6bc0..2b4d507 100644 --- a/docs/versions/msnp8.md +++ b/docs/versions/msnp8.md @@ -16,23 +16,23 @@ The following commands were removed in this version: * [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](../commands/usr.md) +* Login process is now [VER](../commands/ver.md)-[CVR](../commands/cvr.md)-[USR](../commands/usr.md) instead of [VER](../commands/ver.md)-[INF](../commands/inf.md)-[USR](../commands/usr.md). * [USR](../commands/usr.md) OK has a new parameter, Account restriction status, if set to `1`, - the Official Client **will** forcefully log out and **demand** that you log in using MSN Explorer instead. - Unrestricted accounts (those that do **not** need to log in using MSN Explorer) will have `0` set instead. + the Official Client **will** forcefully log out and **demand** that you log in using MSN Explorer instead. + Unrestricted accounts (those that do **not** need to log in using MSN Explorer) will have the value set to `0` instead. * Introduced `TWN` authentication method, which uses [Passport 1.4](../services/passport14.md) over HTTPS. * Reworked [SYN](../commands/syn.md) 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. + * 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`. +* 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. - All previous protocols also received the 502 error code. + All previous protocol versions also received the 502 error code. * [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](../commands/syn.md)): 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), @@ -45,7 +45,7 @@ The following commands were removed in this version: 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. + `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. diff --git a/docs/versions/msnp9.md b/docs/versions/msnp9.md index 6275cc4..0ae3579 100644 --- a/docs/versions/msnp9.md +++ b/docs/versions/msnp9.md @@ -20,10 +20,10 @@ The following commands were removed in this version: # Known changes (from [MSNP8](msnp8.md)): -* [CHG](../commands/chg.md), [ILN](../commands/iln.md), [NLN](../commands/nln.md): Added an optional MSNObject parameter. +* [CHG](../commands/chg.md), [ILN](../commands/iln.md), [NLN](../commands/nln.md): Added an optional MSNObject parameter. Now you can tell other clients about image data associated with your account. * [QNG](../commands/qng.md): Added a "next ping" time (in seconds) parameter. -* Switchboard [MSG](../commands/msg.md): Acknowledgement type D added. +* Switchboard [MSG](../commands/msg.md): Acknowledgement type D added. Can respond with either [ACK](../commands/ack.md), error 282, or possibly any other error codes. * [NOT](../commands/not.md): Extended notifications are now supported via the `` element. * Official Client: Error 603 is handled again after being removed in Client Version 5.0. diff --git a/package-lock.json b/package-lock.json index 7ede798..5af210c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "yellows-msnp-wiki", - "version": "0.1.4-beta.2", + "version": "0.1.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "yellows-msnp-wiki", - "version": "0.1.4-beta.2", + "version": "0.1.4", "license": "GFDL-1.3-or-later", "dependencies": { "yiki": "git+https://git.kevinthe.horse/yellows111/yiki.git#semver:*" diff --git a/package.json b/package.json index 60c3776..0cb972b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "yellows-msnp-wiki", - "version": "0.1.4-beta.2", + "version": "0.1.4", "description": "The yellows111 MSNP wiki that aims for accuracy.", "author": "yellows111", "license": "GFDL-1.3-or-later",