fix a bunch of errors, new commands

+ ADD
+ REM
+ URL
* fixed a bunch of formatting
* changed the default list version to 255, if it increases to 256 it means it changed
* fixed a bunch of muscle memory mishaps
* Clean-up some missing "fill this in once information is available's
This commit is contained in:
Declan B. 2024-10-16 21:12:41 +01:00
parent fd15c8ec59
commit e28bd99ec6
Signed by: yellows111
SSH key fingerprint: SHA256:ynw5IJBU1pb7fZfHgLihKu9gHHA8FVpixZbB6IEB3r8
27 changed files with 479 additions and 52 deletions

View file

@ -5,7 +5,7 @@ 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) | | `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 | | [`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`](commands/cvr.md) | 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`](commands/cvq.md) | 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) |
@ -28,6 +28,38 @@ This is a list of all known MSNP commands and their originating version.
| [`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`) | | [`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) | | | [`RNG`](commands/rng.md) | N | N | Y | [MSNP2](versions/msnp2.md) | |
| [`LST`](commands/lst.md) | N | Y | Y\*| [MSNP2](versions/msnp2.md) | [MSNP7](versions/msnp7.md) (Added groups support), [MSNP8](versions/msnp8.md) (SYN: removed iterator parameters, condensed all lists into a single parameter, removed List Version), [MSNP10](versions/msnp10.md) (Added prefixes to contact's handle and friendly name, and added a GUID parameter if `ABCHMigrated: 1`. Also changed group IDs to GUIDs.), [MSNP12](versions/msnp12.md) (Added network IDs), [MSNP13](versions/msnp13.md) (Likely removed) | | [`LST`](commands/lst.md) | N | Y | Y\*| [MSNP2](versions/msnp2.md) | [MSNP7](versions/msnp7.md) (Added groups support), [MSNP8](versions/msnp8.md) (SYN: removed iterator parameters, condensed all lists into a single parameter, removed List Version), [MSNP10](versions/msnp10.md) (Added prefixes to contact's handle and friendly name, and added a GUID parameter if `ABCHMigrated: 1`. Also changed group IDs to GUIDs.), [MSNP12](versions/msnp12.md) (Added network IDs), [MSNP13](versions/msnp13.md) (Likely removed) |
| [`ADD`](commands/add.md) | N | Y | Y | [MSNP2](versions/msnp2.md) | [MSNP7](versions/msnp7.md) (Added groups support), [MSNP10](versions/msnp10.md) (Removed; automatic disconnect) |
| [`REM`](commands/rem.md) | N | Y | Y | [MSNP2](versions/msnp2.md) | [MSNP7](versions/msnp7.md) (Added groups support), [MSNP10](versions/msnp10.md) (Replaced user handles with GUIDs if list is the Forward List (FL), and removed list versions from all responses), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, replaced with RML) |
| [`FLN`](commands/fln.md) | N | N | Y | [MSNP2](versions/msnp2.md) | |
| [`PNG`](commands/png.md) | N | Y | N | [MSNP2](versions/msnp2.md) | |
| [`QNG`](commands/qng.md) | N | N | Y | [MSNP2](versions/msnp2.md) | [MSNP9](versions/msnp9.md) (Added next seconds parameter) |
| [`URL`](commands/url.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP3](versions/msnp3.md) (Added Passport Site ID support as parameter 3), removed `PASSWORD` service), [MSNP5](versions/msnp5.md) (Added `MOBILE` and `CHGMOB` services), [MSNP6](versions/msnp6.md) (Added `PROFILE`, `N2PACCOUNT` and `N2PFUND` services), [MSNP7](versions/msnp7.md) (Added `CHAT` service), [MSNP8](versions/msnp8.md) (Added `ADDRBOOK`, `ADVSEARCH` and `INTSEARCH` services) |
# 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
* [MSNP5](versions/msnp5.md): SDC
* [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
* [MSNP11](versions/msnp11.md): GCF
* [MSNP11](versions/msnp11.md): SBS
* [MSNP11](versions/msnp11.md): UBX
* [MSNP11](versions/msnp11.md): UUX
* [MSNP12](versions/msnp12.md): LKP
# Modifiers # Modifiers
* `*`: Only in `SYN`. * `*`: Only in `SYN`.

104
docs/commands/add.md Normal file
View file

@ -0,0 +1,104 @@
# Introduction
`ADD` is a command introduced with [MSNP2](../versions/msnp2.md).
It is a Notification Server command, without a request or response payload.
Adds a user to a list. Replaced by ADL in [MSNP10](../versions/msnp10.md).
# Client/Request
`ADD TrID [ FL | AL | BL ] user-handle custom-friendly-name {group}`
Where `user-handle` is the relevant user's handle.
Where `custom-friendly-name` is the friendly name of this user you'd like to store in this list.
Where `group` is the group to add the user to.
Only applies for Forward List (FL). Since [MSNP7](../versions/msnp7.md).
# Server/Response
`ADD TrID [ FL | AL | BL | RL ] list-version user-handle custom-friendly-name {group}`
If this is an asynchronous use of this command, the Transaction ID (or `TrID`) will be set to `0`.
Where `list-version` is the new List Version.
# Examples
## Normal use
### Without groups
```
C: ADD 1 FL anotheruser@hotmail.com anotheruser@hotmail.com
S: ADD 1 FL 256 anotheruser@hotmail.com anotheruser@hotmail.com
C: ADD 2 AL anotheruser@hotmail anotheruser@hotmail.com
S: ADD 2 AL 257 anotheruser@hotmail.com anotheruser@hotmail.com
```
### With groups
*Since [MSNP7](../versions/msnp7.md).*
```
C: ADD 3 FL anotheruser@hotmail.com anotheruser@hotmail.com 0
S: ADD 3 FL 256 anotheruser@hotmail.com anotheruser@hotmail.com 0
C: ADD 4 AL anotheruser@hotmail anotheruser@hotmail.com
S: ADD 4 AL 257 anotheruser@hotmail.com anotheruser@hotmail.com
```
## Invalid handle
```
C: ADD 5 FL a@b a@b
S: 201 5
```
## Account not found
```
C: ADD 6 FL ghost@hotmail.com ghost@hotmail.com
S: 205 7
```
## Target list is full
```
C: ADD 8 FL stuffed@hotmail.com stuffed@hotmail.com
S: 210 8
```
## User already in that list
```
C: ADD 9 FL anotheruser@hotmail.com anotheruser@hotmail.com
S: 215 9
```
## User can not be in both lists
```
C: ADD 10 BL anotheruser@hotmail.com anotheruser@hotmail.com
S: 219 10
```
## Group doesn't exist
*Since [MSNP7](../versions/msnp7.md).*
```
C: ADD 11 FL anotheruser@hotmail.com anotheruser@hotmail.com 31
S: 224 11
```
## You can not modify the Reverse List
```
C: ADD 12 RL anotheruser@hotmail.com anotheruser@hotmail.com
```
Server disconnects client.
## Removed
```
C: ADD 13 FL anotheruser@hotmail.com anotheruser@hotmail.com
```
Server disconnects client.
## Asynchronous update
```
C: ADD 0 RL 258 anotheruser@hotmail.com anotheruser@hotmail.com
```
# Known changes
* [MSNP7](../versions/msnp7.md): Now supports groups if target list is Forward List.
* [MSNP10](../versions/msnp10.md): Removed (automatic disconnect). Use ADL instead.

View file

@ -1,5 +1,5 @@
# Introduction # Introduction
`ANS` is a command introduced with [MSNP2](../commands/msnp2.md). `ANS` is a command introduced with [MSNP2](../versions/msnp2.md).
It is a Switchboard Server command, without either a request or response payload. It is a Switchboard Server command, without either a request or response payload.

View file

@ -11,20 +11,20 @@ It modifies if messages sent to you by users not on your Allow List (AL) are all
# Server/Response # Server/Response
`BLP TrID {list-version} [ AL | BL ]` `BLP TrID {list-version} [ AL | BL ]`
Where `list-version` is the new List Version. Removed since [MSNP10](../commands/msnp10.md) in `ABCHMigrated: 1` mode. Where `list-version` is the new List Version. Removed since [MSNP10](../versions/msnp10.md) in `ABCHMigrated: 1` mode.
# Examples # Examples
## Setting to AL (Allow messages by default) ## Setting to AL (Allow messages by default)
``` ```
C: BLP 1 AL C: BLP 1 AL
S: BLP 1 255 AL S: BLP 1 256 AL
``` ```
## Setting to BL (Block messages by default) ## Setting to BL (Block messages by default)
``` ```
C: BLP 2 BL C: BLP 2 BL
S: BLP 2 256 BL S: BLP 2 257 BL
``` ```
## Invalid argument ## Invalid argument

View file

@ -29,7 +29,7 @@ Where `value` is the value that is assigned to `property`.
## Receive new PHH from user ## Receive new PHH from user
``` ```
S: BPR 255 anotheruser@hotmail.com PHH 1%20(444)%20222%203333 S: BPR 256 anotheruser@hotmail.com PHH 1%20(444)%20222%203333
``` ```
## Invalid context ## Invalid context

View file

@ -1,5 +1,5 @@
# Introduction # Introduction
`FLN` is a command introduced with [MSNP2](../commands/msnp2.md). `FLN` 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 Notification Server command, without either a request or response payload.

View file

@ -21,7 +21,7 @@ Where `CC` is a 2-character string representation of the country to search users
# Server/Response # Server/Response
`FND TrID 1 1 fname=Example lname=Name city=Somewhere state=OK country=US` `FND TrID 1 1 fname=Example lname=Name city=Somewhere state=OK country=US`
This command, despite having an iterator, cannot span across multiple packets. This command, despite having an iterator, can not span across multiple packets.
Instead, error 301 is returned in cases where the result would be too large to respond as one packet. Instead, error 301 is returned in cases where the result would be too large to respond as one packet.
# Examples # Examples

View file

@ -18,13 +18,13 @@ Where `list-version` is the new List Version. Removed since [MSNP10](../versions
## Setting to A (Ask before adding to AL/BL) ## Setting to A (Ask before adding to AL/BL)
``` ```
C: GTC 1 A C: GTC 1 A
S: GTC 1 255 A S: GTC 1 256 A
``` ```
## Setting to N (Automatically add to AL) ## Setting to N (Automatically add to AL)
``` ```
C: GTC 2 N C: GTC 2 N
S: GTC 2 256 N S: GTC 2 257 N
``` ```
## Invalid argument ## Invalid argument

View file

@ -40,6 +40,7 @@ Same as the response [Outside of SYN](#outside-of-syn).
### Groups support ### Groups support
*Applies for [MSNP7](../versions/msnp7.md).* *Applies for [MSNP7](../versions/msnp7.md).*
`LST TrID [ FL | AL | BL | RL ] list-version index size-of-list user-handle stored-friendly-name {groups}` `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, Where `groups` is a comma-delimited list of Group IDs this contact is in,
@ -47,6 +48,7 @@ only appended if the list (parameter 1) is set to FL. Defaults to `0`.
### Second generation ### Second generation
*Applies for [MSNP8](../versions/msnp8.md) and [MSNP9](../versions/msnp9.md)* *Applies for [MSNP8](../versions/msnp8.md) and [MSNP9](../versions/msnp9.md)*
`LST user-handle stored-friendly-name list-bits {groups}` `LST user-handle stored-friendly-name list-bits {groups}`
Where `list-bits` are in the format: Where `list-bits` are in the format:
@ -60,12 +62,14 @@ only appended if Forward List (FL) is set in `list-bits`. Defaults to `0`.
### Third generation ### Third generation
*Applies for [MSNP10](../versions/msnp10.md) with `ABCHMigrated: 0`.* *Applies for [MSNP10](../versions/msnp10.md) with `ABCHMigrated: 0`.*
`LST N=user-handle F=stored-friendly-name list-bits {groups}` `LST N=user-handle F=stored-friendly-name list-bits {groups}`
Same parameters as the [second generation](#second-generation). Same parameters as the [second generation](#second-generation).
### Fourth generation ### Fourth generation
*Applies for [MSNP10](../versions/msnp10.md) and [MSNP11](../versions/msnp11.md) with `ABCHMigrated: 1`.* *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}` `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 `contact-guid` is the GUID/UUID of the contact.
@ -75,6 +79,7 @@ only appending if Forward List (FL) is set in `list-bits`, defaults to whatever
### Fifth generation ### Fifth generation
*Applies for [MSNP12](../versions/msnp12.md).* *Applies for [MSNP12](../versions/msnp12.md).*
`LST N=user-handle F=stored-friendly-name C=contact-guid list-bits network-id {groupGuids}` `LST N=user-handle F=stored-friendly-name C=contact-guid list-bits network-id {groupGuids}`
Where `network-id` is any Network ID bits: Where `network-id` is any Network ID bits:
@ -90,9 +95,9 @@ Where `network-id` is any Network ID bits:
## Client-initated ## Client-initated
``` ```
C: LST 1 FL C: LST 1 FL
S: LST 1 FL 254 1 1 anotheruser@example.com another%20user S: LST 1 FL 255 1 1 anotheruser@example.com another%20user
C: LST 2 BL C: LST 2 BL
S: LST 2 BL 254 0 0 S: LST 2 BL 255 0 0
``` ```
## From SYN ## From SYN

View file

@ -164,6 +164,19 @@ Message-Delta: 1
``` ```
#### System message
*NOTE: There may be other types of system messages, `Type` 1 is for a server shutdown message,
`Arg1` in this case would be the minutes before the server is set to shutdown.*
```
S: MSG Hotmail Hotmail 88
MIME-Version: 1.0
Content-Type: application/x-msmsgssystemmessage
Type: 1
Arg1: 5
```
### Switchboard Server ### Switchboard Server
``` ```
S: MSG example@hotmail.com example%20user 73 S: MSG example@hotmail.com example%20user 73

View file

@ -32,7 +32,7 @@ The following `property` values are only set by the server:
## Setting PHH ## Setting PHH
``` ```
C: PRP 1 PHH 1%20(222)%203333 C: PRP 1 PHH 1%20(222)%203333
S: PRP 1 255 PHH 1%20(222)%203333 S: PRP 1 256 PHH 1%20(222)%203333
``` ```
## Unknown property ## Unknown property

View file

@ -22,7 +22,7 @@ S: QNG
``` ```
## Server-reply, new ## Server-reply, new
*Since [MSNP9](../commands/msnp9.md).* *Since [MSNP9](../versions/msnp9.md).*
``` ```
C: PNG C: PNG
S: QNG 50 S: QNG 50
@ -37,4 +37,4 @@ C: QNG
Server disconnects client. Server disconnects client.
# Known changes # Known changes
* [MSNP9](../versions/msnp9.md): Added a next seconds parameter to server response. * [MSNP9](../versions/msnp9.md): Added a next seconds parameter (parameter 1).

137
docs/commands/rem.md Normal file
View file

@ -0,0 +1,137 @@
# Introduction
`REM` is a command introduced with [MSNP2](../versions/msnp2.md).
It is a Notification Server command, without a request or response payload.
It removes a user from a list.
# Client/Request
`REM TrID [ FL | AL | BL | PL ] [ user-handle | contact-guid ] {group}`
The Pending List (PL) is only avaliable since [MSNP10](../versions/msnp10.md).
Where `user-handle` is the user's handle to remove from the list.
If using [MSNP10](../versions/msnp10.md), if the list to remove from is the Forward List (FL),
`user-handle` is replaced with `contact-guid`, which is the contact's GUID.
If `group` is specified and the list is set to the Forward List (FL),
then the user is only removed from the specified group.
To remove a user from a list entirely, omit the `group` parameter.
# Server/Response
`REM TrID [ FL | AL | BL | RL | PL ] {list-version} {group}`
If this is an asynchronous use of this command, the Transaction ID (or `TrID`) will be set to `0`.
Where `list-version` is the new List Version. Removed since [MSNP10](../versions/msnp10.md).
# Examples
## With List Versions
*Only in [MSNP2](../versions/msnp2.md) to [MSNP9](../versions/msnp9.md).*
### Remove from any modifiable list using a user handle
```
C: REM 1 AL anotheruser@hotmail.com
S: REM 1 AL 256 anotheruser@hotmail.com
C: REM 2 FL anotheruser@hotmail.com
S: REM 2 FL 257 anotheruser@hotmail.com
```
### Remove from group
*Since [MSNP7](../verisons/msnp7.md). NOTE: Only applies to FL.*
```
C: REM 3 FL anotheruser@hotmail.com 1
S: REM 3 FL 258 anotheruser@hotmail.com 1
```
## Without List Versions
*Since [MSNP10](../versions/msnp10.md).*
### Remove from Forward List entirely using a GUID
*NOTE: Only applies to FL.*
```
C: REM 4 FL c1f9a363-4ee9-4a33-a434-b056a4c55b98
S: REM 4 FL c1f9a363-4ee9-4a33-a434-b056a4c55b98
```
### Remove from other lists using a user handle
```
C: REM 5 AL anotheruser@hotmail.com
S: REM 5 AL anotheruser@hotmail.com
```
### Remove from group using two GUIDs
*NOTE: Only applies to FL.*
```
C: REM 6 FL c1f9a363-4ee9-4a33-a434-b056a4c55b98 d6deeacd-7849-4de4-93c5-d130915d0042
S: REM 6 FL c1f9a363-4ee9-4a33-a434-b056a4c55b98 d6deeacd-7849-4de4-93c5-d130915d0042
```
## User not in that list
```
C: REM 7 BL ghost@hotmail.com
S: 216 7
```
## Group does not exist
### Before GUIDs
*Only in [MSNP7](../versions/msnp7.md) to [MSNP9](../versions/msnp9.md). NOTE: Only applies to FL.*
```
C: REM 8 FL anotheruser@hotmail.com 32
S: 224 8
```
### After GUIDS
*Since [MSNP10](../versions/msnp10.md). NOTE: Only applies to FL.*
```
C: REM 9 FL c1f9a363-4ee9-4a33-a434-b056a4c55b98 00000000-0000-0000-0000-000000000000
S: 224 9
```
## Group exists, but user is not in it
### Before GUIDs
*Only in [MSNP7](../versions/msnp7.md) to [MSNP9](../versions/msnp9.md). NOTE: Only applies to FL.*
```
C: REM 10 FL anotheruser@hotmail.com 1
S: 225 10
```
### After GUIDS
*Since [MSNP10](../versions/msnp10.md). NOTE: Only applies to FL.*
```
C: REM 11 FL c1f9a363-4ee9-4a33-a434-b056a4c55b98 f0a0df8f-22a4-452c-9e3c-6252420480e9
S: 225 11
```
## You can not modify the Reverse List
```
C: REM 12 RL anotheruser@hotmail.com
```
Server disconnects client.
## Asynchronous update
### With List Version parameter
*Only in [MSNP2](../versions/msnp2.md) to [MSNP9](../versions/msnp9.md).*
```
S: REM 0 RL 259 anotheruser@hotmail.com
S: REM 0 FL 260 anotheruser@hotmail.com
```
### Without List Version parameter
*Since [MSNP10](../versions/msnp10.md).*
```
S: REM 0 RL anotheruser@hotmail.com
S: REM 0 FL c1f9a363-4ee9-4a33-a434-b056a4c55b98
```
# Known changes
* [MSNP7](../versions/msnp7.md): Added groups support.
* [MSNP10](../versions/msnp10.md): Added GUID support, replacing the user's handle for FL requests
and removed updating the List Version.
* [MSNP13](../versions/msnp13.md): Removed (automatic disconnect), replaced with RML.

View file

@ -1,5 +1,5 @@
# Introduction # Introduction
`RNG` is a command introduced with [MSNP2](../commands/msnp2.md). `RNG` is a command introduced with [MSNP2](../versions/msnp2.md).
It is a Notification Server command, without a response payload. It is a Notification Server command, without a response payload.

104
docs/commands/url.md Normal file
View file

@ -0,0 +1,104 @@
# Introduction
`URL` is a command introduced with [MSNP2](../versions/msnp2.md).
It is a Notification Server command, without a request or response payload.
It retrieves a service URL to open.
# Client/Request
`URL TrID service {param}`
Where `service` is the specified service you'd like to get the URL of:
* `PASSWORD`: Change password
* `INBOX`: Hotmail inbox
* `COMPOSE`: Compose an E-mail
* `MESSAGE`: Likely unused
* `FOLDERS`: MSN home?
* `PERSON`: Modify account details
* `MOBILE`: Setup MSN Mobile
* `CHGMOB`: Edit mobile settings
* `PROFILE`: Edit MSN Member Directory profile
* `N2PACCOUNT`: Net2Phone account management
* `N2PFUND`: Net2Phone payment managmenet
* `CHAT`: Chat rooms
* `ADDRBOOK`: Address Book, unused?
* `ADVSEARCH`: Advanced Search, unused?
* `INTSEARCH`: Internet Search, unused?
Where `param` is an optional parameter to specify extra data about the request:
* `CHAT`: Supports a LCID parameter for localization. Example: `0x0409`.
* `PROFILE`: Supports a LCID parameter for localization. Example: `0x0409`.
* `N2PACCOUNT`: Supports a LCID parameter for localization. Example: `0x0409`.
* `COMPOSE`: Supports a target address. Example: `example@hotmail.com`.
# Server/Response
`URL TrID redirect-url login-url {psid}`
Where `redirect-url` is either a relative URL to `login-url`, using the `rru` form parameter,
or an absolute URL to redirect to, using the `ru` form parameter. Absolute URLs are supported since [MSNP3](../versions/msnp3.md).
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)
# Examples
*NOTE: All examples will have Site IDs because I don't know what the login URL was without it.*
## Open E-mail Inbox
```
C: URL 1 INBOX
S: URL 1 /cgi-bin/HoTMaiL https://loginnet.passport.com/ppsecure/md5autf.srf?lc=1033 2
```
## Compose new E-mail
### Without target
```
C: URL 2 COMPOSE
S: URL 2 /cgi-bin/compose https://loginnet.passport.com/ppsecure/md5auth.srf?lc=1033 2
```
### With target
```
C: URL 3 COMPOSE anotheruser@hotmail.com
S: URL 3 /cgi/bin/compose?mailto=1&to=anotheruser%40hotmail%2ecom https://loginnet.passport.com/ppsecure/md5auth.srf?lc=1033 2
```
## Setup MSN Mobile
*Since [MSNP5](../versions/msnp3.md).*
```
C: URL 4 MOBILE
S: URL 4 http://mobile.msn.com/hotmail/confirmUser.asp?URL=%2Fmessengerok.htm&mobID=1 https://loginnet.passport.com/ppsecure/md5auth.srf?lc=1033 961
```
## Edit Member Directory Profile
*Since [MSNP6](../versions/msnp3.md).*
```
C: URL 5 PROFILE 0x0409
S: URL 5 http://members.msn.com/Edit.asp?lc=1033 https://loginnet.passport.com/ppsecure/md5auth.srf?lc=1033 4263
```
## Manage Net2Phone account
*Since [MSNP6](../versions/msnp6.md).*
```
C: URL 6 N2PACCOUNT 0x0409
S: URL 6 https://ocs.net2phone.com/account/msnaccount/default.asp?_lang=0x0409 https://loginnet.passport.com/ppsecure/md5auth.srf?lc1033 2823
```
## Open chat rooms
*Since [MSNP7](../versions/msnp7.md).*
```
C: URL 7 CHAT 0x0409
S: URL 7 http://chat.msn.com/Messenger.msnw?lc=1033 https://loginnet.passport.com/ppsecure/md5auth.srf?lc=1033 2260
```
# Known changes
* [MSNP3](../versions/msnp3.md): Added a Passport Site ID parameter to response (parameter 3),
now supports absolute URLs. Removed `PASSWORD` service.
* Client Version 3.0/[MSNP5](../versions/msnp5.md): Made the Passport Site ID parameter mandatory.
* [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.

View file

@ -8,24 +8,27 @@ It tells the client what server to connect to for the request.
# Client/Request # Client/Request
`XFR TrID server-type` `XFR TrID server-type`
Where `server-type` is either `SB` (for a switchboard server), or `NS` (for a new Notification server). Where `server-type` is either `SB` (for a Switchboard Server), or `NS` (for a new Notification Server).
# Server/Response # Server/Response
`XFR TrID server-type address:port {...}`
Where `server-type` is either `SB` (for Switchboard), or `NS` (for a Notification Server).
Where `address:port` is the server you have requested or being referred to is.
If this is set to `0`, proceed to **ignore** the `server-type` parameter
and restart the login process on the current server from [VER](ver.md).
## XFR NS ## XFR NS
`XFR TrID NS address:port {0} {current-server}` `XFR TrID NS address:port {0} {current-server}`
Where `address:port` is the server you have requested or being referred to is. In [MSNP3](../versions/msnp3.md) or higher, `0` is always `0`.
In [MSNP3](../versions/msnp3.md) or higher, `0` is always 0.
In [MSNP7](../versions/msnp7.md) or higher, `current-server` is the current server you are connected to. In [MSNP7](../versions/msnp7.md) or higher, `current-server` is the current server you are connected to.
## XFR SB ## XFR SB
`XFR TrID SB address:port authentication-method authentication-parameter` `XFR TrID SB address:port authentication-method authentication-parameter`
Where `address:port` is the server you have requested is.
Where `authentication-method` is always `CKI`. Where `authentication-method` is always `CKI`.
Where `authentication-parameter` is the "cookie" you need to log in to Switchboard. Where `authentication-parameter` is the "cookie" you need to log in to Switchboard.
@ -80,6 +83,12 @@ Client disconnects from server
Client opens a connection to 10.0.0.5:1863 Client opens a connection to 10.0.0.5:1863
## Forced soft reset
```
S: XFR 0 NS 0
C: VER 6 MSNP7 MSNP6 MSNP5 MSNP4
```
# Known changes # Known changes
* [MSNP3](..versions/msnp3.md) adds a new parameter that is always 0 to XFR NS. * [MSNP3](..versions/msnp3.md) adds a new parameter that is always 0 to XFR NS.
* [MSNP7](..versions/msnp7.md) adds a new parameter that is the current server you are communicating with to XFR NS. * [MSNP7](..versions/msnp7.md) adds a new parameter that is the current server you are communicating with to XFR NS.

View file

@ -22,7 +22,6 @@ More is to come soon! Hopefully!
# Wanted Information # Wanted Information
* [MSNP2](versions/msnp2.md): What is the format of the initial `text/x-msmsgsemailnotification`? * [MSNP2](versions/msnp2.md): What is the format of the initial `text/x-msmsgsemailnotification`?
* [MSNP3](versions/msnp3.md): How is `creds` generated for URLs native to this version?
* [MSNP4](versions/msnp4.md): Anything for this one. * [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): 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.
@ -39,13 +38,14 @@ More is to come soon! Hopefully!
* [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](commands/msg.md) 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](commands/msg) D? * [MSG command](commands/msg.md): What can return from [MSG](commands/msg.md) D?
* [INF command](commands/inf.md): ***Why*** does the [MSNP2](versions/msnp2.md) [draft](https://datatracker.ietf.org/doc/html/draft-movva-msn-messenger-protocol-00#section-7.2) have this in Switchboard? It's not used by any client as far as i'm aware. * [INF command](commands/inf.md): ***Why*** does the [MSNP2](versions/msnp2.md) [draft](https://datatracker.ietf.org/doc/html/draft-movva-msn-messenger-protocol-00#section-7.2) have this in Switchboard? It's not used by any client as far as i'm aware.
* [LST command](commands/lst.md): Any updates to this command outside of SYN. * [LST command](commands/lst.md): Any updates to this command outside of SYN.
## Unsolved Mysteries ## Unsolved Mysteries
* [FND command](commands/fnd.md): Why does this have an iterator if you can't send it over multiple packets? * [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? * [USR command](commands/usr.md): Speaking of CKI, Why is it not specified when authenticating to Switchboard?
* [XFR command](commands/xfr.md): That one single digit parameter and what it has to do with `application/x-msmsgsspmessage`.
* The Draft: Why did the draft go vague on the errors? The list was there, but no explanations on what can cause them... Odd. * 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

View file

@ -1,5 +1,4 @@
# Introduction # Introduction
CVR0 is a subprotocol of the Mobile Status Notification Protocol. CVR0 is a subprotocol of the Mobile Status Notification Protocol.
It was introduced officially in Client Version 1.0.0863, along with [MSNP2](msnp2.md). It was introduced officially in Client Version 1.0.0863, along with [MSNP2](msnp2.md).

View file

@ -12,7 +12,7 @@ It introduces the notification service commands:
*No error codes were known to be introduced in this version* *No error codes were known to be introduced in this version*
The following commands were removed in this version: The following commands were removed in this version:
* ADD (automatic disconnection) * [ADD](../commands/add.md) (automatic disconnection)
* REA (automatic disconnection?) * REA (automatic disconnection?)
# Known changes # Known changes
@ -32,11 +32,11 @@ The following commands were removed in this version:
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](../commands/lst.md): 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](../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. 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/prp.md) commands are affected by this change. [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, * 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.
@ -44,7 +44,7 @@ The following commands were removed in this version:
and TOU, for not accepting the Service Terms of Use. and TOU, for not accepting the Service Terms of Use.
* Official Client: Now handles the 604 error code again, which was last seen in Client Version 3.6.003x. * Official Client: Now handles the 604 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. 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). * First protocol version to remove a core command implemented since [MSNP2](msnp2.md) draft ([ADD](../commands/add.md)).
# Client-server communication example # Client-server communication example
*NOTE: This has been line-breaked. *NOTE: This has been line-breaked.

View file

@ -11,7 +11,7 @@ It introduces the dispatch service commands:
* [XFR](../commands/xfr.md) * [XFR](../commands/xfr.md)
It introduces the notification service commands: It introduces the notification service commands:
* ADD * [ADD](../commands/add.md)
* [BLP](../commands/blp.md) * [BLP](../commands/blp.md)
* [CHG](../commands/chg.md) * [CHG](../commands/chg.md)
* [CVR](../commands/cvr.md) (not in draft) * [CVR](../commands/cvr.md) (not in draft)
@ -27,11 +27,11 @@ It introduces the notification service commands:
* [PNG](../commands/png.md) (not in draft) * [PNG](../commands/png.md) (not in draft)
* [QNG](../commands/qng.md) (not in draft) * [QNG](../commands/qng.md) (not in draft)
* REA (not in draft) * REA (not in draft)
* REM * [REM](../commands/rem.md)
* [RNG](../commands/rng.md) * [RNG](../commands/rng.md)
* SND (not in draft) * SND (not in draft)
* SYN * SYN
* URL (not in draft) * [URL](../commands/url.md) (not in draft)
* USR * USR
* [VER](../commands/ver.md) * [VER](../commands/ver.md)
* [XFR](../commands/xfr.md) * [XFR](../commands/xfr.md)

View file

@ -17,8 +17,9 @@ It introduces the error codes:
# Known changes # Known changes
(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](../commands/url.md) (parameter 3).
* Removed `PASSWORD` service from [URL](../commands/url.md).
* Added Hotmail's Passport Site ID to new e-mail notifications. * 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.
@ -31,8 +32,19 @@ It introduces the error codes:
* Entire content of initial email notification changed from * Entire content of initial email notification changed from
`text/x-msmsgsemailnotification` to `application/x-msmsgsinitialemailnotification`, `text/x-msmsgsemailnotification` to `application/x-msmsgsinitialemailnotification`,
the format is likely different. Now includes unread email count. [Examination needed] the format is likely different. Now includes unread email count. [Examination needed]
* Official Client: Changed form that URL uses to login drastically. * Official Client: Automatic login form now supports Passport
New format is undocumented, but now has MD5 `creds` instead of the plain-text `passwd`. if parameter 3 is set in [URL](../commands/url.md).
To generate `creds`, MD5 hash the following as one concatenated string:
`auth` (from Initial Profile's `MSPAuth`, also included in the form) +
`sl` (amount of seconds since `LoginTime`, also included in the form) +
`passwd` (plain-text password).
* Official Client: Legacy automatic login form parameters has changed.
This only applies for [URL](../commands/url.md) commands without parameter 3.
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).
* Official Client: Removed [URL](../commands/url.md) service `PASSWORD`.
# Client-server communication example # Client-server communication example
``` ```

View file

@ -30,6 +30,8 @@ It introduces the notification service commands:
sending the user to a invitation screen with, with it ending in sending an SDC in the format of sending the user to a invitation screen with, with it ending in sending an SDC in the format of
`SDC TrID {FND index} 0x0409 MSMSGS MSMSGS X X example%20user {length}`. `SDC TrID {FND index} 0x0409 MSMSGS MSMSGS X X example%20user {length}`.
The `0x0409` can be changed to any language code, with the `length` denoting the payload if specified. The `0x0409` can be changed to any language code, with the `length` denoting the payload if specified.
* Official Client: [URL](../commands/url.md) without the Passport Site ID (parameter 3) support has been removed.
* Official Client: Added new [URL](../commands/url.md) services `MOBILE` and `CHGMOB` .
# Client-server communication example # Client-server communication example
``` ```

View file

@ -18,11 +18,12 @@ It introduces the notification service commands:
(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 can not 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.
* An example client secret is `Q1P7W2E4J9R8U3S5`, which is tied to `msmsgs@msnmsgr.com`. * An example client secret is `Q1P7W2E4J9R8U3S5`, which is tied to `msmsgs@msnmsgr.com`.
* First protocol version added in a patch release (3.6.0025 and 3.6.0026 do not support MSNP6). * First protocol version added in a patch release (3.6.0025 and 3.6.0026 do not support MSNP6).
* Official Client: Added new [URL](../commands/url.md) services `PROFILE`, `N2PACCOUNT` and `N2PFUND`.
# Client-server communication example # Client-server communication example
``` ```

View file

@ -21,16 +21,20 @@ It introduces the error codes:
(from [MSNP6](msnp6.md)): (from [MSNP6](msnp6.md)):
* Added contact groups. All FL contacts now have an extra number array for what groups they are in. * 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. The "Other Contacts" group can NOT be removed.
* ADD and REM now have group parameters if the list is FL. * [ADD](../commands/add.md) and [REM](../command/rem.md) now have group parameters if the list is set to the Forward List (FL).
* REMs with the list set to FL with a group ID only removes that user from the respective group, not the 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,
* Adds with the list set to FL with a group ID only adds that user from the respective group, not to the FL. not the Forward List (FL) itself.
* [ADD](../commands/add.md) commnads with the list set to the Forward List (FL) with a group ID only adds that user from the respective group,
and the Forward List (FL) if the user is not already in the Forward List (FL).
* SYN now includes LSG entries for groups. * SYN now includes LSG entries for groups.
* [LST](../commands/lst.md) (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 Forward List (FL).
* [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.
* Official website's `whatsnew.asp` page has been updated. * Official website's `whatsnew.asp` page has been updated.
* Official Client: New service URLs for some features. * Official Client: New service URLs for some features.
* Official Client: Added new [URL](../commands/url.md) service `CHAT`.
* Official Client: Removed [URL](../commands/url.md) services `N2PACCOUNT` and `N2PFUND`.
# Client-server communication example # Client-server communication example
``` ```

View file

@ -30,7 +30,9 @@ The following commands were removed in this version:
* NOTE: [FND](../commands/fnd.md) 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](../commands/bpr.md) removes related user, for some reason, default fields share same optimization as [PRP](../commands/prp.md) does. * [BPR](../commands/bpr.md) removes related user, for some reason, default fields share same optimization as [PRP](../commands/prp.md) does.
* [LST](../commands/lst.md) (for SYN): Lists are now all combined into a single number, where: * [LST](../commands/lst.md) (for SYN): 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 = 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, 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.
* Official Client: Error 711 is now handled. * Official Client: Error 711 is now handled.
@ -40,7 +42,10 @@ The following commands were removed in this version:
* Official Client: Introduced ABCH (Address Book Clearing House) support. * Official Client: Introduced ABCH (Address Book Clearing House) support.
The URL is gathered from `svcs.microsoft.com`. The URL is gathered from `svcs.microsoft.com`.
`abch_config.asp` provides an XML document with a `<abchconfig>` element. `abch_config.asp` provides an XML document with a `<abchconfig>` element.
It likely has a `<url>` child element containing the URL of the ABCH service. It has a `<url>` element containing the service URL, a `<refresh>` element,
and finally a `<percent>` element. Example values are
`http://contacts.msn.com/abservice/abservice.asmx`, `0` and `0.0` respectively.
* Official Client: Added new [URL](../commands/url.md) services `ADDRBOOK`, `ADVSEARCH` and `INTSEARCH`
# Client-server communication example # Client-server communication example
*NOTE: This has been line-breaked. *NOTE: This has been line-breaked.