[0.1.4-alpha.1] xml examples, NOT stuff, fixes

updated yiki also
This commit is contained in:
yellows111 2024-11-19 20:23:28 +00:00
parent f096fe907f
commit 0cfc511907
Signed by: yellows111
SSH Key Fingerprint: SHA256:ynw5IJBU1pb7fZfHgLihKu9gHHA8FVpixZbB6IEB3r8
31 changed files with 1247 additions and 187 deletions

View File

@ -3,7 +3,8 @@
It is a Notification Server command, without either a request or response payload. It is a Notification Server command, without either a request or response payload.
Changes your presence status, and sets your Client Capabilities and MSNObject in later MSNP versions. Changes your presence status,
and sets your [Client Capabilities](../files/client_capabilities.md) and MSNObject in later MSNP versions.
# Client/Request # Client/Request
`CHG TrID status {flags} {msnobj}` `CHG TrID status {flags} {msnobj}`
@ -20,7 +21,7 @@ Where `status` can be any of the below:
* `FLN`: Semi-offline. More on this below. * `FLN`: Semi-offline. More on this below.
In [MSNP8](../versions/msnp8.md) and higher, `flags`, an optional parameter may be used to In [MSNP8](../versions/msnp8.md) and higher, `flags`, an optional parameter may be used to
specify your Client Capabilities. specify your [Client Capabilities](../files/client_capabilities.md).
In [MSNP9](../versions/msnp9.md) and higher, `msnobj`, an optional parameter may be used to In [MSNP9](../versions/msnp9.md) and higher, `msnobj`, an optional parameter may be used to
add additional information related to your user. Requires that `flags` MUST be set to use. add additional information related to your user. Requires that `flags` MUST be set to use.
@ -91,6 +92,6 @@ C: CHG 4 HOT
Server disconnects client. Server disconnects client.
# Known changes # Known changes
* [MSNP8](../versions/msnp8.md): Added optional Client Capabilities parameter (as parameter 2). * [MSNP8](../versions/msnp8.md): Added optional [Client Capabilities](../files/client_capabilities.md) parameter (as parameter 2).
* [MSNP9](../versions/msnp9.md): Added optional MSNObject parameter (as parameter 3). * [MSNP9](../versions/msnp9.md): Added optional MSNObject parameter (as parameter 3).
* Removed in MSNP24. * Removed in MSNP24.

View File

@ -35,7 +35,7 @@ S: NOT 367
</NOTIFICATION> </NOTIFICATION>
``` ```
## Advanced notification ## Extended notification
*Since [MSNP9](../versions/msnp9.md).* *Since [MSNP9](../versions/msnp9.md).*
``` ```
S: NOT 457 S: NOT 457
@ -55,7 +55,7 @@ S: NOT 457
## Blog update notification ## Blog update notification
*Since [MSNP11](../versions/msnp11.md).* *Since [MSNP11](../versions/msnp11.md).*
``` ```
S: NOT 1249 S: NOT 1264
<NOTIFICATION id="2" siteid="45705" siteurl="http://storage.msn.com/"> <NOTIFICATION id="2" siteid="45705" siteurl="http://storage.msn.com/">
<TO pid="0x00000001:0x00000002" name="example@hotmail.com"> <TO pid="0x00000001:0x00000002" name="example@hotmail.com">
<VIA agent="messenger"/> <VIA agent="messenger"/>
@ -64,7 +64,10 @@ S: NOT 1249
<ACTION url="a.htm" /> <ACTION url="a.htm" />
<SUBSCR url="s.htm" /> <SUBSCR url="s.htm" />
<BODY> <BODY>
&lt;NotificationData xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&gt; &lt;NotificationData
xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;
xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
&gt;
&lt;SpaceHandle&gt; &lt;SpaceHandle&gt;
&lt;ResourceID&gt;example1!101&lt;/ResourceID&gt; &lt;ResourceID&gt;example1!101&lt;/ResourceID&gt;
&lt;/SpaceHandle&gt; &lt;/SpaceHandle&gt;
@ -93,7 +96,7 @@ S: NOT 1249
## Contact update notification ## Contact update notification
*Since [MSNP13](../versions/msnp13.md).* *Since [MSNP13](../versions/msnp13.md).*
``` ```
S: NOT 685 S: NOT 694
<NOTIFICATION id="2" siteid="45705" siteurl="http://contacts.msn.com/"> <NOTIFICATION id="2" siteid="45705" siteurl="http://contacts.msn.com/">
<TO pid="0x00000001:0x00000002" name="example@hotmail.com"> <TO pid="0x00000001:0x00000002" name="example@hotmail.com">
<VIA agent="messenger"/> <VIA agent="messenger"/>
@ -102,7 +105,10 @@ S: NOT 685
<ACTION url="a.htm" /> <ACTION url="a.htm" />
<SUBSCR url="s.htm" /> <SUBSCR url="s.htm" />
<BODY> <BODY>
&lt;NotificationData xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&gt; &lt;NotificationData
xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;
xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
&gt;
&lt;Service&gt;ABCHInternal&lt;/Service&gt; &lt;Service&gt;ABCHInternal&lt;/Service&gt;
&lt;CID&gt;4294967298&lt;/CID&gt; &lt;CID&gt;4294967298&lt;/CID&gt;
&lt;LastModifiedDate&gt;2024-10-26T09:33:27.1020000-08:00&lt;/LastModifiedDate&gt; &lt;LastModifiedDate&gt;2024-10-26T09:33:27.1020000-08:00&lt;/LastModifiedDate&gt;
@ -122,6 +128,7 @@ C: NOT 1 0
Server disconnects client. Server disconnects client.
# Known changes # Known changes
* [MSNP9](../versions/msnp9.md): Added support for extended notifications using the `<TEXTX>` element.
* [MSNP11](../versions/msnp11.md): Using an `<NotificationData>` sub-document embedded into a `<NOTIFICATION>` document is supported. * [MSNP11](../versions/msnp11.md): Using an `<NotificationData>` sub-document embedded into a `<NOTIFICATION>` document is supported.
Using the new sub-document, live blog updates are now sent. Using the new sub-document, live blog updates are now sent.
* [MSNP13](../versions/msnp13.md): Used for [Address Book Service](../services/abservice.md) live updates using the `<NotificationData>` sub-document. * [MSNP13](../versions/msnp13.md): Used for [Address Book Service](../services/abservice.md) live updates using the `<NotificationData>` sub-document.

View File

@ -12,6 +12,7 @@ payload
``` ```
Where `public-key` is your client's Public Key. Where `public-key` is your client's Public Key.
For a list of valid Public Keys, read the [Challenge Key Pairs](../files/challenge_keypairs.md) article.
Where `length` is the size (in bytes) of the `payload`. Where `length` is the size (in bytes) of the `payload`.
@ -20,6 +21,8 @@ Where `payload` is the challenge response.
## Challenge responses ## Challenge responses
Calculating the challenge response depends on the version of the protocol you are using. Calculating the challenge response depends on the version of the protocol you are using.
For a list of valid Private Keys, read the [Challenge Key Pairs](../files/challenge_keypairs.md) article.
### Basic responses ### Basic responses
*Only in [MSNP6](../versions/msnp10.md) to [MSNP10](../versions/msnp10.md).* *Only in [MSNP6](../versions/msnp10.md) to [MSNP10](../versions/msnp10.md).*

View File

@ -0,0 +1,47 @@
# Introduction
Challenges ([CHL](../commands/chl.md) commands) require a key pair (for the [QRY](../commands/qry.md) command) to be solved.
The following is a list of valid key pairs.
If you know of a key pair not on this list,
or just the Public Key associated with a client, feel free to contact me.
Format of the Public Keys (except the first `msmsgs@msnmsgr.com` one)
seems to be "PROD", then four digits, the first being a `0`, than 8 random characters.
The four digits seem to increase by at least `1` every time a new key pair is made.
Private keys seem to have a format of 16 random characters.
Random characters in both cases will match the regular expression of
`[A-Z0-9{}!@*%_?$#]`.
# Old key pairs
*Only in [MSNP6](../versions/msnp6.md) to [MSNP10](../versions/msnp10.md).*
| `PUBLIC KEY` | `PRIVATE KEY` | Introduced with... |
| ------------ | ------------- | ------------------ |
|`msmsgs@msnmsgr.com`| `Q1P7W2E4J9R8U3S5` | Client Version 3.6.0038 ([MSNP6](../versions/msnp6.md)) |
| `PROD0038W!61ZTF9` | `VT6PX?UQTM4WM%YR` | Client Version ?.?.???? |
| `PROD0058#7IL2{QD` | `QHDCY@7R1TB6W?5B` | Client Version ?.?.???? |
| `PROD0061VRRZH@4F` | `JXQ6J@TUOGYV@N0M` | Client Version ?.?.???? |
| `PROD00504RLUG%WL` | `I2EBK%PYNLZL5_J4` | Client Version ?.?.???? |
| `PROD0076ENE8*@AW` | `CEQJ8}OE0!WTSWII` | Client Version ?.?.???? |
| `PROD00517IFH4@RV` | ? | Client Version ?.?.???? |
# New key pairs
*Since [MSNP11](../versions/msnp11.md).*
| `PUBLIC KEY` | `PRIVATE KEY` | Introduced with... |
| ------------ | ------------- | ------------------ |
| `PROD008955JTJ_S7` | ? | Client Version 7.?.???? |
| `PROD0090YUAUV{2B` | `YMM8C_H7KCQ2S_KL` | Client Version 7.?.???? ([MSNP11](../versions/msnp11.md)) |
| `PROD00974#MT*RC2` | `LMCVO*18PQJ3H!K3` | Client Version 7.?.???? |
| `PROD0101{0RM?UBW` | `CFHUR$52U_{VIX5T` | Client Version 7.0.0777 (unconfirmed) |
| `PROD0104U6VVM{UJ` | `VK67B}379XYM5}$T` | Client Version 7.5.???? |
| `PROD01065C%ZFN6F` | `O4BG@C7BWLYQX?5G` | Client Version 8.0.0328 (unconfirmed) |
| `PROD0112J1LW7%NB` | `RH96F{PHI8PPX_TJ` | Client Version 8.0.0812 (unconfirmed) |
| `PROD0113H11T8$X_` | `RG@XY*28Q5QHS%Q5` | Client Version 8.1.0168 (unconfirmed) |
| `PROD0114ES4Z%Q5W` | `PK}_A_0N_K%O?A9S` | Client Version 8.1.0178 (unconfirmed) |
| `PROD0118R6%2WYOS` | `YIXPX@5I2P0UT*LK` | Client Version 8.5.1235 (unconfirmed) |
| `PROD0119GSJUC$18` | `ILTXC!4IXB5FB*PX` | Client Version 8.5.1288 (unconfirmed) |
| `PROD0120PW!CCV9@` | `C1BX{V4W}Q3*10SM` | Client Version 14.0.8050 (unconfirmed)|

View File

@ -0,0 +1,63 @@
# Information
Client Capabilities are a feature introduced with [MSNP8](../versions/msnp8.md)
to notify other clients what optional features your client supports.
This was expanded in [MSNP16](../versions/msnp16.md) with Extended Client Capabilities.
# Client Capabilities
*Since [MSNP8](../versions/msnp8.md).*
| `hexadecimal` | `decimal` | meaning |
| ------------- | ------------ | ------- |
| `0x00000001` | `1` | The user is on a mobile device. |
| `0x00000002` | `2` | The user is the MSN Desktop client, version 8 or above. |
| `0x00000004` | `4` | The user's client supports receiving Ink. (GIF) |
| `0x00000008` | `8` | The user's client supports sending Ink. (ISF) |
| `0x00000010` | `16` | The user has a webcam and is sharing the fact they have one. |
| `0x00000020` | `32` | The user's client supports messages sent over multiple packets. |
| `0x00000040` | `64` | The user can be messaged via their mobile device. |
| `0x00000080` | `128` | The user can be messaged via their Web Watch. |
| `0x00000100` | `256` | ? |
| `0x00000200` | `512` | The user is on a web-based client. |
| `0x00000400` | `1024` | ? |
| `0x00000800` | `2048` | The user is using Microsoft Office Communicator via a cross-platform gateway. |
| `0x00001000` | `4096` | The user has a blog. |
| `0x00002000` | `8192` | The user is using a media center client. |
| `0x00004000` | `16384` | The user's client supports opening a direct connection for instant messaging. |
| `0x00008000` | `32768` | The user's client supports sending and receiving Winks (flash animations). |
| `0x00010000` | `65536` | The user's client supports the shared search feature. |
| `0x00020000` | `131072` | This client is a provisioned user. (User is a bot) |
| `0x00040000` | `262144` | The user's client supports sending and receiving Voice Clips. |
| `0x00080000` | `524288` | The user's client supports encrypted conversations. |
| `0x00100000` | `1048576` | ... |
| `0x00200000` | `2097152` | ... |
| `0x00400000` | `4194304` | ... |
| `0x00800000` | `8388608` | ... |
| `0x01000000` | `16777216` | ... |
| `0x02000000` | `33554432` | ... |
| `0x04000000` | `67108864` | ... |
| `0x08000000` | `134217728` | ... |
| `0x10000000` | `268435456` | The user's client supports MSNC1. (Client Version 6.0+) |
| `0x20000000` | `536870912` | The user's client supports MSNC2 and below. (Client Version 6.1+) |
| `0x30000000` | `805306368` | The user's client supports MSNC3 and below. (Client Version 6.2+) |
| `0x40000000` | `1073741824` | The user's client supports MSNC4 and below. (Client Version 7.0+) |
| `0x50000000` | `1342177280` | The user's client supports MSNC5 and below. (Client Version 7.5+) |
| `0x60000000` | `1610612736` | The user's client supports MSNC6 and below. (Client Version 8.0+) |
| `0x70000000` | `1879048192` | The user's client supports MSNC7 and below. (Client Version 8.1+) |
| `0x80000000` | `2147483648` | The user's client supports MSNC8 and below. (Client Version 8.5+) |
| `0x90000000` | `2415919104` | The user's client supports MSNC9 and below. (Client Version 9.0+) |
| `0xA0000000` | `2684354560` | The user's client supports MSNC10 and below. (Client Version 14.0+) |
| `0xB0000000` | `2952790016` | The user's client supports MSNC11 and below. (Client Version 14.1+) |
| `0xC0000000` | `3221225472` | The user's client supports MSNC12 and below. (Client Version 15.0+) |
| `0xD0000000` | `3489660928` | The user's client supports MSNC13 and below. |
| `0xE0000000` | `3758096384` | The user's client supports MSNC14 and below. |
| `0xF0000000` | `4026531840` | The user's client supports MSNC15 and below. |
# Extended Client Capabilities
*Since [MSNP16](../versions/msnp16.md).*
**TODO: this**
| `hexadecimal` | `decimal` | meaning |
| ------------- | ------------ | ------- |
| `0x00000001` | `1` | ... |

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. * `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. * `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: Setting this to some values changes the default icon:
* `0`: Use stocks (stack of coins or line-chart) icon * `0`: Use stocks (stack of coins or line-chart) icon
* `1`: Use calendar (clock) icon * `1`: Use calendar (clock) icon
* Other values: Use default bell icon or custom icon * Other values: Use default bell icon or custom icon
* `siteurl`: The base URL to the service used in later relative URL attributes. * `siteurl`: The base URL to the service used in later relative URL attributes.
## TO ## TO
@ -31,9 +31,9 @@ If this element (`<TO>`) does not have a (`<VIA>`) element, it is to be empty.
This empty element only supports one attribute: This empty element only supports one attribute:
* `agent`: What this alert is intended to be viewed by: * `agent`: What this alert is intended to be viewed by:
* `email`: A e-mail message. * `email`: A e-mail message.
* `messenger`: A "toast" generated by the Official Client. * `messenger`: A "toast" generated by the Official Client.
* `mobile`: A mobile device. * `mobile`: A mobile device.
## FROM ## FROM
*NOTE: This element should NOT be added to any `<NOTIFICATION>` documents.* *NOTE: This element should NOT be added to any `<NOTIFICATION>` documents.*
@ -79,9 +79,9 @@ This is the main body of the document, and supports two attributes:
* `lang`: The decimal LCID that this notification document is meant to display in. Optional, but should be set. * `lang`: The decimal LCID that this notification document is meant to display in. Optional, but should be set.
* `icon`: The custom 32x32 PNG icon URL, relative to `siteurl`. Optional. * `icon`: The custom 32x32 PNG icon URL, relative to `siteurl`. Optional.
Note: Newer versions of the client support 48x32 icons and will use them automatically Note: Client Version 6.0 ([MSNP9](../versions/msnp9.md)) and above support 48x32 icons and will use them automatically
if your icon URL has `_32x32` in it, the client can replace it with `_48x32`. if your icon URL includes the substring `_32x32`, the client will replace it with `_48x32`.
If you do not have a 48x32 icon, it will fall-back to the original 32x32 one. If you do not have a 48x32 icon, the client will fallback to the original 32x32 icon.
The default element that this parents is `<TEXT>`. It may also contain other types of data. The default element that this parents is `<TEXT>`. It may also contain other types of data.
One such data type is the [`<NotificationData>`](#notificationdata) sub-document. One such data type is the [`<NotificationData>`](#notificationdata) sub-document.
@ -102,16 +102,16 @@ supported by [MSNP9](../versions/msnp9.md) and higher.
The [`<TEXT>`](#text) element is required for this to be parsed by the Official Client. The [`<TEXT>`](#text) element is required for this to be parsed by the Official Client.
The inner docment of this is required to be XML encoded. The inner document of this is required to be XML encoded.
##### P ##### P
A paragraph, required for [`<TEXTX>`](#textx) elements to parse correctly. A paragraph, required for [`<TEXTX>`](#textx) elements to parse correctly.
This element supports one attribute: This element supports one attribute:
* `align`: The extended notification's text alignment: * `align`: The extended notification's text alignment:
* `left` * `left`
* `center` * `center`
* `right` * `right`
This element may contain any of the following elements: This element may contain any of the following elements:
* `P`: Nested paragraph, also supporting the `align` element. * `P`: Nested paragraph, also supporting the `align` element.
@ -181,9 +181,9 @@ This element and it's children are exclusive to notifications generated by the b
### Component ### Component
This element has one child named `ResourceID` and supports one attribute: This element has one child named `ResourceID` and supports one attribute:
* `xsi:type`: The type of this `<Component>`: * `xsi:type`: The type of this `<Component>`:
* `List`: A list. * `List`: A list.
* `Folder`: A photo collection. * `Folder`: A photo collection.
* `MessageContainer`: A text message container. * `MessageContainer`: A text message container.
#### ResourceID #### ResourceID
Contains the blog service's ID for this `<Component>`. Contains the blog service's ID for this `<Component>`.
@ -194,9 +194,9 @@ This element supports multiple `<Item>` child elements.
#### Item #### Item
This element has one child named `ResourceID` and supports one attribute: This element has one child named `ResourceID` and supports one attribute:
* `xsi:type`: The type of this `<Component>`: * `xsi:type`: The type of this `<Component>`:
* `ListEntry`: An entry on a list. * `ListEntry`: An entry on a list.
* `Photo`: A photo. * `Photo`: A photo.
* `Message`: A text message. * `Message`: A text message.
##### ResourceID ##### ResourceID
Contains the blog service's ID for this `<Item>`. Contains the blog service's ID for this `<Item>`.

View File

@ -28,18 +28,18 @@ This empty attribute has 5 parameters:
* `minbld`: Lowest bound of builds that this block applies to. * `minbld`: Lowest bound of builds that this block applies to.
* `maxbld`: Highest bound of builds that this block applies to * `maxbld`: Highest bound of builds that this block applies to
* `deny`: What features are disabled: * `deny`: What features are disabled:
* `SharingFolders`: Sharing Folders. Since [MSNP13](../versions/msnp13.md). * `SharingFolders`: Sharing Folders. Since [MSNP13](../versions/msnp13.md).
* `protocolhandler`: Unknown. * `protocolhandler`: Unknown.
* `dynamicbackgrounds`: Dynamic Backgrounds (Flash chat backgrounds). * `dynamicbackgrounds`: Dynamic Backgrounds (Flash chat backgrounds).
* `phone`: Calling features. Since [MSNP13](../versions/msnp13.md). * `phone`: Calling features. Since [MSNP13](../versions/msnp13.md).
* `voiceim`: Voice Clips. * `voiceim`: Voice Clips.
* `camera`: Video Conversations. * `camera`: Video Conversations.
* `audio`: Audio Conversations. * `audio`: Audio Conversations.
* `filexfer`: File transfer. * `filexfer`: File transfer.
* `hotlinks`: Web links. * `hotlinks`: Web links.
If this feature is blocked URLs sent in the chat will not be formatted as links. If this feature is blocked URLs sent in the chat will not be formatted as links.
* `ddp`: Dynamic Display Pictures (Flash avatars). * `ddp`: Dynamic Display Pictures (Flash avatars).
* `winks`: Winks (Flash full chat window animations). * `winks`: Winks (Flash full chat window animations).
### block ### block
*Since [MSNP12](../versions/msnp12.md).* *Since [MSNP12](../versions/msnp12.md).*

View File

@ -40,6 +40,8 @@ More is to come soon! Hopefully!
* [Constants used on the wiki](reference_constants.md) * [Constants used on the wiki](reference_constants.md)
* [Shields Configuration Data](files/shields.md) * [Shields Configuration Data](files/shields.md)
* [`<NOTIFICATION>` documents](files/notification.md) * [`<NOTIFICATION>` documents](files/notification.md)
* [Challenge key pairs](files/challenge_keypairs.md)
* [All Client Capabilities](files/client_capabilities.md)
# Wanted Information # Wanted Information
* [MSNP2](versions/msnp2.md): What is the format of the initial `text/x-msmsgsemailnotification`? * [MSNP2](versions/msnp2.md): What is the format of the initial `text/x-msmsgsemailnotification`?
@ -49,7 +51,7 @@ More is to come soon! Hopefully!
* [MSNP10](versions/msnp10.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): Did [LSG](commands/lsg.md) and [LST](commands/lst.md) change outside of [SYN](commands/syn.md) in this version?
* [MSNP11](versions/msnp11.md): How does `ABCHMigrated: 0` really work now? `OUT MIG` still exists. * [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? * [MSNP12](versions/msnp12.md): Did [LST](commands/lst.md) change outside of [SYN](commands/syn.md) in this version?
* MSNP18: Was `<NotificationData>`'d circle updates get added in MSNP17 instead? * MSNP18: Was `<NotificationData>`-based circle updates added in MSNP17 instead?
* Error Codes: A new article for them, seems like they are implemented in wildly different ways. * 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. * [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. * All Protocols: Any error code known to exist but is missing from the pages.
@ -60,21 +62,31 @@ More is to come soon! Hopefully!
* [MSG command](commands/msg.md): What can return from [MSG](commands/msg.md) D? * [MSG command](commands/msg.md): What can return from [MSG](commands/msg.md) D?
* [LST command](commands/lst.md): Any updates to this command outside of [SYN](commands/syn.md). * [LST command](commands/lst.md): Any updates to this command outside of [SYN](commands/syn.md).
* [PRP command](commands/prp.md): Any information on the following properties (if they are properties?): * [PRP command](commands/prp.md): Any information on the following properties (if they are properties?):
* `UTL` * `UTL`
* `WPL` * `WPL`
* `CID`: Is this related to spaces? * `CID`: Is this related to spaces?
* `RES` * `RES`
* `NSD` * `NSD`
* `UAC` * `UAC`
* `MNI` * `MNI`
* [UUX command](commands/uux.md): Any information on the following optional elements: * [UUX command](commands/uux.md): Any information on the following optional elements:
* `PHMEnabled` * `PHMEnabled`
* `MNIEnabled` * `MNIEnabled`
* `LastSpaceUpdate` * `LastSpaceUpdate`
* `LastStorageError` * `LastStorageError`
* `FIR` * `FIR`
* Meta: A good way to handle removed-mid-protocol commands like [FND](commands/fnd.md), [LSG](commands/lsg.md) and [LST](commands/lst.md)... * Meta: A good way to handle removed-mid-protocol commands like [FND](commands/fnd.md), [LSG](commands/lsg.md) and [LST](commands/lst.md)...
## We know, but isn't written
* [Contact Sharing Service](services/sharingservice.md): write about `FindMembership`
* [Address Book Service](services/abservice.md): write about `ABFindAll`
* [Messenger Config service](services/msgrconfig.md): maybe provide examples?
* [MSNP13](versions/msnp13.md): just write this page already
* [Passport SOAP](services/passportsoap.md): document this service for [MSNP12](versions/msnp12.md), [MSNP13](versions/msnp13.md) and above.
Examples would be nice, too.
* MSNC1: the client-to-client subprotocol introduced with [MSNP9](versions/msnp9.md), un-sure where to put this one...
* MSNP2P: the sub-protocol used for file transfers in [MSNP5](versions/msnp5.md), also un-sure where to put this one...
## Unsolved Mysteries ## 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. * [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.
* [FND command](commands/fnd.md): Why does this have an iterator if you can't send it over multiple packets? * [FND command](commands/fnd.md): Why does this have an iterator if you can't send it over multiple packets?
@ -92,7 +104,7 @@ More is to come soon! Hopefully!
* Protocol Split: A MSNP version that usually defines a point of no return. * Protocol Split: A MSNP version that usually defines a point of no return.
* PP14: [Passport SSI Version 1.4](services/passport14.md). * PP14: [Passport SSI Version 1.4](services/passport14.md).
* PP30: Passport over SOAP that was implemented in Client Version 7.5+ ([MSNP12](versions/msnp12.md)). * PP30: Passport over SOAP that was implemented in Client Version 7.5+ ([MSNP12](versions/msnp12.md)).
* SOAP: Simple Object Access Protocol, A wrapper over XML. That's the kindest thing I can write about it. * SOAP: Simple Object Access Protocol, A message schema based on XML. That's the kindest thing I can write about it.
* Passport: The Authentication Server and/or Protocol. * Passport: The Authentication Server and/or Protocol.
* Undefined Behaviour: An intentional blank left in the documentation, basically as a "I am not responsible for what this does to your client or server" warning. * Undefined Behaviour: An intentional blank left in the documentation, basically as a "I am not responsible for what this does to your client or server" warning.
* Dispatch Server: A type of MSNP server that handles moving users to Notification Servers. * Dispatch Server: A type of MSNP server that handles moving users to Notification Servers.
@ -101,16 +113,17 @@ More is to come soon! Hopefully!
* Command: A 3-letter case-sensitive command type, followed optionally by a transaction ID and the rest of the Command parameters, ending with a new-line. * Command: A 3-letter case-sensitive command type, followed optionally by a transaction ID and the rest of the Command parameters, ending with a new-line.
* Payload Command: A special type of Command that has a integer length parameter as the final parameter before the deliminating new-line. * Payload Command: A special type of Command that has a integer length parameter as the final parameter before the deliminating new-line.
* New-line/Newline: A Carriage Return character followed by a Line Feed character. Seperates commands in the protocol. * New-line/Newline: A Carriage Return character followed by a Line Feed character. Seperates commands in the protocol.
* Error Code: A 3-digit Command that denotes that there was a problem with the last command sent.
* Carriage Return: To return the page-writing apparatus to the left of the page. * Carriage Return: To return the page-writing apparatus to the left of the page.
* Line Feed: To move the page-writing apparatus down a "line". * Line Feed: To move the page-writing apparatus down a "line".
* TrID: Transaction ID. Links the server's response to the client's request. * TrID: Transaction ID. Links the server's response to the client's request.
* User handle: An address which supports up to 129 characters that is used across the protocol. * User handle: An address which supports up to 129 characters that is used across the protocol.
May be called "principles" in other places. May be called "principles" in other places.
* Public Key, Private Key: The parameters used in [QRY](commands/qry.md). * 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`. 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`. An example of the Private Key is `Q1P7W2E4J9R8U3S5` or `YMM8C_H7KCQ2S_KL`.
# Where do I find or edit these page's source? # Where do I find or edit these page's source?
The git repo is avaliable at <https://git.kevinthe.horse/yellows111/msnp-wiki>. The git repo is avaliable at <https://git.kevinthe.horse/yellows111/msnp-wiki>.

View File

@ -23,7 +23,7 @@ This refers to all the constants used on the wiki.
* John's (mobile-only contact) GUID: `a47e39cf-312c-4100-94a6-f2b33adf5b68` * John's (mobile-only contact) GUID: `a47e39cf-312c-4100-94a6-f2b33adf5b68`
## Other things ## Other things
* My Passport Unique ID: `0x00000001:0x000000002`, High: `1`, Low: `2`. * My Passport Unique ID: `0x00000001:0x00000002`, High: `1`, Low: `2`.
* My computer's GUID: `44bfd5a4-7450-4bda-ba3a-c51b3031126d` * My computer's GUID: `44bfd5a4-7450-4bda-ba3a-c51b3031126d`
* Another User's computer's GUID: `0061d708-cd9b-4d56-b64b-fffaa92ff344` * Another User's computer's GUID: `0061d708-cd9b-4d56-b64b-fffaa92ff344`

View File

@ -58,7 +58,7 @@ This element has three children:
* `<IsMigration>`: If this request is part of the ABCH Migration process. * `<IsMigration>`: If this request is part of the ABCH Migration process.
If it is, set to `true`, otherwise set to `false`. If it is, set to `true`, otherwise set to `false`.
* `<PartnerScenario>`: What caused this request to happen: * `<PartnerScenario>`: What caused this request to happen:
* `Initial`: This is the initial request to this action. * `Initial`: This is the initial request to this action.
* `Timer`: This request was done automatically on a timer. * `Timer`: This request was done automatically on a timer.
* `ContactSave`: When the modified contact is saved by the client. * `ContactSave`: When the modified contact is saved by the client.
* `MessengerPendingList`: Managing the Pending List (PL). * `MessengerPendingList`: Managing the Pending List (PL).
@ -97,7 +97,8 @@ This element has only one attribute:
This element has five children: This element has five children:
* `<Version>`: The version of this service. * `<Version>`: The version of this service.
* `<CacheKey>`: The current or new address book caching key. * `<CacheKey>`: The current or new address book caching key.
Usually starts with `14r2;`, then continues with some form of base64-encoded data. Usually starts with `14r2;`, then continues with base64-encoded data.
The meaning of the appended data is yet to be known. It may be a 128-bit hash of some kind.
* `<CacheKeyChanged>`: Did the `<CacheKey>` change? If it did, set to `true`, otherwise set to `false`. * `<CacheKeyChanged>`: Did the `<CacheKey>` change? If it did, set to `true`, otherwise set to `false`.
* `<PreferredHostName>`: The domain name that this service would like to receive requests to. * `<PreferredHostName>`: The domain name that this service would like to receive requests to.
* `<SessionId>`: The current session GUID. * `<SessionId>`: The current session GUID.

View File

@ -29,8 +29,8 @@ The relevant elements are:
* `<isMessengerUser>`: Is the user I am adding a part of the Messenger Service Network? * `<isMessengerUser>`: Is the user I am adding a part of the Messenger Service Network?
If they are, set to `true`, otherwise set to `false`. If they are, set to `true`, otherwise set to `false`.
* `<contactType>`: (Optional?) The type of contact you'd like to add: * `<contactType>`: (Optional?) The type of contact you'd like to add:
* `LivePending`: A Messenger Service user. * `LivePending`: A Messenger Service user.
* `Regular`: A user from another service. * `Regular`: A user from another service.
* `<emails>`: Used exclusively if this is a email-only contact. * `<emails>`: Used exclusively if this is a email-only contact.
* `<isSmtp>`: Used with `<phones>` if this is a phone-only contact. * `<isSmtp>`: Used with `<phones>` if this is a phone-only contact.
* `<phones>`: Used with `<isSmtp>` if this is a phone-only contact. * `<phones>`: Used with `<isSmtp>` if this is a phone-only contact.
@ -56,3 +56,94 @@ but this behavour is yet to be confirmed.
#### guid #### guid
The GUID of the contact you have added. The GUID of the contact you have added.
# Examples
## Client/Request
```
POST /abservice/abservice.asmx HTTP/1.1
SOAPAction: http://www.msn.com/webservices/AddressBook/ABContactAdd
Cache-Control: no-cache
Content-Type: text/xml; charset=utf-8
Content-Length: 1464
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
>
<soap:Header>
<ABApplicationHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<ApplicationID>996CDE1E-AA53-4477-B943-2BE802EA6166</ApplicationID>
<IsMigration>false</IsMigration>
<PartnerScenario>ContactSave</PartnerScenario>
</ABApplicationHeader>
<ABAuthHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<ManagedGroupRequest>false</ManagedGroupRequest>
<TicketToken>t=ticket&amp;p=profile</TicketToken>
</ABAuthHeader>
</soap:Header>
<soap:Body>
<ABContactAdd
xmlns="http://www.msn.com/webservices/AddressBook"
>
<abId>00000000-0000-0000-0000-000000000000</abId>
<contacts>
<Contact
xmlns="http://www.msn.com/webservices/AddressBook"
>
<contactInfo>
<passportName>anotheruser@hotmail.com</passportName>
<isMessengerUser>true</isMessengerUser>
<contactType>LivePending</contactType>
</contactInfo>
</Contact>
</contacts>
<options>
<EnableAllowListManagement>true</EnableAllowListManagement>
</options>
</ABContactAdd>
</soap:Body>
</soap:Envelope>
```
## Server/Response
```
HTTP/1.1 200 OK
Content-Type: text/xml
Content-Length: 911
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
<soap:Header>
<ServiceHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<Version>12.01.1111.0000</Version>
<CacheKey>12r1;MjAyNC0xMS0xOVQxNDowOTowNi41MzZa</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>contacts.example.com</PreferredHostName>
<SessionId>ecfaf8c7-e388-4571-8641-b061a0ac4bdc</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<ABContactAddResponse
xmlns="http://www.msn.com/webservices/AddressBook"
>
<ABContactAddResult>
<guid>c1f9a363-4ee9-4a33-a434-b056a4c55b98</guid>
</ABContactAddResult>
</ABContactAddResponse>
</soap:Body>
</soap:Envelope>
```

View File

@ -30,3 +30,83 @@ The template used in this action is described on the [Address Book Service](../a
## ABContactDeleteResponse ## ABContactDeleteResponse
This empty element has only one attribute: This empty element has only one attribute:
* `xmlns`: Is always set to `http://www.msn.com/webservices/AddressBook`. * `xmlns`: Is always set to `http://www.msn.com/webservices/AddressBook`.
# Examples
## Client/Request
```
POST /abservice/abservice.asmx HTTP/1.1
SOAPAction: http://www.msn.com/webservices/AddressBook/ABContactDelete
Cache-Control: no-cache
Content-Type: text/xml; charset=utf-8
Content-Length: 1213
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
>
<soap:Header>
<ABApplicationHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<ApplicationID>996CDE1E-AA53-4477-B943-2BE802EA6166</ApplicationID>
<IsMigration>false</IsMigration>
<PartnerScenario>Timer</PartnerScenario>
</ABApplicationHeader>
<ABAuthHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<ManagedGroupRequest>false</ManagedGroupRequest>
<TicketToken>t=ticket&amp;p=profile</TicketToken>
</ABAuthHeader>
</soap:Header>
<soap:Body>
<ABContactDelete
xmlns="http://www.msn.com/webservices/AddressBook"
>
<abId>00000000-0000-0000-0000-000000000000</abId>
<contacts>
<Contact
xmlns="http://www.msn.com/webservices/AddressBook"
>
<contactId>c1f9a363-4ee9-4a33-a434-b056a4c55b98</contactId>
</Contact>
</contacts>
</ABContactDelete>
</soap:Body>
</soap:Envelope>
```
## Server/Response
```
HTTP/1.1 200 OK
Content-Type: text/xml
Content-Length: 774
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
<soap:Header>
<ServiceHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<Version>12.01.1111.0000</Version>
<CacheKey>12r1;MjAyNC0xMS0xOVQxNzo0ODowOS44MDNa</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>contacts.example.com</PreferredHostName>
<SessionId>ecfaf8c7-e388-4571-8641-b061a0ac4bdc</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<ABContactDeleteResponse
xmlns="http://www.msn.com/webservices/AddressBook"
/>
</soap:Body>
</soap:Envelope>
```

View File

@ -51,6 +51,90 @@ The valid values are the following:
# Server/Response # Server/Response
The template used in this action is described on the [Address Book Service](../abservice.md) main page. The template used in this action is described on the [Address Book Service](../abservice.md) main page.
## ABContactUpdate ## ABContactUpdateResponse
This empty element has only one attribute: This empty element has only one attribute:
* `xmlns`: Is always set to `http://www.msn.com/webservices/AddressBook`. * `xmlns`: Is always set to `http://www.msn.com/webservices/AddressBook`.
# Examples
## Client/Request
```
POST /abservice/abservice.asmx HTTP/1.1
SOAPAction: http://www.msn.com/webservices/AddressBook/ABContactUpdate
Cache-Control: no-cache
Content-Type: text/xml; charset=utf-8
Content-Length: 1378
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
>
<soap:Header>
<ABApplicationHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<ApplicationID>996CDE1E-AA53-4477-B943-2BE802EA6166</ApplicationID>
<IsMigration>false</IsMigration>
<PartnerScenario>Timer</PartnerScenario>
</ABApplicationHeader>
<ABAuthHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<ManagedGroupRequest>false</ManagedGroupRequest>
<TicketToken>t=ticket&amp;p=profile</TicketToken>
</ABAuthHeader>
</soap:Header>
<soap:Body>
<ABContactUpdate
xmlns="http://www.msn.com/webservices/AddressBook"
>
<abId>00000000-0000-0000-0000-000000000000</abId>
<contacts>
<Contact
xmlns="http://www.msn.com/webservices/AddressBook"
>
<contactId>c1f9a363-4ee9-4a33-a434-b056a4c55b98</contactId>
<contactInfo>
<displayName>another user</displayName>
</contactInfo>
<propertiesChanged>DisplayName <propertiesChanged>
</Contact>
</contacts>
</ABContactUpdate>
</soap:Body>
</soap:Envelope>
```
## Server/Response
```
HTTP/1.1 200 OK
Content-Type: text/xml
Content-Length: 911
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
<soap:Header>
<ServiceHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<Version>12.01.1111.0000</Version>
<CacheKey>12r1;MjAyNC0xMS0xOVQxNzo0Nzo1OS4zMDZa</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>contacts.example.com</PreferredHostName>
<SessionId>ecfaf8c7-e388-4571-8641-b061a0ac4bdc</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<ABContactUpdateResponse
xmlns="http://www.msn.com/webservices/AddressBook"
/>
</soap:Body>
</soap:Envelope>
```

View File

@ -25,7 +25,7 @@ This element only contains the `<GroupInfo>` element.
This element contains four children: This element contains four children:
* `<name>`: The name of the group. * `<name>`: The name of the group.
* `<groupType>`: The GUID type of group: * `<groupType>`: The GUID type of group:
* `C8529CE2-6EAD-434d-881F-341E17DB3FF8`: A contact group. * `C8529CE2-6EAD-434d-881F-341E17DB3FF8`: A contact group.
* `<fMessenger>`: Unknown purpose (`true` or `false`). * `<fMessenger>`: Unknown purpose (`true` or `false`).
##### annotations ##### annotations
@ -50,3 +50,96 @@ This element only contains the `<guid>` element.
#### guid #### guid
This element only contains the GUID of the newly created group. This element only contains the GUID of the newly created group.
# Examples
## Client/Request
```
POST /abservice/abservice.asmx HTTP/1.1
SOAPAction: http://www.msn.com/webservices/AddressBook/ABGroupAdd
Cache-Control: no-cache
Content-Type: text/xml; charset=utf-8
Content-Length: 1486
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
>
<soap:Header>
<ABApplicationHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<ApplicationID>996CDE1E-AA53-4477-B943-2BE802EA6166</ApplicationID>
<IsMigration>false</IsMigration>
<PartnerScenario>GroupSave</PartnerScenario>
</ABApplicationHeader>
<ABAuthHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<ManagedGroupRequest>false</ManagedGroupRequest>
<TicketToken>t=ticket&amp;p=profile</TicketToken>
</ABAuthHeader>
</soap:Header>
<soap:Body>
<ABGroupAdd
xmlns="http://www.msn.com/webservices/AddressBook"
>
<abId>00000000-0000-0000-0000-000000000000</abId>
<groupAddOptions>
<fRenameOnMsgrConflict>false</fRenameOnMsgrConflict>
</groupAddOptions>
<groupInfo>
<GroupInfo>
<name>Friends</name>
<groupType>C8529CE2-6EAD-434d-881F-341E17DB3FF8</groupType>
<fMessenger>false</fMessenger>
<annotations>
<Annotation>
<Name>MSN.IM.Display</Name>
<Value>1</Value>
</Annotation>
</annotations>
</GroupInfo>
</groupInfo>
</ABGroupAdd>
</soap:Body>
</soap:Envelope>
```
## Server/Response
```
HTTP/1.1 200 OK
Content-Type: text/xml
Content-Length: 903
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
<soap:Header>
<ServiceHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<Version>12.01.1111.0000</Version>
<CacheKey>12r1;MjAyNC0xMS0xOVQxNzo1NTo1Ni45NDla</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>contacts.example.com</PreferredHostName>
<SessionId>ecfaf8c7-e388-4571-8641-b061a0ac4bdc</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<ABGroupAddResponse
xmlns="http://www.msn.com/webservices/AddressBook"
>
<ABGroupAddResult>
<guid>f60efbe7-94af-4b16-b926-e4e10878d329</guid>
</ABGroupAddResult>
</ABGroupAddResponse>
</soap:Body>
</soap:Envelope>
```

View File

@ -61,3 +61,92 @@ This element only contains the `<guid>` element.
#### guid #### guid
This element contains the GUID of the contact that was added to the group. This element contains the GUID of the contact that was added to the group.
# Examples
## Client/Request
```
POST /abservice/abservice.asmx HTTP/1.1
SOAPAction: http://www.msn.com/webservices/AddressBook/ABGroupContactAdd
Cache-Control: no-cache
Content-Type: text/xml; charset=utf-8
Content-Length: 1360
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
>
<soap:Header>
<ABApplicationHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<ApplicationID>996CDE1E-AA53-4477-B943-2BE802EA6166</ApplicationID>
<IsMigration>false</IsMigration>
<PartnerScenario>GroupSave</PartnerScenario>
</ABApplicationHeader>
<ABAuthHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<ManagedGroupRequest>false</ManagedGroupRequest>
<TicketToken>t=ticket&amp;p=profile</TicketToken>
</ABAuthHeader>
</soap:Header>
<soap:Body>
<ABGroupContactAdd
xmlns="http://www.msn.com/webservices/AddressBook"
>
<abId>00000000-0000-0000-0000-000000000000</abId>
<groupFilter>
<groupIds>
<guid>f60efbe7-94af-4b16-b926-e4e10878d329</guid>
</groupIds>
</groupFilter>
<contacts>
<Contact
xmlns="http://www.msn.com/webservices/AddressBook"
>
<contactId>c1f9a363-4ee9-4a33-a434-b056a4c55b98</contactId>
</Contact>
</contacts>
</ABGroupContactAdd>
</soap:Body>
</soap:Envelope>
```
## Server/Response
```
HTTP/1.1 200 OK
Content-Type: text/xml
Content-Length: 931
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
<soap:Header>
<ServiceHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<Version>12.01.1111.0000</Version>
<CacheKey>12r1;MjAyNC0xMS0xOVQxNDowOTowNi41MzZa</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>contacts.example.com</PreferredHostName>
<SessionId>ecfaf8c7-e388-4571-8641-b061a0ac4bdc</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<ABGroupContactAddResponse
xmlns="http://www.msn.com/webservices/AddressBook"
>
<ABGroupContactAddResult>
<guid>c1f9a363-4ee9-4a33-a434-b056a4c55b98</guid>
</ABGroupContactAddResult>
</ABGroupContactAddResponse>
</soap:Body>
</soap:Envelope>
```

View File

@ -39,3 +39,88 @@ The template used in this action is described on the [Address Book Service](../a
## ABGroupContactDeleteResponse ## ABGroupContactDeleteResponse
This empty element has only one attribute: This empty element has only one attribute:
* `xmlns:` Is always set to `http://www.msn.com/webservices/AddressBook`. * `xmlns:` Is always set to `http://www.msn.com/webservices/AddressBook`.
# Examples
## Client/Request
```
POST /abservice/abservice.asmx HTTP/1.1
SOAPAction: http://www.msn.com/webservices/AddressBook/ABGroupContactDelete
Cache-Control: no-cache
Content-Type: text/xml; charset=utf-8
Content-Length: 1366
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
>
<soap:Header>
<ABApplicationHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<ApplicationID>996CDE1E-AA53-4477-B943-2BE802EA6166</ApplicationID>
<IsMigration>false</IsMigration>
<PartnerScenario>GroupSave</PartnerScenario>
</ABApplicationHeader>
<ABAuthHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<ManagedGroupRequest>false</ManagedGroupRequest>
<TicketToken>t=ticket&amp;p=profile</TicketToken>
</ABAuthHeader>
</soap:Header>
<soap:Body>
<ABGroupContactDelete
xmlns="http://www.msn.com/webservices/AddressBook"
>
<abId>00000000-0000-0000-0000-000000000000</abId>
<contacts>
<Contact
xmlns="http://www.msn.com/webservices/AddressBook"
>
<contactId>c1f9a363-4ee9-4a33-a434-b056a4c55b98</contactId>
</Contact>
</contacts>
<groupFilter>
<groupIds>
<guid>f60efbe7-94af-4b16-b926-e4e10878d329</guid>
</groupIds>
</groupFilter>
</ABGroupContactDelete>
</soap:Body>
</soap:Envelope>
```
## Server/Response
```
HTTP/1.1 200 OK
Content-Type: text/xml
Content-Length: 779
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
<soap:Header>
<ServiceHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<Version>12.01.1111.0000</Version>
<CacheKey>12r1;MjAyNC0xMS0xOVQxNDowOTowNi41MzZa</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>contacts.example.com</PreferredHostName>
<SessionId>ecfaf8c7-e388-4571-8641-b061a0ac4bdc</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<ABGroupContactDeleteResponse
xmlns="http://www.msn.com/webservices/AddressBook"
/>
</soap:Body>
</soap:Envelope>
```

View File

@ -28,3 +28,81 @@ The template used in this action is described on the [Address Book Service](../a
## ABGroupDeleteResponse ## ABGroupDeleteResponse
This empty element has only one attribute: This empty element has only one attribute:
* `xmlns:` Is always set to `http://www.msn.com/webservices/AddressBook`. * `xmlns:` Is always set to `http://www.msn.com/webservices/AddressBook`.
# Examples
## Client/Request
```
POST /abservice/abservice.asmx HTTP/1.1
SOAPAction: http://www.msn.com/webservices/AddressBook/ABGroupDelete
Cache-Control: no-cache
Content-Type: text/xml; charset=utf-8
Content-Length: 1140
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
>
<soap:Header>
<ABApplicationHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<ApplicationID>996CDE1E-AA53-4477-B943-2BE802EA6166</ApplicationID>
<IsMigration>false</IsMigration>
<PartnerScenario>Timer</PartnerScenario>
</ABApplicationHeader>
<ABAuthHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<ManagedGroupRequest>false</ManagedGroupRequest>
<TicketToken>t=ticket&amp;p=profile</TicketToken>
</ABAuthHeader>
</soap:Header>
<soap:Body>
<ABGroupDelete
xmlns="http://www.msn.com/webservices/AddressBook"
>
<abId>00000000-0000-0000-0000-000000000000</abId>
<groupFilter>
<groupIds>
<guid>f60efbe7-94af-4b16-b926-e4e10878d329</guid>
</groupIds>
</groupFilter>
</ABGroupDelete>
</soap:Body>
</soap:Envelope>
```
## Server/Response
```
HTTP/1.1 200 OK
Content-Type: text/xml
Content-Length: 772
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
<soap:Header>
<ServiceHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<Version>12.01.1111.0000</Version>
<CacheKey>12r1;MjAyNC0xMS0xOVQxNzo0ODowOS44MDNa</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>contacts.example.com</PreferredHostName>
<SessionId>ecfaf8c7-e388-4571-8641-b061a0ac4bdc</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<ABGroupDeleteResponse
xmlns="http://www.msn.com/webservices/AddressBook"
/>
</soap:Body>
</soap:Envelope>
```

View File

@ -21,7 +21,7 @@ This element contains three children:
* `<groupId>`: The GUID of the group to modify. * `<groupId>`: The GUID of the group to modify.
* `<groupInfo>`: Explained below. * `<groupInfo>`: Explained below.
* `<propertiesChanged>`: A space delimited list of changes made in `<groupInfo>`: * `<propertiesChanged>`: A space delimited list of changes made in `<groupInfo>`:
* `GroupName` * `GroupName`
##### groupInfo ##### groupInfo
This element contains only one child: This element contains only one child:
@ -30,6 +30,88 @@ This element contains only one child:
# Server/Response # Server/Response
The template used in this action is described on the [Address Book Service](../abservice.md) main page. The template used in this action is described on the [Address Book Service](../abservice.md) main page.
## ABGroupAddResponse ## ABGroupUpdateResponse
This empty element has only one attribute: This empty element has only one attribute:
* `xmlns:` Is always set to `http://www.msn.com/webservices/AddressBook`. * `xmlns:` Is always set to `http://www.msn.com/webservices/AddressBook`.
# Examples
## Client/Request
```
POST /abservice/abservice.asmx HTTP/1.1
SOAPAction: http://www.msn.com/webservices/AddressBook/ABGroupUpdate
Cache-Control: no-cache
Content-Type: text/xml; charset=utf-8
Content-Length: 1276
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
>
<soap:Header>
<ABApplicationHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<ApplicationID>996CDE1E-AA53-4477-B943-2BE802EA6166</ApplicationID>
<IsMigration>false</IsMigration>
<PartnerScenario>GroupSave</PartnerScenario>
</ABApplicationHeader>
<ABAuthHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<ManagedGroupRequest>false</ManagedGroupRequest>
<TicketToken>t=ticket&amp;p=profile</TicketToken>
</ABAuthHeader>
</soap:Header>
<soap:Body>
<ABGroupDelete
xmlns="http://www.msn.com/webservices/AddressBook"
>
<abId>00000000-0000-0000-0000-000000000000</abId>
<groups>
<Group>
<groupId>f60efbe7-94af-4b16-b926-e4e10878d329</groupId>
<groupInfo>
<name>Other People</name>
</groupInfo>
<propertiesChanged>GroupName </propertiesChanged>
</Group>
</groups>
</ABGroupDelete>
</soap:Body>
</soap:Envelope>
```
## Server/Response
```
HTTP/1.1 200 OK
Content-Type: text/xml
Content-Length: 772
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
<soap:Header>
<ServiceHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<Version>12.01.1111.0000</Version>
<CacheKey>12r1;MjAyNC0xMS0xOVQxNzo0ODowOS44MDNa</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>contacts.example.com</PreferredHostName>
<SessionId>ecfaf8c7-e388-4571-8641-b061a0ac4bdc</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<ABGroupUpdateResponse
xmlns="http://www.msn.com/webservices/AddressBook"
/>
</soap:Body>
</soap:Envelope>
```

View File

@ -8,8 +8,8 @@ This element can contain many children, all of which optional:
* `<IsPassportNameHidden>` Are the contents of `<passportName>` hidden to the user (`true` or `false`)? * `<IsPassportNameHidden>` Are the contents of `<passportName>` hidden to the user (`true` or `false`)?
* `<isMessengerUser>`: Is this contact a part of the Messenger Service Network (`true` or `false`)? * `<isMessengerUser>`: Is this contact a part of the Messenger Service Network (`true` or `false`)?
* `<contactType>`: The type of contact this is related to: * `<contactType>`: The type of contact this is related to:
* `LivePending`: A user yet to authorise you * `LivePending`: A user yet to authorise you
* `Regular`: A user from another service. * `Regular`: A user from another service.
* `<displayName>`: The display name for this contact. * `<displayName>`: The display name for this contact.
* `<puid>`: Unused. Always 0. * `<puid>`: Unused. Always 0.
* `<CID>`: The Common ID of this contact, which is a signed 64-bit integer. * `<CID>`: The Common ID of this contact, which is a signed 64-bit integer.
@ -28,23 +28,23 @@ This element can contain many children, all of which optional:
* `<MiddleName>`: The middle name for this contact. * `<MiddleName>`: The middle name for this contact.
* `<annotations>`: Contains one or multiple [`<Annotation>`](#annotation) element(s). * `<annotations>`: Contains one or multiple [`<Annotation>`](#annotation) element(s).
* `<primaryEmailType>`: Can be any of the following: * `<primaryEmailType>`: Can be any of the following:
* `ContactEmailPersonal` * `ContactEmailPersonal`
* `ContactEmailMessenger` * `ContactEmailMessenger`
* `ContactEmailBusiness` * `ContactEmailBusiness`
* `ContactEmailOther` * `ContactEmailOther`
* `Passport` * `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: * `<PrimaryPhone>`: Can be any of the following:
* `ContactPhonePersonal` * `ContactPhonePersonal`
* `ContactPhonePager` * `ContactPhonePager`
* `ContactPhoneFax` * `ContactPhoneFax`
* `ContactPhoneBusiness` * `ContactPhoneBusiness`
* `ContactPhoneOther` * `ContactPhoneOther`
* `ContactPhoneMobile` * `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: * `<PrimaryLocation>`: Can be any of the following:
* `ContactLocationBusiness` * `ContactLocationBusiness`
* `ContactLocationPersonal` * `ContactLocationPersonal`
* `<locations>`: Contains one or multiple [`<ContactLocation>`](#contactlocation) element(s). * `<locations>`: Contains one or multiple [`<ContactLocation>`](#contactlocation) element(s).
* `<webSites>`: Contains one or multiple [`<ContactWebSite>`](#contactwebsite) element(s). * `<webSites>`: Contains one or multiple [`<ContactWebSite>`](#contactwebsite) element(s).
* `<IsPrivate>`: Is this contact private (`true` or `false`). * `<IsPrivate>`: Is this contact private (`true` or `false`).
@ -54,39 +54,39 @@ This element can contain many children, all of which optional:
## Annotation ## Annotation
This element contains two children: This element contains two children:
* `<Name>`: The key of this property: * `<Name>`: The key of this property:
* `MSN.IM.MBEA`: (Only for you) Can users talk to me via my mobile phone? (`0` or `1`). * `MSN.IM.MBEA`: (Only for you) Do I have a mobile device associated with my account? (`0` or `1`).
* `MSN.IM.GTC`: (Only for you) Do I automatically add users to the AL or ask first? (`0` or `1`). * `MSN.IM.GTC`: (Only for you) Do I automatically add users to the AL or ask first? (`0` or `1`).
* `MSN.IM.BLP`: (Only for you) Are all users blocked or allowed by default to talk to me? (`0` or `1`). * `MSN.IM.BLP`: (Only for you) Are all users blocked or allowed by default to talk to me? (`0` or `1`).
* `AB.JobTitle`: The job title of this contact. * `AB.JobTitle`: The job title of this contact.
* `AB.NickName`: The user-provided nick-name for this contact. * `AB.NickName`: The user-provided nick-name for this contact.
* `AB.Spouse`: The contact's spouse's name. * `AB.Spouse`: The contact's spouse's name.
* `<Value>`: The value of this property. * `<Value>`: The value of this property.
## ContactEmail ## ContactEmail
This element contains two children: This element contains two children:
* `<contactEmailType>`: Can be any of the following: * `<contactEmailType>`: Can be any of the following:
* `ContactEmailPersonal` * `ContactEmailPersonal`
* `ContactEmailMessenger` * `ContactEmailMessenger`
* `ContactEmailBusiness` * `ContactEmailBusiness`
* `ContactEmailOther` * `ContactEmailOther`
* `<email>`: The e-mail address associated with the `<contactEmailType>`. * `<email>`: The e-mail address associated with the `<contactEmailType>`.
## ContactPhone ## ContactPhone
This element contains two children: This element contains two children:
* `<contactPhoneType>`: Can be any of the following: * `<contactPhoneType>`: Can be any of the following:
* `ContactPhonePersonal` * `ContactPhonePersonal`
* `ContactPhonePager` * `ContactPhonePager`
* `ContactPhoneFax` * `ContactPhoneFax`
* `ContactPhoneBusiness` * `ContactPhoneBusiness`
* `ContactPhoneOther` * `ContactPhoneOther`
* `ContactPhoneMobile` * `ContactPhoneMobile`
* `<number>`: The phone number associated with the `<contactPhoneType>`. * `<number>`: The phone number associated with the `<contactPhoneType>`.
## ContactLocation ## ContactLocation
This element contains two children: This element contains two children:
* `<contactLocationType>`: Can be any of the following: * `<contactLocationType>`: Can be any of the following:
* `ContactLocationBusiness` * `ContactLocationBusiness`
* `ContactLocationPersonal` * `ContactLocationPersonal`
* `<name>`: The name associated with the `<contactLocationType>`. * `<name>`: The name associated with the `<contactLocationType>`.
* `<street>`: The street associated with the `<contactLocationType>`. * `<street>`: The street associated with the `<contactLocationType>`.
* `<city>`: The city associated with the `<contactLocationType>`. * `<city>`: The city associated with the `<contactLocationType>`.
@ -94,16 +94,16 @@ This element contains two children:
* `<country>`: The country 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 associated with the `<contactLocationType>`.
* `<Changes>`: A space delimited list of changed elements in this `<ContactLocation>`: * `<Changes>`: A space delimited list of changed elements in this `<ContactLocation>`:
* `Name` * `Name`
* `Street` * `Street`
* `City` * `City`
* `State` * `State`
* `Country` * `Country`
* `PostalCode` * `PostalCode`
## ContactWebSite ## ContactWebSite
This element contains two children: This element contains two children:
* `<contactWebSiteType>`: Can be any of the following: * `<contactWebSiteType>`: Can be any of the following:
* `ContactWebSiteBusiness` * `ContactWebSiteBusiness`
* `ContactWebSitePersonal` * `ContactWebSitePersonal`
* `<webURL>`: The location of the website associated with the `<contactWebSiteType>`. * `<webURL>`: The location of the website associated with the `<contactWebSiteType>`.

View File

@ -19,11 +19,18 @@ In the HTTP headers, this is defined:
`SOAPAction: "http://www.msn.com/webservices/Messenger/Client/GetClientConfig"` `SOAPAction: "http://www.msn.com/webservices/Messenger/Client/GetClientConfig"`
The main body is the following:
``` ```
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
>
<soap:Body> <soap:Body>
<GetClientConfig xmlns='http://www.msn.com/webservices/Messenger/Client'> <GetClientConfig
xmlns='http://www.msn.com/webservices/Messenger/Client'
>
<clientinfo> <clientinfo>
<Country>US</Country> <Country>US</Country>
<CLCID>0809</CLCID> <CLCID>0809</CLCID>
@ -44,7 +51,15 @@ Where `<PLCID>` is the binary's language code in unprefixed hexadecimal.
Where `<GeoID>` is the system's geographic location in decimal. Where `<GeoID>` is the system's geographic location in decimal.
#### As query parameters #### As query parameters
`GET http://config.messenger.msn.com/Config/MsgrConfig.asmx?op=GetClientConfig&Country=US&CLCID=0809&PLCID=0409&GeoID=242&ver=8.5.1302` ```
GET http://config.messenger.msn.com/Config/MsgrConfig.asmx
?op=GetClientConfig
&Country=US
&CLCID=0809
&PLCID=0409
&GeoID=242
&ver=8.5.1302
```
Where `op` is always `GetClientConfig`. Where `op` is always `GetClientConfig`.
@ -64,9 +79,15 @@ Where `ver` is the version of the client as a triplet.
*This only applies if you use a SOAP request.* *This only applies if you use a SOAP request.*
``` ```
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
<soap:Body> <soap:Body>
<GetClientConfigResponse xmlns="http://www.msn.com/webservices/Messenger/Client"> <GetClientConfigResponse
xmlns="http://www.msn.com/webservices/Messenger/Client"
>
<GetClientConfigResult><![CDATA[<MsgrConfig>...</MsgrConfig>]]></GetClientConfigResult> <GetClientConfigResult><![CDATA[<MsgrConfig>...</MsgrConfig>]]></GetClientConfigResult>
</GetClientConfigResponse> </GetClientConfigResponse>
</soap:Body> </soap:Body>
@ -156,7 +177,7 @@ This element only contains `<Entry>` elements.
This element has two attributes: This element has two attributes:
* `type`: Unknown, but is `0` for `Login`, `2` for `MapFile`, and `3` for P2P. * `type`: Unknown, but is `0` for `Login`, `2` for `MapFile`, and `3` for P2P.
* `name`: The name of the feature: * `name`: The name of the feature:
* `Login`: Login Process * `Login`: Login Process
* `MapFile`: Content Cache Map Files * `MapFile`: Content Cache Map Files
* `P2P`: Peer-to-peer communications * `P2P`: Peer-to-peer communications
@ -175,7 +196,7 @@ This element only contains one or multiple `<tab>` element(s).
This element has nine children: This element has nine children:
* `<image>`: Either a direct URL to a PNG file (36x32 size) or a resource id: * `<image>`: Either a direct URL to a PNG file (36x32 size) or a resource id:
* `res:mail`: A mail icon. Unused? * `res:mail`: A mail icon. Unused?
* `res:bell`: A bell icon. Used for the alerts tab. * `res:bell`: A bell icon. Used for the alerts tab.
* `res:calendar`: A clock icon. Used for the calendar service. * `res:calendar`: A clock icon. Used for the calendar service.
* `res:money`: A stock chart icon or a icon depicting a stack of coins. Used for the finanical stocks service. * `res:money`: A stock chart icon or a icon depicting a stack of coins. Used for the finanical stocks service.
* `res:expedia`: A plane icon. Used for the travel service. * `res:expedia`: A plane icon. Used for the travel service.
@ -452,10 +473,10 @@ the `$FORMAT$` formatting string is avaliable.
### MusicIntegration ### MusicIntegration
This empty element has two attributes: This empty element has two attributes:
* `URL`: The URL to the music search function, supporting the following formatting strings: * `URL`: The URL to the music search function, supporting the following formatting strings:
* `$TITLE$`: The title of the song. * `$TITLE$`: The title of the song.
* `$ARTIST$`: The artist of the song. * `$ARTIST$`: The artist of the song.
* `$ALBUM$`: The album of the song. * `$ALBUM$`: The album of the song.
* `$WMID$`: The Windows Media DRM ID of the song (if avaliable). * `$WMID$`: The Windows Media DRM ID of the song (if avaliable).
* `SiteID`: The Passport Site ID that `URL` uses. * `SiteID`: The Passport Site ID that `URL` uses.
### PremiumAV ### PremiumAV
@ -464,12 +485,12 @@ This empty element has the attribute `Visibility`. `1` likely enables this featu
### RL ### RL
* `<ViewProfileURL>`: The URL used to open the Member Directory for this user. * `<ViewProfileURL>`: The URL used to open the Member Directory for this user.
Has the following formatting strings: Has the following formatting strings:
* `%1`: Unknown * `%1`: Unknown
* `%2`: Unknown * `%2`: Unknown
* `%3`: Unknown * `%3`: Unknown
* `%4`: Unknown * `%4`: Unknown
* `%5`: Unknown * `%5`: Unknown
* `%6`: The user handle that you want to view. * `%6`: The user handle that you want to view.
### TermsOfUse ### TermsOfUse
* `<TermsOfUseSID>`: The Passport Site ID that `<TermsOfUseURL>` uses, * `<TermsOfUseSID>`: The Passport Site ID that `<TermsOfUseURL>` uses,
@ -484,11 +505,11 @@ This element has three required attributes and three optional attributes:
* `id`: The ID for this Product Provider * `id`: The ID for this Product Provider
* `PartnerID`: The partner 2 character code. * `PartnerID`: The partner 2 character code.
* `ProductName`: The type of product: * `ProductName`: The type of product:
* `Winks` * `Winks`
* `Emoticons` * `Emoticons`
* `Backgrounds` * `Backgrounds`
* `Theme Packs` * `Theme Packs`
* `Dynamic Display Pictures` * `Dynamic Display Pictures`
* `BrandName` (optional): The display name of this product. * `BrandName` (optional): The display name of this product.
* `DialogMenuString` (optional): What the client shows when promoting this product. * `DialogMenuString` (optional): What the client shows when promoting this product.
* `IntegrationType` (optional): How the client should promote this product. * `IntegrationType` (optional): How the client should promote this product.

View File

@ -14,9 +14,11 @@ This element has only one attribute:
### serviceHandle ### serviceHandle
This element contains three children: This element contains three children:
* `<Id>`: This is always set to `0`. * `<Id>`: This is always set to `0`.
* `<Type>`: This has only been observed to be `Messenger`. * `<Type>`: The type of this member:
* `<ForeignId>`: This has only been observed have no content, * `Messenger`: This is a Messenger contact.
but is not an empty element. * `Profile`: This is your profile.
* `<ForeignId>`: If `<Type>` is `Profile`, this should be `MyProfile`,
otherwise leave empty but do not convert to an empty element.
### memberships ### memberships
This element only contains `<Membership>` elements. This element only contains `<Membership>` elements.
@ -24,9 +26,10 @@ This element only contains `<Membership>` elements.
#### Membership #### Membership
This element contains two children: This element contains two children:
* `<MemberRole>`: The type of list: * `<MemberRole>`: The type of list:
* `Allow`: The Allow List (AL). * `Allow`: The Allow List (AL).
* `Block`: The Block List (BL). * `Block`: The Block List (BL).
* `Reverse`: The Reverse List (RL). * `Reverse`: The Reverse List (RL).
* `ProfileExpression`: Your profile.
* `<Members>`: Explained below. * `<Members>`: Explained below.
##### Members ##### Members
@ -35,22 +38,33 @@ This element only contains `<Member>` elements.
###### Member ###### Member
This element has two attributes: This element has two attributes:
* `xsi:type`: The type of this `<Member>`: * `xsi:type`: The type of this `<Member>`:
* `PassportMember` * `PassportMember`
* `EmailMember` * `EmailMember`
* `PhoneMember` * `PhoneMember`
* `RoleMember`: Only valid for `ProfileExpression`.
* `xmlns:xsi`: This is always set to `http://www.w3.org/2001/XMLSchema-instance`. * `xmlns:xsi`: This is always set to `http://www.w3.org/2001/XMLSchema-instance`.
This element contains two children: This element contains two children:
* `<Type>`: The type of this `<Member>`: * `<Type>`: The type of this `<Member>`:
* `Passport` * `Passport`
* `Email` * `Email`
* `Phone` * `Phone`
* `<State>`: This is usually only set to `Accepted`, but `Pending` is a valid value. * `<State>`: This is usually only set to `Accepted`, but `Pending` is a valid value.
* `<Deleted>`: Should this member be deleted? (Only set to `true` in `UpdateMember`?)
This element also contains one of the following mutually exclusive children. This element also contains one of the following mutually exclusive children.
1. `<PassportName>`: The user handle associated with this membership. 1. `<PassportName>`: The user handle associated with this membership.
2. `<Email>`: The e-mail address associated with this membership. 2. `<Email>`: The e-mail address associated with this membership.
2. `<PhoneNumber>`: The phone number associated with this membership. 3. `<PhoneNumber>`: The phone number associated with this membership.
This element also contains the following children IF the role is set to `ProfileExpression`:
* `<Id>`: Always `Allow`.
* `<DefiningService>`: Contains the following:
* `<Id>`: Always `0`.
* `<Type>`: Always `Messenger`.
* `<ForeignId>`: Always empty content, but not an empty element.
* `<MaxRoleRecursionDepth>`: Always `0`.
* `<MaxDegreesSeparationDepth>`: Always `0`.
# Server/Response # Server/Response
The template used in this action is described on the [Address Book Service](../abservice.md) main page. The template used in this action is described on the [Address Book Service](../abservice.md) main page.
@ -58,3 +72,95 @@ The template used in this action is described on the [Address Book Service](../a
## AddMemberResponse ## AddMemberResponse
This empty element has only one attribute: This empty element has only one attribute:
* `xmlns:` Is always set to `http://www.msn.com/webservices/AddressBook`. * `xmlns:` Is always set to `http://www.msn.com/webservices/AddressBook`.
# Examples
## Client/Request
```
POST /abservice/SharingService.asmx HTTP/1.1
SOAPAction: http://www.msn.com/webservices/AddressBook/AddMember
Cache-Control: no-cache
Content-Type: text/xml; charset=utf-8
Content-Length: 1468
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
>
<soap:Header>
<ABApplicationHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<ApplicationID>996CDE1E-AA53-4477-B943-2BE802EA6166</ApplicationID>
<IsMigration>false</IsMigration>
<PartnerScenario>Timer</PartnerScenario>
</ABApplicationHeader>
<ABAuthHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<ManagedGroupRequest>false</ManagedGroupRequest>
<TicketToken>t=ticket&amp;p=profile</TicketToken>
</ABAuthHeader>
</soap:Header>
<soap:Body>
<AddMember
xmlns="http://www.msn.com/webservices/AddressBook"
>
<serviceHandle>
<Id>0</Id>
<Id>Messenger</Id>
<ForeignId></ForeignId>
</serviceHandle>
<memberships>
<Membership>
<MemberRole>Allow</MemberRole>
<Members>
<Member
xsi:type="PassportMember"
>
<Type>Passport</Type>
<State>Accepted</State>
<Deleted>false</Deleted>
<PassportName>anotheruser@hotmail.com</PassportName>
</Member>
</Members>
</Membership>
</memberships>
</AddMember>
</soap:Body>
</soap:Envelope>
```
## Server/Response
```
HTTP/1.1 200 OK
Content-Type: text/xml
Content-Length: 768
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
<soap:Header>
<ServiceHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<Version>12.01.1111.0000</Version>
<CacheKey>12r1;MjAyNC0xMS0xOVQxNzo0ODowOS44MDNa</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>contacts.example.com</PreferredHostName>
<SessionId>ecfaf8c7-e388-4571-8641-b061a0ac4bdc</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<AddMemberResponse
xmlns="http://www.msn.com/webservices/AddressBook"
/>
</soap:Body>
</soap:Envelope>
```

View File

@ -13,9 +13,11 @@ This element has only one attribute:
### serviceHandle ### serviceHandle
This element contains three children: This element contains three children:
* `<Id>`: This is always set to `0`. * `<Id>`: This is always set to `0`.
* `<Type>`: This has only been observed to be `Messenger`. * `<Type>`: The type of this member:
* `<ForeignId>`: This has only been observed have no content, * `Messenger`: This is a Messenger contact.
but is not an empty element. * `Profile`: This is your profile.
* `<ForeignId>`: If `<Type>` is `Profile`, this should be `MyProfile`,
otherwise leave empty but do not convert to an empty element.
### memberships ### memberships
This element only contains `<Membership>` elements. This element only contains `<Membership>` elements.
@ -23,9 +25,10 @@ This element only contains `<Membership>` elements.
#### Membership #### Membership
This element contains two children: This element contains two children:
* `<MemberRole>`: The type of list: * `<MemberRole>`: The type of list:
* `Allow`: The Allow List (AL). * `Allow`: The Allow List (AL).
* `Block`: The Block List (BL). * `Block`: The Block List (BL).
* `Pending`: The Pending List (RL). * `Pending`: The Pending List (RL).
* `ProfileExpression`: Your profile.
* `<Members>`: Explained below. * `<Members>`: Explained below.
##### Members ##### Members
@ -34,18 +37,34 @@ This element only contains `<Member>` elements.
###### Member ###### Member
This element has two attributes: This element has two attributes:
* `xsi:type`: The type of this `<Member>`: * `xsi:type`: The type of this `<Member>`:
* `PassportMember` * `PassportMember`
* `EmailMember` * `EmailMember`
* `PhoneMember` * `PhoneMember`
* `RoleMember`: Only valid for `ProfileExpression`.
* `xmlns:xsi`: This is always set to `http://www.w3.org/2001/XMLSchema-instance`. * `xmlns:xsi`: This is always set to `http://www.w3.org/2001/XMLSchema-instance`.
This element contains three children: This element contains three children:
* `<Type>`: The type of this `<Member>`: * `<Type>`: The type of this `<Member>`:
* `Passport` * `Passport`
* `Email` * `Email`
* `Phone` * `Phone`
* `<MembershipId>`: The ID of the membership you would like to delete. * `<MembershipId>`: The ID of the membership you would like to delete.
* `<State>`: This is usually only set to `Accepted`, but `Pending` is a valid value. * `<State>`: This is usually only set to `Accepted`, but `Pending` is a valid value.
* `<Deleted>`: Should this member be deleted? (Only set to `true` in `UpdateMember`?)
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.
This element also contains the following children IF the role is set to `ProfileExpression`:
* `<Id>`: Always `Allow`.
* `<DefiningService>`: Contains the following:
* `<Id>`: Always `0`.
* `<Type>`: Always `Messenger`.
* `<ForeignId>`: Always empty content, but not an empty element.
* `<MaxRoleRecursionDepth>`: Always `0`.
* `<MaxDegreesSeparationDepth>`: Always `0`.
# Server/Response # Server/Response
The template used in this action is described on the [Address Book Service](../abservice.md) main page. The template used in this action is described on the [Address Book Service](../abservice.md) main page.
@ -53,3 +72,94 @@ The template used in this action is described on the [Address Book Service](../a
## DeleteMemberResponse ## DeleteMemberResponse
This empty element has only one attribute: This empty element has only one attribute:
* `xmlns:` Is always set to `http://www.msn.com/webservices/AddressBook`. * `xmlns:` Is always set to `http://www.msn.com/webservices/AddressBook`.
# Examples
## Client/Request
```
POST /abservice/SharingService.asmx HTTP/1.1
SOAPAction: http://www.msn.com/webservices/AddressBook/DeleteMember
Cache-Control: no-cache
Content-Type: text/xml; charset=utf-8
Content-Length: 1435
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
>
<soap:Header>
<ABApplicationHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<ApplicationID>996CDE1E-AA53-4477-B943-2BE802EA6166</ApplicationID>
<IsMigration>false</IsMigration>
<PartnerScenario>Timer</PartnerScenario>
</ABApplicationHeader>
<ABAuthHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<ManagedGroupRequest>false</ManagedGroupRequest>
<TicketToken>t=ticket&amp;p=profile</TicketToken>
</ABAuthHeader>
</soap:Header>
<soap:Body>
<DeleteMember
xmlns="http://www.msn.com/webservices/AddressBook"
>
<serviceHandle>
<Id>0</Id>
<Id>Messenger</Id>
<ForeignId></ForeignId>
</serviceHandle>
<memberships>
<Membership>
<MemberRole>Allow</MemberRole>
<Members>
<Member
xsi:type="PassportMember"
>
<Type>Passport</Type>
<State>Accepted</State>
<PassportName>anotheruser@hotmail.com</PassportName>
</Member>
</Members>
</Membership>
</memberships>
</AddMember>
</soap:Body>
</soap:Envelope>
```
## Server/Response
```
HTTP/1.1 200 OK
Content-Type: text/xml
Content-Length: 771
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>
<soap:Header>
<ServiceHeader
xmlns="http://www.msn.com/webservices/AddressBook"
>
<Version>12.01.1111.0000</Version>
<CacheKey>12r1;MjAyNC0xMS0xOVQxNzo0ODowOS44MDNa</CacheKey>
<CacheKeyChanged>true</CacheKeyChanged>
<PreferredHostName>contacts.example.com</PreferredHostName>
<SessionId>ecfaf8c7-e388-4571-8641-b061a0ac4bdc</SessionId>
</ServiceHeader>
</soap:Header>
<soap:Body>
<DeleteMemberResponse
xmlns="http://www.msn.com/webservices/AddressBook"
/>
</soap:Body>
</soap:Envelope>
```

View File

@ -29,7 +29,7 @@ This is a list of all known MSNP commands and their originating version.
| [`RNG`](commands/rng.md) | N | N | Y | [MSNP2](versions/msnp2.md) | | | [`RNG`](commands/rng.md) | N | N | Y | [MSNP2](versions/msnp2.md) | |
| [`LST`](commands/lst.md) | N | Y | Y\*| [MSNP2](versions/msnp2.md) | [MSNP7](versions/msnp7.md) (Added groups support), [MSNP8](versions/msnp8.md) ([SYN](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` and [Contact Sharing Service](services/sharingservice.md)'s `FindMemberships` instead.), November 2003 (Removed outside of [SYN](commands/syn.md), not really any specific MSNP update, just hard removed with an automatic disconnect.) | | [`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` and [Contact Sharing Service](services/sharingservice.md)'s `FindMemberships` 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) | | [`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/abservice/deletemember.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) | |
| [`PNG`](commands/png.md) | N | Y | N | [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) | | [`QNG`](commands/qng.md) | N | N | Y | [MSNP2](versions/msnp2.md) | [MSNP9](versions/msnp9.md) (Added next seconds parameter) |
@ -41,14 +41,14 @@ This is a list of all known MSNP commands and their originating version.
| [`REA`](commands/rea.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP10](versions/msnp10.md) (Removed; automatic disconnect) | | [`REA`](commands/rea.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP10](versions/msnp10.md) (Removed; automatic disconnect) |
| [`SND`](commands/snd.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP3](versions/msnp3.md) (parameters 2 and 3), [MSNP4](versions/msnp4.md) (parameter 4), [MSNP5](versions/msnp5.md) (obsoleted by [SDC](commands/sdc.md)) | | [`SND`](commands/snd.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP3](versions/msnp3.md) (parameters 2 and 3), [MSNP4](versions/msnp4.md) (parameter 4), [MSNP5](versions/msnp5.md) (obsoleted by [SDC](commands/sdc.md)) |
| [`SDC`](commands/sdc.md) | Y | Y | N | [MSNP5](versions/msnp5.md) | | | [`SDC`](commands/sdc.md) | Y | Y | N | [MSNP5](versions/msnp5.md) | |
| [`ADC`](commands/adc.md) | N | Y | N?| [MSNP10](versions/msnp10.md) | [MSNP10](versions/msnp10.md) (`ABCHMigrated: 1`: Contact user handles and Group IDs are now both GUIDs.), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, use ADL and the [Address Book Service](services/abservice.md)'s [`ABContactAdd`](services/abservice/abcontactadd.md) and [Contact Sharing Service](services/sharingservice.md)'s [`AddMember`](services/abservice/addmember.md instead)| | [`ADC`](commands/adc.md) | N | Y | Y | [MSNP10](versions/msnp10.md) | [MSNP10](versions/msnp10.md) (`ABCHMigrated: 1`: Contact user handles and Group IDs are now both GUIDs.), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, use ADL and the [Address Book Service](services/abservice.md)'s [`ABContactAdd`](services/abservice/abcontactadd.md) and [Contact Sharing Service](services/sharingservice.md)'s [`AddMember`](services/sharingservice/addmember.md) instead) |
| [`PAG`](commands/pag.md) | Y | Y | N | [MSNP5](versions/msnp5.md) | [MSNP9](versions/msnp9.md) (Removed; error 715, use [PGD](commands/pgd.md) instead.) | | [`PAG`](commands/pag.md) | Y | Y | N | [MSNP5](versions/msnp5.md) | [MSNP9](versions/msnp9.md) (Removed; error 715, use [PGD](commands/pgd.md) instead.) |
| [`PGD`](commands/pgd.md) | Y | Y | N | [MSNP9](versions/msnp9.md) | | | [`PGD`](commands/pgd.md) | Y | Y | N | [MSNP9](versions/msnp9.md) | |
| [`SBP`](commands/sbp.md) | N | Y | N | [MSNP10](versions/msnp10.md) | [MSNP10](versions/msnp10.md) (`ABCHMigrated: 1`: Contact user handles are now GUIDs.), [MSNP11](versions/msnp11.md) (Added property `HSB`, for Has Blog. Set by the relevant Client Capability.), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, use [Address Book Service](services/abservice.md)'s [`ABContactUpdate`](services/abservice/abcontactupdate.md) action instead.) | | [`SBP`](commands/sbp.md) | N | Y | N | [MSNP10](versions/msnp10.md) | [MSNP10](versions/msnp10.md) (`ABCHMigrated: 1`: Contact user handles are now GUIDs.), [MSNP11](versions/msnp11.md) (Added property `HSB`, for Has Blog. Set by the relevant Client Capability.), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, use [Address Book Service](services/abservice.md)'s [`ABContactUpdate`](services/abservice/abcontactupdate.md) action instead.) |
| [`CHL`](commands/chl.md) | N | Y | Y | [MSNP6](versions/msnp6.md) | [MSNP10](versions/msnp10.md) (Changed challenge response ([QRY](commands/qry.md) commands) generation algorithm drastically.) | | [`CHL`](commands/chl.md) | N | Y | Y | [MSNP6](versions/msnp6.md) | [MSNP10](versions/msnp10.md) (Changed challenge response ([QRY](commands/qry.md) commands) generation algorithm drastically.) |
| [`GCF`](commands/gcf.md) | Y | Y | Y | [MSNP11](versions/msnp11.md) | [MSNP13](versions/msnp13.md) (Command is now always asynchronous and always retuns `Shields.xml` in a new wrapper.) | | [`GCF`](commands/gcf.md) | Y | Y | Y | [MSNP11](versions/msnp11.md) | [MSNP13](versions/msnp13.md) (Command is now always asynchronous and always retuns `Shields.xml` in a new wrapper.) |
| [`SYN`](commands/syn.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP5](versions/msnp5.md) (Added [BPR](commands/bpr.md) and [PRP](commands/prp.md) to response.), [MSNP7](versions/msnp7.md) (Added [LSG](commands/lsg.md) support and groups in [LST](commands/lst.md).), [MSNP8](versions/msnp8.md) (Unset properties are now omitted, new response parameters to replace [LSG](commands/lsg.md) and [LST](commands/lst.md) iterator parameters, Transaction IDs and List Version was removed from used commands), [MSNP10](versions/msnp10.md) (Added new parameters for the settings version. With `ABCHMigrated: 1`, both versions are now timestamps), [MSNP12](versions/msnp12.md) (Added Network IDs to [LST](commands/lst.md).), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, use the [Address Book Service](services/abservice.md) and the [Contact Sharing Service](services/sharingservice.md) instead.) | | [`SYN`](commands/syn.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP5](versions/msnp5.md) (Added [BPR](commands/bpr.md) and [PRP](commands/prp.md) to response.), [MSNP7](versions/msnp7.md) (Added [LSG](commands/lsg.md) support and groups in [LST](commands/lst.md).), [MSNP8](versions/msnp8.md) (Unset properties are now omitted, new response parameters to replace [LSG](commands/lsg.md) and [LST](commands/lst.md) iterator parameters, Transaction IDs and List Version was removed from used commands), [MSNP10](versions/msnp10.md) (Added new parameters for the settings version. With `ABCHMigrated: 1`, both versions are now timestamps), [MSNP12](versions/msnp12.md) (Added Network IDs to [LST](commands/lst.md).), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, use the [Address Book Service](services/abservice.md) and the [Contact Sharing Service](services/sharingservice.md) instead.) |
| [`NOT`](commands/not.md) | Y | N | Y | [MSNP5](versions/msnp5.md) | [MSNP11](versions/msnp11.md) (Added support for the `<NotificationData>` sub-document, and live blog updates use the new sub-document.), [MSNP13](versions/msnp13.md) (Added live contact list updates using the `<NotificationData>` subdocument.), [MSNP18](versions/msnp18.md) (Added live persistant chat group updates using the `<NotificationData>` subdocument.) | | [`NOT`](commands/not.md) | Y | N | Y | [MSNP5](versions/msnp5.md) | [MSNP9](versions/msnp9.md) (Added support for extended notifications using the `<TEXTX>` element), [MSNP11](versions/msnp11.md) (Added support for the `<NotificationData>` sub-document, and live blog updates use the new sub-document.), [MSNP13](versions/msnp13.md) (Added live contact list updates using the `<NotificationData>` subdocument.), [MSNP18](versions/msnp18.md) (Added live persistant chat group updates using the `<NotificationData>` subdocument.) |
| [`IPG`](commands/ipg.md) | Y | N | Y | [MSNP6](versions/msnp6.md) | | | [`IPG`](commands/ipg.md) | Y | N | Y | [MSNP6](versions/msnp6.md) | |
| [`REG`](commands/reg.md) | N | Y | N | [MSNP7](versions/msnp7.md) | [MSNP10](versions/msnp10.md) (Removed unused `0` and List Version parameters, with `ABCHMigrated: 1`, group IDs are instead group GUIDs), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, use [Address Book Service](services/abservice.md)'s [`ABGroupUpdate`](services/abservice/abgroupupdate.md) instead.) | | [`REG`](commands/reg.md) | N | Y | N | [MSNP7](versions/msnp7.md) | [MSNP10](versions/msnp10.md) (Removed unused `0` and List Version parameters, with `ABCHMigrated: 1`, group IDs are instead group GUIDs), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, use [Address Book Service](services/abservice.md)'s [`ABGroupUpdate`](services/abservice/abgroupupdate.md) instead.) |
| [`RMG`](commands/rmg.md) | N | Y | N | [MSNP7](versions/msnp7.md) | [MSNP10](versions/msnp10.md) (Removed List Version parameter, with `ABCHMigrated: 1`, group IDs are instead group GUIDs), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, use [Address Book Service](services/abservice.md)'s [`ABGroupDelete`](services/abservice/abgroupdelete.md) instead.) | | [`RMG`](commands/rmg.md) | N | Y | N | [MSNP7](versions/msnp7.md) | [MSNP10](versions/msnp10.md) (Removed List Version parameter, with `ABCHMigrated: 1`, group IDs are instead group GUIDs), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect, use [Address Book Service](services/abservice.md)'s [`ABGroupDelete`](services/abservice/abgroupdelete.md) instead.) |

View File

@ -28,23 +28,23 @@ The following commands were removed in this version:
* [PRP](../commands/prp.md) MFN replaces [REA](../commands/rea.md) (current user handle). [SBP](../commands/sbp.md) (contact ID) MFN replaces other uses of [REA](../commands/rea.md). * [PRP](../commands/prp.md) MFN replaces [REA](../commands/rea.md) (current user handle). [SBP](../commands/sbp.md) (contact ID) MFN replaces other uses of [REA](../commands/rea.md).
* [LST](../commands/lst.md): Added prefixes to the user handle (`N=`) and friendly name (`F=`) parameters. * [LST](../commands/lst.md): Added prefixes to the user handle (`N=`) and friendly name (`F=`) parameters.
* Added new initial profile variable `ABCHMigrated`. If set to 1, some commands are altered, such as: * Added new initial profile variable `ABCHMigrated`. If set to 1, some commands are altered, such as:
* [SYN](../commands/syn.md): The request and response's list versions are now ISO 8601 with 7 subsecond digits, * [SYN](../commands/syn.md): The request and response's list versions are now ISO 8601 with 7 subsecond digits,
usually with a -07:00 timezone offset. usually with a -07:00 timezone offset.
the previously unused second parameter (both request and response) is used as the Last Settings Version, the previously unused second parameter (both request and response) is used as the Last Settings Version,
and follows the same time format as List Versions now do. and follows the same time format as List Versions now do.
* [LST](../commands/lst.md): GUID specified as `C=` parameter, group IDs are now GUIDs. * [LST](../commands/lst.md): GUID specified as `C=` parameter, group IDs are now GUIDs.
* [ADC](../commands/adc.md), [REM](../commands/rem.md): uses GUIDs instead of contact user handles if the list is the Forward List (FL), and same applies also for groups. * [ADC](../commands/adc.md), [REM](../commands/rem.md): uses GUIDs instead of contact user handles if the list is the Forward List (FL), and same applies also for groups.
* [LSG](../commands/lsg.md), [ADG](../commands/adg.md): Uses GUIDs instead of IDs. * [LSG](../commands/lsg.md), [ADG](../commands/adg.md): Uses GUIDs instead of IDs.
* [SBP](../commands/sbp.md): Uses the contact's GUID instead of the Contact Address. * [SBP](../commands/sbp.md): Uses the contact's GUID instead of the Contact Address.
* All list version updating commands no longer return the current list version when used. The following commands are affected: * All list version updating commands no longer return the current list version when used. The following commands are affected:
* [GTC](../commands/gtc.md) * [GTC](../commands/gtc.md)
* [BLP](../commands/blp.md) * [BLP](../commands/blp.md)
* [ADG](../commands/adg.md) * [ADG](../commands/adg.md)
* [BPR](../commands/bpr.md) * [BPR](../commands/bpr.md)
* [REG](../commands/reg.md) * [REG](../commands/reg.md)
* [RMG](../commands/rmg.md) * [RMG](../commands/rmg.md)
* [REM](../commands/rem.md) * [REM](../commands/rem.md)
* [PRP](../commands/prp.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). Is meant for unhandled contact added you notifications.
* Added new server-side [OUT](../commands/out.md) reasons: `MIG`, if the server has migrated you to ABCH, * 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. and `TOU`, for not accepting the Service Terms of Use.

View File

@ -26,7 +26,8 @@ It introduces the notification service commands:
* [ADC](../commands/adc.md): Now supports a telephone address (`tel:`) for `N=`. * [ADC](../commands/adc.md): Now supports a telephone address (`tel:`) for `N=`.
* Official Client: Feature blocks are implemented using the [GCF](../commands/gcf.md) command * 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. to download `Shields.xml`. For more information read the [Shields Configuration Data](../files/shields.md) article.
* Official Client: WebMessenger now canonically exists - Client Capability 512 is used for this. * 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 * Official Client: Notifications ([NOT](../commands/not.md) commands) with encoded
[`<NotificationData>`](../files/notification.md) sub-documents are supported for spaces (blogs). [`<NotificationData>`](../files/notification.md) sub-documents are supported for spaces (blogs).
* Official Client: Messenger Config requests now support regional arguments via SOAP. * Official Client: Messenger Config requests now support regional arguments via SOAP.
@ -106,7 +107,7 @@ C: ADC 11 FL N=tel:15551111222 F=john
S: ADC 11 FL N=tel:15551111222 F=john C=a47e39cf-312c-4100-94a6-f2b33adf5b68 S: ADC 11 FL N=tel:15551111222 F=john C=a47e39cf-312c-4100-94a6-f2b33adf5b68
C: ADC 12 AL N=tel:15551111222 C: ADC 12 AL N=tel:15551111222
S: ADC 12 AL N=tel:15551111222 S: ADC 12 AL N=tel:15551111222
S: NOT 1249 S: NOT 1264
<NOTIFICATION id="2" siteid="45705" siteurl="http://storage.msn.com/"> <NOTIFICATION id="2" siteid="45705" siteurl="http://storage.msn.com/">
<TO pid="0x00000001:0x00000002" name="example@hotmail.com"> <TO pid="0x00000001:0x00000002" name="example@hotmail.com">
<VIA agent="messenger"/> <VIA agent="messenger"/>
@ -115,7 +116,10 @@ S: NOT 1249
<ACTION url="a.htm" /> <ACTION url="a.htm" />
<SUBSCR url="s.htm" /> <SUBSCR url="s.htm" />
<BODY> <BODY>
&lt;NotificationData xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&gt; &lt;NotificationData
xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;
xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
&gt;
&lt;SpaceHandle&gt; &lt;SpaceHandle&gt;
&lt;ResourceID&gt;example1!101&lt;/ResourceID&gt; &lt;ResourceID&gt;example1!101&lt;/ResourceID&gt;
&lt;/SpaceHandle&gt; &lt;/SpaceHandle&gt;

View File

@ -15,7 +15,8 @@ It introduces the notification service commands:
# Known changes # Known changes
(from [MSNP11](msnp11.md)): (from [MSNP11](msnp11.md)):
* Network IDs are introduced, each bit represents a contact's service, with bit 0/decimal 1 being MSNP. * Network IDs are introduced, each bit represents a contact's service, with bit 0/decimal 1 being MSNP.
* Switchboard commands [JOI](../commands/joi.md) and [IRO](../commands/iro.md) have a new parameter for the Client Capabilities of the relevant user. * Switchboard commands [JOI](../commands/joi.md) and [IRO](../commands/iro.md) have a new parameter for the
[Client Capabilities](../files/client_capabilities.md) of the relevant user.
* [LST](../commands/lst.md) has the Network ID after the list bits (on any list), but before the Group ID (if on Forward List (FL)). * [LST](../commands/lst.md) has the Network ID after the list bits (on any list), but before the Group ID (if on Forward List (FL)).
* Official Client: Uses Passport 3.0 (via the Microsoft Identity Common Runtime Library). * Official Client: Uses Passport 3.0 (via the Microsoft Identity Common Runtime Library).
* Official Client: Dropped support for older operating systems, Now requires Windows XP or higher. * Official Client: Dropped support for older operating systems, Now requires Windows XP or higher.

View File

@ -38,15 +38,15 @@ It introduces the error codes:
* Official Client: Automatic login form now supports Passport * Official Client: Automatic login form now supports Passport
if parameter 3 is set in [URL](../commands/url.md). if parameter 3 is set in [URL](../commands/url.md).
To generate `creds`, MD5 hash the following as one concatenated string: To generate `creds`, MD5 hash the following as one concatenated string:
* `auth` (from Initial Profile's `MSPAuth`, also included in the form) + * `auth` (from Initial Profile's `MSPAuth`, also included in the form) +
* `sl` (amount of seconds since `LoginTime`, also included in the form) + * `sl` (amount of seconds since `LoginTime`, also included in the form) +
* `passwd` (plain-text password). * `passwd` (plain-text password).
* Official Client: Legacy automatic login form parameters has changed. * 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: To generate `k2`, MD5 hash the following as one concatenated string:
* `login` (The local-part of your user handle, also included in the form) + * `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) + * `k1` (A short 2 digit number that you generate and is also included in the form) +
* `passwd` (plain-text password). * `passwd` (plain-text password).
* Official Client: Removed [URL](../commands/url.md) service `PASSWORD`. * Official Client: Removed [URL](../commands/url.md) service `PASSWORD`.
* Official Client: Disabled inviting people to the service (needs confirmation). * Official Client: Disabled inviting people to the service (needs confirmation).

View File

@ -20,7 +20,7 @@ It introduces the error codes:
# Known changes # Known changes
(from [MSNP4](msnp4.md)): (from [MSNP4](msnp4.md)):
* [BPR](../commands/bpr.md) and [PRP](../commands/prp.md) have been added to [SYN](../commands/syn.md). * [BPR](../commands/bpr.md) and [PRP](../commands/prp.md) have been added to [SYN](../commands/syn.md).
* [`<NOTIFICATION>`](../files/notification.md) documents are handled by the client with the new [NOT](not.md) payload command. * [`<NOTIFICATION>`](../files/notification.md) documents are handled by the client with the new [NOT](../commands/not.md) payload command.
* Non-protocol: Official website stopped updating the whatsnew.asp page between this (MSNP5) and [MSNP7](msnp7.md). * Non-protocol: Official website stopped updating the whatsnew.asp page between this (MSNP5) and [MSNP7](msnp7.md).
* Official Client: Introduced the toast notification system. Notifications can now stack vertically. * Official Client: Introduced the toast notification system. Notifications can now stack vertically.
* Official Client: Log in notifications are now handled by the newly introduced toast system. * Official Client: Log in notifications are now handled by the newly introduced toast system.

View File

@ -38,7 +38,8 @@ The following commands were removed in this version:
1 = Forward List (FL), 2 = Allow List (AL), 4 = BlocK List (BL), 8 = Reverse List (RL), 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) For example, a contact on the Forward List (FL), Allow List (AL) and Reverse List (RL)
would have their combined list number be 11. would have their combined list number be 11.
* [CHG](../commands/chg.md), [ILN](../commands/iln.md), [NLN](../commands/nln.md): Client Capabilities are introduced. * [CHG](../commands/chg.md), [ILN](../commands/iln.md), [NLN](../commands/nln.md):
[Client Capabilities](../files/client_capabilities.md) are introduced.
You can now tell other clients what features you support. You can now tell other clients what features you support.
* Official Client: Connectivity field added to application requests * Official Client: Connectivity field added to application requests
to notify the other user about what the network conditions are. to notify the other user about what the network conditions are.

4
package-lock.json generated
View File

@ -680,8 +680,8 @@
} }
}, },
"node_modules/yiki": { "node_modules/yiki": {
"version": "0.1.5", "version": "0.1.6",
"resolved": "git+https://git.kevinthe.horse/yellows111/yiki.git#7991d78e1c2461db7ab36ee10dd0a53105801b8b", "resolved": "git+https://git.kevinthe.horse/yellows111/yiki.git#5afe18743bf59e039d245220cd36381a37cfe6eb",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@liquify/prettify": "^0.5.5-beta.1", "@liquify/prettify": "^0.5.5-beta.1",

View File

@ -1,5 +1,5 @@
# Introduction # Introduction
`Actiom` is one of the SOAP actions the [Service](../service.md) provides. `Action` is one of the SOAP actions the [Service](../service.md) provides.
Description. Description.