From 960bfc641b5463443561b8fdb8de77559933388c Mon Sep 17 00:00:00 2001 From: yellows111 Date: Tue, 22 Oct 2024 21:40:16 +0100 Subject: [PATCH] Corrections, Shields, CHL, GCF and SBP. Your usual ordeal. Seven commands await. --- docs/commands/adc.md | 12 ++++++- docs/commands/adg.md | 4 +-- docs/commands/bpr.md | 2 +- docs/commands/chl.md | 45 +++++++++++++++++++++++++ docs/commands/gcf.md | 66 +++++++++++++++++++++++++++++++++++++ docs/commands/lst.md | 2 +- docs/commands/prp.md | 2 +- docs/commands/rea.md | 4 +-- docs/commands/sbp.md | 52 +++++++++++++++++++++++++++++ docs/files/shields.md | 59 +++++++++++++++++++++++++++++++++ docs/index.md | 3 +- docs/reference_constants.md | 2 ++ docs/table_of_commands.md | 10 +++--- docs/versions/msnp10.md | 6 ++-- docs/versions/msnp11.md | 11 ++++++- docs/versions/msnp12.md | 2 ++ docs/versions/msnp6.md | 2 +- 17 files changed, 265 insertions(+), 19 deletions(-) create mode 100644 docs/commands/chl.md create mode 100644 docs/commands/gcf.md create mode 100644 docs/commands/sbp.md create mode 100644 docs/files/shields.md diff --git a/docs/commands/adc.md b/docs/commands/adc.md index 5bd7b97..c1f43a2 100644 --- a/docs/commands/adc.md +++ b/docs/commands/adc.md @@ -75,6 +75,14 @@ C: ADC 3 FL N=anotheruser@hotmail.com F=anotheruser@hotmail.com S: ADC 3 FL N=anotheruser@hotmail.com F=anotheruser@hotmail.com C=c1f9a363-4ee9-4a33-a434-b056a4c55b98 ``` +#### A telephone number +*Since [MSNP11](../versions/msnp11.md) if `` +is set correctly in the [Messenger Config](../services/msgrconfig.md).* +``` +C: ADC 4 FL N=tel:15551111222 F=john +S: ADC 4 FL N=tel:15551111222 F=john C=a47e39cf-312c-4100-94a6-f2b33adf5b68 +``` + ### Add to a group *Only applies to the Forward List (FL).* @@ -155,5 +163,7 @@ C: ADC 14 FL N=anotheruser@hotmail.com F=anotheruser@hotmail.com Server disconnects client. # Known changes -* [MSNP13]: Removed, use a combination of ADL and +* [MSNP11](../versions/msnp11.md): Now supports phone-only (`tel:`) contacts. + Requires `MobileMessaging` in the [Messenger Config](../services/msgrconfig.md) to be configured for the Official Client. +* [MSNP13](../versions/msnp13.md): Removed, use a combination of ADL and [Address Book Service](../services/abservice.md)'s `ABContactAdd` instead. diff --git a/docs/commands/adg.md b/docs/commands/adg.md index cc4e357..a37f1d1 100644 --- a/docs/commands/adg.md +++ b/docs/commands/adg.md @@ -17,11 +17,11 @@ Where `0` is always `0.`. Removed in [MSNP10](../comnmands/msnp10.md). # Server/Response `ADG TrID {list-version} group-name group-id {0}` -Where `list-version` is the new List Version. Removed in [MSNP10](../commands/msnp10.md). +Where `list-version` is the new List Version. Removed in [MSNP10](../versions/msnp10.md). Where `group-id` is your new group's identification number. -Where `0` is always `0.` Removed in [MSNP10](../commands/msnp10.md). +Where `0` is always `0`. Removed in [MSNP10](../versions/msnp10.md). # Examples diff --git a/docs/commands/bpr.md b/docs/commands/bpr.md index 407f331..c1eb4c7 100644 --- a/docs/commands/bpr.md +++ b/docs/commands/bpr.md @@ -23,7 +23,7 @@ Where `property` can be any of these values: * `WWE`: [[MSNP9](../versions/msnp9.md)+] MSN Direct / Web Watch enabled * `HSB`: [[MSNP11](../versions/msnp11.md)+] Has Blog (MSN Space) -Where `value` is the value that is assigned to `property`. +Where `value` is the URL-encoded value that is assigned to `property`. # Examples diff --git a/docs/commands/chl.md b/docs/commands/chl.md new file mode 100644 index 0000000..038b56f --- /dev/null +++ b/docs/commands/chl.md @@ -0,0 +1,45 @@ +# Introduction +`CHL` is a command introduced with [MSNP6](../versions/msnp6.md). + +It is a Notification Server command, without a request or response payload. + +A request to generate a challenge. Respond with QRY on a new transaction to continue your connection. + +# Client/Request +`CHL TrID` + +# Server/Response +`CHL TrID challenge` + +If this command is sent asynchronously, the Transaction ID will be `0` instead. + +Where `challenge` is usually a 20-character numeric value (but can be any valid string) +that is concatenated with the client's private key. + +# Examples + +## From server at any time +``` +S: CHL 0 12345678901234567890 +``` + +## Requested challenge +``` +C: CHL 1 +S: CHL 1 12345678901234567890 +``` + +## Challenge timeout +``` +S: CHL 0 12345678901234567890 +``` +... some time passes ... +``` +S: OUT +``` + +Server disconnects client. + +# Known changes +* [MSNP11](../versions/msnp11.md): Challenge response (QRY commands)'s +algorithm changed to be more formidable. diff --git a/docs/commands/gcf.md b/docs/commands/gcf.md new file mode 100644 index 0000000..9f1d29c --- /dev/null +++ b/docs/commands/gcf.md @@ -0,0 +1,66 @@ +# Introduction +`GCF` is a command introduced with [MSNP11](../versions/msnp11.md). + +It is a Notification Server command, without a request payload and WITH a response payload. + +It gets configuration data from a file on the server. + +# Client/Request +*Only in [MSNP11](../versions/msnp11.md) and [MSNP12](./versions/msnp12.md).* +`GCF TrID filename` + +Where filename is the file to retrieve. Only `Shields.xml` is known to be this parameter. + +# Server/Response + +## From filename +``` +GCF TrID filename length +payload +``` + +Where `length` is the length of `payload`. + +Where `payload` is the data for this file. + +## Asynchronously +``` +GCF 0 length +payload +``` + +Being an asynchronous command, the Transaction ID is set to `0`. + +# Examples + +## Downloading shields +*For more information read the [Shields Configuration Data](../files/shields.md) article.* + +### By filename +*Only in [MSNP11](../versions/msnp11.md) and [MSNP12](../versions/msnp12.md).* +``` +C: GCF 1 Shields.xml +S: GCF 1 Shields.xml 145 + +``` + +### Automatically +*Since [MSNP13](../versions/msnp13.md).* +``` +C: USR 2 TWN I example@hotmail.com +S: GCF 0 158 + +S: USR 2 TWN S passport=parameters,neat=huh,lc=1033,id=507 +``` + +## By filename after removal +*NOTE: I don't know if this is correct.* +``` +C: GCF 3 Shields.xml +``` + +Server disconnects client. + +# Known changes +* [MSNP13](../versions/msnp13.md): Dropped support for getting a response via filenames, + and changed how the Shields configuration data is contained. diff --git a/docs/commands/lst.md b/docs/commands/lst.md index b81ca55..8d1f9a9 100644 --- a/docs/commands/lst.md +++ b/docs/commands/lst.md @@ -185,7 +185,7 @@ S: LST N=anotheruser@hotmail.com F=another%20user C=c1f9a363-4ee9-4a33-a434-b056 * [MSNP7](../versions/msnp7.md): Added support for groups. * [MSNP8](../versions/msnp8.md): Changed format in SYN considerably, dropping the iterator parameters and merging all lists into a single parameter instead of multiple calls. -* [MSNP10](../versions/msnp10.md): Added prefixes for user handle, stored friendly name to SYN version, added `C=` for contact address. +* [MSNP10](../versions/msnp10.md): Added prefixes for user handle, stored friendly name to SYN version, added `C=` for contact ID. Changed `C=` to contact GUID and changed group ID list to group GUID list with `ABCHMigrated: 1` to SYN version. * [MSNP12](../versions/msnp12.md): Added Network IDs to SYN version. * [MSNP13](../versions/msnp13.md): Removed SYN. diff --git a/docs/commands/prp.md b/docs/commands/prp.md index 712b956..ec5fe9f 100644 --- a/docs/commands/prp.md +++ b/docs/commands/prp.md @@ -15,7 +15,7 @@ Where `property` can be any of these values: * `MOB`: Allow users to contact me via MSN Mobile * `MFN`: [[MSNP10](../versions/msnp10.md)+] My Friendly Name -Where `value` is the value to set the related `property` to. +Where `value` is the URL-encoded value to set the related `property` to. # Server/Response `PRP TrID {list-version} property value` diff --git a/docs/commands/rea.md b/docs/commands/rea.md index fffce53..3555f3c 100644 --- a/docs/commands/rea.md +++ b/docs/commands/rea.md @@ -3,7 +3,7 @@ It is a Notification Server command, without either a request or response payload. -Renames a user. For the commands that replaced REA with a `MFN` property, read [PRP](prp.md) and SBP. +Renames a user. For the commands that replaced REA with a `MFN` property, read [PRP](prp.md) and [SBP](sbp.md). # Client/Request `REA TrID user-handle new-friendly-name` @@ -65,4 +65,4 @@ S: 800 10 # Known changes * [MSNP10](../versions/msnp10.md): Removed (automatic disconnection?). - Use [PRP](prp.md) `MFN` to change your own friendly name, and SBP `MFN` to change stored friendly names. + Use [PRP](prp.md) `MFN` to change your own friendly name, and [SBP](sbp.md) `MFN` to change stored friendly names. diff --git a/docs/commands/sbp.md b/docs/commands/sbp.md new file mode 100644 index 0000000..ff5febd --- /dev/null +++ b/docs/commands/sbp.md @@ -0,0 +1,52 @@ +# Introduction +`SBP` is a command introduced with [MSNP10](../versions/msnp10.md). + +It is a Notification Server command, without a request or response payload. + +Sets a buddy's property in your cache to a specified value. +For the command this replaced, read [REA](rea.md). + +# Client/Request +`SBP TrID contact-id property value` + +Where `contact-id` is the `C=` value from either [ADD](add.md) or [LST](lst.md). +If you are using `ABCHMigrated: 0`, this is the contact's user handle. +If you are instead using `ABCHMigrated: 1`, this is the contact's GUID. + +Where `property` are any of the values: +* `MFN`: My Friendly Name +* `MOB`: User can contact me via MSN Mobile, changed by the Client Capability. +* `WWE`: User can contact me via MSN Direct, changed by the Client Capability. +* `HSB`: [MSNP11](../versions/msnp11.md)+: Has blog, changed by the Client Capability. + +Where `value` is the URL-encoded value to set the related `property` to. + +# Server/Response +`SBP TrID contact-id property value` + +Same parameters as the request. + +# Examples + +## Normal use + +### Without GUIDs +*Only with `ABCHMigrated: 0`.* +``` +C: SBP 1 anotheruser@hotmail.com MFN another%20user +S: SBP 1 anotheruser@hotmail.com MFN anoter%20user +``` + +### With GUIDs +*Only with `ABCHMigrated: 1`.* +``` +C: SBP 2 c1f9a363-4ee9-4a33-a434-b056a4c55b98 MFN another%20user +S: SBP 2 c1f9a363-4ee9-4a33-a434-b056a4c55b98 MFN another%20user +``` + +## Errors +None are currently known. If you know of one, please contact me. + +# Known changes +* [MSNP11](../versions/msnp11.md): Added support for `HSB` property. +* [MSNP13](../versions/msnp13.md): Removed, use [Address Book Service](../services/abservice.md)'s `ABContactUpdate` action instead. diff --git a/docs/files/shields.md b/docs/files/shields.md new file mode 100644 index 0000000..06d1012 --- /dev/null +++ b/docs/files/shields.md @@ -0,0 +1,59 @@ +# Introduction +`Shields.xml` contains the Shields Configuration Data, and was first seen in [MSNP11](../versions/msnp11.md). + +It is provided by the [GCF](../commands/gcf.md) command. + +# Content +*If this is in [MSNP13](../versions/msnp13.md) or above, this element will be contained in the following:* +``` +... +``` + +*Otherwise, it is prefixed with the following:* +``` + +``` + +## config +The root element of the document. Nothing special. +Contains the `` and `` elements. + +### shield +Contains many `` elements. + +#### cli +This empty attribute has 5 parameters: +* `maj`: The major version that this block applies to. +* `min`: The minor version that this block applies to. +* `minbld`: Lowest bound of builds that this block applies to. +* `maxbld`: Highest bound of builds that this block applies to +* `deny`: What features are disabled: + * `SharingFolders`: Sharing Folders. Since [MSNP13](../versions/msnp13.md). + * `protocolhandler`: Unknown. + * `dynamicbackgrounds`: Dynamic Backgrounds (Flash chat backgrounds). + * `phone`: Calling features. Since [MSNP13](../versions/msnp13.md). + * `voiceim`: Voice Clips. + * `camera`: Video Conversations. + * `audio`: Audio Conversations. + * `filexfer`: File transfer. + * `hotlinks`: Web links. + If this feature is blocked URLs sent in the chat will not be formatted as links. + * `ddp`: Dynamic Display Pictures (Flash avatars). + * `winks`: Winks (Flash full chat window animations). + +### block +*Since [MSNP12](../versions/msnp12.md).* + +Contains either `` or `` elements. + +#### hashes +This element blocks file hashes from being sent. + +TODO: Does anyone have an example of things that go here? + +#### regexp +This element contains multiple `` elments + +##### imtext +This empty element only has the `value` attribute, which is the regular expression +to search instant message text for. This attribute is base64-encoded. diff --git a/docs/index.md b/docs/index.md index ea10702..e2bdc18 100644 --- a/docs/index.md +++ b/docs/index.md @@ -26,8 +26,9 @@ More is to come soon! Hopefully! More is to come soon! Hopefully! -# Other documents +# Other documents and files * [Constants used on the wiki](reference_constants.md). +* [Shields Configuration Data](files/shields.md). # Wanted Information * [MSNP2](versions/msnp2.md): What is the format of the initial `text/x-msmsgsemailnotification`? diff --git a/docs/reference_constants.md b/docs/reference_constants.md index 0b7be53..4f91355 100644 --- a/docs/reference_constants.md +++ b/docs/reference_constants.md @@ -11,6 +11,7 @@ This refers to all the constants used on the wiki. * My E-mail Address and User Handle: `example@hotmail.com` * Another User's E-mail Address and User Handle: `anotheruser@hotmail.com` * A user that doesn't exist: `ghost@hotmail.com` +* John's Number: `1 (555) 1111-222` ## Group GUIDs * The "Other Contacts" group GUID (GID 0): `d6deeacd-7849-4de4-93c5-d130915d0042` @@ -19,6 +20,7 @@ This refers to all the constants used on the wiki. ## Contact GUIDs * Another User's contact GUID: `c1f9a363-4ee9-4a33-a434-b056a4c55b98` * My [Address Book Service](services/abservice.md) GUID: `00000000-0000-0000-0000-000000000000` +* John's (mobile-only contact) GUID: `a47e39cf-312c-4100-94a6-f2b33adf5b68` ## MSNP Servers * The Dispatch Server: `10.0.0.1:1863` diff --git a/docs/table_of_commands.md b/docs/table_of_commands.md index 089caea..e09ae20 100644 --- a/docs/table_of_commands.md +++ b/docs/table_of_commands.md @@ -41,9 +41,12 @@ This is a list of all known MSNP commands and their originating version. | [`REA`](commands/rea.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP10](versions/msnp10.md) (Removed; automatic disconnect) | | [`SND`](commands/snd.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP3](versions/msnp3.md) (parameters 2 and 3), [MSNP4](versions/msnp4.md) (parameter 4), [MSNP5](versions/msnp5.md) (obsoleted by [SDC](commands/sdc.md)) | | [`SDC`](commands/sdc.md) | Y | Y | N | [MSNP5](versions/msnp5.md) | | -| [`ADC`](commands/adc.md) | N | Y | N?| [MSNP10](versions/msnp10.md) | [MSNP10](versions/msnp10.md) (`ABCHMigrated: 1` Contact user handles and Group IDs are now both GUIDs.), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, use ADL and the [Address Book Service](services/abservice.md) instead) | -| [`PAG`](commands/pag.md) | Y | Y | N | [MSNP5](versions/msnp5.md) | [MSNP9] (Removed; error 715, use [PGD](commands/pgd.md) instead.) | +| [`ADC`](commands/adc.md) | N | Y | N?| [MSNP10](versions/msnp10.md) | [MSNP10](versions/msnp10.md) (`ABCHMigrated: 1`: Contact user handles and Group IDs are now both GUIDs.), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, use ADL and the [Address Book Service](services/abservice.md)'s `ABContactAdd` action instead) | +| [`PAG`](commands/pag.md) | Y | Y | N | [MSNP5](versions/msnp5.md) | [MSNP9](versions/msnp9.md) (Removed; error 715, use [PGD](commands/pgd.md) instead.) | | [`PGD`](commands/pgd.md) | Y | Y | N | [MSNP9](versions/msnp9.md) | | +| [`SBP`](commands/sbp.md) | N | Y | N | [MSNP10](versions/msnp10.md) | [MSNP10](versions/msnp10.md) (`ABCHMigrated: 1`: Contact user handles are now GUIDs.), [MSNP11](versions/msnp11.md) (Added property `HSB`, for Has Blog. Set by the relevant Client Capability.), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, use [Address Book Service](services/abservice.md)'s `ABContactUpdate` action instead.) | +| [`CHL`](commands/chl.md) | N | Y | Y | [MSNP6](versions/msnp6.md) | [MSNP10](versions/msnp10.md) (Changed QRY response algorithm) | +| [`GCF`](commands/gcf.md) | Y | Y | Y | [MSNP11](versions/msnp11.md) | [MSNP13](versions/msnp13.md) (Command is now always asynchronous and always retuns `Shields.xml` in a new wrapper.) | # What's Missing Right Now @@ -51,15 +54,12 @@ This is a list of all known MSNP commands and their originating version. * [MSNP2](versions/msnp2.md): USR * [MSNP2](versions/msnp2.md): SYN * [MSNP5](versions/msnp5.md): NOT -* [MSNP6](versions/msnp6.md): CHL * [MSNP6](versions/msnp6.md): IPG * [MSNP6](versions/msnp6.md): QRY * [MSNP7](versions/msnp7.md): REG * [MSNP7](versions/msnp7.md): RMG ## In general -* [MSNP10](versions/msnp10.md): SBP -* [MSNP11](versions/msnp11.md): GCF * [MSNP11](versions/msnp11.md): SBS * [MSNP11](versions/msnp11.md): UBX * [MSNP11](versions/msnp11.md): UUX diff --git a/docs/versions/msnp10.md b/docs/versions/msnp10.md index ba49030..6084b1a 100644 --- a/docs/versions/msnp10.md +++ b/docs/versions/msnp10.md @@ -5,7 +5,7 @@ It was introduced officially in Client Version 6.1.0155. # Command information It introduces the notification service commands: * [ADC](../commands/adc.md) -* SBP +* [SBP](../commands/sbp.md) *No switchboard or dispatch service commands were known to be introduced in this version* @@ -25,7 +25,7 @@ The following commands were removed in this version: `settingsVersion` is always 0. * Removed unused parameter from [LSG](../commands/lsg.md). * Current display name is removed from USR, now is returned with other user properties ([PRP](../commands/prp.md) commands) in SYN. -* [PRP](../commands/prp.md) MFN replaces [REA](../commands/rea.md) (current user handle). SBP (contact's address) MFN replaces other uses of [REA](../commands/rea.md). +* [PRP](../commands/prp.md) MFN replaces [REA](../commands/rea.md) (current user handle). [SBP](../commands/sbp.md) (contact ID) MFN replaces other uses of [REA](../commands/rea.md). * [LST](../commands/lst.md): Added prefixes to the user handle (`N=`) and friendly name (`F=`) parameters. * Added new initial profile variable `ABCHMigrated`. If set to 1, some commands are altered, such as: * SYN: The request and response's list versions are now ISO 8601 with 7 subsecond digits, @@ -35,7 +35,7 @@ The following commands were removed in this version: * [LST](../commands/lst.md): GUID specified as `C=` parameter, group IDs are now GUIDs. * [ADC](../commands/adc.md), [REM](../commands/rem.md): uses GUIDs instead of contact user handles if the list is the Forward List (FL), and same applies also for groups. * [LSG](../commands/lsg.md), [ADG](../commands/adg.md): Uses GUIDs instead of IDs. - * SBP: Uses the contact's GUID instead of the Contact Address. + * [SBP](../commands/sbp.md): Uses the contact's GUID instead of the Contact Address. * All list version updating commands no longer return the current list version when used. The following commands are affected: * [GTC](../commands/gtc.md) * [BLP](../commands/blp.md) diff --git a/docs/versions/msnp11.md b/docs/versions/msnp11.md index 7e0a03e..c9996bd 100644 --- a/docs/versions/msnp11.md +++ b/docs/versions/msnp11.md @@ -4,7 +4,7 @@ It was introduced officially in Client Version 7.0.0777. # Command information It introduces the notification service commands: -* GCF +* [GCF](../commands/gcf.md) * SBS * UBX * UUX @@ -17,10 +17,15 @@ It introduces the notification service commands: # Known changes (from [MSNP10](msnp10.md)): +* QRY: Challenge response is drastically overhauled. + Check the command article for more information. * [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 Behavour from now on. +* [ADC](../commands/adc.md): Now supports a telephone address (`tel:`) for `N=`. +* 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 - Client Capability 512 is used for this. * Official Client: Notifications (NOT commands) with encoded `NotificationData` documents are supported for spaces (blogs). * Official Client: Messenger Config requests now support regional arguments via SOAP. @@ -92,6 +97,10 @@ S: UUX 11 0 S: ILN 10 NLN anotheruser@hotmail.com another%20user 1073791084 S: UBX anotheruser@hotmail.com 54 new feature :P +C: ADC 11 FL N=tel:15551111222 F=john +S: ADC 11 FL N=tel:15551111222 F=john C=a47e39cf-312c-4100-94a6-f2b33adf5b68 +C: ADC 12 AL N=tel:15551111222 +S: ADC 12 AL N=tel:15551111222 C: OUT ``` Client disconnects from server diff --git a/docs/versions/msnp12.md b/docs/versions/msnp12.md index 9377a27..cf9f0d5 100644 --- a/docs/versions/msnp12.md +++ b/docs/versions/msnp12.md @@ -20,6 +20,8 @@ It introduces the notification service commands: * Official Client: Uses Passport 3.0 (via the Microsoft Identity Common Runtime Library). * Official Client: Dropped support for older operating systems, Now requires Windows XP or higher. * Official Client: Now supports Voice Clips, which can be disabled in the [Messenger Config](../services/msgrconfig.md). +* Official Client: [Shield Configuration Data](../files/shields.md) can now block file hashes and + instant message text via regular expressions. # Client-server communication example *NOTE: This has been line-breaked. diff --git a/docs/versions/msnp6.md b/docs/versions/msnp6.md index 81449b0..fad2d6b 100644 --- a/docs/versions/msnp6.md +++ b/docs/versions/msnp6.md @@ -4,7 +4,7 @@ It was introduced officially in Client Version 3.6.0038. # Command information It introduces the notification service commands: -* CHL +* [CHL](../commands/chl.md) * IPG * QRY