[0.1.4] MSNP13 and MSNP14, ADL, RML, FQY

also add new command findings:
* undocumented command GSB
* syntax and other errors fixed
* explode a bit of xml in places that were a bit too long
* find out what a "merchant cab" file is (one line of xml)
This commit is contained in:
Declan B. 2024-11-30 17:02:48 +00:00
parent 4bf934f857
commit 7488f2af43
Signed by: yellows111
SSH key fingerprint: SHA256:ynw5IJBU1pb7fZfHgLihKu9gHHA8FVpixZbB6IEB3r8
38 changed files with 1078 additions and 116 deletions

View file

@ -4,9 +4,9 @@
It is a Notification Server command, without a request or response payload.
Adds a user to a list.
For the command that was replaced with this, read [ADD](add.md).
For the command that replaced this command in [MSNP13](../versions/msnp13.md), read ADL.
For the service that complements ADL, read about the [Address Book Service](../services/abservice.md).
For the command that was replaced with this, read [ADD](add.md).
For the command that replaced this command in [MSNP13](../versions/msnp13.md), read [ADL](adl.md).
For the service that complements [ADL](adl.md), read about the [Address Book Service](../services/abservice.md).
# Client/Request
@ -104,16 +104,16 @@ C: ADC 5 FL C=anotheruser@hotmail.com f60efbe7-94af-4b16-b926-e4e10878d329
S: ADC 5 FL C=anotheruser@hotmail.com f60efbe7-94af-4b16-b926-e4e10878d329
```
## Invalid handle
## Invalid user handle
```
C: ADC 6 FL N=a@b F=a@b
S: 201 6
```
## Account not found
## Target user not found
```
C: ADC 7 FL N=ghost@hotmail.com F=ghost@hotmail.com
S: 205 7
S: 208 7
```
## Target list is full
@ -173,7 +173,7 @@ S: ADC 0 RL N=anotheruser@hotmail.com F=another%20user
* [MSNP11](../versions/msnp11.md): Now supports phone-only (`tel:`) contacts.
Requires the `MobileMessaging` element in the
[Messenger Config](../services/msgrconfig.md) to be configured for the Official Client to use the feature.
* [MSNP13](../versions/msnp13.md): Removed, use ADL and the
* [MSNP13](../versions/msnp13.md): Removed, use [ADL](adl.md) and the
[Address Book Service](../services/abservice.md)'s
[`ABContactAdd`](../services/abservice/abcontactadd.md) action or the
[Contact Sharing Service](../services/sharingservice.md)'s

192
docs/commands/adl.md Normal file
View file

@ -0,0 +1,192 @@
# Introduction
`ADL` is a command introduced with [MSNP13](../versions/msnp13.md).
It is a Notification Server command, WITH a request and WITH a response payload.
Adds a user to a list during a session or initialises the states of the Forward List (FL),
Allow List (AL) and Block List (BL) after retrieving the current state of all lists from the
[Address Book Service](../services/abservice.md) and the
[Contact Sharing Service](../services/sharingservice.md).
For the actions that add a user to the address book or the membership lists,
read either the [`ABContactAdd`](../services/abservice/abcontactadd.md) article
or the [`AddMember`](../services/sharingservice/addmember.md) article respectively.
# Client/Request
```
ADL TrID length
payload
```
Where `payload` is a [`<ml>`](#ml) document, without any support for whitespace outside of element parameters.
## ml
This element has one optional attribute:
* `l`: If this is the initial list, this is set to `1`.
This element optionally supports one or multiple `<d>` elements,
and optionally only one `<t>` element.
### d
This element has one attribute:
* `n`: The domain (`...@this`) of the user handle.
This element contains one or multiple `<c>` elements.
#### c
This element has three attributes:
* `n`: The local part (`this@...`) of the user handle.
* `l`: A bitfield that denotes what list this user is in:
* `1` (bit 0): Forward List (FL).
* `2` (bit 1): Allow List (AL).
* `4` (bit 2): Block List (BL).
* `8` (bit 3): Reverse List (RL). This value can only be set by the server.
* `16` (bit 4): Pending List (PL). This value can only be set by the server.
* `t`: The Network ID that this user is associated with.
### t
This element contains one or multiple `<c>` elements.
#### c
This element has two attributes:
* `n`: The phone number as a `tel:` URI, with the `+` prefix.
* `l`: A bitfield that denotes what list this user is in:
* `1` (bit 0): Forward List (FL).
* `2` (bit 1): Allow List (AL).
* `4` (bit 2): Block List (BL).
* `8` (bit 3): Reverse List (RL). This value can only be set by the server.
* `16` (bit 4): Pending List (PL). This value can only be set by the server.
This element also has one optional attribute:
* `f`: The friendly name of this user. This attribute can only be set by the server.
# Server/Response
## As a response
`ADL TrID OK`
No payload is attached in this scenario.
## Asynchronously
```
ADL 0 length
payload
```
Where payload is a [`<ml>`](#ml) document, without any support for whitespace outside of element parameters.
# Examples
*NOTE: The XML in these examples has been exploded for visibility and formatting reasons.
No whitespace is allowed in ADL's payload and the payload size reflects this,
and is set to the correct value.*
## Initial list
```
C: ADL 1 110
<ml l="1">
<d n="hotmail.com">
<c n="anotheruser" l="3" t="1" />
</d>
<t>
<c n="tel:+15551111222" l="3" />
</t>
</ml>
S: ADL 1 OK
```
## Normal use
### Add a user handle
```
C: ADL 2 65
<ml>
<d n="hotmail.com">
<c n="anotheruser" l="1" t="1" />
</d>
</ml>
S: ADL 2 OK
```
### Add a telephone number
```
C: ADL 3 48
<ml>
<t>
<c n="tel:+15551111222" l="1" />
</t>
</ml>
S: ADL 3 OK
```
## No services specified
```
C: ADL 4 9
<ml></ml>
S: 240 4
```
## No domain name specified
```
C: ADL 5 16
<ml>
<d>
</d>
</ml>
S: 241 5
```
## Out of bounds Network ID
```
C: ADL 6 67
<ml>
<d n="hotmail.com">
<c n="anotheruser" l="1" t="256" />
</d>
</ml>
S: 204 6
```
## You cannot add to the Reverse List or Pending List
```
C: ADL 7 65
<ml>
<d n="hotmail.com">
<c n="anotheruser" l="8" t="1" />
</d>
</ml>
S: 241 7
```
## Target user not found
```
C: ADL 8 59
<ml>
<d n="hotmail.com">
<c n="ghost" l="1" t="1" />
</d>
</ml>
S: 208 8
```
## Target list is full
```
C: ADL 9 61
<ml>
<d n="hotmail.com">
<c n="stuffed" l="1" t="1" />
</d>
</ml>
S: 210 9
```
## Asynchronous update
```
S: ADL 0 82
<ml>
<d n="hotmail.com">
<c n="anotheruser" l="8" t="1" f="another user" />
</d>
</ml>
```
# Known changes
* [MSNP17](../versions/msnp17.md): Now manages circles?

View file

@ -9,17 +9,29 @@ It specifies that another user in your contact list has gone offline.
This command can not be sent from the client.
# Server/Response
`FLN {user-handle}`
`FLN {user-handle} {network-id}`
Where `user-handle` is the related user's handle.
Where `network-id` is the Network Identification Number that this user is from.
Added since [MSNP14](../versions/msnp14.md).
# Examples
## User goes offline
### Without Network IDs
*Only in [MSNP2](../versions/msnp2.md) to [MSNP13](../versions/msnp13.md).*
```
S: FLN anotheruser@hotmail.com
```
### With Network IDs
*Since [MSNP14](../versions/msnp14.md).*
```
S: FLN anotheruser@hotmail.com 1
```
## Invalid context
*Inherited from being an unimplemented command.*
```
@ -29,4 +41,4 @@ C: FLN Hotmail
Server disconnects client.
# Known changes
None.
* [MSNP14](../versions/msnp14.md): Added a new parameter that denotes the Network ID of the user that is now offline.

105
docs/commands/fqy.md Normal file
View file

@ -0,0 +1,105 @@
# Introduction
`FQY` is a command introduced with [MSNP14](../versions/msnp14.md).
It is a Notification Server command, WITH a request and WITH a response payload.
Requests the server on which Network ID the user is assigned to.
# Client/Request
```
FQY TrID length
payload
```
Where `payload` is a [`<ml>`](#ml) document, without any support for whitespace outside of element parameters.
## ml
This element supports one or multiple `<d>` elements.
### d
This element has one attribute:
* `n`: The domain (`...@this`) of the user handle.
This element contains one or multiple `<c>` elements.
#### c
This element has two attributes:
* `n`: The local part (`this@...`) of the user handle.
* `t`: The Network ID that this user is associated with.
This parameter is to be omitted by the client, but not the server.
# Server/Response
```
FQY TrID length
payload
```
Where payload is a [`<ml>`](#ml) document, without any support for whitespace outside of element parameters.
# Examples
*NOTE: The XML in these examples has been exploded for visibility and formatting reasons.
No whitespace is allowed in FQY's payload and the payload size reflects this,
and is set to the correct value.*
## User on another service
```
C: FQY 1 53
<ml>
<d n="hotmail.com">
<c n="anotheruser" />
</d>
</ml>
S: FQY 1 59
<ml>
<d n="hotmail.com">
<c n="anotheruser" t="1" />
</d>
</ml>
```
## User on the same service
```
C: FQY 2 53
<ml>
<d n="hotmail.com">
<c n="anotheruser" />
</d>
</ml>
S: FQY 2 60
<ml>
<d n="hotmail.com">
<c n="anotheruser" t="32" />
</d>
</ml>
```
## No services specified
```
C: FQY 3 9
<ml></ml>
S: 240 3
```
## No domain name specified
```
C: FQY 4 16
<ml>
<d>
</d>
</ml>
S: 241 4
```
## Target user not found
```
C: FQY 5 47
<ml>
<d n="hotmail.com">
<c n="ghost" />
</d>
</ml>
S: 208 5
```
# Known changes
None.

View file

@ -7,7 +7,7 @@ Specifies that a user was already online by the time the client was.
For the version of this command without the Transaction ID that is sent at any time, read [NLN](nln.md).
This command is sent after the initial [CHG](chg.md) command, using it's Transaction ID.
It may also be sent as a follow-up to a [ADD](add.md), [ADC](adc.md) or ADL command, using it's Transaction ID.
It may also be sent as a follow-up to a [ADD](add.md), [ADC](adc.md) or [ADL](adl.md) command, using it's Transaction ID.
# Client/Request
This command can not be sent from the client.
@ -28,7 +28,8 @@ Where `status` is any of the defined statuses:
Where `user-handle` is the relevant user's handle.
Where `network-id` is the Network Identification Number. Added since [MSNP14](../versions/msnp14.md).
Where `network-id` is the Network Identification Number that this user is from.
Added since [MSNP14](../versions/msnp14.md).
Where `friendly-name` is the relevant user's friendly name.

View file

@ -12,7 +12,7 @@ It enables or disables switchboard access without modifying the user's current s
`IMS TrID 0 [ ON | OFF ]`
Where `0` has an unknown purpose.
Rumored to be a timeout of some kind. [Please confirm this.]
Rumored to be a timeout of some kind. [TODO: Please confirm this.]
# Examples
@ -37,4 +37,5 @@ C: IMS 3 TOMORROW
Server disconnects client.
# Known changes
* Removed in MSNP24... probably? Who really knows... Only WebTV supported it, which only has [MSNP3](../versions/msnp3.md) and [MSNP8](../versions/msnp8.md).
* Removed in MSNP24... probably? Who really knows... Only WebTV supported it,
which only has [MSNP3](../versions/msnp3.md), [MSNP6](../versions/msnp6.md) and [MSNP8](../versions/msnp8.md).

View file

@ -119,7 +119,9 @@ LoginTime: 1726321960
```
#### Initial e-mail configuration
*NOTE: This message is from [MSNP3](../versions/msnp3.md), the [MSNP2](../versions/msnp2.md) version of this is unknown.*
*NOTE: In [MSNP2](../versions/msnp2.md) only, the type of the initial e-mail configuration was
`application/x-msmsgsemailnotification`, which was changed in [MSNP3](../versions/msnp3.md) to
`text/x-msmsgsinitialemailnotification`.*
```
S: MSG Hotmail Hotmail 221
MIME-Version: 1.0
@ -134,23 +136,26 @@ Post-URL: http://www.hotmail.com
```
#### New e-mail
*NOTE: In [MSNP2](../versions/msnp2.md) only, the type of the e-mail notifications was
`application/x-msmsgsemailnotification`, which was changed in [MSNP3](../versions/msnp3.md) to
`text/x-msmsgsemailnotification`, and also added the `id` header for automatic Passport authentication,
and the `Post-URL` was also changed from `http://www.hotmail.com` to
either the passport `md5auth.srf` of your account server or provided by a Hotmail `law` server.*
```
S: MSG Hotmail Hotmail 342
S: MSG Hotmail Hotmail 359
MIME-Version: 1.0
Content-Type: text/x-msmsgsemailnotification; charset=UTF-8
From: Example User
Message-URL: /cgi-bin/getmsg?msg=MSG1728932553.00&start=1&len=12&curmbox=ACTIVE
Post-URL: https://loginnet.passport.com/ppsecure/md5auth.srf?lc=1033
Subject: Just saying hello.
Subject: =?"us-ascii"?Q?Just saying hello.?=
Dest-Folder: ACTIVE
From-Addr: example@hotmail.com
id: 2
```
Since [MSNP3](../versions/msnp3.md), the `id` header was added for Passport automatic authentication support.
#### Mailbox activity
```
S: MSG Hotmail Hotmail 146

View file

@ -25,7 +25,8 @@ Where `status` is any of the defined statuses:
Where `user-handle` is the relevant user's handle.
Where `network-id` is the Network Identification Number. Added since [MSNP14](../versions/msnp14.md).
Where `network-id` is the Network Identification Number that this user is from.
Added since [MSNP14](../versions/msnp14.md).
Where `friendly-name` is the relevant user's friendly name.

View file

@ -134,7 +134,7 @@ S: REM 0 FL c1f9a363-4ee9-4a33-a434-b056a4c55b98
* [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, use RML and the
* [MSNP13](../versions/msnp13.md): Removed, use [RML](rml.md) and the
[Address Book Service](../services/abservice.md)'s
[`ABContactDelete`](../services/abservice/abcontactdelete.md) action or the
[Contact Sharing Service](../services/sharingservice.md)'s

161
docs/commands/rml.md Normal file
View file

@ -0,0 +1,161 @@
# Introduction
`RML` is a command introduced with [MSNP13](../versions/msnp13.md).
It is a Notification Server command, WITH a request and WITH a response payload.
Removes a user from a list during a session.
For the actions that removes a user from the address book or the membership lists,
read either the [`ABContactDelete`](../services/abservice/abcontactdelete.md) article
or the [`DeleteMember`](../services/sharingservice/deletemember.md) article respectively.
# Client/Request
```
RML TrID length
payload
```
Where `payload` is a [`<ml>`](#ml) document, without any support for whitespace outside of element parameters.
## ml
This element has one optional attribute:
* `l`: If this is the initial list, this is set to `1`.
This element optionally supports one or multiple `<d>` elements,
and optionally only one `<t>` element.
### d
This element has one attribute:
* `n`: The domain (`...@this`) of the user handle.
This element contains one or multiple `<c>` elements.
#### c
This element has three attributes:
* `n`: The local part (`this@...`) of the user handle.
* `l`: A bitfield that denotes what list this user is in:
* `1` (bit 0): Forward List (FL).
* `2` (bit 1): Allow List (AL).
* `4` (bit 2): Block List (BL).
* `8` (bit 3): Reverse List (RL). This value can only be set from the server.
* `16` (bit 4): Pending List (PL). This value can only be set from the server.
* `t`: The Network ID that this user is associated with.
### t
This element contains one or multiple `<c>` elements.
#### c
This element has two attributes:
* `n`: The phone number as a `tel:` URI, with the `+` prefix.
* `l`: A bitfield that denotes what list this user is in:
* `1` (bit 0): Forward List (FL).
* `2` (bit 1): Allow List (AL).
* `4` (bit 2): Block List (BL).
* `8` (bit 3): Reverse List (RL). This value can only be set from the server.
* `16` (bit 4): Pending List (PL). This value can only be set from the server.
# Server/Response
## As a response
`RML TrID OK`
No payload is attached in this scenario.
## Asynchronously
```
RML 0 length
payload
```
Where payload is a [`<ml>`](#ml) document, without any support for whitespace outside of element parameters.
# Examples
*NOTE: The XML in these examples has been exploded for visibility and formatting reasons.
No whitespace is allowed in RML's payload and the payload size reflects this,
and is set to the correct value.*
## Normal use
### Remove a user handle
```
C: RML 1 65
<ml>
<d n="hotmail.com">
<c n="anotheruser" l="1" t="1" />
</d>
</ml>
S: RML 1 OK
```
### Remove a telephone number
```
C: RML 2 48
<ml>
<t>
<c n="tel:+15551111222" l="1" />
</t>
</ml>
S: RML 2 OK
```
## No services specified
```
C: RML 3 9
<ml></ml>
S: 240 3
```
## No domain name specified
```
C: RML 4 16
<ml>
<d>
</d>
</ml>
S: 241 4
```
## Out of bounds Network ID
```
C: RML 5 67
<ml>
<d n="hotmail.com">
<c n="anotheruser" l="1" t="256" />
</d>
</ml>
S: 204 5
```
## You cannot remove from the Reverse List or Pending List
```
C: RML 6 65
<ml>
<d n="hotmail.com">
<c n="anotheruser" l="8" t="1" />
</d>
</ml>
S: 241 6
```
## Target user not on that list
```
C: RML 7 59
<ml>
<d n="hotmail.com">
<c n="ghost" l="1" t="1" />
</d>
</ml>
S: 216 7
```
## Asynchronous update
```
S: RML 0 65
<ml>
<d n="hotmail.com">
<c n="anotheruser" l="8" t="1" />
</d>
</ml>
```
# Known changes
* [MSNP17](../versions/msnp17.md): Now manages circles?

View file

@ -9,7 +9,7 @@ Used to invite ("ring") you to a Switchboard session.
This command can not be sent from the client.
# Server/Response
`RNG session-id address:port CKI cookie inviter-handle inviter-friendly-name`
`RNG session-id address:port CKI cookie inviter-handle inviter-friendly-name {U} {domain} {direct-connect}`
Where `session-id` is the Switchboard session identification number you need in [ANS](ans.md).
@ -23,11 +23,41 @@ Where `inviter-handle` is the inviter's handle.
Where `inviter-handle` is the inviter's friendly name.
Where `U` is always `U`. Since [MSNP13](../versions/msnp13.md).
The use of this parameter is unknown.
Where `domain` is always `messenger.hotmail.com`. Since [MSNP13](../versions/msnp13.md).
The use of this parameter is unknown.
Where `direct-connect` is set to one of these two values, Since [MSNP14](../versions/msnp14.md):
* `0`: This `address:port` can only be accessed only via the HTTP Gateway.
* `1`: This `address:port` can be connected to via TCP as well as the HTTP Gateway.
# Examples
## Getting a Switchboard invite
*NOTE: This has been line-breaked.
Lines beginning with `..` followed by a space are continuations of the previous line.*
### Old
*Only in [MSNP2](../versions/msnp2.md) to [MSNP12](../versions/msnp12.md).*
```
S: RNG 987654331 10.0.1.200:1865 CKI 123456789.123456789.123456789 anotheruser@hotmail.com another%20user
S: RNG 987654331 10.0.1.200:1865 CKI 123456789.123456789.123456789
.. anotheruser@hotmail.com another%20user
```
### New
*Only in [MSNP13](../versions/msnp13.md).*
```
S: RNG 987654331 10.0.1.200:1865 CKI 123456789.123456789.123456789
.. anotheruser@hotmail.com another%20user U messenger.hotmail.com
```
### Modern
*Since [MSNP14](../versions/msnp14.md).*
```
S: RNG 987654331 10.0.1.200:1865 CKI 123456789.123456789.123456789
.. anotheruser@hotmail.com another%20user U messenger.hotmail.com 1
```
## Invalid context
@ -39,4 +69,7 @@ C: RNG 1
Server disconnects client.
# Known changes
None.
* [MSNP13](../versions/msnp13.md): Added two new parameters,
one of which is always `U`, and the other is always `messenger.hotmail.com`.
* [MSNP14](../versions/msnp14.md): Added a new parameter that is either `0` or `1`
to denote whenever the client should directly connect to the address, or use the HTTP Gateway to connect instead.

View file

@ -28,6 +28,8 @@ contained in a `<Data>` element:
Added since [MSNP13](../versions/msnp13.md).
# Examples
*NOTE: The XML in these examples has been exploded for visibility and formatting reasons.
The payload sizes provided are to represent the size of the unexploded payloads.*
## Without MachineGuid
*Only in [MSNP11](../versions/msnp11.md) and [MSNP12](../versions/msnp12.md).*
@ -35,19 +37,28 @@ contained in a `<Data>` element:
### Blank status
```
S: UUX anotheruser@hotmail.com 53
<Data><PSM></PSM><CurrentMedia></CurrentMedia></Data>
<Data>
<PSM></PSM>
<CurrentMedia></CurrentMedia>
</Data>
```
### With PSM
```
S: UUX anotheruser@hotmail.com 75
<Data><PSM>example status message</PSM><CurrentMedia></CurrentMedia></Data>
<Data>
<PSM>example status message</PSM>
<CurrentMedia></CurrentMedia>
</Data>
```
### With playing media
```
S: UUX anotheruser@hotmail.com 137
<Data><PSM>example status message</PSM><CurrentMedia>\0Music\01\0{0} - {1}\0Song Title\0Song Artist\0Song Album\0\0</CurrentMedia></Data>
<Data>
<PSM>example status message</PSM>
<CurrentMedia>\0Music\01\0{0} - {1}\0Song Title\0Song Artist\0Song Album\0\0</CurrentMedia>
</Data>
```
## With MachineGuid
@ -56,19 +67,31 @@ S: UUX anotheruser@hotmail.com 137
### Blank status
```
S: UUX anotheruser@hotmail.com 118
<Data><PSM></PSM><CurrentMedia></CurrentMedia><MachineGuid>{0061D708-CD9B-4D56-B64B-FFFAA92FF344}</MachineGuid></Data>
<Data>
<PSM></PSM>
<CurrentMedia></CurrentMedia>
<MachineGuid>{0061D708-CD9B-4D56-B64B-FFFAA92FF344}</MachineGuid>
</Data>
```
### With PSM
```
S: UUX anotheruser@hotmail.com 140
<Data><PSM>example status message</PSM><CurrentMedia></CurrentMedia><MachineGuid>{0061D708-CD9B-4D56-B64B-FFFAA92FF344}</MachineGuid></Data>
<Data>
<PSM>example status message</PSM>
<CurrentMedia></CurrentMedia>
<MachineGuid>{0061D708-CD9B-4D56-B64B-FFFAA92FF344}</MachineGuid>
</Data>
```
### With playing media
```
S: UUX anotheruser@hotmail.com 202
<Data><PSM>example status message</PSM><CurrentMedia>\0Music\01\0{0} - {1}\0Song Title\0Song Artist\0Song Album\0\0</CurrentMedia><MachineGuid>{0061D708-CD9B-4D56-B64B-FFFAA92FF344}</MachineGuid></Data>
<Data>
<PSM>example status message</PSM>
<CurrentMedia>\0Music\01\0{0} - {1}\0Song Title\0Song Artist\0Song Album\0\0</CurrentMedia>
<MachineGuid>{0061D708-CD9B-4D56-B64B-FFFAA92FF344}</MachineGuid>
</Data>
```
## With Network IDs
@ -77,19 +100,31 @@ S: UUX anotheruser@hotmail.com 202
### Blank status
```
S: UUX anotheruser@hotmail.com 1 118
<Data><PSM></PSM><CurrentMedia></CurrentMedia><MachineGuid>{0061D708-CD9B-4D56-B64B-FFFAA92FF344}</MachineGuid></Data>
<Data>
<PSM></PSM>
<CurrentMedia></CurrentMedia>
<MachineGuid>{0061D708-CD9B-4D56-B64B-FFFAA92FF344}</MachineGuid>
</Data>
```
### With PSM
```
S: UUX anotheruser@hotmail.com 1 140
<Data><PSM>example status message</PSM><CurrentMedia></CurrentMedia><MachineGuid>{0061D708-CD9B-4D56-B64B-FFFAA92FF344}</MachineGuid></Data>
<Data>
<PSM>example status message</PSM>
<CurrentMedia></CurrentMedia>
<MachineGuid>{0061D708-CD9B-4D56-B64B-FFFAA92FF344}</MachineGuid>
</Data>
```
### With playing media
```
S: UUX anotheruser@hotmail.com 1 202
<Data><PSM>example status message</PSM><CurrentMedia>\0Music\01\0{0} - {1}\0Song Title\0Song Artist\0Song Album\0\0</CurrentMedia><MachineGuid>{0061D708-CD9B-4D56-B64B-FFFAA92FF344}</MachineGuid></Data>
<Data>
<PSM>example status message</PSM>
<CurrentMedia>\0Music\01\0{0} - {1}\0Song Title\0Song Artist\0Song Album\0\0</CurrentMedia>
<MachineGuid>{0061D708-CD9B-4D56-B64B-FFFAA92FF344}</MachineGuid>
</Data>
```
## Invalid context

View file

@ -41,7 +41,8 @@ Where `login-url` is the service that provides automatic authentication
and accepts redirection form parameters. Usually `https://login(net).passport.com/ppsecure/md5auth.srf?lc=`
followed by your initial profile's `lang_preference` value since [MSNP3](../versions/msnp3.md).
Where `psid` is the `id` parameter passed to `login-url`. and are required to use absolute URLs as the `redirect-url`. Added since [MSNP3](../versions/msnp3.md). Required since [MSNP5](../versions/msnp5.md).
Where `psid` is the `id` parameter passed to `login-url`. and are required to use absolute URLs as the `redirect-url`.
Added since [MSNP3](../versions/msnp3.md). Required since [MSNP5](../versions/msnp5.md).
# Examples
*NOTE: All examples will have Site IDs because I don't know what the login URL was without it.*
@ -49,7 +50,7 @@ Where `psid` is the `id` parameter passed to `login-url`. and are required to us
## Open E-mail Inbox
```
C: URL 1 INBOX
S: URL 1 /cgi-bin/HoTMaiL https://loginnet.passport.com/ppsecure/md5autf.srf?lc=1033 2
S: URL 1 /cgi-bin/HoTMaiL https://loginnet.passport.com/ppsecure/md5auth.srf?lc=1033 2
```
## Compose new E-mail
@ -96,8 +97,8 @@ S: URL 7 http://chat.msn.com/Messenger.msnw?lc=1033 https://loginnet.passport.co
# 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.
now supports absolute URLs instead of only relative URLs for the redirect URL.
* 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.

View file

@ -26,6 +26,8 @@ contained in a `<Data>` element:
Where `length` is always `0`.
# Examples
*NOTE: The XML in these examples has been exploded for visibility and formatting reasons.
The payload sizes provided are to represent the size of the unexploded payloads.*
## Without MachineGuid
*Only in [MSNP11](../versions/msnp11.md) and [MSNP12](../versions/msnp12.md).*
@ -33,21 +35,30 @@ Where `length` is always `0`.
### Blank status
```
C: UUX 1 53
<Data><PSM></PSM><CurrentMedia></CurrentMedia></Data>
<Data>
<PSM></PSM>
<CurrentMedia></CurrentMedia>
</Data>
S: UUX 1
```
### With PSM
```
C: UUX 2 75
<Data><PSM>example status message</PSM><CurrentMedia></CurrentMedia></Data>
<Data>
<PSM>example status message</PSM>
<CurrentMedia></CurrentMedia>
</Data>
S: UUX 2
```
### With playing media
```
C: UUX 3 137
<Data><PSM>example status message</PSM><CurrentMedia>\0Music\01\0{0} - {1}\0Song Title\0Song Artist\0Song Album\0\0</CurrentMedia></Data>
<Data>
<PSM>example status message</PSM>
<CurrentMedia>\0Music\01\0{0} - {1}\0Song Title\0Song Artist\0Song Album\0\0</CurrentMedia>
</Data>
S: UUX 3
```
@ -57,21 +68,33 @@ S: UUX 3
### Blank status
```
C: UUX 4 118
<Data><PSM></PSM><CurrentMedia></CurrentMedia><MachineGuid>{44BFD5A4-7450-4BDA-BA3A-C51B3031126D}</MachineGuid></Data>
<Data>
<PSM></PSM>
<CurrentMedia></CurrentMedia>
<MachineGuid>{44BFD5A4-7450-4BDA-BA3A-C51B3031126D}</MachineGuid>
</Data>
S: UUX 4
```
### With PSM
```
C: UUX 5 140
<Data><PSM>example status message</PSM><CurrentMedia></CurrentMedia><MachineGuid>{44BFD5A4-7450-4BDA-BA3A-C51B3031126D}</MachineGuid></Data>
<Data>
<PSM>example status message</PSM>
<CurrentMedia></CurrentMedia>
<MachineGuid>{44BFD5A4-7450-4BDA-BA3A-C51B3031126D}</MachineGuid>
</Data>
S: UUX 5
```
### With playing media
```
C: UUX 6 202
<Data><PSM>example status message</PSM><CurrentMedia>\0Music\01\0{0} - {1}\0Song Title\0Song Artist\0Song Album\0\0</CurrentMedia><MachineGuid>{44BFD5A4-7450-4BDA-BA3A-C51B3031126D}</MachineGuid></Data>
<Data>
<PSM>example status message</PSM>
<CurrentMedia>\0Music\01\0{0} - {1}\0Song Title\0Song Artist\0Song Album\0\0</CurrentMedia>
<MachineGuid>{44BFD5A4-7450-4BDA-BA3A-C51B3031126D}</MachineGuid>
</Data>
S: UUX 6
```

View file

@ -20,28 +20,47 @@ 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}`
`XFR TrID NS address:port {0|U} {current-server|D}`
In [MSNP3](../versions/msnp3.md) or higher, `0` is always `0`.
In [MSNP3](../versions/msnp3.md) and above until [MSNP13](../versions/msnp13.md),
`0` is always set to `0`.
In [MSNP7](../versions/msnp7.md) or higher, `current-server` is the current server you are connected to.
In [MSNP7](../versions/msnp7.md) and above until [MSNP13](../versions/msnp13.md),
`current-server` is the current server you are connected to.
In [MSNP13](../versions/msnp13.md) and higher,
the `0` is replaced with a constant `U`,
and the `current-server` is replaced with a constant `D`.
## XFR SB
`XFR TrID SB address:port authentication-method authentication-parameter`
`XFR TrID SB address:port authentication-method authentication-parameter {U} {domain} {direct-connect}`
Where `authentication-method` is always `CKI`.
Where `authentication-parameter` is the "cookie" you need to log in to Switchboard.
Where `U` is always set to `U`. Since [MSNP13](../versions/msnp13.md).
No use documented.
Where `domain` is always set to `messenger.msn.com`. Since [MSNP13](../versions/msnp13.md).
No use documented.
Where `direct-connect` is set to one of these two values, Since [MSNP14](../versions/msnp14.md):
* `0`: This `address:port` can only be accessed only via the HTTP Gateway.
* `1`: This `address:port` can be connected to via TCP as well as the HTTP Gateway.
# Examples
## Client requests a new Switchboard connection
## Before rework
*Only in [MSNP2](../versions/msnp2.md) to [MSNP12](../versions/msnp12.md).*
### Client requests a new Switchboard session
```
C: XFR 1 SB
S: XFR 1 SB 10.0.1.200:1865 CKI 123456789.123456789.123456789
```
## Client requests a new Notification server
### Client requests a new Notification server
*Only used as-is in Beta 2 as the first command sent to a Dispatch Server.*
```
C: XFR 2 NS
@ -51,9 +70,9 @@ Client disconnects from server
Client opens a connection to 10.0.0.5:1863
## Client referred from Dispatch Server
### Client referred from Dispatch Server
### Very Old
#### Very Old
*Only in [MSNP2](../versions/msnp2.md).*
```
C: USR 3 MD5 I example@hotmail.com
@ -63,7 +82,7 @@ Client disconnects from server
Client opens a connection to 10.0.0.5:1863
### Classic
#### Classic
*Only in [MSNP3](../versions/msnp3.md) to [MSNP6](../versions/msnp6.md).*
```
C: USR 4 MD5 I example@hotmail.com
@ -73,8 +92,8 @@ Client disconnects from server
Client opens a connection to 10.0.0.5:1863
### Modern
*Since [MSNP7](../versions/msnp7.md).*
#### Modern
*Only in [MSNP7](../versions/msnp7.md) to [MSNP12](../versions/msnp12.md).*
```
C: USR 5 MD5 I example@hotmail.com
S: XFR 5 NS 10.0.0.5:1863 0 10.0.0.1:1863
@ -83,12 +102,43 @@ Client disconnects from server
Client opens a connection to 10.0.0.5:1863
## After rework
*Since [MSNP13](../versions/msnp13.md).*
### Client requests a new Switchboard session
#### Without direct connect parameter
*Only in [MSNP13](../versions/msnp13.md).*
```
C: XFR 6 SB
S: XFR 6 SB 10.0.1.200:1865 CKI 123456789.123456789.123456789 U messenger.msn.com
```
#### With direct connect parameter
*Since [MSNP14](../versions/msnp14.md).*
```
C: XFR 7 SB
S: XFR 7 SB 10.0.1.200:1865 CKI 123456789.123456789.123456789 U messenger.msn.com 1
```
### Client referred from Dispatch Server
```
C: USR 8 TWN I example@hotmail.com
S: XFR 8 NS 10.0.0.5:1863 U D
```
## Forced soft reset
*Applies for any protocol version.*
```
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.
* [MSNP3](../versions/msnp3.md): Added a new parameter that is always `0` to XFR NS.
* [MSNP7](../versions/msnp7.md): Added a new parameter that is the current server you are communicating with to XFR NS.
* [MSNP13](../versions/msnp13.md): Replaced `0` and the current server parameter with `U` and `D` respectively in XFR NS,
and also added two parameters to XFR SB, one that is always `U`,
and one that is a domain name, which is always `messenger.msn.com`.
* [MSNP14](../versions/msnp14.md): Added a new parameter that is either `0` or `1` to XFR SB
to denote whenever the client should directly connect to the address, or use the HTTP Gateway to connect instead.

View file

@ -31,7 +31,7 @@ This was expanded in [MSNP16](../versions/msnp16.md) with Extended Client Capabi
| `0x00080000` | `524288` | The user's client supports encrypted conversations. |
| `0x00100000` | `1048576` | ... |
| `0x00200000` | `2097152` | ... |
| `0x00400000` | `4194304` | ... |
| `0x00400000` | `4194304` | The user's client supports sharing folders. |
| `0x00800000` | `8388608` | ... |
| `0x01000000` | `16777216` | ... |
| `0x02000000` | `33554432` | ... |

View file

@ -11,9 +11,9 @@ This is the root element of the document, and supports four attributes:
* `id`: A 32-bit unsigned integer that is set by the sending party.
* `siteid`: The .NET Alerts Site ID, not to be confused with the .NET Passport Site ID.
Setting this to some values changes the default icon:
* `0`: Use stocks (stack of coins or line-chart) icon
* `1`: Use calendar (clock) icon
* Other values: Use default bell icon or custom icon
* `0`: Use stocks (stack of coins or line-chart) icon.
* `1`: Use calendar (clock) icon.
* Other values: Use default bell icon or custom icon.
* `siteurl`: The base URL to the service used in later relative URL attributes.
## TO

View file

@ -25,6 +25,7 @@ A copy of the license is included in the article entitled
* [MSNP10](versions/msnp10.md)
* [MSNP11](versions/msnp11.md)
* [MSNP12](versions/msnp12.md)
* [MSNP13](versions/msnp13.md)
More is to come soon! Hopefully!
@ -45,14 +46,14 @@ More is to come soon! Hopefully!
* [All Client Capabilities](files/client_capabilities.md)
# Wanted Information
* [MSNP2](versions/msnp2.md): What is the format of the initial `text/x-msmsgsemailnotification`?
* [MSNP8](versions/msnp8.md): Did [FND](commands/fnd.md) exist? Rumors said it did shortly before it got killed in all protocols.
* [MSNP8](versions/msnp8.md): Did [LSG](commands/lsg.md) and [LST](commands/lst.md) change outside of [SYN](commands/syn.md) in this version?
* [MSNP10](versions/msnp10.md): Asynchronous `BPR MFN`s from the server. Does it really?
* [MSNP10](versions/msnp10.md): Did [LSG](commands/lsg.md) and [LST](commands/lst.md) change outside of [SYN](commands/syn.md) in this version?
* [MSNP11](versions/msnp11.md): Anything about the `GSB` command, and is it related to `SBS`?
* [MSNP11](versions/msnp11.md): How does `ABCHMigrated: 0` really work now? `OUT MIG` still exists.
* [MSNP12](versions/msnp12.md): Did [LST](commands/lst.md) change outside of [SYN](commands/syn.md) in this version?
* MSNP18: Was `<NotificationData>`-based circle updates added in MSNP17 instead?
* [MSNP18](versions/msnp18.md): Did `<NotificationData>`-based circle updates get added in [MSNP17](versions/msnp17.md) instead of [MSNP18](versions/msnp18.md)?
* Error Codes: A new article for them, seems like they are implemented in wildly different ways.
* [MSNP2](versions/msnp2.md) to [MSNP7](versions/msnp7.md): TODO: Add CVR requests as command 10.
* All Protocols: Any error code known to exist but is missing from the pages.
@ -85,6 +86,7 @@ More is to come soon! Hopefully!
### We know SOME Information
* Offline IMs (OIM) SOAP service: Absolutely needs a service page, since it's been in since [MSNP11](versions/msnp11.md).
* Above requires MSNP11 challenges. Please document those.
## Unsolved Mysteries
* [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.
@ -119,12 +121,15 @@ More is to come soon! Hopefully!
* User handle: An address which supports up to 129 characters that is used across the protocol.
May be called "principles" in other places.
* Public Key, Private Key: The parameters used in [QRY](commands/qry.md).
* The one you send with it in plain is the Public Key.
* The one you send with it in plain is the Public Key.
An example of the Public Key is `msmsgs@msnmsgr.com` or `PROD0090YUAUV{2B`.
* The one you use for the main challenge response hash is the Private Key.
* The one you use for the main challenge response hash is the Private Key.
An example of the Private Key is `Q1P7W2E4J9R8U3S5` or `YMM8C_H7KCQ2S_KL`.
# Where do I find or edit these page's source?
The git repo is avaliable at <https://git.kevinthe.horse/yellows111/msnp-wiki>.
# Where can I find or edit the source of the articles provided?
The git repository for the project is avaliable at <https://git.kevinthe.horse/yellows111/msnp-wiki>.
You can submit changes to me via any avaliable contact method as a e-mail merge request, like those made with [`git format-patch`](https://git-scm.com/docs/git-format-patch).
You can submit changes to me via any avaliable contact method as a e-mail merge request,
like those made with [`git format-patch`](https://git-scm.com/docs/git-format-patch).
If such a method is undesired or you do not want to format such a message,
that is fine too, as long as you give a pointer to where you would like the information to go.

View file

@ -36,6 +36,7 @@ The most relevant children are:
This element only contains the space delimited list of updated items in `<contactInfo>`.
The valid values are the following:
* `DisplayName`
* `Passport`
* `IsMessengerUser`
* `ContactFirstName`
* `ContactLastName`

View file

@ -33,7 +33,7 @@ This element can contain many children, all of which optional:
* `ContactEmailBusiness`
* `ContactEmailOther`
* `Passport`
* `<emails>`: Contains one or multiple [`<ContactEmail>`](#contactemail) element(s).
* `<emails>`: Contains one or multiple [`<ContactEmail>`](#contactemail) element(s).
* `<PrimaryPhone>`: Can be any of the following:
* `ContactPhonePersonal`
* `ContactPhonePager`
@ -41,7 +41,7 @@ This element can contain many children, all of which optional:
* `ContactPhoneBusiness`
* `ContactPhoneOther`
* `ContactPhoneMobile`
* `<phones>`: Contains one or multiple [`<ContactPhone>`](#contactphone) element(s).
* `<phones>`: Contains one or multiple [`<ContactPhone>`](#contactphone) element(s).
* `<PrimaryLocation>`: Can be any of the following:
* `ContactLocationBusiness`
* `ContactLocationPersonal`
@ -92,7 +92,7 @@ This element contains two children:
* `<city>`: The city associated with the `<contactLocationType>`.
* `<state>`: The state associated with the `<contactLocationType>`.
* `<country>`: The country associated with the `<contactLocationType>`.
* `<postalCode>`: The postal code associated associated with the `<contactLocationType>`.
* `<postalCode>`: The postal code associated with the `<contactLocationType>`.
* `<Changes>`: A space delimited list of changed elements in this `<ContactLocation>`:
* `Name`
* `Street`

View file

@ -449,7 +449,7 @@ This empty element has five attributes:
### MSNSearch
Controls the URLs used by search features.
* `<DesktopInstallURL>`: The promotional page that opens when attempting a desktop search without the required software installed.
* `<DesktopInstallURL>`: The promotional page that opens when attempting a desktop search without the required software installed.
* `<ImagesURL>`: The image search service URL.
* `<NearMeURL>`: The search service URL for local services.
* `<NewsURL>`: The news search service URL.
@ -561,9 +561,9 @@ Where `<msnmenudata>` contains:
* `<siteid>`: The Passport Site ID used for `<clickurl>` (and `<clicktrackurl>`?).
If the item is for a `<premium>` product, `<clickurl>` is opened in the internal page browser.
If it is for a `<merchant>` product instead, `<clickurl>` is sent to `MessengerContentInstaller.InstallIndirectContent`.
TODO: What is a "Merchant CAB file"? `InstallIndirectContent` wants one.
If it is for a `<merchant>` product instead, `<clickurl>` is sent to `MessengerContentInstaller.InstallIndirectContent`.
To create a merchant package, simply create a empty `<package>` element in an empty XML document with the
`contentlocationurl` attribute set to a Messenger Content archive file.
## Editorial document
```

View file

@ -2,7 +2,7 @@
Passport (SOAP), or "Passport 3.0" as it's sometimes called,
is a HTTP-based authentication system that was introduced with [MSNP12](../versions/msnp12.md).
The endpoint is called `RST.srf`, reciding on the `login.passport.net` or `login.live.com` domain.
The endpoint is called `RST.srf`, residing on either the `login.passport.net` or `login.live.com` domain.
For [MSNP8](../versions/msnp8.md) to [MSNP11](../versions/msnp11.md), read the [Passport 1.4](passport14.md) article.

View file

@ -56,7 +56,8 @@ This element contains two children:
This element also contains one of the following mutually exclusive children.
1. `<PassportName>`: The user handle associated with this membership.
2. `<Email>`: The e-mail address associated with this membership.
3. `<PhoneNumber>`: The phone number associated with this membership.
3. `<PhoneNumber>`: The phone number associated with this membership,
in the format of the full phone number (including country code) prefixed with a `+`.
This element also contains the following children IF the role is set to `ProfileExpression`:
* `<Id>`: Always `Allow`.

View file

@ -56,7 +56,8 @@ This element contains three children:
This element may instead contain one of the following mutually exclusive children instead of `<MembershipId>`:
1. `<PassportName>`: The user handle associated with this membership.
2. `<Email>`: The e-mail address associated with this membership.
3. `<PhoneNumber>`: The phone number associated with this membership.
3. `<PhoneNumber>`: The phone number associated with this membership,
in the format of the full phone number (including country code) prefixed with a `+`.
This element also contains the following children IF the role is set to `ProfileExpression`:
* `<Id>`: Always `Allow`.

View file

@ -9,7 +9,7 @@ This is a list of all known MSNP commands and their originating version.
| [`CVR`](commands/cvr.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP4](versions/msnp4.md) (parameter 7), [MSNP8](versions/msnp8.md) (parameter 8) |
| [`CVQ`](commands/cvq.md) | N | Y | N | [CVR0](versions/cvr0.md) | [MSNP4](versions/msnp4.md) (parameter 7, but always empty), [MSNP8](versions/msnp8.md) (fixed parameter 7 being empty, parameter 8 ) |
| [`USR`](commands/usr.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP3](versions/msnp3.md) (Removed `CTP` security package), [MSNP6](versions/msnp6.md) (Added account verified bit to USR OK), [MSNP8](versions/msnp8.md) (Added account restricted bit to USR OK), [MSNP10](versions/msnp10.md) (removed current friendly name in favour of [PRP](commands/prp.md) MFN), (Removed `MD5` security package, added `TWN` security package, added new unknown bit (parameter 5) to USR OK), [MSNP15](versions/msnp15.md) (Added `SSO` security package.) |
| [`XFR`](commands/xfr.md) | N | Y | Y?| [MSNP2](versions/msnp2.md) | [MSNP3](versions/msnp3.md) (parameter 3), [MSNP7](versions/msnp7.md) (parameter 4) |
| [`XFR`](commands/xfr.md) | N | Y | Y?| [MSNP2](versions/msnp2.md) | [MSNP3](versions/msnp3.md) (XFR NS: parameter 3), [MSNP7](versions/msnp7.md) (XFR NS: parameter 4), [MSNP13](versions/msnp13.md) (XFR NS: replaced parameters 3 and 4 with `U` and `messenger.msn.com`, XFR SB: added parameters 5 and 6, being always `U` and `messenger.msn.com`) |
| [`OUT`](commands/out.md) | N | Y | Y | [MSNP2](versions/msnp2.md) | [MSNP10](versions/msnp10.md) (MIG and TOU disconnect reasons added), [MSNP11](versions/msnp11.md) (RCT reason added with parameter for amount of minutes until attempted reconnect.) |
| [`FND`](commands/fnd.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP5](versions/msnp5.md) (uses [SDC](commands/sdc.md) instead of [SND](commands/snd.md)), July 2003 (not really any specific MSNP update, just soft-removed with a 502.) |
| [`BLP`](commands/blp.md) | N | Y | Y\*| [MSNP2](versions/msnp2.md) | [MSNP10](versions/msnp10.md) (Removed List Version if `ABCHMigrated: 1`) |
@ -26,11 +26,11 @@ This is a list of all known MSNP commands and their originating version.
| [`CAL`](commands/cal.md) | N | Y | N | [MSNP2](versions/msnp2.md) | |
| [`PRP`](commands/prp.md) | N | Y | N | [MSNP5](versions/msnp5.md) | [MSNP8](versions/msnp8.md) (Removed List Version in [SYN](commands/syn.md)), [MSNP10](versions/msnp10.md) (Removed List Version outside of [SYN](commands/syn.md) 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](commands/syn.md)), [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) | [MSNP13](versions/msnp13.md) (Added parameters 8 and 9, one always `U`, one always `messenger.hotmail.com`.) |
| [`LST`](commands/lst.md) | N | Y | Y\*| [MSNP2](versions/msnp2.md) | [MSNP7](versions/msnp7.md) (Added groups support), [MSNP8](versions/msnp8.md) ([SYN](commands/syn.md): 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) (Removed; automatic disconnect, use [Address Book Service](services/abservice.md)'s [`ABFindAll`](services/abservice/abfindall.md) and [Contact Sharing Service](services/sharingservice.md)'s [`FindMembership`](services/sharingservice/findmembership.md) instead.), November 2003 (Removed outside of [SYN](commands/syn.md), not really any specific MSNP update, just hard removed with an automatic disconnect.) |
| [`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, use [ADC](commands/adc.md) instead) |
| [`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 and [Address Book Service](services/abservice.md)'s [`ABContactDelete`](services/abservice/abcontactdelete.md) and [Contact Sharing Service](services/sharingservice.md)'s [`DeleteMember`](services/sharingservice/deletemember.md) instead) |
| [`FLN`](commands/fln.md) | N | N | Y | [MSNP2](versions/msnp2.md) | |
| [`FLN`](commands/fln.md) | N | N | Y | [MSNP2](versions/msnp2.md) | [MSNP14](versions/msnp14.md) (Added Network ID parameter) |
| [`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) |
@ -55,12 +55,21 @@ This is a list of all known MSNP commands and their originating version.
| [`QRY`](commands/qry.md) | Y | Y | N | [MSNP6](versions/msnp6.md) | [MSNP10](versions/msnp10.md) (Changed challenge response generation algorithm drastically.) |
| [`UBX`](commands/ubx.md) | Y | N | Y | [MSNP11](versions/msnp11.md) | [MSNP13](versions/msnp13.md) (Added `<MachineGuid>` to the default list of elements.) |
| [`UUX`](commands/uux.md) | Y | Y | N | [MSNP11](versions/msnp11.md) | [MSNP13](versions/msnp13.md) (Added `<MachineGuid>` to the default list of elements.), [MSNP14](versions/msnp14.md) (Added support for Network IDs.) |
| [`ADL`](commands/adl.md) | Y | Y | Y | [MSNP13](versions/msnp13.md) | [MSNP17](versions/msnp17.md) (Now can manage circles.) |
| [`RML`](commands/rml.md) | Y | Y | Y | [MSNP13](versions/msnp13.md) | [MSNP17](versions/msnp17.md) (Now can manage circles.) |
| [`FQY`](commands/fqy.md) | Y | Y | N | [MSNP14](versions/msnp14.md) | |
# What's Missing Right Now
## In general
* [MSNP11](versions/msnp11.md): GSB
* [MSNP11](versions/msnp11.md): SBS
* [MSNP12](versions/msnp12.md): LKP
* [MSNP13](versions/msnp13.md): RFS
* [MSNP13](versions/msnp13.md): UBN
* [MSNP13](versions/msnp13.md): UUN
* [MSNP14](versions/msnp14.md): UBM
* [MSNP14](versions/msnp14.md): UUM
# Modifiers
* `*`: Only in [SYN](commands/syn.md).

View file

@ -45,11 +45,12 @@ The following commands were removed in this version:
* [RMG](../commands/rmg.md)
* [REM](../commands/rem.md)
* [PRP](../commands/prp.md)
* Added a new list: Pending List/PL (bit 5, decimal 16). Is meant for unhandled contact added you notifications.
* Added a new list: Pending List/PL (bit 5, decimal 16).
This list contains users that have unhandled "contact added you" notifications.
* Added new server-side [OUT](../commands/out.md) reasons: `MIG`, if the server has migrated you to ABCH,
and `TOU`, for not accepting the Service Terms of Use.
* Official Client: Now handles the 604, 914, 916 error codes again,
which were last seen in Client Version 3.6.003x.
which were last seen in Client Version 3.6.003x.
Error code 913 is no longer handled after being implemented in Client Version 4.5.
* First protocol version to remove a core command implemented since [MSNP2](msnp2.md) draft ([ADD](../commands/add.md)).

View file

@ -5,6 +5,7 @@ It was introduced officially in Client Version 7.0.0777.
# Command information
It introduces the notification service commands:
* [GCF](../commands/gcf.md)
* GSB
* SBS
* [UBX](../commands/ubx.md)
* [UUX](../commands/uux.md)
@ -17,21 +18,21 @@ It introduces the notification service commands:
# Known changes
(from [MSNP10](msnp10.md)):
* [QRY](../commands/qry.md): Challenge response generation has been drastically overhauled.
* [QRY](../commands/qry.md): Challenge response generation has been drastically overhauled.
TODO: Write annotated source code explaning new algorithm.
* [OUT](../commands/out.md) RCT `TimeBeforeRetry` now exists.
* [OUT](../commands/out.md) RCT `TimeBeforeRetry` now exists.
`TimeBeforeRetry` is a numerical value in minutes that specifies the amount
of time in minutes the client should wait before reconnecting.
* All `ABCHMigrated` changes are now the default - `ABCHMigrated: 0` is Undefined Behaviour from now on.
* [ADC](../commands/adc.md): Now supports a telephone address (`tel:`) for `N=`.
* Entire content of initial email notification changed from
`text/x-msmsgsinitialemailnotification` to `text/x-msmsgsinitialmdatanotification`.
`text/x-msmsgsinitialemailnotification` to `text/x-msmsgsinitialmdatanotification`.
The new format is XML-based.
* Offline Instant Messaging has been introduced, using `text/x-msmsgsoimnotification`
messages from the Notification Server using a XML-based format,
and a SOAP service for receiving message data.
* Official Client: Feature blocks are implemented using the [GCF](../commands/gcf.md) command
to download `Shields.xml`. For more information read the [Shields Configuration Data](../files/shields.md) article.
* Official Client: Feature blocks are implemented using the [GCF](../commands/gcf.md) command to download `Shields.xml`.
For more information read the [Shields Configuration Data](../files/shields.md) article.
* Official Client: WebMessenger now canonically exists, the [Client Capability](../files/client_capabilities.md)
flag `512` (`0x200` mask) is set for clients online via this method.
* Official Client: Notifications ([NOT](../commands/not.md) commands) with encoded
@ -100,7 +101,7 @@ C: SYN 8 2024-09-28T17:18:18.6400000-07:00 2024-09-28T17:18:18.6400000-07:00
S: SYN 8 2024-09-28T17:18:18.6400000-07:00 2024-09-28T17:18:18.6400000-07:00
C: GCF 9 Shields.xml
S: GCF 9 Shields.xml 145
<?xml version= "1.0" encoding="utf-8" ?><config><shield><cli maj="7" min="0" minbld="0" maxbld="9999" deny="" /></shield><block></block></config>
<?xml version="1.0" encoding="utf-8" ?><config><shield><cli maj="7" min="0" minbld="0" maxbld="9999" deny=" " /></shield><block></block></config>
C: CHG 10 NLN
S: CHG 10 NLN
C: UUX 11 53

View file

@ -91,7 +91,7 @@ S: LST N=anotheruser@hotmail.com F=another%20user C=c1f9a363-4ee9-4a33-a434-b056
S: BPR PHH 1%20(222)%20333%204444
C: GCF 9 Shields.xml
S: GCF 9 Shields.xml 145
<?xml version= "1.0" encoding="utf-8" ?><config><shield><cli maj="7" min="0" minbld="0" maxbld="9999" deny="" /></shield><block></block></config>
<?xml version="1.0" encoding="utf-8" ?><config><shield><cli maj="7" min="0" minbld="0" maxbld="9999" deny=" " /></shield><block></block></config>
C: CHG 10 NLN
S: CHG 10 NLN
C: UUX 11 53

182
docs/versions/msnp13.md Normal file
View file

@ -0,0 +1,182 @@
# Introduction
MSNP13 is the twelfth released version of the Mobile Status Notification Protocol.
It was introduced officially in Client Version 8.0.0787, along with [MSNP14](msnp14.md).
# Command information
It introduces the notification service commands:
* [ADL](../commands/adl.md)
* [RML](../commands/rml.md)
* RFS
* UBN
* UUN
*No switchboard or dispatch service commands 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:
* [ADC](../commands/adc.md) (automatic disconnection)
* [ADG](../commands/adc.md) (automatic disconnection)
* [REG](../commands/reg.md) (automatic disconnection)
* [REM](../commands/rem.md) (automatic disconnection)
* [RMG](../commands/rmg.md) (automatic disconnection)
* [GTC](../commands/gtc.md) (automatic disconnection)
* [SYN](../commands/syn.md) (automatic disconnection)
* [SBP](../commands/sbp.md) (unconfirmed, could be used for HSB and stuff, automatic disconnection)
# Known changes
(from [MSNP12](msnp12.md)):
* This is the second protocol split since [MSNP8](msnp8.md).
No clients supporting this protocol are expected to support [MSNP12](msnp12.md) or below.
* [XFR](../commands/xfr.md) NS format has been changed.
The unused parameter from [MSNP3](msnp3.md) and the current server parameter from [MSNP7](msnp7.md)
have been replaced with two new parameters, one containing `U`, and one containing a `D`.
The use of these parameters is unknown.
* The [Passport (SOAP)](../services/passportsoap.md) authentication request
will now include a request for few more security tokens,
notably `contacts.msn.com` for the [Address Book Service](../services/abservice.md).
* Replaced [SYN](../commands/syn.md) with both the
[Address Book Service](../services/abservice.md)'s
[`ABFindAll`](../services/abservice/abfindall.md)
and the [Contact Sharing Service](../services/sharingservice.md)'s
[`FindMembership`](../services/sharingservice/findmembership.md) actions.
* Instead of [ADC](../commands/adc.md) adding new users to the Forward List (FL), Allow List (AL),
Block List (BL), or the Reverse List (RL), the [Address Book Service](../services/abservice.md)'s
[`ABContactAdd`](../services/abservice/abcontactadd.md) action is used for the Forward List (FL),
and the [Contact Sharing Service](../services/sharingservice.md)'s
[`AddMember`](../services/sharingservice/addmember.md) action for the other lists.
* Instead of [REM](../commands/rem.md) removing existing users from the Forward List (FL), Allow List (AL),
Block List (BL), or the Pending List (PL), the [Address Book Service](../services/abservice.md)'s
[`ABContactDelete`](../services/abservice/abcontactdelete.md) action is used for the Forward List (FL),
and the [Contact Sharing Service](../services/sharingservice.md)'s
[`DeleteMember`](../services/sharingservice/deletemember.md) action for the other lists.
* Instead of [GTC](../commands/gtc.md), use the [Address Book Service](../services/abservice.md)'s
[`ABContactUpdate`](../services/abservice/abcontactdelete.md) action on your own user to set the
`MSN.IM.GTC` annotation's value to 0 or 1:
* `0`: Automatically add to AL
* `1`: Ask before adding to AL/BL
* Instead of [ADG](../commands/adg.md), use the [Address Book Service](../services/abservice.md)'s
[`ABGroupAdd`](../services/abservice/abgroupadd.md) action.
* Instead of [RMG](../commands/adg.md), use the [Address Book Service](../services/abservice.md)'s
[`ABGroupDelete`](../services/abservice/abgroupdelete.md) action.
* Instead of [REG](../commands/adg.md), use the [Address Book Service](../services/abservice.md)'s
[`ABGroupUpdate`](../services/abservice/abgroupupdate.md) action.
* Instead of [SBP](../commands/sbp.md), use the [Address Book Service](../services/abservice.md)'s
[`ABContactUpdate`](../services/abservice/abcontactupdate.md) action.
* [NOT](../commands/not.md): `<NotificationData>` notifications are used for updates to your contact list
as well as [ADL](../commands/adl.md).
* [GCF](../commands/gcf.md): All policies are now always sent after your first [USR](../commands/usr.md) command,
including the contents of `Shields.xml` in the policy with the type of `SHIELDS`.
* [UUX](../commands/uux.md), [UBX](../commands/ubx.md): Added `<MachineGuid>` element to `<Data>`.
* The contact management commands ([ADL](../commands/adl.md) and [RML](../commands/rml.md))
now only manage the state of the Forward List (FL), Allow List (AL) and Block List (BL) for the current session.
For managing contacts persistently, you have to use both the [Address Book Service](../services/abservice.md)
and the [Contact Sharing Services](../services/sharingservice.md) SOAP services.
* [RNG](../commands/rng.md) and [XFR](../commands/xfr.md) SB commands now have two extra parameters.
The use of these parameters is currently unknown.
* Offline instant messages can now be sent via the Offline Instant Messaging SOAP service.
# Client-server communication example
*NOTE: This has been line-breaked.
Lines beginning with `..` followed by a space are continuations of the previous line.*
```
C: VER 1 MSNP13 CVR0
S: VER 1 MSNP13
C: CVR 2 0x0409 winnt 5.1 i386 MSG80BETA 8.0.0566 msmsgs example@hotmail.com
S: CVR 2 8.0.0566 8.0.0566 8.0.0566
.. http://msgr.dlservice.microsoft.com/download/4/5/b/45beb06f-5a08-4694-abd8-d6e706b06b68/Install_Messenger_Beta.exe
.. http://ideas.live.com
C: USR 3 TWN I example@hotmail.com
S: XFR 3 NS 10.0.0.5:1863 U D
```
Client disconnects from server
Client opens a connection to 10.0.0.5:1863
```
C: VER 4 MSNP13 CVR0
S: VER 4 MSNP13
C: CVR 5 0x0409 winnt 5.1 i386 MSNMSGR 8.0.0566 MSMSGS example@hotmail.com
S: CVR 5 8.0.0566 8.0.0566 8.0.0566
.. http://msgr.dlservice.microsoft.com/download/4/5/b/45beb06f-5a08-4694-abd8-d6e706b06b68/Install_Messenger_Beta.exe
.. http://ideas.live.com
C: USR 6 TWN I example@hotmail.com
```
*The HTTPS interlude is described in the [Passport (SOAP)](../services/passportsoap.md) article.*
```
S: USR 6 TWN S passport=parameters,neat=huh,lc=1033,id=507
S: GCF 0 201
<Policies>
<Policy type="SHIELDS">
<config>
<shield>
<cli maj="7" min="0" minbld="0" maxbld="9999" deny=" " />
</shield>
<block>
</block>
</config>
</Policy>
</Policies>
C: USR 7 TWN S $(xmldecode(passportsoap.BinarySecurityToken#Compact1))
S: USR 7 OK example@hotmail.com 1 0
S: SBS 0 null
S: MSG Hotmail Hotmail 481
MIME-Version: 1.0
Content-Type: text/x-msmsgsprofile; charset=UTF-8
LoginTime: 1732890086
EmailEnabled: 1
MemberIdHigh: 1
MemberIdLow: 2
lang_preference: 1033
PreferredEmail: example@hotmail.com
country: US
PostalCode:
Gender:
Kid: 0
Age:
BDayPre:
Birthday:
Wallet:
Flags: 1027
sid: 507
kv: 11
MSPAuth: whatever+t+is+in+your+passport+login+ticket+that+you+sent+for+USR+TWN+S$
ClientIP: 192.168.1.111
ClientPort: 18183
ABCHMigrated: 1
BetaInvites: 10
```
*The Client now uses both the [`ABFindAll`](../services/abservice/abfindall.md)
and the [`FindMembership`](../services/sharingservice/findmembership.md) actions
to get the current state of all lists and the last stored name and privacy mode.*
*NOTE: The following [ADL](../commands/adl.md) and [UUX](../commands/uux.md) payloads
have been exploded for visibility and formatting reasons.
No whitespace is allowed in [ADL](../commands/adl.md)'s payload and the payload size reflects this,
and is set to the correct value.*
```
C: BLP 7 AL
S: BLP 7 AL
C: ADL 8 110
<ml l="1">
<d n="hotmail.com">
<c n="anotheruser" l="3" t="1" />
</d>
<t>
<c n="tel:+15551111222" l="3" />
</t>
</ml>
S: ADL 8 OK
C: PRP 9 MFN example%20user
S: PRP 9 MFN example%20user
C: CHG 10 NLN
S: CHG 10 NLN
C: UUX 11 118
<Data>
<PSM></PSM>
<CurrentMedia></CurrentMedia>
<MachineGuid>{44BFD5A4-7450-4BDA-BA3A-C51B3031126D}</MachineGuid>
</Data>
S: UUX 11 0
```

137
docs/versions/msnp14.md Normal file
View file

@ -0,0 +1,137 @@
# Introduction
MSNP14 is the thirteenth released version of the Mobile Status Notification Protocol.
It was introduced officially in Client Version 8.0.0787, along with [MSNP13](../versions/msnp13.md).
# Command information
It introduces the notificaiton service commands:
* [FQY](../commands/fqy.md)
* UBM
* UUM
*No switchboard or dispatch service commands were known to be introduced in this version*
*No error codes were known to be introduced in this version*
*No commands were known to be removed in this version*
# Known changes
(from [MSNP13](../versions/msnp13.md)):
* [UBX](../commands/ubx.md) now has an extra parameter for a Network ID of the network
that generated the new XML payload.
* [RNG](../commands/rng.md) and [XFR](../commands/xfr.md) SB commands now have an extra parameter
to specify if the address should be connected to directly or only via the HTTP Gateway.
* [ILN](../commands/iln.md), [NLN](../commands/nln.md) and [FLN](../commands/fln.md)
now have an extra parameter for the Network ID of the network that generated the new status.
* Official Client: Yahoo! Messenger interoperability is now supported.
The [FQY](../command/fqy.md) command is used to discover if a user is from the Yahoo! Messenger network.
This is represented in the [Address Book Service](../services/abservice.md) as a email-only contact
with the `isMessengerEnabled` element set to `true` for the `contactEmailType` of `Messenger2`.
This is also represented in the [Contact Sharing Service](../services/sharingservice.md) as a e-mail membership,
with the `MSN.IM.BuddyType` annotation set to `32:`.
The Network ID 32 (bit 6) is used to specify that this user is from the Yahoo! Messenger service.
* [ILN](../commands/iln.md) and [NLN](../commands/nln.md) now include a new parameter
that specifies what icon to use to denote a user from another service.
# Client-server communication example
*NOTE: This has been line-breaked.
Lines beginning with `..` followed by a space are continuations of the previous line.*
```
C: VER 1 MSNP14 MSNP13 CVR0
S: VER 1 MSNP14
C: CVR 2 0x0409 winnt 5.1 i386 MSG80BETA 8.0.0566 msmsgs example@hotmail.com
S: CVR 2 8.0.0566 8.0.0566 8.0.0566
.. http://msgr.dlservice.microsoft.com/download/4/5/b/45beb06f-5a08-4694-abd8-d6e706b06b68/Install_Messenger_Beta.exe
.. http://ideas.live.com
C: USR 3 TWN I example@hotmail.com
S: XFR 3 NS 10.0.0.5:1863 U D
```
Client disconnects from server
Client opens a connection to 10.0.0.5:1863
```
C: VER 4 MSNP14 MSNP13 CVR0
S: VER 4 MSNP14
C: CVR 5 0x0409 winnt 5.1 i386 MSNMSGR 8.0.0566 MSMSGS example@hotmail.com
S: CVR 5 8.0.0566 8.0.0566 8.0.0566
.. http://msgr.dlservice.microsoft.com/download/4/5/b/45beb06f-5a08-4694-abd8-d6e706b06b68/Install_Messenger_Beta.exe
.. http://ideas.live.com
C: USR 6 TWN I example@hotmail.com
```
*The HTTPS interlude is described in the [Passport (SOAP)](../services/passportsoap.md) article.*
```
S: USR 6 TWN S passport=parameters,neat=huh,lc=1033,id=507
S: GCF 0 201
<Policies>
<Policy type="SHIELDS">
<config>
<shield>
<cli maj="7" min="0" minbld="0" maxbld="9999" deny=" " />
</shield>
<block>
</block>
</config>
</Policy>
</Policies>
C: USR 7 TWN S $(xmldecode(passportsoap.BinarySecurityToken#Compact1))
S: USR 7 OK example@hotmail.com 1 0
S: SBS 0 null
S: MSG Hotmail Hotmail 465
MIME-Version: 1.0
Content-Type: text/x-msmsgsprofile; charset=UTF-8
LoginTime: 1732890086
EmailEnabled: 1
MemberIdHigh: 1
MemberIdLow: 2
lang_preference: 1033
PreferredEmail: example@hotmail.com
country: US
PostalCode:
Gender:
Kid: 0
Age:
BDayPre:
Birthday:
Wallet:
Flags: 1027
sid: 507
kv: 11
MSPAuth: whatever+t+is+in+your+passport+login+ticket+that+you+sent+for+USR+TWN+S$
ClientIP: 192.168.1.111
ClientPort: 18183
ABCHMigrated: 1
```
*The Client now uses both the [`ABFindAll`](../services/abservice/abfindall.md)
and the [`FindMembership`](../services/sharingservice/findmembership.md) actions
to get the current state of all lists and the last stored name and privacy mode.*
*NOTE: The following [ADL](../commands/adl.md) and [UUX](../commands/uux.md) payloads
have been exploded for visibility and formatting reasons.
No whitespace is allowed in [ADL](../commands/adl.md)'s payload and the payload size reflects this,
and is set to the correct value.*
```
C: BLP 7 AL
S: BLP 7 AL
C: ADL 8 110
<ml l="1">
<d n="hotmail.com">
<c n="anotheruser" l="3" t="1" />
</d>
<t>
<c n="tel:+15551111222" l="3" />
</t>
</ml>
S: ADL 8 OK
C: PRP 9 MFN example%20user
S: PRP 9 MFN example%20user
C: CHG 10 NLN
S: CHG 10 NLN
C: UUX 11 118
<Data>
<PSM></PSM>
<CurrentMedia></CurrentMedia>
<MachineGuid>{44BFD5A4-7450-4BDA-BA3A-C51B3031126D}</MachineGuid>
</Data>
S: UUX 11 0
```

View file

@ -97,7 +97,7 @@ It introduces the error codes:
# Known changes
(from Beta 2)
* Dispatch servers now go through the normal user proceedure until `USR x MD5 I`.
* Dispatch servers now go through the normal user proceedure until `USR TrID MD5 I user-handle`.
# Client-server communication example
```

View file

@ -22,7 +22,13 @@ It introduces the error codes:
(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](../commands/url.md) (parameter 3).
* Removed `PASSWORD` service from [URL](../commands/url.md).
* Content types of both e-mail notifications have changed.
* The initial configuration content type was changed from
`application/x-msmsgsemailnotification` to `text/x-msmsgsinitialemailnotification`.
The content remains the same.
* The notifification content type was changed from
`application/x-msmsgsemailnotification` to `text/x-msmsgsemailnotification`.
The only difference in content is the added `id` header.
* Added Hotmail's Passport Site ID to new e-mail notifications.
* [SND](../commands/snd.md): Added a target language parameter and
a client library parameter, similar to the one in [CVR](../commands/cvr.md).
@ -32,17 +38,14 @@ It introduces the error codes:
* Non-protocol: WebTV 2.5+ clients (example@webtv.net) can talk to other users (example@hotmail.com)
* Clear-Text Password (`CTP`) authentication method removed. Use `MD5` instead.
Applies to both [INF](../commands/inf.md) and USR.
* 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: Automatic login form now supports Passport
if parameter 3 is set in [URL](../commands/url.md).
* Official Client: Automatic login form now supports Passport authentication
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.
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) +

View file

@ -26,8 +26,8 @@ It introduces the error codes:
* Official Client: Log in notifications are now handled by the newly introduced toast system.
* Official Client: Introduced emoticons.
* Official Client: Introduced File Transfer and Messenger-to-Messenger calling via invitations.
* Introduced first payload commands ([SDC](../commands/sdc.md), PAG) to be sent to the Notification Server from the client.
* Official Client: [FND](../commands/fnd.md) functionality changed slightly(?) to say that Passport
* Introduced first payload commands ([SDC](../commands/sdc.md), [PAG](../commands/pag.md)) to be sent to the Notification Server from the client.
* Official Client: [FND](../commands/fnd.md) functionality changed slightly(?) to say that the Passport privacy policy
doesn't allow users to retrieve the e-mails assocated with the user's account,
sending the user to a invitation screen with, with it ending in sending an [SDC](../commands/sdc.md) in the format of
`SDC TrID {FND index} 0x0409 MSMSGS MSMSGS X X example%20user {length}`.

View file

@ -20,10 +20,11 @@ It introduces the error codes:
# Known changes
(from [MSNP5](msnp5.md)):
* [USR](../commands/usr.md) OK now has a verified bit (parameter 4),
if it is `0`, the Official Client 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 can not be changed.
* Client-server challenges were introduced. The format for the response ([QRY](../commands/qry.md) commands) are
if it is `0`, the Official Client 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 can not be changed.*
* Client-server challenges were introduced.
The format for the response ([QRY](../commands/qry.md) commands) are
`MD5(challenge + privateKey)` as a lowercase hexadecimal string.
* An example Private Key is `Q1P7W2E4J9R8U3S5`, which is tied to the Public Key of `msmsgs@msnmsgr.com`.
* First protocol version added in a patch release (Client Versions 3.6.0025 and 3.6.0026 do not support MSNP6).

View file

@ -16,23 +16,23 @@ The following commands were removed in this version:
* [CVQ](../commands/cvq.md): Client codebase identification parameter is no longer empty.
* Being the first protocol split,
all released clients that support MSNP8 do not support any previous versions.
* Login process now [VER](../commands/ver.md)-[CVR](../commands/cvr.md)-[USR](../commands/usr.md)
* Login process is now [VER](../commands/ver.md)-[CVR](../commands/cvr.md)-[USR](../commands/usr.md)
instead of [VER](../commands/ver.md)-[INF](../commands/inf.md)-[USR](../commands/usr.md).
* [USR](../commands/usr.md) OK has a new parameter, Account restriction status, if set to `1`,
the Official Client **will** forcefully log out and **demand** that you log in using MSN Explorer instead.
Unrestricted accounts (those that do **not** need to log in using MSN Explorer) will have `0` set instead.
the Official Client **will** forcefully log out and **demand** that you log in using MSN Explorer instead.
Unrestricted accounts (those that do **not** need to log in using MSN Explorer) will have the value set to `0` instead.
* Introduced `TWN` authentication method, which uses [Passport 1.4](../services/passport14.md) over HTTPS.
* Reworked [SYN](../commands/syn.md) and related response commands (notably [LSG](../commands/lsg.md) and [LST](../commands/lst.md)) drastically:
Iterators are gone, now total size of both groups and total contacts included in SYN response.
All transaction IDs and list versions have been removed from response commands (now treated as asynchronous commands).
Unset properties ([PRP](../commands/prp.md) commands) are now omitted. Hurray.
* Iterators are gone, now total size of both groups and total contacts included in SYN response.
* All transaction IDs and list versions have been removed from response commands (now treated as asynchronous commands).
* Unset properties ([PRP](../commands/prp.md) commands) are now omitted. Hurray.
* [CVR](../commands/cvr.md) request now has a new 8th parameter, which is the current user.
This also applies to [CVQ](../commands/cvq.md) in [CVR0](cvr0.md).
* New initial profile fields: `ClientIP` and `ClientPort`.
* New initial profile fields: `ClientIP` and `ClientPort`.
`ClientPort` needs to be endian swapped for it's correct value.
Formula: `y = (((x & 0xff) * 256) + ((x & 0xff00)/256))`.
* NOTE: [FND](../commands/fnd.md) might still exist in client, but theres no way of triggering it. Practically removed.
All previous protocols also received the 502 error code.
All previous protocol versions also received the 502 error code.
* [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](../commands/syn.md)): Lists are now all combined into a single number, where:
1 = Forward List (FL), 2 = Allow List (AL), 4 = Block List (BL), 8 = Reverse List (RL),
@ -45,7 +45,7 @@ The following commands were removed in this version:
to notify the other user about what the network conditions are.
* 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.
`abch_config.asp` provides an XML document with a `<abchconfig>` element.
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.

View file

@ -20,10 +20,10 @@ The following commands were removed in this version:
# Known changes
(from [MSNP8](msnp8.md)):
* [CHG](../commands/chg.md), [ILN](../commands/iln.md), [NLN](../commands/nln.md): Added an optional MSNObject parameter.
* [CHG](../commands/chg.md), [ILN](../commands/iln.md), [NLN](../commands/nln.md): Added an optional MSNObject parameter.
Now you can tell other clients about image data associated with your account.
* [QNG](../commands/qng.md): Added a "next ping" time (in seconds) parameter.
* Switchboard [MSG](../commands/msg.md): Acknowledgement type D added.
* Switchboard [MSG](../commands/msg.md): Acknowledgement type D added.
Can respond with either [ACK](../commands/ack.md), error 282, or possibly any other error codes.
* [NOT](../commands/not.md): Extended notifications are now supported via the `<TEXTX>` element.
* Official Client: Error 603 is handled again after being removed in Client Version 5.0.

4
package-lock.json generated
View file

@ -1,12 +1,12 @@
{
"name": "yellows-msnp-wiki",
"version": "0.1.4-beta.2",
"version": "0.1.4",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "yellows-msnp-wiki",
"version": "0.1.4-beta.2",
"version": "0.1.4",
"license": "GFDL-1.3-or-later",
"dependencies": {
"yiki": "git+https://git.kevinthe.horse/yellows111/yiki.git#semver:*"

View file

@ -1,6 +1,6 @@
{
"name": "yellows-msnp-wiki",
"version": "0.1.4-beta.2",
"version": "0.1.4",
"description": "The yellows111 MSNP wiki that aims for accuracy.",
"author": "yellows111",
"license": "GFDL-1.3-or-later",