fattest update yet - 30 whole changed files

next is formatting, which is why i wanted to commit anyway
This commit is contained in:
Declan B. 2024-10-15 18:14:20 +01:00
parent f38cb78dd8
commit a4d1a89f34
Signed by: yellows111
SSH key fingerprint: SHA256:ynw5IJBU1pb7fZfHgLihKu9gHHA8FVpixZbB6IEB3r8
30 changed files with 709 additions and 64 deletions

View file

@ -6,25 +6,29 @@ This is a list of all known MSNP commands and their originating version.
| ----- | - | - | -| ------ | ----- | | ----- | - | - | -| ------ | ----- |
| [`VER`](commands/ver.md) | N | Y | N | [MSNP2](versions/msnp2.md) | every MSNP version, but retaining base syntax, removed in MSNP24 | | [`VER`](commands/ver.md) | N | Y | N | [MSNP2](versions/msnp2.md) | every MSNP version, but retaining base syntax, removed in MSNP24 |
| [`INF`](commands/inf.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP3](versions/msnp3.md) (removed CTP), [MSNP8](versions/msnp8.md) (removed; automatic disconnect) | | [`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` | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP8](versions/msnp8.md) (parameter 8) | | [`CVR`](commands/cvr.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP8](versions/msnp8.md) (parameter 8) |
| `CVQ` | N | Y | N | [CVR0](versions/cvr0.md) | [MSNP8](versions/msnp8.md) (parameter 8) | | [`CVQ`](commands/cvq.md) | N | Y | N | [CVR0](versions/cvr0.md) | [MSNP8](versions/msnp8.md) (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` | 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) |
| [`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) (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.) | | [`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 instead of SND), July 2003 (not really any specific MSNP update, just soft-removed with a 502.) | | [`FND`](commands/fnd.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP5](versions/msnp5.md) (uses SDC instead of SND), 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`), [MSNP13](versions/msnp13.md) (removed: automatic disconnect) | | [`BLP`](commands/blp.md) | N | Y | Y\*| [MSNP2](versions/msnp2.md) | [MSNP10](versions/msnp10.md) (Removed List Version if `ABCHMigrated: 1`), [MSNP13](versions/msnp13.md) (removed: automatic disconnect) |
| [`GTC`](commands/gtc.md) | N | Y | Y\* | [MSNP2](versions/msnp2.md) | [MSNP10](versions/msnp10.md) (Removed List Version if `ABCHMigrated: 1`), [MSNP13](versions/msnp13.md) (removed: automatic disconnect) | | [`GTC`](commands/gtc.md) | N | Y | Y\*| [MSNP2](versions/msnp2.md) | [MSNP10](versions/msnp10.md) (Removed List Version if `ABCHMigrated: 1`), [MSNP13](versions/msnp13.md) (removed: automatic disconnect) |
| [`CHG`](commands/chg.md) | N | Y | Y | [MSNP2](versions/msnp2.md) | [MSNP8](versions/msnp8.md) (Added Client Capability flags support as parameter 2), [MSNP9](versions/msnp9.md) (MSNObject support as parameter 3) | | [`CHG`](commands/chg.md) | N | Y | Y | [MSNP2](versions/msnp2.md) | [MSNP8](versions/msnp8.md) (Added Client Capability flags support as parameter 2), [MSNP9](versions/msnp9.md) (MSNObject support as parameter 3) |
| [`IMS`](commands/ims.md) | N | Y | N | [MSNP3](versions/msnp3.md) | | | [`IMS`](commands/ims.md) | N | Y | N | [MSNP3](versions/msnp3.md) | |
| [`ACK`](commands/ack.md) | N | N | Y | [MSNP2](versions/msnp2.md) | [MSNP9](versions/msnp9.md) (Now can happen as a response to [MSG](commands/msg.md) D.) | | [`ACK`](commands/ack.md) | N | N | Y | [MSNP2](versions/msnp2.md) | [MSNP9](versions/msnp9.md) (Now can happen as a response to [MSG](commands/msg.md) D.) |
| [`NAK`](commands/nak.md) | N | N | Y | [MSNP2](versions/msnp2.md) | | | [`NAK`](commands/nak.md) | N | N | Y | [MSNP2](versions/msnp2.md) | |
| [`BYE`](commands/bye.md) | N | N | Y | [MSNP2](versions/msnp2.md) | | | [`BYE`](commands/bye.md) | N | N | Y | [MSNP2](versions/msnp2.md) | |
| [`ANS`](commands/iro.md) | N | Y | Y | [MSNP2](versions/msnp2.md) | [MSNP16](versions/msnp16.md) (Added MPOP Machine ID appended to the local user's handle parameter, delimited by a semi-colon) | | [`ANS`](commands/ans.md) | N | Y | Y | [MSNP2](versions/msnp2.md) | [MSNP16](versions/msnp16.md) (Added MPOP Machine ID appended to the local user's handle parameter, delimited by a semi-colon) |
| [`MSG`](commands/msg.md) | Y | Y | Y | [MSNP2](versions/msnp2.md) | [MSNP9](versions/msnp9.md) (Added Acknoledgement Type D) | | [`MSG`](commands/msg.md) | Y | Y | Y | [MSNP2](versions/msnp2.md) | [MSNP9](versions/msnp9.md) (Added Acknoledgement Type D) |
| [`IRO`](commands/iro.md) | N | N | Y | [MSNP2](versions/msnp2.md) | [MSNP12](versions/msnp12.md) (Added Client Capability flags support as parameter 5) | | [`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) | | [`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) | | | [`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`) |
| [`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) |
# Modifiers: # Modifiers
* `*`: Only in `SYN`. * `*`: Only in `SYN`.
* `?`: Unconfirmed, but not impossible, or needs verification. * `?`: Unconfirmed, but not impossible, or needs verification.

View file

@ -24,7 +24,7 @@ S: ACK 1
``` ```
## As a response to MSG D ## As a response to MSG D
*This only happens in [MSNP9](../versions/msnp9.md).* *Since [MSNP9](../versions/msnp9.md).*
``` ```
C: MSG 2 D 73 C: MSG 2 D 73
MIME-Version: 1.0 MIME-Version: 1.0

View file

@ -12,9 +12,9 @@ The response of this command sent after the [IRO](iro.md) list has been sent.
Where `my-handle` is the current user's handle. Where `my-handle` is the current user's handle.
In [MSNP16](../versions/msnp16.md), a UUID is appended after a semi-colon, which is your MPOP Machine ID. In [MSNP16](../versions/msnp16.md), a UUID is appended after a semi-colon, which is your MPOP Machine ID.
Where `cookie` is the `cookie` from the RNG command sent to you. Where `cookie` is the `cookie` from the [RNG](rng.md) command sent to you.
Where `session-id` is the `session-id` from the RNG command sent to you. Where `session-id` is the `session-id` from the [RNG](RNG) command sent to you.
# Server/Response # Server/Response
`ANS TrID OK` `ANS TrID OK`
@ -25,6 +25,7 @@ Where `OK` is always `OK`.
## Answering a RNG ## Answering a RNG
``` ```
S: RNG 987654331 10.0.1.200:1865 CKI 123456789.123456789.123456789 anotheruser@hotmail.com another%20user
C: ANS 1 example@hotmail.com 123456789.123456789.123456789 987654321 C: ANS 1 example@hotmail.com 123456789.123456789.123456789 987654321
S: IRO 1 1 1 anotheruser@hotmail.com another%20user S: IRO 1 1 1 anotheruser@hotmail.com another%20user
S: ANS 1 OK S: ANS 1 OK

View file

@ -9,9 +9,9 @@ It modifies if messages sent to you by users not on your Allow List (AL) are all
`BLP TrID [ AL | BL ]` `BLP TrID [ AL | BL ]`
# Server/Response # Server/Response
`BLP TrID listVersion [ AL | BL ]` `BLP TrID {list-version} [ AL | BL ]`
Where `listVersion` is the new List Version. Where `list-version` is the new List Version. Removed since [MSNP10](../commands/msnp10.md) in `ABCHMigrated: 1` mode.
# Examples # Examples

43
docs/commands/bpr.md Normal file
View file

@ -0,0 +1,43 @@
# Introduction
`BPR` is a command introduced with [MSNP5](../versions/msnp5.md).
It is a Notification Server command, without a response payload.
It specifies another user's properties. For your own properties, use [PRP](prp.md).
# Client/Request
This command can not be sent from the client.
# Server/Response
`BPR {list-version} {user-handle} property value`
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 `property` can be any of these values:
* `PHH`: Home Phone number
* `PHW`: Work Phone number
* `PHM`: Mobile Phone number
* `MOB`: Allow users to contact me via MSN Mobile
* `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`.
# Examples
## Receive new PHH from user
```
S: BPR 255 anotheruser@hotmail.com PHH 1%20(444)%20222%203333
```
## Invalid context
*Inherited from being an unimplemented command.*
```
C: BPR example@hotmail.com
```
# Known changes
* [MSNP8](../versions/msnp8.md): Removed the user's handle when used in SYN.
* [MSNP10](../versions/msnp10.md): Removed the List Version in `ABCHMigrated: 1` mode.

View file

@ -3,7 +3,7 @@
It is a Switchboard Server command, without a response payload. It is a Switchboard Server command, without a response payload.
It invites a user to a Switchboard session. It invites ("calls") a user to a Switchboard session.
# Client/Request # Client/Request
`CAL TrID user-handle` `CAL TrID user-handle`

97
docs/commands/cvq.md Normal file
View file

@ -0,0 +1,97 @@
# Introduction
`CVQ` is a command introduced with [CVR0](../versions/cvr0.md).
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.
Related to [CVR](cvr.md).
# Client/Request
`CVQ TrID locale system-type system-ver system-arch requesting-library client-version client-identification {user-handle}`
Where `locale` is a 16-bit hexadecimally encoded LCID. `0x0409` is the LCID for English, United States.
Where `system-type` is a string that defines the operating system you are using, such as `winnt`.
Where `system-ver` is the major and minor version of the operating system, such as `5.1`.
Where `system-arch` is the architecture of the processor that is used to run the client, usually `i386`.
Where `requesting-library` is the name of the library that requested this CVR, usually `MSMSGS` or `MSNMSGR`.
Where `client-version` is the current client's major, minor and patch version, should be in the format of "{M}M.m.pppp".
Where `client-identification` is the internal name of the codebase used to create `requesting-library`, usually `MSMSGS`.
Where `user-handle` is the user's handle. Included since [MSNP8](../versions/msnp8.md).
# Server/Response
`CVQ TrID recommended-version recommended-version-2 minimum-allowed-version download-url fallback-url`
Where `recommended-version` is the current version of the client for this system.
Where `recommended-version-2` is (usually) the same as `recommended-version`,
Could possibly be a maximum allowed version? (forced downgrade)
Where `minimum-allowed-version` is the lowest version the server considers "safe" to connect with.
If the client's `client-version` is lower than the server's `minimum-allowed-version`,
the client should automatically disconnect from the server,
and request an forced upgrade using the binary provided in `download-url`.
Where `download-url` is the file to download and open to update this client to `recommended-version`.
Where `fallback-url` is the URL the client opens if it failed to download `download-url` for any reason.
# Examples
*NOTE: This has been line-breaked.
Lines beginning with `..` are continuations of the previous line."
## Old
*Only used in the [CVR0](../versions/cvr0.md) implementation of [MSNP2](../versions/msnp2.md) to [MSNP7](../versions/msnp2.md).*
```
C: CVQ 1 0x0409 win 4.10 i386 MSMSGS 1.0.0863 MSMSGS
S: CVQ 1 5.0.0537 5.0.0537 1.0.0863
.. http://download.microsoft.com/download/msnmessenger/install/5.0/w98nt42kmexp/en-us/setupdl.exe
.. http://messenger.microsoft.com
```
Client disconnects from server, since it sees that `minimum-allowed` is above it's `client-version`.
## New
*Since [CVR0](../versions/cvr0.md) in [MSNP8](../versions/msnp8.md).*
```
C: CVQ 2 0x0409 winnt 5.1 i386 MSNMSGR 6.0.0602 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
```
Client disconnects from server, since it sees that `minimum-allowed` is above it's `client-version`.
## Invalid client identification or version
*This response may or may not disconnect you.*
```
C: CVQ 3 0x0409 winnt 5.0 i386 MSNMSGR 99.9.9999 MSMSGS
S: 420 3
C: CVQ 4 0x0409 winnt 5.0 i386 YCOMM 0.1.0023 MSMSGS
S: 420 4
```
## Invalid language ID
```
C: CVQ 5 0x1111 winnt 5.1 MSNMSGR 6.0.0602 MSMSGS example@hotmail.com
S: 710 5
```
## Invalid CVR
```
C: CVQ 6 spaghetti
S: 731 6
```
Server disconnects client.
# Known changes
* [MSNP2](../versions/msnp2.md): Changed [CVR](cvr.md) to [CVQ](cvq.md), Added a fallback URL parameter to the response (parameter 5).
* [MSNP8](../versions/msnp8.md): Added support for this command in Dispatch Servers.
* Removed in MSNP24.

97
docs/commands/cvr.md Normal file
View file

@ -0,0 +1,97 @@
# Introduction
`CVR` is a command introduced with [MSNP2](../versions/msnp2.md).
It is a Notification Server and as of [MSNP8](../versions/msnp8.md) 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.
Related to [CVQ](cvq.md).
# Client/Request
`CVR TrID locale system-type system-ver system-arch requesting-library client-version client-identification {user-handle}`
Where `locale` is a 16-bit hexadecimally encoded LCID. `0x0409` is the LCID for English, United States.
Where `system-type` is a string that defines the operating system you are using, such as `winnt`.
Where `system-ver` is the major and minor version of the operating system, such as `5.1`.
Where `system-arch` is the architecture of the processor that is used to run the client, usually `i386`.
Where `requesting-library` is the name of the library that requested this CVR, usually `MSMSGS` or `MSNMSGR`.
Where `client-version` is the current client's major, minor and patch version, should be in the format of "{M}M.m.pppp".
Where `client-identification` is the internal name of the codebase used to create `requesting-library`, usually `MSMSGS`.
Where `user-handle` is the user's handle. Included since [MSNP8](../versions/msnp8.md).
# Server/Response
`CVR TrID recommended-version recommended-version-2 minimum-allowed-version download-url fallback-url`
Where `recommended-version` is the current version of the client for this system.
Where `recommended-version-2` is (usually) the same as `recommended-version`,
Could possibly be a maximum allowed version? (forced downgrade)
Where `minimum-allowed-version` is the lowest version the server considers "safe" to connect with.
If the client's `client-version` is lower than the server's `minimum-allowed-version`,
the client should automatically disconnect from the server,
and request an forced upgrade using the binary provided in `download-url`.
Where `download-url` is the file to download and open to update this client to `recommended-version`.
Where `fallback-url` is the URL the client opens if it failed to download `download-url` for any reason.
# Examples
*NOTE: This has been line-breaked.
Lines beginning with `..` are continuations of the previous line."
## Post-login
*Only used in [MSNP2](../versions/msnp2.md) to [MSNP7](../versions/msnp2.md).*
```
C: CVR 1 0x0409 win 4.10 i386 MSMSGS 1.0.0863 MSMSGS
S: CVR 1 5.0.0537 5.0.0537 1.0.0863
.. http://download.microsoft.com/download/msnmessenger/install/5.0/w98nt42kmexp/en-us/setupdl.exe
.. http://messenger.microsoft.com
```
Client asks if user would like to update, and stays connected.
## Pre-login
*Since [MSNP8](../versions/msnp8.md).*
```
C: CVR 2 0x0409 winnt 5.1 i386 MSNMSGR 6.0.0602 MSMSGS example@hotmail.com
S: CVR 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
```
Client disconnects from server, since it sees that `minimum-allowed` is above it's `client-version`.
## Invalid client identification or version
*This response may or may not disconnect you.*
```
C: CVR 3 0x0409 winnt 5.0 i386 MSNMSGR 99.9.9999 MSMSGS
S: 420 3
C: CVR 4 0x0409 winnt 5.0 i386 YCOMM 0.1.0023 MSMSGS
S: 420 4
```
## Invalid language ID
```
C: CVR 5 0x1111 winnt 5.1 MSNMSGR 6.0.0602 MSMSGS example@hotmail.com
S: 710 5
```
## Invalid CVR
```
C: CVR 6 spaghetti
S: 731 6
```
Server disconnects client.
# Known changes
* [MSNP2](../versions/msnp2.md): Added a fallback URL parameter to the response (parameter 5).
* [MSNP8](../versions/msnp8.md): Added support for this command in Dispatch Servers.
* Removed in MSNP24.

33
docs/commands/fln.md Normal file
View file

@ -0,0 +1,33 @@
# Introduction
`FLN` is a command introduced with [MSNP2](../commands/msnp2.md).
It is a Notification Server command, without either a request or response payload.
It specifies that another user in your contact list has gone offline.
# Client/Request
This command can not be sent from the client.
# Server/Response
`FLN {user-handle}`
Where `user-handle` is the related user's handle.
# Examples
## User goes offline
```
S: FLN anotheruser@hotmail.com
```
## Invalid context
*Inherited from being an unimplemented command.*
```
C: FLN Hotmail
```
Server disconnects client.
# Known changes
None.

View file

@ -9,9 +9,9 @@ It modifies whenever your client handles new users in your Reverse List (RL).
`GTC TrID [ A | N ]` `GTC TrID [ A | N ]`
# Server/Response # Server/Response
`GTC TrID listVersion [ A | N ]` `GTC TrID {list-version} [ A | N ]`
Where `listVersion` is the new List Version. Where `list-version` is the new List Version. Removed since [MSNP10](../versions/msnp10.md) in `ABCHMigrated: 1` mode.
# Examples # Examples

View file

@ -19,7 +19,7 @@ Where `participant-handle` is the related user's handle.
Where `participant-friendly-name` is the related user's Friendly Name. Where `participant-friendly-name` is the related user's Friendly Name.
Where `client-capabilities` is the related user's Client Capabilities, only in [MSNP12](../versions/msnp12.md) and above. Where `client-capabilities` is the related user's Client Capabilities, included since [MSNP12](../versions/msnp12.md).
# Examples # Examples
@ -31,7 +31,7 @@ S: ANS 1 OK
``` ```
## With Client Capabilities ## With Client Capabilities
*Only in [MSNP12](../versions/msnp12.md) and above.* *Since [MSNP12](../versions/msnp12.md).*
``` ```
C: ANS 2 example@hotmail.com 123456789.123456789.123456789 987654321 C: ANS 2 example@hotmail.com 123456789.123456789.123456789 987654321
S: IRO 2 1 1 anotheruser@hotmail.com another%20user 1342554172 S: IRO 2 1 1 anotheruser@hotmail.com another%20user 1342554172

View file

@ -15,7 +15,7 @@ Where `user-handle` is the joined user's handle.
Where `friendly-name` is the joined user's Friendly Name. Where `friendly-name` is the joined user's Friendly Name.
Where `client-capabilities` is the related user's Client Capabilities, only in [MSNP12](../versions/msnp12.md) and above. Where `client-capabilities` is the related user's Client Capabilities. Included since [MSNP12](../versions/msnp12.md).
# Examples # Examples
@ -25,6 +25,7 @@ S: JOI anotheruser@hotmail.com another%20user
``` ```
## With Client Capabilities ## With Client Capabilities
*Since [MSNP12](../versions/msnp12.md)*
``` ```
S: JOI anotheruser@hotmail.com another%20user 1342554172 S: JOI anotheruser@hotmail.com another%20user 1342554172
``` ```

194
docs/commands/lst.md Normal file
View file

@ -0,0 +1,194 @@
# Introduction
`LST` is a command introduced with [MSNP2](../versions/msnp2.md).
It is a Notification Server command, without a request or response payload.
It retrieves all users in any of the avaliable lists.
# Client/Request
`LST TrID [ FL | AL | BL | RL ]`
*NOTE: There is a possibility that PL can be retrieved this way too.*
# Server/Response
## Outside of SYN
`LST TrID [ FL | AL | BL | RL ] list-version index size-of-list user-handle stored-friendly-name {groups}`
Where `list-version` is the current List Version.
Where `index` is a number that can not go out of `size-of-list`. If the list is empty this is `0`.
Where `size-of-list` is the upper bounds for `index`. If the list is empty this is `0`.
Where `user-handle` is the related user's handle.
If the list is empty this parameter is not in the response.
Where `stored-friendly-name` is the friendly name stored for this contact on the server.
If the list is empty this parameter is not in the response.
Where `groups` is a comma-delimited list of Group IDs this contact is in,
only appended if the list (parameter 1) is set to FL. Defaults to `0`.
Added since [MSNP7](../versions/msnp7.md).
## In SYN
### First generation
*Applies for [MSNP2](../versions/msnp2.md) to [MSNP6](../versions/msnp6.md).*
Same as the response [Outside of SYN](#outside-of-syn).
### Groups support
*Applies for [MSNP7](../versions/msnp7.md).*
`LST TrID [ FL | AL | BL | RL ] list-version index size-of-list user-handle stored-friendly-name {groups}`
Where `groups` is a comma-delimited list of Group IDs this contact is in,
only appended if the list (parameter 1) is set to FL. Defaults to `0`.
### Second generation
*Applies for [MSNP8](../versions/msnp8.md) and [MSNP9](../versions/msnp9.md)*
`LST user-handle stored-friendly-name list-bits {groups}`
Where `list-bits` are in the format:
* 1: Forward List (FL)
* 2: Allow List (AL)
* 4: Block List (BL)
* 8: Reverse List (RL)
Where `groups` is a comma-delimited list of Group IDs this contact is in,
only appended if Forward List (FL) is set in `list-bits`. Defaults to `0`.
### Third generation
*Applies for [MSNP10](../versions/msnp10.md) with `ABCHMigrated: 0`.*
`LST N=user-handle F=stored-friendly-name list-bits {groups}`
Same parameters as the [second generation](#second-generation).
### Fourth generation
*Applies for [MSNP10](../versions/msnp10.md) and [MSNP11](../versions/msnp11.md) with `ABCHMigrated: 1`.*
`LST N=user-handle F=stored-friendly-name C=contact-guid list-bits {groupGuids}`
Where `contact-guid` is the GUID/UUID of the contact.
Where `groupGuids` is a comma-delimited list of Group GUIDs this contact is in,
only appending if Forward List (FL) is set in `list-bits`, defaults to whatever "Other Contacts"'s GUID is.
### Fifth generation
*Applies for [MSNP12](../versions/msnp12.md).*
`LST N=user-handle F=stored-friendly-name C=contact-guid list-bits network-id {groupGuids}`
Where `network-id` is any Network ID bits:
* 1: Messenger
* 2: Office Communicator
* 4: Telephone
* 8: "MNI" or Mobile Network Interop, used for some mobile networks.
* 16: SMTP or Simple Mail Transfer Protocol, used for Japanese mobile networks.
* 32: Yahoo! Messenger network, only seen in [MSNP14](../versions/msnp14.md) and higher.
# Examples
## Client-initated
```
C: LST 1 FL
S: LST 1 FL 254 1 1 anotheruser@example.com another%20user
C: LST 2 BL
S: LST 2 BL 254 0 0
```
## From SYN
### From the beginning
*Only in [MSNP2](../versions/msnp2.md) to [MSNP6](../versions/msnp6.md).*
```
C: SYN 3 0
S: SYN 3 4
```
...
```
S: LST 3 FL 4 1 1 anotheruser@hotmail.com another%20user
S: LST 3 AL 4 1 1 anotheruser@hotmail.com another%20user
S: LST 3 BL 4 0 0
S: LST 3 RL 4 1 1 anotheruser@hotmail.com another%20user
```
### Using groups
*Only in [MSNP7](../versions/msnp7.md).*
```
C: SYN 4 0
S: SYN 4 5
```
...
```
S: LSG 4 5 1 1 0 Other%20Contacts 0
S: LST 4 FL 5 1 1 anotheruser@hotmail.com another%20user 0
S: LST 4 AL 5 1 1 anotheruser@hotmail.com another%20user
S: LST 4 BL 5 0 0
S: LST 4 RL 5 1 1 anotheruser@hotmail.com another%20user
```
### Using second generation
*Only in [MSNP8](../versions/msnp8.md) and [MSNP9](../versions/msnp9.md).*
```
C: SYN 5 0
S: SYN 5 6 1 1
```
...
```
S: LSG 0 Other%20Contacts 0
S: LST anotheruser@hotmail.com another%20user 11 0
```
### Using third generation
*Only in [MSNP10](../versions/msnp10.md) with `ABCHMigrated: 0`.*
```
C: SYN 6 0 0
S: SYN 6 7 0 1 1
```
...
```
S: LSG Other%20Contacts 0
S: LST N=anotheruser@hotmail.com F=another%20user 11 0
```
### Using fourth generation
*Only in [MSNP10](../versions/msnp10.md) and [MSNP11](../versions/msnp11.md) with `ABCHMigrated: 1`.*
```
C: SYN 7 0 0
S: SYN 7 2024-10-15T14:49:40.1100000-07:00 2024-10-15T14:49:40.1100000-07:00 1 1
```
...
```
S: LSG Other%20Contacts d6deeacd-7849-4de4-93c5-d130915d0042
S: LST N=anotheruser@hotmail.com F=another%20user C=c1f9a363-4ee9-4a33-a434-b056a4c55b98 11 d6deeacd-7849-4de4-93c5-d130915d0042
```
### Using fifth generation
*Only in [MSNP12](../versions/msnp12.md).*
```
C: SYN 8 0 0
S: SYN 8 2024-10-15T15:01:30.1200000-07:00 2024-10-15T15:01:30.1200000-07:00 1 1
```
...
```
S: LSG Other%20Contacts d6deeacd-7849-4de4-93c5-d130915d0042
S: LST N=anotheruser@hotmail.com F=another%20user C=c1f9a363-4ee9-4a33-a434-b056a4c55b98 11 1 d6deeacd-7849-4de4-93c5-d130915d0042
```
# Known changes
* [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 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.

View file

@ -16,7 +16,7 @@ data
* N: Negative-Acknowledged, a [NAK](nak.md) response is sent if the messaged failed to send successfully. * N: Negative-Acknowledged, a [NAK](nak.md) response is sent if the messaged failed to send successfully.
* D: Data, a version of Acknowledged that also has a response of error 282 if the message was poorly formatted. * D: Data, a version of Acknowledged that also has a response of error 282 if the message was poorly formatted.
Acknowledgement Type `D` is only defined in [MSNP9](../versions/msnp9.md) and above. Acknowledgement Type `D` is defined since [MSNP9](../versions/msnp9.md).
Where `length` is the `length` in bytes of `data`. Where `length` is the `length` in bytes of `data`.
@ -76,7 +76,7 @@ S: NAK 3
``` ```
### Data message ### Data message
*This only happens in [MSNP9](../versions/msnp9.md).* *Since [MSNP9](../versions/msnp9.md).*
``` ```
C: MSG 4 D 73 C: MSG 4 D 73
MIME-Version: 1.0 MIME-Version: 1.0
@ -87,6 +87,7 @@ S: ACK 4
``` ```
### Poorly formatted data message ### Poorly formatted data message
*Since [MSNP9](../versions/msnp9.md).*
``` ```
C: MSG 5 D 74 C: MSG 5 D 74
MIME-Version: 1.0 MIME-Version: 1.0
@ -149,7 +150,7 @@ id: 2
``` ```
The `id` header is only added for [MSNP3](../versions/msnp3.md) and above for Passport automatic authentication support. Since [MSNP3](../versions/msnp3.md), the `id` header was added for Passport automatic authentication support.
#### Mailbox activity #### Mailbox activity
``` ```

23
docs/commands/png.md Normal file
View file

@ -0,0 +1,23 @@
# Introduction
`PNG` is a command introduced with [MSNP2](../versions/msnp2.md).
It is a Notification Server command, without either a request or response payload.
Makes the server respond with a [QNG](qng.md) command.
# Client/Request
`PNG`
# Server/Response
The server responds to this command via [QNG](qng.md).
# Examples
## Client-sent
```
C: PNG
S: QNG
```
# Known changes
None.

49
docs/commands/prp.md Normal file
View file

@ -0,0 +1,49 @@
# Introduction
`PRP` is a command introduced with [MSNP5](../versions/msnp5.md).
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).
# Client/Request
`PRP TrID property value`
Where `property` can be any of these values:
* `PHH`: Home Phone number
* `PHW`: Work Phone number
* `PHM`: Mobile Phone number
* `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.
# Server/Response
`PRP TrID {list-version} property value`
Where `list-version` is the new List Version. Removed since [MSNP10](../versions/msnp10.md) in `ABCHMigrated: 1` mode.
The following `property` values are only set by the server:
* `MBE`: MSN Mobile enabled
* `WWE`: [[MSNP9](../versions/msnp9.md)+] MSN Direct / Web Watch enabled
* `HSB`: [[MSNP11](../versions/msnp11.md)+] Has Blog (MSN Space)
# Examples
## Setting PHH
```
C: PRP 1 PHH 1%20(222)%203333
S: PRP 1 255 PHH 1%20(222)%203333
```
## Unknown property
*NOTE: There is no defined behavour for this command specifically.*
```
C: PRP 2 NEW very%20yes
```
Server disconnects client.
# Known changes
* [MSNP8](../versions/msnp8.md): During SYN, 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.

40
docs/commands/qng.md Normal file
View file

@ -0,0 +1,40 @@
# Introduction
`QNG` is a command introduced with [MSNP2](../versions/msnp2.md).
It is a Notification Server command, without either a request or response payload.
It is a response to the [PNG](../commands/png.md) command.
# Client/Request
This command can not be sent from the client.
# Server/Response
`QNG {next-seconds}`
Where `next-seconds` is the amount of seconds until the client should send another [PNG](../commands/png.md). Added since [MSNP9](../versions/msnp9.md).
# Examples
## Server-reply, old
```
C: PNG
S: QNG
```
## Server-reply, new
*Since [MSNP9](../commands/msnp9.md).*
```
C: PNG
S: QNG 50
```
## Invalid context
*Inherited from being an unimplemented command.*
```
C: QNG
```
Server disconnects client.
# Known changes
* [MSNP9](../versions/msnp9.md): Added a next seconds parameter to server response.

43
docs/commands/rng.md Normal file
View file

@ -0,0 +1,43 @@
# Introduction
`RNG` is a command introduced with [MSNP2](../commands/msnp2.md).
It is a Notification Server command, without a response payload.
Used to invite ("ring") you to a Switchboard session.
# Client/Request
This command can not be sent from the client.
# Server/Response
`RNG session-id address:port CKI cookie inviter-handle inviter-friendly-name`
Where `session-id` is the Switchboard session identification number you need in [ANS](ans.md).
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 `inviter-handle` is the inviter's handle.
Where `inviter-handle` is the inviter's friendly name.
# Examples
## Getting a Switchboard invite
```
S: RNG 987654331 10.0.1.200:1865 CKI 123456789.123456789.123456789 anotheruser@hotmail.com another%20user
```
## Invalid context
*Inherited from being an unimplemented command.*
```
C: RNG 1
```
Server disconnects client.
# Known changes
None.

View file

@ -27,17 +27,26 @@ More is to come soon! Hopefully!
* [MSNP6](versions/msnp6.md): What makes the "Account must be verified before using the service" dialog show up? * [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. * [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 FND exist? Rumors said it did shortly before it got killed in all protocols.
* [MSNP8](versions/msnp8.md): Did [LST](commands/lst.md) change outside of SYN in this version?
* [MSNP10](versions/msnp10.md): Asynchronous `BPR MFN`s from the server. Does it really? * [MSNP10](versions/msnp10.md): Asynchronous `BPR MFN`s from the server. Does it really?
* [MSNP10](versions/msnp10.md): Did [LST](commands/lst.md) change outside of SYN in this version?
* [MSNP11](versions/msnp11.md): How does `ABCHMigrated: 0` really work now? `OUT MIG` still exists. * [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?
* All Protocols: Any error code known to exist but is missing from the pages. * 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: 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 since [MSNP10](versions/msnp10.md): Use legitimate CVR 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)? * [FND command](commands/fnd.md): What was returned when this was disabled in 2003 in [MSNP2](versions/msnp2.md) to [MSNP6](versions/msnp6.md)?
* [FND command](commands/fnd.md): How did sending an invitation work in [MSNP2](versions/msnp2.md)-[MSNP4](versions/msnp4.md)? Client Version 3.0 using [MSNP4](versions/msnp4.md) just uses SND instead, but what about Client Version 1.0 to 2.2? * [FND command](commands/fnd.md): How did sending an invitation work in [MSNP2](versions/msnp2.md)-[MSNP4](versions/msnp4.md)? Client Version 3.0 using [MSNP4](versions/msnp4.md) just uses SND instead, but what about Client Version 1.0 to 2.2?
* [IMS command](commands/ims.md): What is the unknown number (that is usually `0`) in the response? * [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 D right? * [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 D? * [MSG command](commands/msg.md): What can return from [MSG](commands/msg) 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. * [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.
## Unsolved Mysteries
* [FND command](commands/fnd.md): Why does this have an iterator if you can't send it over multiple packets?
* [USR command](commands/usr.md): Speaking of CKI, Why is it not specified when authenticating to Switchboard?
* The Draft: Why did the draft go vague on the errors? The list was there, but no explanations on what can cause them... Odd.
# Common (or not) Terms # Common (or not) Terms
* Official Client: MSN Messenger (Service) or Windows Live Messenger. * Official Client: MSN Messenger (Service) or Windows Live Messenger.

View file

@ -7,7 +7,7 @@ It is used for requesting the latest client information in case no other protoco
# Command information # Command information
It introduces the commands: It introduces the commands:
* CVQ * [CVQ](../commands/cvq.md)
*No error codes were known to be introduced in this version* *No error codes were known to be introduced in this version*
@ -15,7 +15,7 @@ It introduces the commands:
# Known changes # Known changes
(from Beta 2): (from Beta 2):
* Changed CVR to CVQ * Changed [CVR](../commands/cvr.md) to [CVQ](../commands/cvq.md)
* CVQ: Added fallback URL to response (parameter 5) * CVQ: Added fallback URL to response (parameter 5)
* [[MSNP8](msnp8.md) and higher]: Added current principle address to request (parameter 8) * [[MSNP8](msnp8.md) and higher]: Added current principle address to request (parameter 8)

View file

@ -25,20 +25,21 @@ The following commands were removed in this version:
Client: `SYN transactionID listVersion settingsVersion`. Client: `SYN transactionID listVersion settingsVersion`.
Server: `SYN transactionID listVersion settingsVersion numberOfContacts numberOfGroups`. Server: `SYN transactionID listVersion settingsVersion numberOfContacts numberOfGroups`.
`settingsVersion` is always 0. `settingsVersion` is always 0.
* Current display name is removed from USR, now is returned with other user properties (PRPs) in SYN. * Current display name is removed from USR, now is returned with other user properties ([PRP](../commands/prp.md) commands) in SYN.
* PRP MFN replaces REA (current passport). SBP (contact's address) MFN replaces other uses of REA. * [PRP](../commands/prp.md) MFN replaces REA (current passport). SBP (contact's address) MFN replaces other uses of REA.
* [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: * 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: The request and response's list versions are now ISO 8601 with 7 subsecond digits,
usually with a -07:00 timezone offset. usually with a -07:00 timezone offset.
the previously unused second parameter (both request and response) is used as the Last Settings Version, 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. and follows the same time format as List Versions now do.
LST: GUID specified as `C=` parameter, group IDs are now GUIDs. [LST](../commands/lst.md): GUID specified as `C=` parameter, group IDs are now GUIDs.
ADC, REM: uses GUIDs instead of contact emails if the list is FL, and also for groups. ADC, REM: uses GUIDs instead of contact emails if the list is FL, and also for groups.
LSG, ADG: Uses GUIDs instead of IDs. LSG, ADG: Uses GUIDs instead of IDs.
SBP: Uses the contact's GUID instead of the Contact Address. SBP: Uses the contact's GUID instead of the Contact Address.
* All list version updating commands no longer return the current list version when used. * All list version updating commands no longer return the current list version when used.
[GTC](../commands/gtc.md), [BLP](../commands/blp.md), ADG, REG, RMG, REM, PRP commands are affected by this change. [GTC](../commands/gtc.md), [BLP](../commands/blp.md), ADG, REG, RMG, REM, [PRP](../commands/prp.md) commands are affected by this change.
* Asynchronous BPRs also do not include the new list version number, * Asynchronous [BPR](../commands/bpr.md) commands also do not include the new list version number,
and now provide Friendly Name (MFN) changes instead of sending entire NLNs [needs to be confirmed]. and now provide Friendly Name (MFN) changes instead of sending entire NLNs [needs to be confirmed].
* 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). 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, * Added new server-side [OUT](../commands/out.md) reasons: MIG, if the server has migrated you to ABCH,
@ -48,6 +49,8 @@ The following commands were removed in this version:
* First protocol version to remove a core command implemented since [MSNP2](msnp2.md) draft (ADD). * First protocol version to remove a core command implemented since [MSNP2](msnp2.md) draft (ADD).
# Client-server communication example # 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 MSNP10 MSNP9 CVR0 C: VER 1 MSNP10 MSNP9 CVR0
S: VER 1 MSNP10 S: VER 1 MSNP10
@ -102,10 +105,10 @@ S: SYN 8 16 0 1 1
S: GTC A S: GTC A
S: BLP AL S: BLP AL
S: PRP MFN example%20user S: PRP MFN example%20user
S: PRP PHH 123-4567 S: PRP PHH 123%20(4567)
S: LSG Other%20Contacts 0 S: LSG Other%20Contacts 0
S: LST N=anotheruser@hotmail.com F=another%20user 11 0 S: LST N=anotheruser@hotmail.com F=another%20user 11 0
S: BPR PHH 1%20444%20222-3333 S: BPR PHH 1%20(222)%20333%204444
C: CHG 9 NLN C: CHG 9 NLN
S: CHG 9 NLN S: CHG 9 NLN
S: OUT MIG S: OUT MIG
@ -154,10 +157,10 @@ S: SYN 14 2024-09-28T17:18:18.6400000-07:00 2024-09-28T17:18:18.6400000-07:00 1
S: GTC A S: GTC A
S: BLP AL S: BLP AL
S: PRP MFN example%20user S: PRP MFN example%20user
S: PRP PHH 123-4567 S: PRP PHH 123%20(4567)
S: LSG Other%20Contacts d6deeacd-7849-4de4-93c5-d130915d0042 S: LSG Other%20Contacts d6deeacd-7849-4de4-93c5-d130915d0042
S: LST N=anotheruser@hotmail.com F=another%20user C=c1f9a363-4ee9-4a33-a434-b056a4c55b98 11 d6deeacd-7849-4de4-93c5-d130915d0042 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%20444%20222-3333 S: BPR PHH 1%20(222)%20333%204444
C: CHG 15 NLN C: CHG 15 NLN
S: CHG 15 NLN S: CHG 15 NLN
C: OUT C: OUT

View file

@ -29,6 +29,8 @@ It introduces the notification service commands:
* Official Client: [OUT](../commands/out.md) SSD is actually implemented now. * Official Client: [OUT](../commands/out.md) SSD is actually implemented now.
# Client-server communication example # 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 MSNP10 MSNP9 CVR0 C: VER 1 MSNP10 MSNP9 CVR0
S: VER 1 MSNP10 S: VER 1 MSNP10

View file

@ -18,11 +18,13 @@ It introduces the notification service commands:
(from [MSNP11](msnp11.md)): (from [MSNP11](msnp11.md)):
* Network IDs are introduced, each bit represents a contact's service, with bit 0/decimal 1 being MSNP. * Network IDs are introduced, each bit represents a contact's service, with bit 0/decimal 1 being MSNP.
* Switchboard commands [JOI](../commands/joi.md) and [IRO](../commands/iro.md) have a new parameter for the Client Capabilities of the relevant user. * Switchboard commands [JOI](../commands/joi.md) and [IRO](../commands/iro.md) have a new parameter for the Client Capabilities of the relevant user.
* LST has the Network ID after the list bits (on any list), but before the Group ID (if on FL). * [LST](../commands/lst.md) has the Network ID after the list bits (on any list), but before the Group ID (if on FL).
* Official Client: Uses Passport 3.0 (via the Microsoft Identity Common Runtime Library). * 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: Dropped support for older operating systems, Now requires Windows XP or higher.
# Client-server communication example # 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 MSNP12 MSNP11 MSNP10 CVR0 C: VER 1 MSNP12 MSNP11 MSNP10 CVR0
S: VER 1 MSNP12 S: VER 1 MSNP12
@ -78,10 +80,10 @@ S: SYN 8 2024-09-29T11:27:30.2300000-07:00 2024-09-28T17:18:18.6400000-07:00
S: GTC A S: GTC A
S: BLP AL S: BLP AL
S: PRP MFN example%20user S: PRP MFN example%20user
S: PRP PHH 123-4567 S: PRP PHH 123%20(4567)
S: LSG Other%20Contacts d6deeacd-7849-4de4-93c5-d130915d0042 S: LSG Other%20Contacts d6deeacd-7849-4de4-93c5-d130915d0042
S: LST N=anotheruser@hotmail.com F=another%20user C=c1f9a363-4ee9-4a33-a434-b056a4c55b98 11 1 d6deeacd-7849-4de4-93c5-d130915d0042 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%20444%20222-3333 S: BPR PHH 1%20(222)%20333%204444
C: GCF 9 Shields.xml C: GCF 9 Shields.xml
S: GCF 9 Shields.xml 145 S: GCF 9 Shields.xml 145
<?xml version= "1.0" encoding="utf-8" ?><config><shield><cli maj="7" min="0" minbld="0" maxbld="9999" deny="" /></shield><block></block></config> <?xml version= "1.0" encoding="utf-8" ?><config><shield><cli maj="7" min="0" minbld="0" maxbld="9999" deny="" /></shield><block></block></config>

View file

@ -15,21 +15,21 @@ It introduces the notification service commands:
* ADD * ADD
* [BLP](../commands/blp.md) * [BLP](../commands/blp.md)
* [CHG](../commands/chg.md) * [CHG](../commands/chg.md)
* CVR (not in draft) * [CVR](../commands/cvr.md) (not in draft)
* [FND](../commands/fnd.md) (not in draft) * [FND](../commands/fnd.md) (not in draft)
* FLN * [FLN](../commands/fln.md)
* [GTC](../commands/gtc.md) * [GTC](../commands/gtc.md)
* [INF](../commands/inf.md) * [INF](../commands/inf.md)
* ILN * ILN
* LST * [LST](../commands/lst.md)
* [MSG](../commands/msg.md) * [MSG](../commands/msg.md)
* NLN * NLN
* [OUT](../commands/out.md) * [OUT](../commands/out.md)
* PNG (not in draft) * [PNG](../commands/png.md) (not in draft)
* QNG (not in draft) * [QNG](../commands/qng.md) (not in draft)
* REA (not in draft) * REA (not in draft)
* REM * REM
* RNG * [RNG](../commands/rng.md)
* SND (not in draft) * SND (not in draft)
* SYN * SYN
* URL (not in draft) * URL (not in draft)
@ -145,6 +145,7 @@ C: REA 12 anotheruser@hotmail.com another%20user
S: REA 12 4 anotheruser@hotmail.com another%20user S: REA 12 4 anotheruser@hotmail.com another%20user
C: REA 13 example@hotmail.com example%20user C: REA 13 example@hotmail.com example%20user
S: REA 13 5 example@hotmail.com example%20user S: REA 13 5 example@hotmail.com example%20user
S: FLN anotheruser@hotmail.com
C: OUT C: OUT
``` ```
Client disconnects from server Client disconnects from server

View file

@ -21,6 +21,7 @@ It introduces the error codes:
(from [MSNP2](msnp2.md)): (from [MSNP2](msnp2.md)):
* [XFR](../commands/xfr.md): Added a new parameter that is always 0. No use is known or documented. * [XFR](../commands/xfr.md): Added a new parameter that is always 0. No use is known or documented.
* Added Passport Site IDs to URL (parameter 3). * Added Passport Site IDs to URL (parameter 3).
* Added Hotmail's Passport Site ID to new e-mail notifications.
* Initial profile: Added Passport intergration fields. * Initial profile: Added Passport intergration fields.
* Font information has been added to Switchboard MSGs. * Font information has been added to Switchboard MSGs.
* Multiple error-codes unimplemented in 1.x that were in the draft are now implemented in the Official Client. * Multiple error-codes unimplemented in 1.x that were in the draft are now implemented in the Official Client.

View file

@ -6,10 +6,10 @@ It was introduced officially in Client Version 3.0.0283.
# Command information # Command information
It introduces the notification service commands: It introduces the notification service commands:
* BPR * [BPR](../commands/bpr.md)
* NOT * NOT
* PAG * PAG
* PRP * [PRP](../commands/prp.md)
* SDC * SDC
*No switchboard or dispatch service commands were known to be introduced in this version* *No switchboard or dispatch service commands were known to be introduced in this version*
@ -82,7 +82,7 @@ S: SYN 8 6
S: GTC 8 6 A S: GTC 8 6 A
S: BLP 8 6 AL S: BLP 8 6 AL
S: LST 8 FL 6 1 1 anotheruser@hotmail.com another%20user S: LST 8 FL 6 1 1 anotheruser@hotmail.com another%20user
S: BPR 6 anotheruser@hotmail.com PHH 1%20222-3333 S: BPR 6 anotheruser@hotmail.com PHH 1%20(222)%203333
S: BPR 6 anotheruser@hotmail.com PHW S: BPR 6 anotheruser@hotmail.com PHW
S: BPR 6 anotheruser@hotmail.com PHM S: BPR 6 anotheruser@hotmail.com PHM
S: BPR 6 anotheruser@hotmail.com MOB N S: BPR 6 anotheruser@hotmail.com MOB N
@ -103,9 +103,9 @@ S: NOT 431
</BODY> </BODY>
</MSG> </MSG>
</NOTIFICATION> </NOTIFICATION>
C: PRP 10 PHH 123-4567 C: PRP 10 PHH 123%20(4567)
S: PRP 10 7 PHH 123-4567 S: PRP 10 7 PHH 123%20(4567)
S: BPR 8 anotheruser@hotmail.com PHH 1%20444%20222-3333 S: BPR 8 anotheruser@hotmail.com PHH 1%20(222)%20333%204444
C: OUT C: OUT
``` ```
Client disconnects from server Client disconnects from server

View file

@ -19,7 +19,7 @@ It introduces the notification service commands:
# Known changes # Known changes
(from [MSNP5](msnp5.md)): (from [MSNP5](msnp5.md)):
* USR OK now has a verified bit (parameter 4), if 0, shows a warning to verify the account. * USR 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 NOTE: Your display name will be forced to be
`example@hotmail.com (E-Mail Address Not Verified)`, and cannot be changed. `example@hotmail.com (E-Mail Address Not Verified)`, and cannot be changed.
* Client-server challenges were introduced. The format for the response is * Client-server challenges were introduced. The format for the response is
`MD5(challenge + clientSecret)` as a lowercase hex-string. `MD5(challenge + clientSecret)` as a lowercase hex-string.

View file

@ -27,7 +27,7 @@ It introduces the error codes:
* REMs with the list set to FL with a group ID only removes that user from the respective group, not the FL. * REMs with the list set to FL with a group ID only removes that user from the respective group, not the FL.
* Adds with the list set to FL with a group ID only adds that user from the respective group, not to the FL. * Adds with the list set to FL with a group ID only adds that user from the respective group, not to the FL.
* SYN now includes LSG entries for groups. * SYN now includes LSG entries for groups.
* LST (either from itself or a SYN response ) now includes contact group numbers for the FL list. * [LST](../commands/lst.md) (either from itself or a SYN response) now includes contact group numbers for the FL list.
* [XFR](../commands/xfr.md) NS's now include the server it was sent from. * [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. * 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. Error code 604 is no longer handled since Client Version 2.0.
@ -82,7 +82,7 @@ S: SYN 8 9
S: SYN 8 9 S: SYN 8 9
S: GTC 8 9 A S: GTC 8 9 A
S: BLP 8 9 AL S: BLP 8 9 AL
S: PRP 8 9 PHH 123-4567 S: PRP 8 9 PHH 123%20(4567)
S: PRP 8 9 PHW S: PRP 8 9 PHW
S: PRP 8 9 PHM S: PRP 8 9 PHM
S: PRP 8 9 MOB N S: PRP 8 9 MOB N
@ -90,7 +90,7 @@ S: PRP 8 9 MBE N
S: LSG 8 9 1 2 0 Other%20Contacts 0 S: LSG 8 9 1 2 0 Other%20Contacts 0
S: LSG 8 9 2 2 1 Friends 0 S: LSG 8 9 2 2 1 Friends 0
S: LST 8 FL 9 1 1 anotheruser@hotmail.com another%20user 0 S: LST 8 FL 9 1 1 anotheruser@hotmail.com another%20user 0
S: BPR 9 anotheruser@hotmail.com PHH 1%20444%20222-3333 S: BPR 9 anotheruser@hotmail.com PHH 1%20(222)%20333%204444
S: BPR 9 anotheruser@hotmail.com PHW S: BPR 9 anotheruser@hotmail.com PHW
S: BPR 9 anotheruser@hotmail.com PHM S: BPR 9 anotheruser@hotmail.com PHM
S: BPR 9 anotheruser@hotmail.com MOB N S: BPR 9 anotheruser@hotmail.com MOB N

View file

@ -17,20 +17,21 @@ The following commands were removed in this version:
(from [MSNP7](msnp7.md)): (from [MSNP7](msnp7.md)):
* Being the first protocol split, * Being the first protocol split,
all released clients that support MSNP8 do not support any previous versions. all released clients that support MSNP8 do not support any previous versions.
* Login process now VER-CVR-USR instead of VER-INF-USR. * 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. * USR OK has a new parameter, usually? 0, but of currently unknown use.
* Introduced `TWN` authentication method, which uses Passport 1.4 over HTTPS. * Introduced `TWN` authentication method, which uses Passport 1.4 over HTTPS.
* Reworked SYN and related response commands drastically: * Reworked SYN and related response commands drastically:
Iterators are gone, now total size of both groups and total contacts included in SYN response. Iterators are gone, now total size of both groups and total contacts included in SYN response.
All transaction IDs and list versions removed from response commands (now treated as asynchronous commands). All transaction IDs and list versions removed from response commands (now treated as asynchronous commands).
Unset properties (PRPs) are now not sent. Hurray. Unset properties ([PRP](../commands/prp.md) commands) are now omitted. Hurray.
* CVR from client now has a new 8th parameter, which is the current user. * [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. ClientPort needs to be endian swapped for it's correct value.
Formula: `y = (((x & 0xff) * 256) + ((x & 0xff00)/256))`. Formula: `y = (((x & 0xff) * 256) + ((x & 0xff00)/256))`.
* NOTE: FND might still exist in client, but theres no way of triggering it. Practically removed. * NOTE: [FND](../commands/fnd.md) might still exist in client, but theres no way of triggering it. Practically removed.
* BPR removes related user, for some reason, default fields share same optimization as PRP does. * [BPR](../commands/bpr.md) removes related user, for some reason, default fields share same optimization as [PRP](../commands/prp.md) does.
* LST (for SYN): Lists are now all combined into a single number, where: * [LST](../commands/lst.md) (for SYN): Lists are now all combined into a single number, where:
1 = FL, 2 = AL, 4 = BL, 8 = RL, for example FL+AL+RL = 11. 1 = FL, 2 = AL, 4 = BL, 8 = RL, for example FL+AL+RL = 11.
* [CHG](../commands/chg.md), ILN, NLN: Client Capabilities are introduced. * [CHG](../commands/chg.md), ILN, NLN: Client Capabilities are introduced.
You can now tell other clients what features you support. You can now tell other clients what features you support.
@ -98,10 +99,10 @@ C: SYN 8 14
S: SYN 8 15 1 1 S: SYN 8 15 1 1
S: GTC A S: GTC A
S: BLP AL S: BLP AL
S: PRP PHH 123-4567 S: PRP PHH 123%20(4567)
S: LSG 0 Other%20Contacts 0 S: LSG 0 Other%20Contacts 0
S: LST anotheruser@hotmail.com another%20user 11 0 S: LST anotheruser@hotmail.com another%20user 11 0
S: BPR PHH 1%20444%20222-3333 S: BPR PHH 1%20(222)%20333%204444
C: CHG 9 NLN 0 C: CHG 9 NLN 0
S: CHG 9 NLN 0 S: CHG 9 NLN 0
S: ILN 9 NLN anotheruser@hotmail.com another%20user 28 S: ILN 9 NLN anotheruser@hotmail.com another%20user 28

View file

@ -20,8 +20,8 @@ The following commands were removed in this version:
(from [MSNP8](msnp8.md)): (from [MSNP8](msnp8.md)):
* [CHG](../commands/chg.md), ILN, NLN: Added a MSNObject parameter. * [CHG](../commands/chg.md), ILN, NLN: Added a MSNObject parameter.
Now you can tell other clients about image data associated with your account. Now you can tell other clients about image data associated with your account.
* QNG: Added a "next ping" time (in seconds) parameter. * [QNG](../commands/qng.md): Added a "next ping" time (in seconds) parameter.
* Switchboard MSG: 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. Can respond with either [ACK](../commands/ack.md), error 282, or possibly any other error codes.
* Official Client: Error 603 is handled again after being removed in Client Version 5.0. * Official Client: Error 603 is handled again after being removed in Client Version 5.0.
Error code 711 is no longer handled after being implemented in Client Version 5.0. Error code 711 is no longer handled after being implemented in Client Version 5.0.
@ -29,7 +29,7 @@ The following commands were removed in this version:
# Client-server communication example # Client-server communication example
*NOTE: This has been line-breaked. *NOTE: This has been line-breaked.
Lines beginning with `..` followed by a space are continuations of the previous line. Lines beginning with `..` followed by a space are continuations of the previous line.*
``` ```
C: VER 1 MSNP9 MSNP8 CVR0 C: VER 1 MSNP9 MSNP8 CVR0
S: VER 1 MSNP9 S: VER 1 MSNP9