diff --git a/docs/commands/adc.md b/docs/commands/adc.md index c1f43a2..ff2115f 100644 --- a/docs/commands/adc.md +++ b/docs/commands/adc.md @@ -35,6 +35,8 @@ otherwise in `ABCHMigrated: 1`, it is the group's GUID. ## Successfully added to list `ADC TrID [ FL | AL | BL | RL ] N=user-handle {F=stored-friendly-name} {C=contact-id}` +If this is an asynchronous use of this command, the Transaction ID (or `TrID`) will be set to `0`. + Where `contact-id` is the contact's ID associated with the user. Only applies to users added to the Forward List. If in `ABCHMigrated: 0`, this is the contact's user handle, @@ -162,6 +164,11 @@ C: ADC 14 FL N=anotheruser@hotmail.com F=anotheruser@hotmail.com Server disconnects client. +## Asynchronous update +``` +S: ADC 0 RL N=anotheruser@hotmail.com F=another%20user +``` + # Known changes * [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. diff --git a/docs/commands/add.md b/docs/commands/add.md index 6beb922..0157acd 100644 --- a/docs/commands/add.md +++ b/docs/commands/add.md @@ -3,7 +3,7 @@ It is a Notification Server command, without a request or response payload. -Adds a user to a list. Replaced by [ADL](adl.md) in [MSNP10](../versions/msnp10.md). +Adds a user to a list. Replaced by [ADC](adc.md) in [MSNP10](../versions/msnp10.md). # Client/Request `ADD TrID [ FL | AL | BL ] user-handle custom-friendly-name {group}` @@ -101,4 +101,4 @@ C: ADD 0 RL 258 anotheruser@hotmail.com anotheruser@hotmail.com # Known changes * [MSNP7](../versions/msnp7.md): Now supports groups if target list is Forward List. -* [MSNP10](../versions/msnp10.md): Removed (automatic disconnect). Use [ADL](adl.md) instead. +* [MSNP10](../versions/msnp10.md): Removed (automatic disconnect). Use [ADC](adc.md) instead. diff --git a/docs/commands/bpr.md b/docs/commands/bpr.md index c1eb4c7..20d317e 100644 --- a/docs/commands/bpr.md +++ b/docs/commands/bpr.md @@ -13,7 +13,7 @@ This command can not be sent from the client. Where `list-version` is the new List Version. Removed since [MSNP10](../versions/msnp10.md) in `ABCHMigrated: 1` mode. -Where `user-handle` is the related user's handle. Removed in SYN since [MSNP8](../versions/msnp8.md). +Where `user-handle` is the related user's handle. Removed in [SYN](syn.md) since [MSNP8](../versions/msnp8.md). Where `property` can be any of these values: * `PHH`: Home Phone number @@ -39,5 +39,5 @@ C: BPR example@hotmail.com ``` # Known changes -* [MSNP8](../versions/msnp8.md): Removed the user's handle when used in SYN. +* [MSNP8](../versions/msnp8.md): Removed the user's handle when used in [SYN](syn.md). * [MSNP10](../versions/msnp10.md): Removed the List Version in `ABCHMigrated: 1` mode. diff --git a/docs/commands/chl.md b/docs/commands/chl.md index 038b56f..262d2ed 100644 --- a/docs/commands/chl.md +++ b/docs/commands/chl.md @@ -14,7 +14,7 @@ A request to generate a challenge. Respond with QRY on a new transaction to cont 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. +that is concatenated with the client's Private Key. # Examples diff --git a/docs/commands/cvq.md b/docs/commands/cvq.md index a513ac3..2cf3806 100644 --- a/docs/commands/cvq.md +++ b/docs/commands/cvq.md @@ -4,7 +4,7 @@ It is a Dispatch Server command, without either a request or response payload. Sends the current client information and retrieves the latest avaliable version of the client when there are no other avaliable protocols. -For the version of this command that is sent in the main protocols, read [CVR](cvR.md). +For the version of this command that is sent in the main protocols, read [CVR](cvr.md). # Client/Request `CVQ TrID locale system-type system-ver system-arch requesting-library client-version client-identification {user-handle}` diff --git a/docs/commands/lsg.md b/docs/commands/lsg.md index 0357f77..c90b80a 100644 --- a/docs/commands/lsg.md +++ b/docs/commands/lsg.md @@ -55,8 +55,8 @@ it is instead `group-guid`, which is the group's GUID. ## Client-initiated ### No groups created -*NOTE: Specifiying this as the LSG in SYN will cause the client to attempt to re-initialize the default groups. -Please review the SYN page for what the client attempts to do here.* +*NOTE: Specifiying this as the LSG in [SYN](syn.md) will cause the client to attempt to re-initialize the default groups. +Please review the [SYN](syn.md) page for what the client attempts to do here.* ``` C: LSG 1 S: LSG 1 255 1 1 0 ~ 0 @@ -70,6 +70,7 @@ S: LSG 2 255 2 2 1 Friends 0 ``` ## From SYN +*Main article: [SYN](syn.md).* ### Using first generation *Only in [MSNP7](../versions/msnp7.md).* @@ -120,6 +121,6 @@ S: LSG Friends f60efbe7-94af-4b16-b926-e4e10878d329 ``` # Known changes -* [MSNP8](../versions/msnp8.md): Removed iterator and List Version parameters from SYN version. +* [MSNP8](../versions/msnp8.md): Removed iterator and List Version parameters from [SYN](syn.md) version. * [MSNP10](../versions/msnp10.md): Removed unused `0` parameter and support for the `~` quasi-group. Changed group IDs to group GUIDs if `ABCHMigrated: 1`. diff --git a/docs/commands/lst.md b/docs/commands/lst.md index 8d1f9a9..b1cd2ec 100644 --- a/docs/commands/lst.md +++ b/docs/commands/lst.md @@ -183,9 +183,9 @@ S: LST N=anotheruser@hotmail.com F=another%20user C=c1f9a363-4ee9-4a33-a434-b056 # Known changes * [MSNP7](../versions/msnp7.md): Added support for groups. -* [MSNP8](../versions/msnp8.md): Changed format in SYN considerably, dropping the iterator parameters and +* [MSNP8](../versions/msnp8.md): Changed format in [SYN](syn.md) 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 ID. +* [MSNP10](../versions/msnp10.md): Added prefixes for user handle, stored friendly name to [SYN](syn.md) 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. +* [MSNP12](../versions/msnp12.md): Added Network IDs to [SYN](syn.md) version. +* [MSNP13](../versions/msnp13.md): Removed [SYN](syn.md). diff --git a/docs/commands/msg.md b/docs/commands/msg.md index 203af62..47f3cea 100644 --- a/docs/commands/msg.md +++ b/docs/commands/msg.md @@ -6,6 +6,7 @@ It is a Notification and Switchboard Server command, WITH a request and WITH a r Used to transfer MIME-headered data to other parties, whenever that be you or other users. # Client/Request +*This command can only be sent in a Switchboard session.* ``` MSG TrID [ U | N | A | D ] length data @@ -23,8 +24,6 @@ Where `length` is the `length` in bytes of `data`. Where `data` is the body of the message, usually containing a `MIME-Version` header and a `Content-Type`. -*This can only be sent from Switchboard.* - # Server/Response ``` MSG user-handle friendly-name length diff --git a/docs/commands/out.md b/docs/commands/out.md index e6effa7..5492f73 100644 --- a/docs/commands/out.md +++ b/docs/commands/out.md @@ -45,19 +45,19 @@ S: OUT SSD ``` ## ABCH Migration -*This can only happen in [MSNP10](../versions/msnp10.md) exclusively.* +*Only in [MSNP10](../versions/msnp10.md).* ``` S: OUT MIG ``` ## Terms of Use update -*This can only happen since [MSNP10](../versions/msnp10.md).* +*Since [MSNP10](../versions/msnp10.md).* ``` S: OUT TOU ``` ## Forced Reconnect -*This can only happen since [MSNP11](../versions/msnp11.md).* +*Since [MSNP11](../versions/msnp11.md).* ``` S: OUT RCT 6 ``` diff --git a/docs/commands/prp.md b/docs/commands/prp.md index ec5fe9f..c24b7f4 100644 --- a/docs/commands/prp.md +++ b/docs/commands/prp.md @@ -3,7 +3,7 @@ It is a Notification Server command, without either a request or response payload. -It sets or gets (during SYN) a personal user property. Other users are handled via [BPR](bpr.md). +It sets or gets (during [SYN](syn.md)) a personal user property. Other users are handled via [BPR](bpr.md). # Client/Request `PRP TrID property value` @@ -44,6 +44,6 @@ C: PRP 2 NEW very%20yes Server disconnects client. # Known changes -* [MSNP8](../versions/msnp8.md): During SYN, the current List Version is omitted. +* [MSNP8](../versions/msnp8.md): During [SYN](syn.md), the current List Version is omitted. * [MSNP10](../versions/msnp10.md): Added `MFN` property, "My Friendly Name", List Version removed from response in `ABCHMigrated: 1` mode. diff --git a/docs/commands/rng.md b/docs/commands/rng.md index 412a51c..66bca91 100644 --- a/docs/commands/rng.md +++ b/docs/commands/rng.md @@ -17,7 +17,7 @@ Where `address:port` is the server you need to connect to join the conversation. Where `CKI` is always `CKI`. -Where `cookie` is the Switchboard cookie, to be used in USR and [ANS](ans.md). +Where `cookie` is the Switchboard cookie, to be used in [USR](usr.md) and [ANS](ans.md). Where `inviter-handle` is the inviter's handle. diff --git a/docs/commands/sdc.md b/docs/commands/sdc.md index 977a55e..6695ae9 100644 --- a/docs/commands/sdc.md +++ b/docs/commands/sdc.md @@ -24,7 +24,7 @@ Where both `X` parameters are always `X`. Where `my-friendly-name` is your current friendly name. Invalid escaped characters are forcefully re-encoded to`%3DXX`, -where `XX` is original escaped character code +where `XX` is original escaped character code. Where `length` is the length of the payload. Set to `0` if you don't want to add anything else to your invitation. diff --git a/docs/commands/syn.md b/docs/commands/syn.md new file mode 100644 index 0000000..1fbbc83 --- /dev/null +++ b/docs/commands/syn.md @@ -0,0 +1,256 @@ +# Introduction +`SYN` is a command introduced with [MSNP2](../versions/msnp2.md) + +# Client/Request +`SYN TrID list-version {settings-version}` + +Where `list-version` is the last saved List Version this client remembers. +If the client doesn't remember any information, this is `0`. +With [MSNP10](../versions/msnp10.md) and `ABCHMigrated: 1`, +this is changed from a numerical value to a timestamp. + +Where `settings-version` is the last saved Settings Version this client remembers. +If the client doesn't remember any settings, this is set to `0`. +Added since [MSNP10](../versions/msnp10.md). +With `ABCHMigrated: 1`, this is changed from a numerical value to a timestamp. + +# Server/Response +`SYN TrID list-version {settings-version} {amount-of-users} {amount-of-groups}` + +Where `list-version` is either the current or new List Version, depending if the client's +version of this parameter is the same as the one the server has. +With [MSNP10](../versions/msnp10.md) and `ABCHMigrated: 1`, +this is changed from a numerical value to a timestamp. + +Where `settings-version` is either the current or new Settings Version, +depending if the client's version of this parameter is the same as the one the server has. +Added since [MSNP10](../versions/msnp10.md). +With `ABCHMigrated: 1`, this is changed from a numerical value to a timetstamp. + +Where `amount-of-users` is the amount of unique [LST](lst.md) responses +your client is going to have to expect. Added since [MSNP8](../versions/msnp8.md). + +Where `amount-of-groups` is the amount of [LSG](lsg.md) responses +your client is going to have to expect. Adec since [MSNP8](../versions/msnp8.md). + +# Examples + +## First generation +*Only in [MSNP2](../versions/msnp2.md) to [MSNP4](../versions/msnp4.md).* + +Used commands: +* [GTC](gtc.md) +* [BLP](blp.md) +* [LST](lst.md) + +``` +C: SYN 1 0 +S: SYN 1 255 +S: GTC 1 255 A +S: BLP 1 255 AL +S: LST 1 FL 255 1 1 anotheruser@hotmail.com another%20user +S: LST 1 AL 255 1 1 anotheruser@hotmail.com another%20user +S: LST 1 BL 255 0 0 +S: LST 1 RL 255 1 1 anotheruser@hotmail.com another%20user +``` + +## Second generation +*Only in [MSNP5](../versions/msnp5.md) and [MSNP6](../versions/msnp6.md).* + +Used commands: +* [GTC](gtc.md) +* [BLP](blp.md) +* [PRP](prp.md) +* [LST](lst.md) +* [BPR](bpr.md) + +``` +C: SYN 2 0 +S: SYN 2 255 +S: GTC 2 255 A +S: BLP 2 255 AL +S: PRP 2 255 PHH 123%20(4567) +S: PRP 2 255 PHW +S: PRP 2 255 PHM +S: PRP 2 255 MOB N +S: PRP 2 255 MBE N +S: LST 2 FL 255 1 1 anotheruser@hotmail.com another%20user +S: BPR 255 anotheruser@hotmail.com PHH 1%20(222)%20333%204444 +S: BPR 255 anotheruser@hotmail.com PHW +S: BPR 255 anotheruser@hotmail.com PHM +S: BPR 255 anotheruser@hotmail.com MOB N +S: LST 2 AL 255 1 1 anotheruser@hotmail.com another%20user +S: LST 2 BL 255 0 0 +S: LST 2 RL 255 1 1 anotheruser@hotmail.com another%20user +``` + +## Third generation +*Only in [MSNP7](../versions/msnp7.md).* + +Used commands: +* [GTC](gtc.md) +* [BLP](blp.md) +* [PRP](prp.md) +* [LSG](lsg.md) +* [LST](lst.md) +* [BPR](bpr.md) + +``` +C: SYN 3 0 +S: SYN 3 255 +S: GTC 3 255 A +S: BLP 3 255 AL +S: PRP 3 255 PHH 123%20(4567) +S: PRP 3 255 PHW +S: PRP 3 255 PHM +S: PRP 3 255 MOB N +S: PRP 3 255 MBE N +S: LSG 3 255 1 2 0 Other%20Contacts 0 +S: LSG 3 255 2 2 1 Friends 0 +S: LST 3 FL 255 1 1 anotheruser@hotmail.com another%20user 0 +S: BPR 255 anotheruser@hotmail.com PHH 1%20(222)%20333%204444 +S: BPR 255 anotheruser@hotmail.com PHW +S: BPR 255 anotheruser@hotmail.com PHM +S: BPR 255 anotheruser@hotmail.com MOB N +S: LST 3 AL 255 1 1 anotheruser@hotmail.com another%20user +S: LST 3 BL 255 0 0 +S: LST 3 RL 255 1 1 anotheruser@hotmail.com another%20user +``` + +### No groups specified +*This only happens if the only group is `~`, +and you set the client to sort by groups.* + +``` +S: LSG 3 255 1 1 0 ~ 0 +``` +... +``` +C: REG 4 0 Other%20Contacts 0 +S: REG 4 256 0 Other%20Contacts 0 +C: ADG 5 Coworkers 0 +C: ADG 6 Friends 0 +C: ADG 7 Family 0 +S: ADG 5 257 1 Coworkers 0 +S: ADG 6 258 2 Friends 0 +S: ADG 7 259 3 Family 0 +``` + +## Fourth generation +*Only in [MSNP8](../versions/msnp8.md) and [MSNP9](../versions/msnp9.md).* + +Used commands: +* [GTC](gtc.md) +* [BLP](blp.md) +* [PRP](prp.md) +* [LSG](lsg.md) +* [LST](lst.md) +* [BPR](bpr.md) + +``` +C: SYN 8 0 +S: SYN 8 255 1 2 +S: GTC A +S: BLP AL +S: PRP PHH 123%20(4567) +S: LSG 0 Other%20Contacts 0 +S: LSG 1 Friends 0 +S: LST anotheruser@hotmail.com another%20user 11 0 +S: BPR PHH 1%20(222)%20333%204444 +``` + +### No groups specified +*This only happens if the only group is `~`, +and you set the client to sort by groups.* + +``` +S: LSG 0 ~ 0 +``` +... +``` +C: REG 9 0 Other%20Contacts 0 +S: REG 9 256 0 Other%20Contacts 0 +C: ADG 10 Coworkers 0 +C: ADG 11 Friends 0 +C: ADG 12 Family 0 +S: ADG 10 257 1 Coworkers 0 +S: ADG 11 258 2 Friends 0 +S: ADG 12 259 3 Family 0 +``` + +## Fifth generation +*Only in [MSNP10](../versions/msnp10.md) and [MSNP11](../versions/msnp11.md).* + +Used commands: +* [GTC](gtc.md) +* [BLP](blp.md) +* [PRP](prp.md) +* [LSG](lsg.md) +* [LST](lst.md) +* [BPR](bpr.md) + +### Without GUIDs +*Only with `ABCHMigrated: 0`.* +``` +C: SYN 13 0 0 +S: SYN 13 255 255 1 2 +S: GTC A +S: BLP AL +S: PRP MFN example%20user +S: PRP PHH 123%20(4567) +S: LSG Other%20Contacts 0 +S: LSG Friends 1 +S: LST N=anotheruser@hotmail.com F=another%20user C=anotheruser@hotmail.com 11 0 +S: BPR PHH 1%20(222)%20333%204444 +``` + +### With GUIDs +*Only with `ABCHMigrated: 1`.* +``` +C: SYN 14 0 0 +S: SYN 14 2024-10-23T14:02:48.5360000-07:00 2024-10-23T14:02:48.5360000-07:00 1 2 +S: GTC A +S: BLP AL +S: PRP MFN example%20user +S: PRP PHH 123%20(4567) +S: LSG Other%20Contacts d6deeacd-7849-4de4-93c5-d130915d0042 +S: LSG Friends f60efbe7-94af-4b16-b926-e4e10878d32 +S: LST N=anotheruser@hotmail.com F=another%20user C=c1f9a363-4ee9-4a33-a434-b056a4c55b98 11 d6deeacd-7849-4de4-93c5-d130915d0042 +S: BPR PHH 1%20(222)%20333%204444 +``` + +## Sixth generation +*Only in [MSNP12](../versions/msnp12.md).* +``` +C: SYN 15 0 0 +S: SYN 15 2024-10-23T14:06:20.5360000-07:00 2024-10-23T14:02:48.5360000-07:00 1 2 +S: GTC A +S: BLP AL +S: PRP MFN example%20user +S: PRP PHH 123%20(4567) +S: LSG Other%20Contacts d6deeacd-7849-4de4-93c5-d130915d0042 +S: LSG Friends f60efbe7-94af-4b16-b926-e4e10878d32 +S: LST N=anotheruser@hotmail.com F=another%20user C=c1f9a363-4ee9-4a33-a434-b056a4c55b98 11 1 d6deeacd-7849-4de4-93c5-d130915d0042 +S: BPR PHH 1%20(222)%20333%204444 +``` + +## Removed +*Since [MSNP13](../versions/msnp13.md).* +``` +C: SYN 16 0 0 +``` + +Server disconnects client. + +# Known changes +* [MSNP5](../versions/msnp5.md): Added [PRP](prp.md) and [BPR](bpr.md) support. +* [MSNP7](../versions/msnp7.md): Added [LSG](lsg.md) and groups support in [LST](lst.md). +* [MSNP8](../versions/msnp8.md): Unset properties are omitted, + added new response parameters to replace [LSG](lsg.md) and [LST](lst.md) iterator parameters. + Transaction IDs and List Versions were removed from used commands. +* [MSNP10](../versions/msnp10.md): Added new parameters for the current settings version. + With `ABCHMigrated: 1`, the List Version and Settings Version are changed to ISO 8601 timestamps. +* [MSNP12](../versions/msnp12.md): [LST](lst.md): Added support for Network IDs. +* [MSNP13](../versions/msnp13.md): Removed (automatic disconnection). + Use the [Address Book Service](../services/abservice.md) + and the [Contact Sharing Service](../services/sharingservice.md) instead. diff --git a/docs/commands/usr.md b/docs/commands/usr.md new file mode 100644 index 0000000..d58bcab --- /dev/null +++ b/docs/commands/usr.md @@ -0,0 +1,168 @@ +# Introduction +`USR` is a command introduced with [MSNP2](../versions/msnp2.md). + +The command exists in all services, without a request or response payload. + +Specifies a user that wants to authenticate to the service. +For the command that is used when sending this to a Dispatch Server, read [XFR](xfr.md). + +This command can only be sent once. Any further uses of this command in the same session is Undefined Behavour. + +# Client/Request + +## Dispatch Server or Notification Server + +### The Initial request +`USR TrID security-package I user-handle` + +Depending on the version of the protocol you are using, `security-package` can be: +* `CTP`: Clear Text Password. Only in [MSNP2](../versions/msnp2.md). +* `MD5`: MD5-based authentication. Only in [MSNP2](../versions/msnp2.md) to [MSNP7](../versions/msnp7.md). +* `TWN`: "Tweener", Passport 1.4 or compatible authentication service. Since [MSNP8](../versions/msnp8.md). +* `SSO`: Single Sign On, usually a more advanced Passport 3.0 authentication method. Since [MSNP15](../versions/msnp15.md). + +### The Subsequent request +`USR TrID security-package S {...response-args}` + +Where `response-args` can be anything, but based on `security-package` it can be: +* `CTP`: Your password in plain text. +* `MD5`: The server's login challenge concatenated with your password. +* `TWN`: The `from-PP` parameter in the `Authentication-Info` header sent in response to Passport 1.4, + or if using Passport 3.0, the `` of the relevant ``. +* `SSO`: The same as Passport 3.0 in `TWN`, but with the extra parameter + being the custom challenge response encoded as base64. + +## Switchboard Server +`USR TrID user-handle cookie` + +Where `user-handle` is your current user handle. + +Where `cookie` is the relevant parameter given from [XFR](xfr.md) or [RNG](rng.md). + +# Server/Response + +## Dispatch Server or Notification Server + +### Requesting a Subsequent action +`USR TrID OK security-package S {...challenge}` + +Where `challenge`, based on the `security-package` is: +* `CTP`: Nothing. This parameter is omitted. +* `MD5`: The login challenge to concatenate with your password. +* `TWN`: The Passport login parameters. +* `SSO`: The Passport login policy and a base64-encoded key. + +### Successfully authenticated +`USR TrID OK user-handle {friendly-name} {verified} {unknown}` + +Where `OK` is always `OK`. + +Where `user-handle` is your user handle. + +Where `friendly-name` is your current Friendly Name. Removed in [MSNP10](../versions/msnp10.md). + +Where `verified` is the account's verification status, +where 0 is unverified, and 1 is verified. Added since [MSNP6](../versions/msnp6.md). + +Where `unknown` is an unknown value, +where 0 is something, and 1 is something else. Added since [MSNP8](../versions/msnp8.md). + +## Switchboard Server +`USR TrID OK user-handle friendly-name` + +Where `user-handle` is your current user handle. + +Where `friendly-name` is your current friendly name. + +# Examples + +## Notification Server + +### Using CTP +*Only in [MSNP2](../versions/msnp2.md).* +``` +C: USR 1 CTP I example@hotmail.com +S: USR 1 CTP S +C: USR 2 CTP S password +S: USR 2 OK example@hotmail.com example%20user +``` + +### Using MD5 +*Only in [MSNP2](../versions/msnp2.md) to [MSNP7](../versions/msnp7.md).* +``` +C: USR 3 MD5 I example@hotmail.com +S: USR 3 MD5 S 1234567890.123456789 +C: USR 4 MD5 S f59af8f2fa91d38aff7c870c17f99903 +S: USR 4 OK example@hotmail.com example%20user +``` + +### Using TWN +*Since [MSNP8](../versions/msnp8.md).* +``` +C: USR 5 TWN I example@hotmail.com +S: USR 5 MD5 S passport=parameters,neat=huh,lc=1033,id=507 +``` +*The HTTPS interlude has been moved to the [Passport 1.4](../services/passport14.md) article.* +``` +USR 6 TWN S t=token&p=profile +USR 6 OK example@hotmail.com example%20user +``` + +### Using SSO +*Since [MSNP15](../versions/msnp15.md).* + +*NOTE: This has been line-breaked. +Lines beginning with `..` followed by a space are continuations of the previous line.* +``` +C: USR 7 SSO I example@hotmail.com +S: USR 7 SSO S MBI_KEY_OLD AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= +``` + +*The HTTPS and key-encryption interlude has been removed from here +and is to reinstated as two seperate pages.* + +``` +C: USR 8 SSO S t=ticket HAAAAAEAAAADZgAABIAAAAgAAAAUAAAASAAAAAAAAA +.. AAAAAA7XgT5ohvaZdoXdrWUUcMF2G8OK2JohyYcK5l5M +.. JSitab33scxJeK/RQXcUr0L+R2ZA9CEAzn0izmUzSMp +.. 2LZdxSbHtnuxCmptgtoScHp9E26HjQVkA9YJxgK/HM= +S: USR 8 OK example@hotmail.com +``` + +### Invalid username or password +``` +C: USR 9 TWN I example@hotmail.com +S: USR 9 TWN S passport=parameters,neat=huh,lc=1033,id=507 +C: USR 10 TWN S t=not*a*passport*ticket&p=not*a*profile*either +S: 911 10 +``` + +Server disconnects client. + +### Account not verfiied +*This will show the "Account Verification Required" dialog in [MSNP6](../versions/msnp6.md) clients?* +``` +C: USR 11 MD5 I example@hotmail.com +S: USR 11 MD5 S 1234567890.123456789 +C: USR 12 MD5 S f59af8f2fa91d38aff7c870c17f99903 +S: 924 12 +``` + +### Wrong server for this account +``` +C: USR 13 TWN I example@hotmail.com +S: 931 13 +``` + +## Switchboard Server +``` +C: USR 14 example@passport.com 1234567890.1234567890.1234567890 +S: USR 14 OK example@passport.com example%20user +``` + +# Known changes +* [MSNP3](../versions/msnp3.md): Removed the `CTP` security package. +* [MSNP6](../versions/msnp6.md): Added account verification bit to [USR OK](#successfully-authenticated). +* [MSNP8](../versions/msnp8.md): Added an unknown bit to [USR OK](#successfully-authenticated) and + removed the `MD5` security package, and replaced with the `TWN` security package. +* [MSNP15](../versions/msnp15.md): Added support for the `SSO` security package. diff --git a/docs/commands/xfr.md b/docs/commands/xfr.md index 6353103..744f1af 100644 --- a/docs/commands/xfr.md +++ b/docs/commands/xfr.md @@ -54,7 +54,7 @@ Client opens a connection to 10.0.0.5:1863 ## Client referred from Dispatch Server ### Very Old -*Only in [MSNP2](../versions/msnp2.md) Exclusively.* +*Only in [MSNP2](../versions/msnp2.md).* ``` C: USR 3 MD5 I example@hotmail.com S: XFR 3 NS 10.0.0.5:1863 @@ -90,5 +90,5 @@ 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) 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. diff --git a/docs/index.md b/docs/index.md index e2bdc18..c8041e8 100644 --- a/docs/index.md +++ b/docs/index.md @@ -21,34 +21,36 @@ More is to come soon! Hopefully! # Web Services * [Address Book Service](services/abservice.md) -* [Contact Sharing Service](services/sharingservice.md). -* [Messenger Config Service](services/msgrconfig.md). +* [Contact Sharing Service](services/sharingservice.md) +* [Messenger Config Service](services/msgrconfig.md) +* [Passport 1.4](services/passport14.md) More is to come soon! Hopefully! # Other documents and files -* [Constants used on the wiki](reference_constants.md). -* [Shields Configuration Data](files/shields.md). +* [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`? * [MSNP6](versions/msnp6.md): What makes the "Account must be verified before using the service" dialog show up? * [MSNP6](versions/msnp6.md): Does it really acknoledge the account verified bit? I couldn't get the toast to show up in Client Version 3.6.003x. -* [MSNP8](versions/msnp8.md): Did FND 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 in this version? +* [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? +* [MSNP8](versions/msnp8.md): What is the new bit (parameter 5) in [USR](commands/usr.md) OK? * [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 in this version? +* [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): How does `ABCHMigrated: 0` really work now? `OUT MIG` still exists. -* [MSNP12](versions/msnp12.md): Did [LST](commands/lst.md) change outside of SYN in this version? +* [MSNP12](versions/msnp12.md): Did [LST](commands/lst.md) change outside of [SYN](commands/syn.md) in this version? * All Protocols: Any error code known to exist but is missing from the pages. -* All Protocols: Good CVR responses, all of them are their release versions, when they could be latest. -* All Protocols since [MSNP10](versions/msnp10.md): Use legitimate CVR responses from the time if possible, not ones for Client Version 6.1. +* All Protocols: Good [CVR](commands/cvr.md) responses, all of them are their release versions, when they could be latest. +* All Protocols since [MSNP10](versions/msnp10.md): Use legitimate [CVR](commands/cvr.md) responses from the time if possible, not ones for Client Version 6.1. * [FND command](commands/fnd.md): What was returned when this was disabled in 2003 in [MSNP2](versions/msnp2.md) to [MSNP6](versions/msnp6.md)? * [IMS command](commands/ims.md): What is the unknown number (that is usually `0`) in the response? * [NAK command](commands/nak.md): This isn't used ever as a response for [MSG](commands/msg.md) D right? * [MSG command](commands/msg.md): What can return from [MSG](commands/msg.md) D? * [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. -* [LST command](commands/lst.md): Any updates to this command outside of SYN. +* [LST command](commands/lst.md): Any updates to this command outside of [SYN](commands/syn.md). * [ADC command](commands/adc.md): Can this show up as a asynchronous command? ## Unsolved Mysteries @@ -65,8 +67,8 @@ More is to come soon! Hopefully! * Messenger Config: A file used by Client Version 6.0 and higher that specifies some data for the Official Client. * `svcs.microsoft.com`: Usually a grab-bag of random XML files or services used for clients older than Client Version 6.0. * Protocol Split: A MSNP version that usually defines a point of no return. -* PP14: Passport SSI Version 1.4. -* PP30: Passport over SOAP ala Client Version 7.5+. +* PP14: [Passport SSI Version 1.4](services/passport14.md). +* PP30: Passport over SOAP that was implemented in Client Version 7.5+ ([MSNP12](versions/msnp12.md)). * SOAP: Simple Object Access Protocol, A wrapper over XML. That's the kindest thing I can write about it. * Passport: The Authentication Server and/or Protocol. * Undefined Behavour: An intentional blank left in the documentation, basically as a "I am not responsible for what this does to your client or server" warning. @@ -81,6 +83,11 @@ More is to come soon! Hopefully! * TrID: Transaction ID. Links the server's response to the client's request. * User handle: A 129-character max address used across the protocol. May be called "principles" in other places. +* Public Key, Private Key: The parameters used in QRY. + * 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. + 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 . diff --git a/docs/services/abservice.md b/docs/services/abservice.md index 26aa711..4479417 100644 --- a/docs/services/abservice.md +++ b/docs/services/abservice.md @@ -7,7 +7,7 @@ It manages the link(s) between the E-mail Service Address Book and the Forward L It's default HTTP URL is `http://contacts.msn.com/abservice/abservice.asmx`. It's default HTTPS URL is `https://contacts.msn.com/abservice/abservice.asmx`. -This service requires Passport authentication. +This service requires [Passport authentication](passport14.md). Related: [Contact Sharing Service](sharingservice.md) (for other List's members). diff --git a/docs/services/msgrconfig.md b/docs/services/msgrconfig.md index 636d4ff..5ea44ee 100644 --- a/docs/services/msgrconfig.md +++ b/docs/services/msgrconfig.md @@ -541,7 +541,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. (TODO: Does this want something else? Passing a .cab just results in failed to install.) +If it is for a `` product instead, `` is sent to `MessengerContentInstaller.InstallIndirectContent`. + +TODO: What is a "Merchant CAB file"? `InstallIndirectContent` wants one. ## Editorial document ``` diff --git a/docs/services/passport14.md b/docs/services/passport14.md new file mode 100644 index 0000000..3adc112 --- /dev/null +++ b/docs/services/passport14.md @@ -0,0 +1,102 @@ +# Introduction +Passport 1.4, or "Tweener", as it's sometimes called, +is an HTTP-based authentication system that was introduced with [MSNP8](../versions/msnp8.md). + +For [MSNP12](../versions/msnp12.md) and above, read Passport 3.0. + +# Nexus +The Passport Nexus is a server that provides information to other parties about how to use Passport. + +It's default domain is `nexus.passport.com`. + +## pprdr.asp +The Passport Redirection service returns the `PassportURLs` header, which contains the `DALogin` parameter +that is used to specify which server to attempt Passport 1.4 authentication with. + +### Client/Request +``` +GET /rdr/pprdr.asp HTTP/1.1 +Host: nexus.passport.com + +``` + +### Server/Response +``` +HTTP/1.1 200 OK +Cache-Control: private +Content-Type: text/html +Content-Length: 0 +PassportURLs: DARealm=Passport.Net,DALogin=login.passport.com/login2.srf,ConfigVersion=15 + +``` + +Where `PassportURLs` (case-sensitive) contains the following parameters: +* `DARealm`: The Domain Authority's realm name. +* `DALogin`: The Domain Authority's login endpoint. +* `ConfigVersion`: Increases by 1 every time that PassportURLs is updated to flush the URL cache. + +# Passport Login +The Passport Login server is a HTTPS server that provides the login service (default is `login2.srf`) +specified in `DALogin` from the [Nexus](#nexus) response. + +## login2.srf +The `login2.srf` endpoint is used for programmatic authentication. + +### Client/Request +``` +GET /login2.srf HTTP/1.1 +Authorization: Passport1.4 Passport1.4 OrgVerb=GET,OrgURL=http%3A%2F%2Fmessenger%2Emsn%2Ecom,sign-in={user-handle},pwd={password},{server-args} +User-Agent: MSMSGS +Host: login.passport.com +Connection: Keep-Alive +Cache-Control: no-cache + +``` + +Where `user-handle` is the URL-encoded user handle of the user to authenticate. + +Where `password` is the URL-encoded password of the user to authenticate. + +Where `server-args` is the parameter given to the server's response to the Initial [USR](../commands/usr.md). + +### Server/Response + +#### Authentication Redirection +If the server you are authenticating to does not support your account type, +but knows a server that does, this is used, otherwise [Authentication Successful](#authentication-successful) is. + +If you are redirected, you have to send the `Authorization` header again to the new server specified in `Location`. + +``` +HTTP/1.1 302 Found +Cache-Control: no-cache +cachecontrol: no-store +Connection: close +Authentication-Info: Passport1.4 da-status=redir +Location: https://loginnet.passport.com/login2.srf?lc=1033 + +``` + +#### Authentication Successful +``` +HTTP/1.1 200 OK +Cache-Control: no-cache +cachecontrol: no-store +Connection: close +Content-Type: text/html +Authentication-Info: Passport1.4 dastatus=success,from-PP='t=token&p=profile',ru=http://messenger.msn.com +Content-Length: 0 + +``` + +#### Authentication Failure +The `dastatus` may instead be `failed-noretry`. +``` +HTTP/1.1 Unauthorized +Cache-Control: no-cache +cachecontrol: no-store +WWW-Authenticate Passport1.4 dastatus=failed,srealm=Passport.NET,ts=-1,prompt,cburl=http://www.passportimages.com/XPPassportLogo.gif +Content-Length: 154 + + +``` diff --git a/docs/services/sharingservice.md b/docs/services/sharingservice.md index da19362..7d8a251 100644 --- a/docs/services/sharingservice.md +++ b/docs/services/sharingservice.md @@ -7,7 +7,7 @@ It manages the Messenger Service's Allow List (AL), Block List (BL), Reverse Lis It's default HTTP URL is `http://byrdr.omega.contacts.msn.com/abservice/SharingService.asmx`. It's default HTTPS URL is `https://byrdr.omega.contacts.msn.com/abservice/SharingService.asmx`. -This service requires Passport authentication. +This service requires [Passport authentication](passport14.md). Related: [Address Book Service](abservice.md) (for Forward List (PL) members). diff --git a/docs/table_of_commands.md b/docs/table_of_commands.md index e09ae20..c026e8c 100644 --- a/docs/table_of_commands.md +++ b/docs/table_of_commands.md @@ -8,7 +8,7 @@ This is a list of all known MSNP commands and their originating version. | [`INF`](commands/inf.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP3](versions/msnp3.md) (removed CTP), [MSNP8](versions/msnp8.md) (Removed; automatic disconnect) | | [`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` | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP3](versions/msnp3.md) (removed CTP), [MSNP6](versions/msnp7.md) (added verified bit to OK), [MSNP8](versions/msnp8.md) (TWN auth, removed MD5 auth, added unknown bit to OK), [MSNP10](versions/msnp10.md) (removed current display name in favor of PRP MFN), [MSNP15](versions/msnp15.md) (SSO auth) | +| [`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), [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) | | [`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.) | @@ -24,17 +24,17 @@ This is a list of all known MSNP commands and their originating version. | [`IRO`](commands/iro.md) | N | N | Y | [MSNP2](versions/msnp2.md) | [MSNP12](versions/msnp12.md) (Added Client Capability flags support as parameter 5) | | [`JOI`](commands/joi.md) | N | N | Y | [MSNP2](versions/msnp2.md) | [MSNP12](versions/msnp12.md) (Added Client Capability flags support as parameter 3) | | [`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), [MSNP10](versions/msnp10.md) (Removed List Version outside of SYN 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), [MSNP10](versions/msnp10.md) (Removed List Version outside of SYN if `ABCHMigrated: 1`) | +| [`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) | | -| [`LST`](commands/lst.md) | N | Y | Y\*| [MSNP2](versions/msnp2.md) | [MSNP7](versions/msnp7.md) (Added groups support), [MSNP8](versions/msnp8.md) (SYN: 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) (Likely removed) | +| [`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) (Likely removed) | | [`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) | | [`FLN`](commands/fln.md) | N | N | Y | [MSNP2](versions/msnp2.md) | | | [`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) | -| [`LSG`](commands/lsg.md) | N | Y | Y\*| [MSNP7](versions/msnp7.md) | [MSNP8](versions/msnp8.md) (Removed iterator and List Version parameters from SYN version), [MSNP10](versions/msnp10.md) (Removed unused parameter, and replaced Group IDs with Group GUIDs if `ABCHMigrated: 1`.) | +| [`LSG`](commands/lsg.md) | N | Y | Y\*| [MSNP7](versions/msnp7.md) | [MSNP8](versions/msnp8.md) (Removed iterator and List Version parameters from [SYN](commands/syn.md) version), [MSNP10](versions/msnp10.md) (Removed unused parameter, and replaced Group IDs with Group GUIDs if `ABCHMigrated: 1`.) | | [`ADG`](commands/adg.md) | N | Y | N | [MSNP7](versions/msnp7.md) | [MSNP10](versions/msnp10.md) (Removed unused parameter, and replaced Group IDs with Group GUIDs if `ABCHMigrated: 1`), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect?, use [Address Book Service](services/abservice.md) `ABGroupAdd` instead.) | | [`ILN`](commands/iln.md) | N | N | Y | [MSNP2](versions/msnp2.md) | [MSNP8](versions/msnp8.md) (Added support for Client Capabilities), [MSNP9](versions/msnp9.md) (Added optional MSNObject parameter), [MSNP14](versions/msnp14.md) (Added Network ID parameter and optional Presence Icon URL parameter), [MSNP16](versions/msnp16.md) (Support for the Extended Client Capabilities, changing the original Client Capabilities parameter to now be delimited by a colon) | | [`NLN`](commands/nln.md) | N | N | Y | [MSNP2](versions/msnp2.md) | [MSNP8](versions/msnp8.md) (Added support for Client Capabilities), [MSNP9](versions/msnp9.md) (Added optional MSNObject parameter), [MSNP14](versions/msnp14.md) (Added Network ID parameter and optional Presence Icon URL parameter), [MSNP16](versions/msnp16.md) (Support for the Extended Client Capabilities, changing the original Client Capabilities parameter to now be delimited by a colon) | @@ -47,12 +47,11 @@ This is a list of all known MSNP commands and their originating version. | [`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.) | +| [`SYN`](commands/syn.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP5](versions/msnp5.md) (Added [BPR](commands/bpr.md) and [PRP](commands/prp.md) to response.), [MSNP7](versions/msnp7.md) (Added [LSG](commands/lsg.md) support and groups in [LST](commands/lst.md).), [MSNP8](versions/msnp8.md) (Unset properties are now omitted, new response parameters to replace [LSG](commands/lsg.md) and [LST](commands/lst.md) iterator parameters, Transaction IDs and List Version was removed from used commands), [MSNP10](versions/msnp10.md) (Added new parameters for the settings version. With `ABCHMigrated: 1`, both versions are now timestamps), [MSNP12](versions/msnp12.md) (Added Network IDs to [LST](commands/lst.md).), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, use the [Address Book Service](../services/abservice.md) and the [Contact Sharing Service](../services/sharingservice.md) instead.) | # What's Missing Right Now ## For next parity check -* [MSNP2](versions/msnp2.md): USR -* [MSNP2](versions/msnp2.md): SYN * [MSNP5](versions/msnp5.md): NOT * [MSNP6](versions/msnp6.md): IPG * [MSNP6](versions/msnp6.md): QRY @@ -66,5 +65,5 @@ This is a list of all known MSNP commands and their originating version. * [MSNP12](versions/msnp12.md): LKP # Modifiers -* `*`: Only in `SYN`. +* `*`: Only in [SYN](commands/syn.md). * `?`: Unconfirmed, but not impossible, or needs verification. diff --git a/docs/versions/cvr0.md b/docs/versions/cvr0.md index d7142f8..7b25fbd 100644 --- a/docs/versions/cvr0.md +++ b/docs/versions/cvr0.md @@ -38,7 +38,7 @@ Server disconnects client. ``` C: VER 1 MSNP10 MSNP9 CVR0 S: VER 1 CVR0 -C: CVQ 2 0x0409 winnt 5.1 i386 MSNMSGR 6.1.0211 MSMSGS example@passport.com +C: CVQ 2 0x0409 winnt 5.1 i386 MSNMSGR 6.1.0211 MSMSGS example@hotmail.com S: CVQ 2 7.0.0813 7.0.0813 6.2.0205 http://msgr.dlservice.microsoft.com/download/5/d/9/5d9bb5b2-49c7-4890-94ab-d1d5e44a0e6d/Install_MSN_Messenger.exe http://messenger.msn.com ``` Server disconnects client. diff --git a/docs/versions/msnp10.md b/docs/versions/msnp10.md index 6084b1a..686db5e 100644 --- a/docs/versions/msnp10.md +++ b/docs/versions/msnp10.md @@ -19,7 +19,7 @@ The following commands were removed in this version: (from [MSNP9](msnp9.md)): * Added new initial profile variable `TOUNeeded`. If exists and set to 1, a dialog box to review the Messenger Service Terms of Use is shown to the user. -* Changed SYN request and response. +* Changed [SYN](../commands/syn.md) request and response. Client: `SYN transactionID listVersion settingsVersion`. Server: `SYN transactionID listVersion settingsVersion numberOfContacts numberOfGroups`. `settingsVersion` is always 0. @@ -28,7 +28,7 @@ The following commands were removed in this version: * [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, + * [SYN](../commands/syn.md): The request and response's list versions are now ISO 8601 with 7 subsecond digits, usually with a -07:00 timezone offset. the previously unused second parameter (both request and response) is used as the Last Settings Version, and follows the same time format as List Versions now do. @@ -48,7 +48,8 @@ The following commands were removed in this version: * Added a new list: Pending List/PL (bit 5, decimal 16). Is meant for 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 error code again, which was last seen in Client Version 3.6.003x. +* Official Client: Now handles the 604, 914, 916 error codes again, + 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)). @@ -77,6 +78,9 @@ S: CVR 5 6.1.0211 6.1.0211 6.1.0155 .. http://messenger.msn.com C: USR 6 TWN I example@hotmail.com S: USR 6 TWN S passport=parameters,neat=huh,lc=1033,id=507 +``` +*The HTTPS interlude is described in the [Passport 1.4](../services/passport14.md) article.* +``` C: USR 7 TWN S $(pp14response.headers.authenticationInfo["from-PP"]) S: USR 7 OK example@hotmail.com 1 0 S: MSG Hotmail Hotmail 465 diff --git a/docs/versions/msnp11.md b/docs/versions/msnp11.md index c9996bd..b3114c2 100644 --- a/docs/versions/msnp11.md +++ b/docs/versions/msnp11.md @@ -30,6 +30,7 @@ It introduces the notification service commands: * 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. * Official Client: [OUT](../commands/out.md) SSD is actually implemented now. +* Official Client: Error code 913 is handled again after being removed last version. Why? # Client-server communication example *NOTE: This has been line-breaked. @@ -56,6 +57,9 @@ S: CVR 5 6.1.0211 6.1.0211 6.1.0155 .. http://messenger.msn.com C: USR 6 TWN I example@hotmail.com S: USR 6 TWN S passport=parameters,neat=huh,lc=1033,id=507 +``` +*The HTTPS interlude is described in the [Passport 1.4](../services/passport14.md) article.* +``` C: USR 7 TWN S $(pp14response.headers.authenticationInfo["from-PP"]) S: USR 7 OK example@hotmail.com 1 0 S: SBS 0 null diff --git a/docs/versions/msnp12.md b/docs/versions/msnp12.md index cf9f0d5..ab4a050 100644 --- a/docs/versions/msnp12.md +++ b/docs/versions/msnp12.md @@ -38,7 +38,7 @@ S: XFR 3 NS 10.0.0.5:1863 0 10.0.0.1:1863 ``` Client disconnects from server -Client opens a connection to 10.0.0.5:1863 (from stored server) +Client opens a connection to 10.0.0.5:1863 ``` C: VER 4 MSNP12 MSNP11 MSNP10 CVR0 S: VER 4 MSNP12 @@ -47,6 +47,11 @@ S: CVR 5 6.1.0211 6.1.0211 6.1.0155 .. http://download.microsoft.com/download/8/3/C/83C4B2DB-AC1C-4B56-8144-4472C0982F21/SetupDl.exe .. http://messenger.msn.com C: USR 6 TWN I example@hotmail.com +``` +*The HTTPS interlude is described in the [Passport 1.4](../services/passport14.md) article.* + +TODO: This is actually meant to be Passport 3.0. +``` S: USR 6 TWN S passport=parameters,neat=huh,lc=1033,id=507 C: USR 7 TWN S $(pp14response.headers.authenticationInfo["from-PP"]) S: USR 7 OK example@hotmail.com 1 0 diff --git a/docs/versions/msnp2.md b/docs/versions/msnp2.md index 6c90283..9b197d5 100644 --- a/docs/versions/msnp2.md +++ b/docs/versions/msnp2.md @@ -6,7 +6,7 @@ It was introduced officially in Client Version 1.0.0863, along with [CVR0](cvr0. It introduces the dispatch service commands: * [INF](../commands/inf.md) * [OUT](../commands/out.md) -* USR +* [USR](../commands/usr.md) * [VER](../commands/ver.md) * [XFR](../commands/xfr.md) @@ -30,9 +30,9 @@ It introduces the notification service commands: * [REM](../commands/rem.md) * [RNG](../commands/rng.md) * [SND](../commands/snd.md) (not in draft) -* SYN +* [SYN](../commands/syn.md) * [URL](../commands/url.md) (not in draft) -* USR +* [USR](../commands/usr.md) * [VER](../commands/ver.md) * [XFR](../commands/xfr.md) @@ -46,7 +46,7 @@ It introduces the switchboard service commands: * [MSG](../commands/msg.md) * [NAK](../commands/nak.md) * [OUT](../commands/out.md) -* USR +* [USR](../commands/usr.md) It introduces the error codes: * 100 (not in draft) diff --git a/docs/versions/msnp3.md b/docs/versions/msnp3.md index 38737cc..d8ca4fa 100644 --- a/docs/versions/msnp3.md +++ b/docs/versions/msnp3.md @@ -10,8 +10,11 @@ It introduces the notification service commands: It introduces the error codes: * 131 +* 212 * 217 +* 716 * 800 +* 917 *No commands were known to be removed in this version* @@ -25,8 +28,6 @@ It introduces the error codes: a client library parameter, similar to the one in [CVR](../commands/cvr.md). * Initial profile: Added Passport intergration fields. * Font information has been added to Switchboard [MSG](../commands/msg.md) commands. -* Multiple error-codes unimplemented in 1.x that were in the draft are now implemented in the Official Client. - Examples include: 208, 215, 501, 604 (bizzarely enough), 715 and finally 913. * Non-protocol: Client can now use non-hotmail domains in relevant places. * Non-protocol: WebTV 2.5+ clients (example@webtv.net) can talk to other users (example@hotmail.com) * Clear-Text Password (`CTP`) authentication method removed. Use `MD5` instead. @@ -49,6 +50,32 @@ It introduces the error codes: * Official Client: Removed [URL](../commands/url.md) service `PASSWORD`. * Official Client: Disabled inviting people to the service (needs confirmation). +## Changes to error codes +*Only applies for the Official Client.* + +### Re-added +*Where the parenthesis are the last version that had the error.* + +* 208 (draft) +* 215 (draft) +* 501 (draft) +* 604 (draft) +* 715 (draft) +* 913 (draft) +* 917 (draft) + +### Removed +* 146 +* 206 +* 207 +* 211 +* 218 +* 503 +* 510 +* 914 +* 918 +* 919 + # Client-server communication example ``` C: VER 1 MSNP3 MSNP2 CVR0 diff --git a/docs/versions/msnp4.md b/docs/versions/msnp4.md index 0364c3c..eaf0e7f 100644 --- a/docs/versions/msnp4.md +++ b/docs/versions/msnp4.md @@ -16,6 +16,18 @@ It was introduced officially in Client Version 2.1.1047. identification parameter, like [CVR](../commands/cvr.md) has, but is always empty. * Official Client: Client Version 2.2.1053 re-enables the ability to invite people again. +## Changes to error codes +*Only applies for the Official Client.* + +### Re-added +*Where the parenthesis are the last version that had the error.* + +* 208 (draft) +* 500 + +### Removed +None. + # Client-server communication example ``` C: VER 1 MSNP4 MSNP3 CVR0 diff --git a/docs/versions/msnp5.md b/docs/versions/msnp5.md index 6843299..ba108ab 100644 --- a/docs/versions/msnp5.md +++ b/docs/versions/msnp5.md @@ -12,19 +12,20 @@ It introduces the notification service commands: *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* +It introduces the error codes: +* 922 *No commands were known to be removed in this version* # Known changes (from [MSNP4](msnp4.md)): +* [BPR](../commands/bpr.md) and [PRP](../commands/prp.md) have been added to [SYN](../commands/syn.md). * Non-protocol: Official website stopped updating the whatsnew.asp page between this (MSNP5) and [MSNP7](msnp7.md). * Official Client: Introduced the toast notification system. Notifications can now stack vertically. * 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: Error code 913 is no longer handled. It was last seen in Client Version 2.2. * Official Client: [FND](../commands/fnd.md) functionality changed slightly(?) to say that Passport 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 @@ -33,6 +34,27 @@ It introduces the notification service commands: * Official Client: [URL](../commands/url.md) without the Passport Site ID (parameter 3) support has been removed. * Official Client: Added new [URL](../commands/url.md) services `MOBILE` and `CHGMOB` . +## Changes to error codes +*Only applies for the Official Client.* + +### Re-added +*Where the parenthesis are the last version that had the error.* + +* 211 ([MSNP2](msnp2).md) +* 503 +* 510 +* 914 ([MSNP2](msnp2).md) +* 919 ([MSNP2](msnp2).md) + +### Removed +* 131 +* 209 +* 212 +* 500 +* 501 +* 912 +* 913 + # Client-server communication example ``` C: VER 1 MSNP5 MSNP4 CVR0 diff --git a/docs/versions/msnp6.md b/docs/versions/msnp6.md index fad2d6b..a59fe50 100644 --- a/docs/versions/msnp6.md +++ b/docs/versions/msnp6.md @@ -12,19 +12,33 @@ It introduces the notification service commands: *No error codes were known to be introduced in this version* -*No commands were known to be removed in this version* +It introduces the error codes: +* 540 +* 915 +* 916 # Known changes (from [MSNP5](msnp5.md)): -* USR OK now has a verified bit (parameter 4), if 0, shows a warning to verify the account. +* [USR](../commands/usr.md) OK now has a verified bit (parameter 4), if 0, 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 is - `MD5(challenge + clientSecret)` as a lowercase hex-string. + `MD5(challenge + privateKey)` as a lowercase hexadecimal string. * An example client secret is `Q1P7W2E4J9R8U3S5`, which is tied to `msmsgs@msnmsgr.com`. * First protocol version added in a patch release (Client Versions 3.6.0025 and 3.6.0026 do not support MSNP6). * Official Client: Added new [URL](../commands/url.md) services `PROFILE`, `N2PACCOUNT` and `N2PFUND`. +## Changes to error codes +*Only applies for the Official Client.* + +### Re-added +None. + +### Removed +* 215 +* 219 +* 919 + # Client-server communication example ``` C: VER 1 MSNP6 MSNP5 MSNP4 CVR0 diff --git a/docs/versions/msnp7.md b/docs/versions/msnp7.md index 1e8c999..7b7bbd1 100644 --- a/docs/versions/msnp7.md +++ b/docs/versions/msnp7.md @@ -12,7 +12,14 @@ It introduces the notification service commands: *No switchboard or dispatch service commands were known to be introduced in this version* It introduces the error codes: +* 224 +* 225 +* 226 +* 229 +* 230 * 502 +* 710 +* 921 * 924 *No commands were known to be removed in this version* @@ -26,16 +33,38 @@ It introduces the error codes: not the Forward List (FL) itself. * [ADD](../commands/add.md) commnads with the list set to the Forward List (FL) with a group ID only adds that user from the respective group, and the Forward List (FL) if the user is not already in the Forward List (FL). -* SYN now includes LSG entries for groups. +* [SYN](../commands/syn.md) now includes LSG entries for groups. * [LST](../commands/lst.md) (either from itself or a SYN response) now includes contact group numbers for the Forward List (FL). * [XFR](../commands/xfr.md) NS's now include the server it was sent from. -* Official Client: Error codes 602, 603, 911 (since removal in Client Version 3.0) are implemented. - Error code 604 is no longer handled since Client Version 2.0. * Official website's `whatsnew.asp` page has been updated. * Official Client: New service URLs for some features. * Official Client: Added new [URL](../commands/url.md) service `CHAT`. * Official Client: Removed [URL](../commands/url.md) services `N2PACCOUNT` and `N2PFUND`. +## Changes to error codes +*Only applies for the Official Client.* + +### Re-added +*Where the parenthesis are the last version that had the error.* + +* 131 +* 146 +* 603 +* 604 +* 913 ([MSNP4](msnp4.md)) +* 918 ([MSNP2](msnp2.md)) + +### Removed +* 503 +* 601 +* 604 +* 715 +* 716 +* 914 +* 915 +* 916 +* 920 + # Client-server communication example ``` C: VER 1 MSNP7 MSNP6 MSNP5 MSNP4 CVR0 diff --git a/docs/versions/msnp8.md b/docs/versions/msnp8.md index ca4cee8..81e91f2 100644 --- a/docs/versions/msnp8.md +++ b/docs/versions/msnp8.md @@ -16,10 +16,11 @@ 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 instead of [VER](../commands/ver.md)-[INF](../commands/inf.md)-USR. -* USR OK has a new parameter, usually? 0, but of currently unknown use. -* Introduced `TWN` authentication method, which uses Passport 1.4 over HTTPS. -* Reworked SYN and related response commands (notably [LSG](../commands/lsg.md) and [LST](../commands/lst.md)) drastically: +* Login process 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, usually? 0, but of currently unknown use. +* 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. @@ -30,24 +31,28 @@ The following commands were removed in this version: Formula: `y = (((x & 0xff) * 256) + ((x & 0xff00)/256))`. * NOTE: [FND](../commands/fnd.md) might still exist in client, but theres no way of triggering it. Practically removed. * [BPR](../commands/bpr.md) removes related user, for some reason, default fields share same optimization as [PRP](../commands/prp.md) does. -* [LST](../commands/lst.md) (for SYN): Lists are now all combined into a single number, where: +* [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), For example, a contact on the Forward List (FL), Allow List (AL) and Reverse List (RL) would have their combined list number be 11. * [CHG](../commands/chg.md), [ILN](../commands/iln.md), [NLN](../commands/nln.md): Client Capabilities are introduced. You can now tell other clients what features you support. -* Official Client: Error 711 is now handled. - Error 603 isn't handled again after Client Version 4.5 supported it. * Official Client: Connectivity field added to application requests to notify the other user about what the network conditions are. * Official Client: Introduced ABCH (Address Book Clearing House) support. The URL is gathered from `svcs.microsoft.com`. `abch_config.asp` provides an XML document with a `` element. - It has a `` element containing the service URL, a `` element, + It has a `` element containing the service URL, a `` element, and finally a `` element. Example values are `http://contacts.msn.com/abservice/abservice.asmx`, `0` and `0.0` respectively. * Official Client: Added new [URL](../commands/url.md) services `ADDRBOOK`, `ADVSEARCH` and `INTSEARCH` +## Changes to error codes +TODO: this section + +Added: 603 + + # Client-server communication example *NOTE: This has been line-breaked. Lines beginning with `..` followed by a space are continuations of the previous line. @@ -73,6 +78,9 @@ S: CVR 5 5.0.0537 5.0.0537 1.0.0863 .. http://messenger.microsoft.com C: USR 6 TWN I example@hotmail.com S: USR 6 TWN S passport=parameters,neat=huh,lc=1033,id=507 +``` +*The HTTPS interlude is described in the [Passport 1.4](../services/passport14.md) article.* +``` C: USR 7 TWN S $(pp14response.headers.authenticationInfo["from-PP"]) S: USR 7 OK example@hotmail.com example%20user 1 0 S: MSG Hotmail Hotmail 448 diff --git a/docs/versions/msnp9.md b/docs/versions/msnp9.md index 57e088a..2f51c1b 100644 --- a/docs/versions/msnp9.md +++ b/docs/versions/msnp9.md @@ -50,6 +50,9 @@ S: CVR 5 6.0.0602 6.0.0602 6.0.0268 .. http://messenger.msn.com C: USR 6 TWN I example@hotmail.com S: USR 6 TWN S passport=parameters,neat=huh,lc=1033,id=507 +``` +*The HTTPS interlude is described in the [Passport 1.4](../services/passport14.md) article.* +``` C: USR 7 TWN S $(pp14response.headers.authenticationInfo["from-PP"]) S: USR 7 OK example@hotmail.com example%20user 1 0 S: MSG Hotmail Hotmail 448