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) |
| ----- | - | - | -| ------ | ----- |
| [`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) |
| [`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) |
@ -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`) |
| [`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) |
| [`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
* `*`: 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
`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.

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
`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
## Setting to AL (Allow messages by default)
```
C: BLP 1 AL
S: BLP 1 255 AL
S: BLP 1 256 AL
```
## Setting to BL (Block messages by default)
```
C: BLP 2 BL
S: BLP 2 256 BL
S: BLP 2 257 BL
```
## Invalid argument

View file

@ -29,13 +29,13 @@ Where `value` is the value that is assigned to `property`.
## 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
*Inherited from being an unimplemented command.*
```
C: BPR example@hotmail.com
C: BPR example@hotmail.com
```
# Known changes

View file

@ -1,5 +1,5 @@
# 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.

View file

@ -21,7 +21,7 @@ Where `CC` is a 2-character string representation of the country to search users
# Server/Response
`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.
# Examples
@ -29,14 +29,14 @@ Instead, error 301 is returned in cases where the result would be too large to r
## Valid, with users
```
C: FND 1 fname=Another lname=User city=* state=* country=US
S: FND 1 1 2 fname=Another lname=User city=New%20York state=NY country=US
S: FND 1 1 2 fname=Another lname=User city=New%20York state=NY country=US
FND 1 2 2 fname=Another lname=User city=Stillwater state=OK country=US
```
## Valid, no users
```
C: FND 2 fname=Another lname=User city=* state=* country=DE
S: FND 2 0 0
S: FND 2 0 0
```
## Invalid parameter

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)
```
C: GTC 1 A
S: GTC 1 255 A
S: GTC 1 256 A
```
## Setting to N (Automatically add to AL)
```
C: GTC 2 N
S: GTC 2 256 N
S: GTC 2 257 N
```
## Invalid argument

View file

@ -40,6 +40,7 @@ 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,
@ -47,6 +48,7 @@ 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:
@ -60,12 +62,14 @@ 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.
@ -75,6 +79,7 @@ only appending if Forward List (FL) is set in `list-bits`, defaults to whatever
### 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:
@ -90,9 +95,9 @@ Where `network-id` is any Network ID bits:
## Client-initated
```
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
S: LST 2 BL 254 0 0
S: LST 2 BL 255 0 0
```
## 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
```
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
```
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

View file

@ -22,7 +22,7 @@ S: QNG
```
## Server-reply, new
*Since [MSNP9](../commands/msnp9.md).*
*Since [MSNP9](../versions/msnp9.md).*
```
C: PNG
S: QNG 50
@ -37,4 +37,4 @@ C: QNG
Server disconnects client.
# 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
`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.

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
`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
`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 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.
## XFR SB
`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-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
## Forced soft reset
```
S: XFR 0 NS 0
C: VER 6 MSNP7 MSNP6 MSNP5 MSNP4
```
# Known changes
* [MSNP3](..versions/msnp3.md) adds a new parameter that is always 0 to XFR NS.
* [MSNP7](..versions/msnp7.md) adds a new parameter that is the current server you are communicating with to XFR NS.

View file

@ -22,7 +22,6 @@ More is to come soon! Hopefully!
# Wanted Information
* [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.
* [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.
@ -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?
* [IMS command](commands/ims.md): What is the unknown number (that is usually `0`) in the response?
* [NAK command](commands/nak.md): This isn't used ever as a response for [MSG](commands/msg.md) D right?
* [MSG command](commands/msg.md): What can return from [MSG](commands/msg) 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.
* [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?
* [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.
# Common (or not) Terms

View file

@ -1,5 +1,4 @@
# Introduction
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).

View file

@ -12,7 +12,7 @@ It introduces the notification service commands:
*No error codes were known to be introduced in this version*
The following commands were removed in this version:
* ADD (automatic disconnection)
* [ADD](../commands/add.md) (automatic disconnection)
* REA (automatic disconnection?)
# Known changes
@ -27,16 +27,16 @@ The following commands were removed in this version:
* [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:
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.
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: 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.
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, [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,
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.
@ -44,7 +44,7 @@ The following commands were removed in this version:
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).
* First protocol version to remove a core command implemented since [MSNP2](msnp2.md) draft ([ADD](../commands/add.md)).
# Client-server communication example
*NOTE: This has been line-breaked.
@ -66,7 +66,7 @@ Client opens a connection to 10.0.0.5:1863
C: VER 4 MSNP10 MSNP9 CVR0
S: VER 4 MSNP10
C: CVR 5 0x0409 winnt 5.1 i386 MSNMSGR 6.0.0602 MSMSGS example@hotmail.com
S: CVR 5 6.1.0211 6.1.0211 6.1.0155
S: CVR 5 6.1.0211 6.1.0211 6.1.0155
.. http://download.microsoft.com/download/8/3/C/83C4B2DB-AC1C-4B56-8144-4472C0982F21/SetupDl.exe
.. http://messenger.msn.com
C: USR 6 TWN I example@hotmail.com
@ -118,7 +118,7 @@ Client opens a connection to 10.0.0.5:1863 (from stored server)
C: VER 10 MSNP10 MSNP9 CVR0
S: VER 10 MSNP10
C: CVR 11 0x0409 winnt 5.1 i386 MSNMSGR 6.0.0602 MSMSGS example@hotmail.com
S: CVR 11 6.1.0211 6.1.0211 6.1.0155
S: CVR 11 6.1.0211 6.1.0211 6.1.0155
.. http://download.microsoft.com/download/8/3/C/83C4B2DB-AC1C-4B56-8144-4472C0982F21/SetupDl.exe
.. http://messenger.msn.com
C: USR 12 TWN I example@hotmail.com

View file

@ -46,7 +46,7 @@ Client opens a connection to 10.0.0.5:1863 (from stored server)
C: VER 4 MSNP10 MSNP9 CVR0
S: VER 4 MSNP10
C: CVR 5 0x0409 winnt 5.1 i386 MSNMSGR 6.0.0602 MSMSGS example@hotmail.com
S: CVR 5 6.1.0211 6.1.0211 6.1.0155
S: CVR 5 6.1.0211 6.1.0211 6.1.0155
.. http://download.microsoft.com/download/8/3/C/83C4B2DB-AC1C-4B56-8144-4472C0982F21/SetupDl.exe
.. http://messenger.msn.com
C: USR 6 TWN I example@hotmail.com

View file

@ -27,7 +27,7 @@ Lines beginning with `..` followed by a space are continuations of the previous
C: VER 1 MSNP12 MSNP11 MSNP10 CVR0
S: VER 1 MSNP12
C: CVR 2 0x0409 winnt 5.1 i386 MSNMSGR 6.0.0602 MSMSGS example@hotmail.com
S: CVR 2 6.1.0211 6.1.0211 6.1.0155
S: CVR 2 6.1.0211 6.1.0211 6.1.0155
.. http://download.microsoft.com/download/8/3/C/83C4B2DB-AC1C-4B56-8144-4472C0982F21/SetupDl.exe
.. http://messenger.msn.com
C: USR 3 TWN I example@hotmail.com
@ -40,7 +40,7 @@ Client opens a connection to 10.0.0.5:1863 (from stored server)
C: VER 4 MSNP12 MSNP11 MSNP10 CVR0
S: VER 4 MSNP12
C: CVR 5 0x0409 winnt 5.1 i386 MSNMSGR 6.0.0602 MSMSGS example@hotmail.com
S: CVR 5 6.1.0211 6.1.0211 6.1.0155
S: CVR 5 6.1.0211 6.1.0211 6.1.0155
.. http://download.microsoft.com/download/8/3/C/83C4B2DB-AC1C-4B56-8144-4472C0982F21/SetupDl.exe
.. http://messenger.msn.com
C: USR 6 TWN I example@hotmail.com

View file

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

View file

@ -17,8 +17,9 @@ It introduces the error codes:
# Known changes
(from [MSNP2](msnp2.md)):
* [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).
* [XFR](../commands/xfr.md): Added a new parameter that is always `0`. No use is known or documented.
* 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.
* Initial profile: Added Passport intergration fields.
* 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
`text/x-msmsgsemailnotification` to `application/x-msmsgsinitialemailnotification`,
the format is likely different. Now includes unread email count. [Examination needed]
* Official Client: Changed form that URL uses to login drastically.
New format is undocumented, but now has MD5 `creds` instead of the plain-text `passwd`.
* 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).
* 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
```

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
`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.
* 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
```

View file

@ -18,11 +18,12 @@ It introduces the notification service commands:
(from [MSNP5](msnp5.md)):
* 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
`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
`MD5(challenge + clientSecret)` as a lowercase hex-string.
* 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).
* Official Client: Added new [URL](../commands/url.md) services `PROFILE`, `N2PACCOUNT` and `N2PFUND`.
# Client-server communication example
```

View file

@ -21,16 +21,20 @@ 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 and REM now have group parameters if the list is 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.
* [ADD](../commands/add.md) and [REM](../command/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,
and the Forward List (FL) if the user is not already in the Forward List (FL).
* 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.
* Official Client: Error codes 602, 603, 911 (since removal in Client Version 3.0) are implemented.
Error code 604 is no longer handled since Client Version 2.0.
* Official website's `whatsnew.asp` page has been updated.
* Official Client: New service URLs for some features.
* Official Client: Added new [URL](../commands/url.md) service `CHAT`.
* Official Client: Removed [URL](../commands/url.md) services `N2PACCOUNT` and `N2PFUND`.
# 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.
* [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:
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.
You can now tell other clients what features you support.
* 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.
The URL is gathered from `svcs.microsoft.com`.
`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
*NOTE: This has been line-breaked.