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,7 +29,7 @@ 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

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

@ -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
@ -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,
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.

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

@ -23,6 +23,7 @@ It introduces the notification service commands:
`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.