ILN, NLN, REA, SND, ADG, LSG, and MSNP4 changes

information for MSNP4 found: adds the client codebase parameter to SND and CVR (and an empty to CVQ, but that lasted all the way to MSNP7 lol, does that for MSNP3 fallback too which is kind of funny)

18 commands left.
This commit is contained in:
yellows111 2024-10-18 23:52:48 +01:00
parent e28bd99ec6
commit f267b61dde
Signed by: yellows111
SSH Key Fingerprint: SHA256:ynw5IJBU1pb7fZfHgLihKu9gHHA8FVpixZbB6IEB3r8
20 changed files with 697 additions and 67 deletions

View File

@ -4,12 +4,12 @@ This is a list of all known MSNP commands and their originating version.
| `COMMAND` | Payload (Y/N) | Client to Server (Y/N) | Server to Client (Y/N) | Originating Version | Changed? (version list) |
| ----- | - | - | -| ------ | ----- |
| [`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) |
| [`CVR`](commands/cvr.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP8](versions/msnp8.md) (parameter 8) |
| [`CVQ`](commands/cvq.md) | N | Y | N | [CVR0](versions/cvr0.md) | [MSNP8](versions/msnp8.md) (parameter 8) |
| [`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) |
| [`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) |
| [`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.) |
| [`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) |
@ -34,13 +34,15 @@ This is a list of all known MSNP commands and their originating version.
| [`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`.) |
| [`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 `ABCreateGroup` 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) |
| [`REA`](commands/rea.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP10](versions/msnp10.md) (Removed; automatic disconnect) |
| [`SND`](commands/snd.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP3](versions/msnp3.md) (parameters 2 and 3), [MSNP4](versions/msnp4.md) (parameter 4), [MSNP5](versions/msnp5.md) (obsoleted by SDC) |
# What's Missing Right Now
* [MSNP2](versions/msnp2.md): USR
* [MSNP2](versions/msnp2.md): ILN
* [MSNP2](versions/msnp2.md): NLN
* [MSNP2](versions/msnp2.md): REA
* [MSNP2](versions/msnp2.md): SND
* [MSNP2](versions/msnp2.md): SYN
* [MSNP5](versions/msnp5.md): NOT
* [MSNP5](versions/msnp5.md): PAG
@ -48,10 +50,8 @@ This is a list of all known MSNP commands and their originating version.
* [MSNP6](versions/msnp6.md): CHL
* [MSNP6](versions/msnp6.md): IPG
* [MSNP6](versions/msnp6.md): QRY
* [MSNP7](versions/msnp7.md): ADG
* [MSNP7](versions/msnp7.md): REG
* [MSNP7](versions/msnp7.md): RMG
* [MSNP7](versions/msnp7.md): LSG
* [MSNP9](versions/msnp9.md): PGD
* [MSNP10](versions/msnp10.md): ADC
* [MSNP10](versions/msnp10.md): SBP

130
docs/commands/adg.md Normal file
View File

@ -0,0 +1,130 @@
# Introduction
`ADG` is a command introduced with [MSNP7](../versions/msnp7.md).
It is a Notification Server command, without a request or response payload.
Creates a new group.
Replaced with Address Book Service's `ABCreateGroup` in [MSNP13](../versions/msnp13.md).
# Client/Request
`ADG TrID group-name {0}`
Where `group-name` is the name of the group you'd like to create.
Has a limit of 61 bytes (URL encoded characters count as 3 bytes).
Where `0` is always `0.`. Removed in [MSNP10](../comnmands/msnp10.md).
# Server/Response
`ADG TrID {list-version} group-name group-id {0}`
Where `list-version` is the new List Version. Removed in [MSNP10](../commands/msnp10.md).
Where `group-id` is your new group's identification number.
Where `0` is always `0.` Removed in [MSNP10](../commands/msnp10.md).
# Examples
## With list versions
*Only in [MSNP7](../versions/msnp7.md) to [MSNP9](../versions/msnp9.md).*
### Normal use
```
C: ADG 1 New%20Group%201 0
S: ADG 1 256 New%20Group%201 29 0
```
### Cannot create more than 30 groups
```
C: ADG 2 New%20Group%202 0
S: 223 2
```
### Group name too long
```
C: ADG 3 This%2062%20character%20group%20name%20is%20%invalid.%20There. 0
S: 229 3
```
### Group name extremely long
*NOTE: This has been line-breaked.
Lines beginnging with `..` followed by a space are continuations of the previous line.*
```
C: ADG 3 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
.. AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
.. AAAAAAA 0
```
Server disconnects client.
## Without list versions
### With group IDs
*Only [MSNP10](../versions/msnp10.md) with `ABCHMigrated: 0`.*
#### Normal use
```
C: ADG 4 Friends
S: ADG 4 Friends 1
```
#### Cannot create more than 30 groups
```
C: ADG 5 New%20Group%203
S: 223 2
```
#### Group name too long
```
C: ADG 6 This%2062%20character%20group%20name%20is%20%invalid.%20There.
S: 229 6
```
#### Group name extremely long
*NOTE: This has been line-breaked.
Lines beginnging with `..` followed by a space are continuations of the previous line.*
```
C: ADG 7 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
.. AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
.. AAAAAAA
```
Server disconnects client.
### With group GUIDs
*Since [MSNP10](../versions/msnp10.md) with `ABCHMigrated: 1`.*
#### Normal use
```
C: ADG 8 Friends
S: ADG 8 Friends f60efbe7-94af-4b16-b926-e4e10878d329
```
#### Cannot create more than 30 groups
```
C: ADG 9 New%20Group%203
S: 223 9
```
#### Group name too long
```
C: ADG 10 This%2062%20character%20group%20name%20is%20%invalid.%20There.
S: 229 10
```
#### Group name extremely long
*NOTE: This has been line-breaked.
Lines beginnging with `..` followed by a space are continuations of the previous line.*
```
C: ADG 11 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
.. AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
.. AAAAAAA
```
Server disconnects client.
# Known changes
* [MSNP10](../versions/msnp10.md): Removed unused `0` parameter,
Returns a GUID instead of a Group ID if `ABCHMigrated: 1`.
* [MSNP13](../versions/msnp13.md): Removed (automatic disconnect),
use Address Book Service's `ABCreateGroup` instead.

View File

@ -7,7 +7,7 @@ Sends the current client information and retrieves the latest avaliable version
Related to [CVQ](cvq.md).
# Client/Request
`CVR TrID locale system-type system-ver system-arch requesting-library client-version client-identification {user-handle}`
`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.
@ -21,7 +21,8 @@ Where `requesting-library` is the name of the library that requested this CVR, u
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 `client-identification` is the internal name of the codebase used to create `requesting-library`, usually `MSMSGS` or an empty parameter.
Included since [MSNP4](../versions/msnp4.md). Non-empty since [MSNP8](../versions/msnp8.md).
Where `user-handle` is the user's handle. Included since [MSNP8](../versions/msnp8.md).
@ -93,5 +94,6 @@ Server disconnects client.
# Known changes
* [MSNP2](../versions/msnp2.md): Added a fallback URL parameter to the response (parameter 5).
* [MSNP4](../versions/msnp4.md):
* [MSNP8](../versions/msnp8.md): Added support for this command in Dispatch Servers.
* Removed in MSNP24.

View File

@ -58,5 +58,5 @@ S: 502 5
```
# Known changes
* [MSNP5](../versions/msnp5.md): Changed related SND command to SDC.
* [MSNP5](../versions/msnp5.md): Changed related [SND](snd.md) command to SDC.
* Soft-removed in April 2003, uses error 502, which was added in [MSNP7](../versions/msnp7.md).

121
docs/commands/iln.md Normal file
View File

@ -0,0 +1,121 @@
# Introduction
`ILN` is a command introduced with [MSNP2](../versions/msnp2.md).
It is a Notification Server command, without a response payload.
Specifies that a user was already online by the time the client was.
For the version of this command without the Transaction ID that is sent at any time, read [NLN](nln.md).
This command is sent after the initial [CHG](chg.md) command, using it's Transaction ID.
It may also be sent as a follow-up to a [ADD](add.md), ADC or ADL command, using it's Transaction ID.
# Client/Request
This command can not be sent from the client.
# Server/Response
`ILN TrID status user-handle {network-id} friendly-name {client-capabilities{:extended-client-capabilities}} {msnobj} {presence-icon-url}`
Where `status` is any of the defined statuses:
* `NLN`: Online
* `BSY`: Busy
* `IDL`: Idle
* `BRB`: Be Right Back
* `AWY`: Away
* `PHN`: On The Phone
* `LUN`: Out To Lunch
* `HDN`: Appear Offline (previously Invisible, Valid but should never be sent.)
* `FLN`: Offline (Valid but should never be sent.)
Where `user-handle` is the relevant user's handle.
Where `network-id` is the Network Identification Number. Added since [MSNP14](../versions/msnp14.md).
Where `friendly-name` is the relevant user's friendly name.
Where `client-capabilities` are the relevant user's Client Capabilities. Optional? Added since [MSNP8](../versions/msnp8.md).
Where `extended-client-capabilities` are the relevant user's Extended Client Capabilities.
Optional. Added since [MSNP16](../versions/msnp16.md).
Where `msnobj` is the MSNObject the relevant user has set. Optional. Added since [MSNP9](../versions/msnp9.md).
Where `presence-icon-url` is an image that is rendered to this client that replaces the default user icon.
Optional. Added since [MSNP14](../versions/msnp14.md).
# Examples
## Wihout anything special
```
C: CHG 1 NLN
S: CHG 1 NLN
S: ILN 1 NLN anotheruser@example.com another%20user
```
## With Client Capabilities
*Since [MSNP8](../versions/msnp8.md).*
```
C: CHG 2 NLN 1
S: CHG 2 NLN 1
S: ILN 2 NLN anotheruser@example.com another%20user 0
```
## With a MSNObject
*Since [MSNP9](../versions/msnp9.md).*
*NOTE: This has been line-breaked.
Lines beginning with `..` followed by a space are continuations of the previous line.*
```
C: CHG 3 NLN 268435500
S: CHG 3 NLN 268435500
S: ILN 3 NLN anotheruser@hotmail.com another%20user 268435500 %3Cmsnobj%20Creator%3D%22anotherdude%40hotmail.com%22
.. %20Size%3D%2225235%22%20Type%3D%223%22
.. %20Location%3D%22uexA4DE.dat%22%20Friendly%3D%22AAA%3D%22
.. %20SHA1D%3D%22vP1ppB+xiFQ8ceZivRe0uCaYLIU%3D%22
.. %20SHA1C%3D%22PApbbjkbDSGrt3ybGHRKNaZ8s%2Fw%3D%22%2F%3E
```
## With Network IDs and Presence Icon URLs
*Since [MSNP14](../versions/msnp14.md).*
*NOTE: This has been line-breaked.
Lines beginning with `..` followed by a space are continuations of the previous line.*
```
C: CHG 4 NLN insert-wlm-8-cid-here
S: CHG 4 NLN insert-wlm-8-cid-here
S: ILN 4 NLN anotheruser@hotmail.com 1 another%20user insert-wlm-8-cid-here %3Cmsnobj%20Creator%3D%22anotherdude%40hotmail.com%22
.. %20Size%3D%2225235%22%20Type%3D%223%22
.. %20Location%3D%22uexA4DE.dat%22%20Friendly%3D%22AAA%3D%22
.. %20SHA1D%3D%22vP1ppB+xiFQ8ceZivRe0uCaYLIU%3D%22
.. %20SHA1C%3D%22PApbbjkbDSGrt3ybGHRKNaZ8s%2Fw%3D%22%2F%3E
.. http://example.com/interop/online.png
```
## With Extended Client Capabilities
*Since [MSNP16](../versions/msnp16.md).*
*NOTE: This has been line-breaked.
Lines beginning with `..` followed by a space are continuations of the previous line.*
```
C: CHG 5 NLN 2789003324:48
S: CHG 5 NLN 2789003324:48
S: ILN 5 NLN anotheruser@hotmail.com 1 another%20user 2789003324:48 %3Cmsnobj%20Creator%3D%22anotherdude%40hotmail.com%22
.. %20Size%3D%2225235%22%20Type%3D%223%22
.. %20Location%3D%22uexA4DE.dat%22%20Friendly%3D%22AAA%3D%22
.. %20SHA1D%3D%22vP1ppB+xiFQ8ceZivRe0uCaYLIU%3D%22
.. %20SHA1C%3D%22PApbbjkbDSGrt3ybGHRKNaZ8s%2Fw%3D%22%2F%3E
.. http://example.com/interop/online.png
```
## Invalid context
*Inherited from being an unimplemented command.*
```
C: ILN 6 FLN example@hotmail.com example%20user
```
Server disconnects client.
# Known changes
* [MSNP8](../versions/msnp8.md): Added a parameter for Client Capabilities.
* [MSNP9](../versions/msnp9.md): Added a parameter for the MSNObject.
* [MSNP14](../versions/msnp14.md): Added a way to override the default presense icon, and added a new non-optional Network ID parameter.
* [MSNP16](../versions/msnp16.md): Added Extended Client Capabilities support to the Client Capabilities parameter, delimited by a colon.

125
docs/commands/lsg.md Normal file
View File

@ -0,0 +1,125 @@
# Introduction
`LSG` is a command introduced with [MSNP7](../versions/msnp7.md).
It is a Notification Server command, without a request or response payload.
It retrieves all groups.
# Client/Request
`LSG TrID`
# Server/Response
## Outside of SYN
`LSG TrID list-version index size-of-list group-id group-name 0`
Where `list-version` is the current List Version.
Where `index` is a number that can not go out of `size-of-list`.
If you have not added any groups, this value is always `1`.
Where `size-of-list` is the upper bounds for `index`.
If you have not added any groups, this value is always `1`.
Where `group-id` is the relevant group's identification number, allowed values are `0` to `29`.
If you have not added any groups, this value is always `0`.
Where `group-name`is the relevant group's display name, URL encoded if needed, up to 61 bytes.
If you have not added any groups, this value is always `~`.
Where `0` is always `0`.
## In SYN
### First generation
*Applies for [MSNP7](../versions/msnp7.md).*
Same as the response [outside of SYN](#outside-of-syn).
### Second generation
*Applies for [MSNP8](../versions/msnp8.md) and [MSNP9](../versions/msnp9.md).*
`LSG group-id group-name 0`
### Third generation
*Since [MSNP10](../versions/msnp10.md).*
`LSG group-name [ group-id | group-guid ]`
Where `group-id` is the group's identification number.
If `ABCHMigrated: 1` is set in the initial profile,
it is instead `group-guid`, which is the group's GUID.
# Examples
## 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.*
```
C: LSG 1
S: LSG 1 255 1 1 0 ~ 0
```
### Have created groups
```
C: LSG 2
S: LSG 2 255 1 2 0 Other%20Contacts 0
S: LSG 2 255 2 2 1 Friends 0
```
## From SYN
### Using first generation
*Only in [MSNP7](../versions/msnp7.md).*
```
C: SYN 3 0
S: SYN 3 4
```
...
```
S: LSG 3 4 1 2 0 Other%20Contacts 0
S: LSG 3 4 2 2 1 Friends 0
```
### Using second generation
*Only in [MSNP8](../versions/msnp8.md) and [MSNP9](../versions/msnp9.md).*
```
C: SYN 4 0
S: SYN 4 5
```
...
```
S: LSG 0 Other%20Contacts 0
S: LSG 1 Friends 0
```
### Using third generation, with IDs
*Only in [MSNP10](../versions/msnp10.md) with `ABCHMigrated: 0`.*
```
C: SYN 5 0 0
S: SYN 5 6 0 1 2
```
...
```
S: LSG Other%20Contacts 0
S: LSG Friends 1
```
### Using third generation, with GUIDs
*Since [MSNP10](../versions/msnp10.md) with `ABCHMigrated: 1`.*
```
C: SYN 6 0 0
S: SYN 6 2024-10-17T11:46:35.1100000-07:00 2024-10-17T11:46:35.1100000-07:00 1 2
```
...
```
S: LSG Other%20Contacts d6deeacd-7849-4de4-93c5-d130915d0042
S: LSG Friends f60efbe7-94af-4b16-b926-e4e10878d329
```
# Known changes
* [MSNP8](../versions/msnp8.md): Removed iterator and List Version parameters from SYN version.
* [MSNP10](../versions/msnp10.md): Removed unused `0` parameter and support for the `~` quasi-group.
Changed group IDs to group GUIDs if `ABCHMigrated: 1`.

View File

@ -153,7 +153,7 @@ S: SYN 6 7 0 1 1
...
```
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 C=anotheruser@hotmail.com 11 0
```
### Using fourth generation
@ -185,7 +185,7 @@ S: LST N=anotheruser@hotmail.com F=another%20user C=c1f9a363-4ee9-4a33-a434-b056
* [MSNP7](../versions/msnp7.md): Added support for groups.
* [MSNP8](../versions/msnp8.md): Changed format in SYN considerably, dropping the iterator parameters and
merging all lists into a single parameter instead of multiple calls.
* [MSNP10](../versions/msnp10.md): Added prefixes for user handle, stored friendly name to SYN version.
Added contact GUID and changed group ID list to group GUID list with `ABCHMigrated: 1` to SYN version.
* [MSNP10](../versions/msnp10.md): Added prefixes for user handle, stored friendly name to SYN version, added `C=` for contact address.
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.

108
docs/commands/nln.md Normal file
View File

@ -0,0 +1,108 @@
# Introduction
`NLN` is a command introduced with [MSNP2](../versions/msnp2.md).
It is a Notification Server command, without a response payload.
Specifies that a user has now came online.
For the version sent with a Transaction ID as a response to some commands, read [ILN](iln.md).
# Client/Request
This command can not be sent from the client.
# Server/Response
`NLN status user-handle {network-id} friendly-name {client-capabilities{:extended-client-capabilities}} {msnobj} {presence-icon-url}`
Where `status` is any of the defined statuses:
* `NLN`: Online
* `BSY`: Busy
* `IDL`: Idle
* `BRB`: Be Right Back
* `AWY`: Away
* `PHN`: On The Phone
* `LUN`: Out To Lunch
* `HDN`: Appear Offline (previously Invisible, Valid but should never be sent.)
* `FLN`: Offline (Valid but should never be sent.)
Where `user-handle` is the relevant user's handle.
Where `network-id` is the Network Identification Number. Added since [MSNP14](../versions/msnp14.md).
Where `friendly-name` is the relevant user's friendly name.
Where `client-capabilities` are the relevant user's Client Capabilities. Optional? Added since [MSNP8](../versions/msnp8.md).
Where `extended-client-capabilities` are the relevant user's Extended Client Capabilities.
Optional. Added since [MSNP16](../versions/msnp16.md).
Where `msnobj` is the MSNObject the relevant user has set. Optional. Added since [MSNP9](../versions/msnp9.md).
Where `presence-icon-url` is an image that is rendered to this client that replaces the default user icon.
Optional. Added since [MSNP14](../versions/msnp14.md).
# Examples
## Wihout anything special
```
S: NLN NLN anotheruser@example.com another%20user
```
## With Client Capabilities
*Since [MSNP8](../versions/msnp8.md).*
```
S: NLN NLN anotheruser@example.com another%20user 0
```
## With a MSNObject
*Since [MSNP9](../versions/msnp9.md).*
*NOTE: This has been line-breaked.
Lines beginning with `..` followed by a space are continuations of the previous line.*
```
S: NLN NLN anotheruser@hotmail.com another%20user 268435500 %3Cmsnobj%20Creator%3D%22anotherdude%40hotmail.com%22
.. %20Size%3D%2225235%22%20Type%3D%223%22
.. %20Location%3D%22uexA4DE.dat%22%20Friendly%3D%22AAA%3D%22
.. %20SHA1D%3D%22vP1ppB+xiFQ8ceZivRe0uCaYLIU%3D%22
.. %20SHA1C%3D%22PApbbjkbDSGrt3ybGHRKNaZ8s%2Fw%3D%22%2F%3E
```
## With Network IDs and Presence Icon URLs
*Since [MSNP14](../versions/msnp14.md).*
*NOTE: This has been line-breaked.
Lines beginning with `..` followed by a space are continuations of the previous line.*
```
S: NLN NLN anotheruser@hotmail.com 1 another%20user insert-wlm-8-cid-here %3Cmsnobj%20Creator%3D%22anotherdude%40hotmail.com%22
.. %20Size%3D%2225235%22%20Type%3D%223%22
.. %20Location%3D%22uexA4DE.dat%22%20Friendly%3D%22AAA%3D%22
.. %20SHA1D%3D%22vP1ppB+xiFQ8ceZivRe0uCaYLIU%3D%22
.. %20SHA1C%3D%22PApbbjkbDSGrt3ybGHRKNaZ8s%2Fw%3D%22%2F%3E
.. http://example.com/interop/online.png
```
## With Extended Client Capabilities
*Since [MSNP16](../versions/msnp16.md).*
*NOTE: This has been line-breaked.
Lines beginning with `..` followed by a space are continuations of the previous line.*
```
S: NLN NLN anotheruser@hotmail.com 1 another%20user 2789003324:48 %3Cmsnobj%20Creator%3D%22anotherdude%40hotmail.com%22
.. %20Size%3D%2225235%22%20Type%3D%223%22
.. %20Location%3D%22uexA4DE.dat%22%20Friendly%3D%22AAA%3D%22
.. %20SHA1D%3D%22vP1ppB+xiFQ8ceZivRe0uCaYLIU%3D%22
.. %20SHA1C%3D%22PApbbjkbDSGrt3ybGHRKNaZ8s%2Fw%3D%22%2F%3E
.. http://example.com/interop/online.png
```
## Invalid context
*Inherited from being an unimplemented command.*
```
C: NLN FLN example@hotmail.com example%20user
```
Server disconnects client.
# Known changes
* [MSNP8](../versions/msnp8.md): Added a parameter for Client Capabilities.
* [MSNP9](../versions/msnp9.md): Added a parameter for the MSNObject.
* [MSNP14](../versions/msnp14.md): Added a way to override the default presense icon, and added a new non-optional Network ID parameter.
* [MSNP16](../versions/msnp16.md): Added Extended Client Capabilities support to the Client Capabilities parameter, delimited by a colon.

68
docs/commands/rea.md Normal file
View File

@ -0,0 +1,68 @@
# Introduction
`REA` is a command introduced with [MSNP2](../versions/msnp2.md).
It is a Notification Server command, without either a request or response payload.
Renames a user. For the commands that replaced REA with a `MFN` property, read [PRP](prp.md) and SBP.
# Client/Request
`REA TrID user-handle new-friendly-name`
Where `user-handle` is the user handle that you'd like to change the friendly name of.
If this is the current user's handle, the change will be announced via
[NLN](nln.md) to all users on your Reverse List (RL) if they are not in your Block List (BL).
Where `new-friendly-name` is the friendly name you'd like to set.
Subject to server-side restrictions.
# Server/Response
`REA TrID list-version user-handle new-friendly-name`
Where `list-version` is the new List Version.
# Examples
## Changing my friendly name
```
C: REA 1 example@hotmail.com new%20name
S: REA 1 256 example@hotmail.com new%20name
```
## Changing a stored friendly name
```
S: NLN NLN anotheruser@hotmail.com different%20name
C: REA 2 anotheruser@hotmail.com different%20name
S: REA 2 257 anotheruser@hotmail.com different%20name
```
## Not allowed to be called that
```
C: REA 3 example@hotmail.com bad
S: 209 3
```
## Can not change the friendly name of a user not in your lists
```
C: REA 4 ghost@hotmail.com ghost
S: 216 4
```
## Rate limited, try again later
```
C: REA 5 example@hotmail.com new%20name%201
S: REA 5 258 example@hotmail.com new%20name%201
C: REA 6 example@hotmail.com new%20name%202
S: REA 6 258 example@hotmail.com new%20name%202
C: REA 7 example@hotmail.com new%20name%203
S: REA 7 258 example@hotmail.com new%20name%203
C: REA 8 example@hotmail.com new%20name%204
S: REA 8 258 example@hotmail.com new%20name%204
C: REA 9 example@hotmail.com new%20name%205
S: REA 9 258 example@hotmail.com new%20name%205
C: REA 10 example@hotmail.com new%20name%206
S: 800 10
```
# Known changes
* [MSNP10](../versions/msnp10.md): Removed (automatic disconnection?).
Use [PRP](prp.md) `MFN` to change your own friendly name, and SBP `MFN` to change stored friendly names.

72
docs/commands/snd.md Normal file
View File

@ -0,0 +1,72 @@
# Introduction
`SND` is a command introduced with [MSNP2](../versions/msnp2.md).
It is a Notification Server command, without either a request or response payload.
Sends a service invitation to an e-mail address or directory user.
For the version of this command that supports friendly names that superseded this command, read SDC.
# Client/Request
`SND TrID target-address {translation-lcid} {requesting-library} {client-identification}`
Where `target-address` is the E-mail address or index from the last [FND](fnd.md) response you'd like to invite to the service.
Where `translation-lcid` is the LCID of the translation you'd like the invitation to be in.
Added since [MSNP3](../versions/msnp3.md).
Where `requesting-library` is the name of the library that requested this CVR, usually `MSMSGS` or `MSNMSGR`.
Added since [MSNP3](../versions/msnp3.md).
Where `client-identification` is the internal name of the codebase used to create `requesting-library`, usually `MSMSGS`.
Added since [MSNP4](../versions/msnp4.md).
# Server/Response
`SND TrID OK`
Where `OK` is always `OK`.
# Examples
## Normal use
### First generation
*Only [MSNP2](../versions/msnp2.md).*
```
C: SND 1 anotheruser@hotmail.com
S: SND 1 OK
```
### Second generation
*Only [MSNP3](../versions/msnp3.md).*
```
C: SND 2 anotheruser@hotmail.com 0x0409 MSMSGS
S: SND 2 OK
```
### Third generation
*Since [MSNP4](../versions/msnp4.md).*
```
C: SND 3 anotheruser@hotmail.com 0x0409 MSMSGS MSMSGS
S: SND 3 OK
```
## From a directory search
```
C: FND 4 fname=Another lname=User city=* state=* country=US
S: FND 4 1 2 fname=Another lname=User city=New%20York state=NY country=US
FND 4 2 2 fname=Another lname=User city=Stillwater state=OK country=US
C: SND 5 1 0x0409 MSMSGS MSMSGS
S: SND 5 OK
```
## Invalid parameters
```
C: SND 6 anotheruser@hotmail.com 10
S: 503 6
```
Server disconnects client.
# Known changes
* [MSNP3](../versions/msnp3.md): Added translation support and requesting library parameters.
* [MSNP4](../versions/msnp4.md): Added client codebase parameter.
* [MSNP5](../versions/msnp5.md): Deprecated in place of SDC.

View File

@ -23,7 +23,7 @@ Where `service` is the specified service you'd like to get the URL of:
* `CHAT`: Chat rooms
* `ADDRBOOK`: Address Book, unused?
* `ADVSEARCH`: Advanced Search, unused?
* `INTSEARCH`: Internet Search, unused?
* `INTSEARCH`: Interest Search, unused?
Where `param` is an optional parameter to specify extra data about the request:
* `CHAT`: Supports a LCID parameter for localization. Example: `0x0409`.
@ -41,7 +41,7 @@ Where `login-url` is the service that provides automatic authentication
and accepts redirection form parameters. Usually `https://login(net).passport.com/ppsecure/md5auth.srf?lc=`
followed by your initial profile's `lang_preference` value since [MSNP3](../versions/msnp3.md).
Where `psid` is the `id` parameter passed to `login-url`. and are required to use absolute URLs as the `redirect-url`. Added since [MSNP3](../versions/msnp3.md). Required since [MSNP5](../versions/msnp5.md)
Where `psid` is the `id` parameter passed to `login-url`. and are required to use absolute URLs as the `redirect-url`. Added since [MSNP3](../versions/msnp3.md). Required since [MSNP5](../versions/msnp5.md).
# Examples
*NOTE: All examples will have Site IDs because I don't know what the login URL was without it.*

View File

@ -22,13 +22,12 @@ More is to come soon! Hopefully!
# Wanted Information
* [MSNP2](versions/msnp2.md): What is the format of the initial `text/x-msmsgsemailnotification`?
* [MSNP4](versions/msnp4.md): Anything for this one.
* [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 [LST](commands/lst.md) change outside of SYN in this version?
* [MSNP8](versions/msnp8.md): Did [LSG](commands/lsg.md) and [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): Did [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 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?
* All Protocols: Any error code known to exist but is missing from the pages.

View File

@ -25,7 +25,7 @@ It introduces the commands:
```
C: VER 1 MSNP2 CVR0
S: VER 1 CVR0
C: CVQ 2 0x0409 win 4.10 i386 MSMSGS 1.0.0863 MSMSGS
C: CVQ 2 0x0409 win 4.10 i386 MSMSGS 1.0.0863
S: CVQ 2 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
```
Server disconnects client.

View File

@ -13,7 +13,7 @@ It introduces the notification service commands:
The following commands were removed in this version:
* [ADD](../commands/add.md) (automatic disconnection)
* REA (automatic disconnection?)
* [REA](../commands/rea.md) (automatic disconnection?)
# Known changes
(from [MSNP9](msnp9.md)):
@ -23,25 +23,31 @@ The following commands were removed in this version:
Client: `SYN transactionID listVersion settingsVersion`.
Server: `SYN transactionID listVersion settingsVersion numberOfContacts numberOfGroups`.
`settingsVersion` is always 0.
* Removed unused parameter from [LSG](../commands/lsg.md).
* Current display name is removed from USR, now is returned with other user properties ([PRP](../commands/prp.md) commands) in SYN.
* [PRP](../commands/prp.md) MFN replaces REA (current passport). SBP (contact's address) MFN replaces other uses of REA.
* [PRP](../commands/prp.md) MFN replaces [REA](../commands/rea.md) (current user handle). SBP (contact's address) MFN replaces other uses of [REA](../commands/rea.md).
* [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,
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.
[LST](../commands/lst.md): GUID specified as `C=` parameter, group IDs are now GUIDs.
ADC, [REM](../commands/rem.md): uses GUIDs instead of contact emails if the list is the Forward List (FL), and same applies also for groups.
LSG, ADG: Uses GUIDs instead of IDs.
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.
[GTC](../commands/gtc.md), [BLP](../commands/blp.md), ADG, REG, RMG, [REM](../commands/rem.md), [PRP](../commands/prp.md) commands are affected by this change.
* 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].
* SYN: 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.
* [LST](../commands/lst.md): GUID specified as `C=` parameter, group IDs are now GUIDs.
* ADC, [REM](../commands/rem.md): uses GUIDs instead of contact emails if the list is the Forward List (FL), and same applies also for groups.
* [LSG](../commands/lsg.md), ADG: Uses GUIDs instead of IDs.
* 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. The following commands are affected:
* [GTC](../commands/gtc.md)
* [BLP](../commands/blp.md)
* ADG
* [BPR](../commands/bpr.md)
* REG
* RMG
* [REM](../commands/rem.md)
* [PRP](../commands/prp.md)
* Added a new list: Pending List/PL (bit 5, decimal 16). Is meant for unhandled contact added you notifications.
* Added 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.
* 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.
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)).
@ -105,7 +111,7 @@ S: BLP AL
S: PRP MFN example%20user
S: PRP PHH 123%20(4567)
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 C=anotheruser@hotmail.com 11 0
S: BPR PHH 1%20(222)%20333%204444
C: CHG 9 NLN
S: CHG 9 NLN

View File

@ -19,17 +19,17 @@ It introduces the notification service commands:
* [FLN](../commands/fln.md)
* [GTC](../commands/gtc.md)
* [INF](../commands/inf.md)
* ILN
* [ILN](../commands/iln.md)
* [LST](../commands/lst.md)
* [MSG](../commands/msg.md)
* NLN
* [NLN](../commands/nln.md)
* [OUT](../commands/out.md)
* [PNG](../commands/png.md) (not in draft)
* [QNG](../commands/qng.md) (not in draft)
* REA (not in draft)
* [REA](../commands/rea.md) (not in draft, surprisingly)
* [REM](../commands/rem.md)
* [RNG](../commands/rng.md)
* SND (not in draft)
* [SND](../commands/snd.md) (not in draft)
* SYN
* [URL](../commands/url.md) (not in draft)
* USR

View File

@ -21,13 +21,14 @@ It introduces the error codes:
* Added Passport Site IDs to [URL](../commands/url.md) (parameter 3).
* Removed `PASSWORD` service from [URL](../commands/url.md).
* Added Hotmail's Passport Site ID to new e-mail notifications.
* [SND](../commands/snd.md): Added a target language parameter and
a client library parameter, similar to the one in [CVR](../commands/cvr.md).
* Initial profile: Added Passport intergration fields.
* Font information has been added to Switchboard MSGs.
* Multiple error-codes unimplemented in 1.x that were in the draft are now implemented in the Official Client.
Examples include: 208, 215, 501, 604 (bizzarely enough), 715 and finally 913.
* Non-protocol: Client can now use non-hotmail domains in relevant places.
* Non-protocol: WebTV 2.5+ clients (example@webtv.net) can talk to other users (example@hotmail.com)
* More URL requests implemented (assumed)
* Clear-Text Password (CTP) authentication method discontinued.
* Entire content of initial email notification changed from
`text/x-msmsgsemailnotification` to `application/x-msmsgsinitialemailnotification`,
@ -35,15 +36,15 @@ It introduces the error codes:
* Official Client: Automatic login form now supports Passport
if parameter 3 is set in [URL](../commands/url.md).
To generate `creds`, MD5 hash the following as one concatenated string:
`auth` (from Initial Profile's `MSPAuth`, also included in the form) +
`sl` (amount of seconds since `LoginTime`, also included in the form) +
`passwd` (plain-text password).
* `auth` (from Initial Profile's `MSPAuth`, also included in the form) +
* `sl` (amount of seconds since `LoginTime`, also included in the form) +
* `passwd` (plain-text password).
* Official Client: Legacy automatic login form parameters has changed.
This only applies for [URL](../commands/url.md) commands without parameter 3.
To generate `k2`, MD5 hash the following as one concatenated string:
`login` (The local-part of your user handle, also included in the form) +
`k1` (A short 2 digit number that you generate and is also included in the form) +
`passwd` (plain-text password).
* `login` (The local-part of your user handle, also included in the form) +
* `k1` (A short 2 digit number that you generate and is also included in the form) +
* `passwd` (plain-text password).
* Official Client: Removed [URL](../commands/url.md) service `PASSWORD`.
# Client-server communication example
@ -97,6 +98,8 @@ C: IMS 10 OFF
S: IMS 10 0 OFF
C: IMS 11 ON
S: IMS 11 0 ON
C: SND 12 anotheruser@hotmail.com 0x0409 MSMSGS
S: SND 12 OK
C: OUT
```
Client disconnects from server

View File

@ -11,16 +11,9 @@ It was introduced officially in Client Version 2.1.1047.
# Known changes
(from [MSNP3](msnp3.md)):
* ?
* ?
* ?
* Honestly, we don't know.
* New fields in initial profile, probably.
Don't know why else, not sure why it required it's own protocol version.
(none are parsed by the client either)
* Client 2.2.1053 according to whatsnew.asp has Kids Passport support.
Probably a new initial profile field by then.
(Client doesn't parse 923 yet either)
* [CVR](../commands/cvr.md), [SND](../commands/snd.md): Added a client codebase identification parameter.
* [CVQ](../commands/cvq.md) has an empty parameter, meant to be the client codebase
identification parameter, like [CVR](../commands/cvr.md) has, but is always empty.
# Client-server communication example
```
@ -69,6 +62,8 @@ C: SYN 8 5
S: SYN 8 5
C: CHG 9 NLN
S: CHG 9 NLN
C: SND 10 anotheruser@hotmail.com 0x0409 MSMSGS MSMSGS
S: SND 10 OK
C: OUT
```
Client disconnects from server

View File

@ -4,10 +4,10 @@ It was introduced officially in Client Version 4.5.0121.
# Command information
It introduces the notification service commands:
* ADG
* [ADG](../commands/adg.md)
* REG
* RMG
* LSG
* [LSG](../commands/lsg.md)
*No switchboard or dispatch service commands were known to be introduced in this version*
@ -21,7 +21,7 @@ It introduces the error codes:
(from [MSNP6](msnp6.md)):
* Added contact groups. All FL contacts now have an extra number array for what groups they are in.
The "Other Contacts" group can NOT be removed.
* [ADD](../commands/add.md) and [REM](../command/rem.md) now have group parameters if the list is set to the Forward List (FL).
* [ADD](../commands/add.md) and [REM](../commands/rem.md) now have group parameters if the list is set to the Forward List (FL).
* [REM](../commands/rem.md) commands with the list set to the Forward List (FL) with a group ID only removes that user from the respective group,
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,

View File

@ -13,12 +13,13 @@ The following commands were removed in this version:
# Known changes
(from [MSNP7](msnp7.md)):
* [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 drastically:
* Reworked SYN 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 removed from response commands (now treated as asynchronous commands).
Unset properties ([PRP](../commands/prp.md) commands) are now omitted. Hurray.
@ -33,7 +34,7 @@ The following commands were removed in this version:
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, NLN: Client Capabilities are introduced.
* [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.

View File

@ -16,7 +16,7 @@ The following commands were removed in this version:
# Known changes
(from [MSNP8](msnp8.md)):
* [CHG](../commands/chg.md), ILN, NLN: Added a MSNObject parameter.
* [CHG](../commands/chg.md), [ILN](../commands/iln.md), [NLN](../commands/nln.md): Added an optional MSNObject parameter.
Now you can tell other clients about image data associated with your account.
* [QNG](../commands/qng.md): Added a "next ping" time (in seconds) parameter.
* Switchboard [MSG](../commands/msg.md): Acknowledgement type D added.