diff --git a/docs/commands/chg.md b/docs/commands/chg.md index c88290a..39a6304 100644 --- a/docs/commands/chg.md +++ b/docs/commands/chg.md @@ -3,7 +3,8 @@ 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 `CHG TrID status {flags} {msnobj}` @@ -20,7 +21,7 @@ Where `status` can be any of the below: * `FLN`: Semi-offline. More on this below. 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 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. # 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). * Removed in MSNP24. diff --git a/docs/commands/not.md b/docs/commands/not.md index 9be600a..7af6b6e 100644 --- a/docs/commands/not.md +++ b/docs/commands/not.md @@ -35,7 +35,7 @@ S: NOT 367 ``` -## Advanced notification +## Extended notification *Since [MSNP9](../versions/msnp9.md).* ``` S: NOT 457 @@ -55,7 +55,7 @@ S: NOT 457 ## Blog update notification *Since [MSNP11](../versions/msnp11.md).* ``` -S: NOT 1249 +S: NOT 1264 @@ -64,7 +64,10 @@ S: NOT 1249 - <NotificationData xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <NotificationData + xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + > <SpaceHandle> <ResourceID>example1!101</ResourceID> </SpaceHandle> @@ -93,7 +96,7 @@ S: NOT 1249 ## Contact update notification *Since [MSNP13](../versions/msnp13.md).* ``` -S: NOT 685 +S: NOT 694 @@ -102,7 +105,10 @@ S: NOT 685 - <NotificationData xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <NotificationData + xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + > <Service>ABCHInternal</Service> <CID>4294967298</CID> <LastModifiedDate>2024-10-26T09:33:27.1020000-08:00</LastModifiedDate> @@ -122,6 +128,7 @@ C: NOT 1 0 Server disconnects client. # Known changes +* [MSNP9](../versions/msnp9.md): Added support for extended notifications using the `` element. * [MSNP11](../versions/msnp11.md): Using an `` sub-document embedded into a `` document is supported. 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 `` sub-document. diff --git a/docs/commands/qry.md b/docs/commands/qry.md index 74e80d3..b2d4112 100644 --- a/docs/commands/qry.md +++ b/docs/commands/qry.md @@ -12,6 +12,7 @@ payload ``` 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`. @@ -20,6 +21,8 @@ Where `payload` is the challenge response. ## Challenge responses 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 *Only in [MSNP6](../versions/msnp10.md) to [MSNP10](../versions/msnp10.md).* diff --git a/docs/files/challenge_keypairs.md b/docs/files/challenge_keypairs.md new file mode 100644 index 0000000..3c6966e --- /dev/null +++ b/docs/files/challenge_keypairs.md @@ -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)| diff --git a/docs/files/client_capabilities.md b/docs/files/client_capabilities.md new file mode 100644 index 0000000..1cbccc2 --- /dev/null +++ b/docs/files/client_capabilities.md @@ -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` | ... | diff --git a/docs/files/notification.md b/docs/files/notification.md index 7460459..a63fbb0 100644 --- a/docs/files/notification.md +++ b/docs/files/notification.md @@ -11,9 +11,9 @@ This is the root element of the document, and supports four attributes: * `id`: A 32-bit unsigned integer that is set by the sending party. * `siteid`: The .NET Alerts Site ID, not to be confused with the .NET Passport Site ID. Setting this to some values changes the default icon: - * `0`: Use stocks (stack of coins or line-chart) icon - * `1`: Use calendar (clock) icon - * Other values: Use default bell icon or custom icon + * `0`: Use stocks (stack of coins or line-chart) icon + * `1`: Use calendar (clock) icon + * Other values: Use default bell icon or custom icon * `siteurl`: The base URL to the service used in later relative URL attributes. ## TO @@ -31,9 +31,9 @@ If this element (``) does not have a (``) element, it is to be empty. This empty element only supports one attribute: * `agent`: What this alert is intended to be viewed by: - * `email`: A e-mail message. - * `messenger`: A "toast" generated by the Official Client. - * `mobile`: A mobile device. + * `email`: A e-mail message. + * `messenger`: A "toast" generated by the Official Client. + * `mobile`: A mobile device. ## FROM *NOTE: This element should NOT be added to any `` 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. * `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 - if your icon URL has `_32x32` in it, the client can replace it with `_48x32`. - If you do not have a 48x32 icon, it will fall-back to the original 32x32 one. + Note: Client Version 6.0 ([MSNP9](../versions/msnp9.md)) and above support 48x32 icons and will use them automatically + if your icon URL includes the substring `_32x32`, the client will replace it with `_48x32`. + If you do not have a 48x32 icon, the client will fallback to the original 32x32 icon. The default element that this parents is ``. It may also contain other types of data. One such data type is the [``](#notificationdata) sub-document. @@ -102,16 +102,16 @@ supported by [MSNP9](../versions/msnp9.md) and higher. The [``](#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 A paragraph, required for [``](#textx) elements to parse correctly. This element supports one attribute: * `align`: The extended notification's text alignment: - * `left` - * `center` - * `right` + * `left` + * `center` + * `right` This element may contain any of the following elements: * `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 This element has one child named `ResourceID` and supports one attribute: * `xsi:type`: The type of this ``: - * `List`: A list. - * `Folder`: A photo collection. - * `MessageContainer`: A text message container. + * `List`: A list. + * `Folder`: A photo collection. + * `MessageContainer`: A text message container. #### ResourceID Contains the blog service's ID for this ``. @@ -194,9 +194,9 @@ This element supports multiple `` child elements. #### Item This element has one child named `ResourceID` and supports one attribute: * `xsi:type`: The type of this ``: - * `ListEntry`: An entry on a list. - * `Photo`: A photo. - * `Message`: A text message. + * `ListEntry`: An entry on a list. + * `Photo`: A photo. + * `Message`: A text message. ##### ResourceID Contains the blog service's ID for this ``. diff --git a/docs/files/shields.md b/docs/files/shields.md index 06d1012..00544a3 100644 --- a/docs/files/shields.md +++ b/docs/files/shields.md @@ -28,18 +28,18 @@ This empty attribute has 5 parameters: * `minbld`: Lowest bound of builds that this block applies to. * `maxbld`: Highest bound of builds that this block applies to * `deny`: What features are disabled: - * `SharingFolders`: Sharing Folders. Since [MSNP13](../versions/msnp13.md). - * `protocolhandler`: Unknown. - * `dynamicbackgrounds`: Dynamic Backgrounds (Flash chat backgrounds). - * `phone`: Calling features. Since [MSNP13](../versions/msnp13.md). - * `voiceim`: Voice Clips. - * `camera`: Video Conversations. - * `audio`: Audio Conversations. - * `filexfer`: File transfer. - * `hotlinks`: Web links. - If this feature is blocked URLs sent in the chat will not be formatted as links. - * `ddp`: Dynamic Display Pictures (Flash avatars). - * `winks`: Winks (Flash full chat window animations). + * `SharingFolders`: Sharing Folders. Since [MSNP13](../versions/msnp13.md). + * `protocolhandler`: Unknown. + * `dynamicbackgrounds`: Dynamic Backgrounds (Flash chat backgrounds). + * `phone`: Calling features. Since [MSNP13](../versions/msnp13.md). + * `voiceim`: Voice Clips. + * `camera`: Video Conversations. + * `audio`: Audio Conversations. + * `filexfer`: File transfer. + * `hotlinks`: Web links. + If this feature is blocked URLs sent in the chat will not be formatted as links. + * `ddp`: Dynamic Display Pictures (Flash avatars). + * `winks`: Winks (Flash full chat window animations). ### block *Since [MSNP12](../versions/msnp12.md).* diff --git a/docs/index.md b/docs/index.md index acc5197..26b1890 100644 --- a/docs/index.md +++ b/docs/index.md @@ -40,6 +40,8 @@ More is to come soon! Hopefully! * [Constants used on the wiki](reference_constants.md) * [Shields Configuration Data](files/shields.md) * [`` documents](files/notification.md) +* [Challenge key pairs](files/challenge_keypairs.md) +* [All Client Capabilities](files/client_capabilities.md) # Wanted Information * [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? * [MSNP11](versions/msnp11.md): How does `ABCHMigrated: 0` really work now? `OUT MIG` still exists. * [MSNP12](versions/msnp12.md): Did [LST](commands/lst.md) change outside of [SYN](commands/syn.md) in this version? -* MSNP18: Was ``'d circle updates get added in MSNP17 instead? +* MSNP18: Was ``-based circle updates added in MSNP17 instead? * Error Codes: A new article for them, seems like they are implemented in wildly different ways. * [MSNP2](versions/msnp2.md) to [MSNP7](versions/msnp7.md): TODO: Add CVR requests as command 10. * All Protocols: Any error code known to exist but is missing from the pages. @@ -60,21 +62,31 @@ More is to come soon! Hopefully! * [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). * [PRP command](commands/prp.md): Any information on the following properties (if they are properties?): - * `UTL` - * `WPL` - * `CID`: Is this related to spaces? - * `RES` - * `NSD` - * `UAC` - * `MNI` + * `UTL` + * `WPL` + * `CID`: Is this related to spaces? + * `RES` + * `NSD` + * `UAC` + * `MNI` * [UUX command](commands/uux.md): Any information on the following optional elements: - * `PHMEnabled` - * `MNIEnabled` - * `LastSpaceUpdate` - * `LastStorageError` + * `PHMEnabled` + * `MNIEnabled` + * `LastSpaceUpdate` + * `LastStorageError` * `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)... +## 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 * [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? @@ -92,7 +104,7 @@ More is to come soon! Hopefully! * Protocol Split: A MSNP version that usually defines a point of no return. * 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)). -* 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. * 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. @@ -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. * 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. +* 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. * Line Feed: To move the page-writing apparatus down a "line". * 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. May be called "principles" in other places. * Public Key, Private Key: The parameters used in [QRY](commands/qry.md). - * The one you send with it in plain is the Public Key. - 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. - An example of the Private Key is `Q1P7W2E4J9R8U3S5` or `YMM8C_H7KCQ2S_KL`. + * The one you send with it in plain is the Public Key. + An example of the Public Key is `msmsgs@msnmsgr.com` or `PROD0090YUAUV{2B`. + * The one you use for the main challenge response hash is the Private Key. + An example of the Private Key is `Q1P7W2E4J9R8U3S5` or `YMM8C_H7KCQ2S_KL`. # Where do I find or edit these page's source? The git repo is avaliable at . diff --git a/docs/reference_constants.md b/docs/reference_constants.md index 5559bc2..22242c6 100644 --- a/docs/reference_constants.md +++ b/docs/reference_constants.md @@ -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` ## 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` * Another User's computer's GUID: `0061d708-cd9b-4d56-b64b-fffaa92ff344` diff --git a/docs/services/abservice.md b/docs/services/abservice.md index 1f2803e..910da71 100644 --- a/docs/services/abservice.md +++ b/docs/services/abservice.md @@ -58,7 +58,7 @@ This element has three children: * ``: If this request is part of the ABCH Migration process. If it is, set to `true`, otherwise set to `false`. * ``: 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. * `ContactSave`: When the modified contact is saved by the client. * `MessengerPendingList`: Managing the Pending List (PL). @@ -97,7 +97,8 @@ This element has only one attribute: This element has five children: * ``: The version of this service. * ``: 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. * ``: Did the `` change? If it did, set to `true`, otherwise set to `false`. * ``: The domain name that this service would like to receive requests to. * ``: The current session GUID. diff --git a/docs/services/abservice/abcontactadd.md b/docs/services/abservice/abcontactadd.md index 0c61fcf..f9f27a3 100644 --- a/docs/services/abservice/abcontactadd.md +++ b/docs/services/abservice/abcontactadd.md @@ -29,8 +29,8 @@ The relevant elements are: * ``: Is the user I am adding a part of the Messenger Service Network? If they are, set to `true`, otherwise set to `false`. * ``: (Optional?) The type of contact you'd like to add: - * `LivePending`: A Messenger Service user. - * `Regular`: A user from another service. + * `LivePending`: A Messenger Service user. + * `Regular`: A user from another service. * ``: Used exclusively if this is a email-only contact. * ``: Used with `` if this is a phone-only contact. * ``: Used with `` if this is a phone-only contact. @@ -56,3 +56,94 @@ but this behavour is yet to be confirmed. #### guid 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 + + + + + + 996CDE1E-AA53-4477-B943-2BE802EA6166 + false + ContactSave + + + false + t=ticket&p=profile + + + + + 00000000-0000-0000-0000-000000000000 + + + + anotheruser@hotmail.com + true + LivePending + + + + + true + + + + +``` + +## Server/Response +``` +HTTP/1.1 200 OK +Content-Type: text/xml +Content-Length: 911 + + + + + + 12.01.1111.0000 + 12r1;MjAyNC0xMS0xOVQxNDowOTowNi41MzZa + true + contacts.example.com + ecfaf8c7-e388-4571-8641-b061a0ac4bdc + + + + + + c1f9a363-4ee9-4a33-a434-b056a4c55b98 + + + + +``` diff --git a/docs/services/abservice/abcontactdelete.md b/docs/services/abservice/abcontactdelete.md index be5e625..7786e0e 100644 --- a/docs/services/abservice/abcontactdelete.md +++ b/docs/services/abservice/abcontactdelete.md @@ -30,3 +30,83 @@ The template used in this action is described on the [Address Book Service](../a ## ABContactDeleteResponse This empty element has only one attribute: * `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 + + + + + + 996CDE1E-AA53-4477-B943-2BE802EA6166 + false + Timer + + + false + t=ticket&p=profile + + + + + 00000000-0000-0000-0000-000000000000 + + + c1f9a363-4ee9-4a33-a434-b056a4c55b98 + + + + + +``` + +## Server/Response +``` +HTTP/1.1 200 OK +Content-Type: text/xml +Content-Length: 774 + + + + + + 12.01.1111.0000 + 12r1;MjAyNC0xMS0xOVQxNzo0ODowOS44MDNa + true + contacts.example.com + ecfaf8c7-e388-4571-8641-b061a0ac4bdc + + + + + + +``` diff --git a/docs/services/abservice/abcontactupdate.md b/docs/services/abservice/abcontactupdate.md index 48f2f88..f7c69ac 100644 --- a/docs/services/abservice/abcontactupdate.md +++ b/docs/services/abservice/abcontactupdate.md @@ -51,6 +51,90 @@ The valid values are the following: # Server/Response 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: * `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 + + + + + + 996CDE1E-AA53-4477-B943-2BE802EA6166 + false + Timer + + + false + t=ticket&p=profile + + + + + 00000000-0000-0000-0000-000000000000 + + + c1f9a363-4ee9-4a33-a434-b056a4c55b98 + + another user + + DisplayName + + + + + +``` + +## Server/Response +``` +HTTP/1.1 200 OK +Content-Type: text/xml +Content-Length: 911 + + + + + + 12.01.1111.0000 + 12r1;MjAyNC0xMS0xOVQxNzo0Nzo1OS4zMDZa + true + contacts.example.com + ecfaf8c7-e388-4571-8641-b061a0ac4bdc + + + + + + +``` diff --git a/docs/services/abservice/abgroupadd.md b/docs/services/abservice/abgroupadd.md index 8c4cfaf..546b90e 100644 --- a/docs/services/abservice/abgroupadd.md +++ b/docs/services/abservice/abgroupadd.md @@ -25,7 +25,7 @@ This element only contains the `` element. This element contains four children: * ``: The name of the group. * ``: The GUID type of group: - * `C8529CE2-6EAD-434d-881F-341E17DB3FF8`: A contact group. + * `C8529CE2-6EAD-434d-881F-341E17DB3FF8`: A contact group. * ``: Unknown purpose (`true` or `false`). ##### annotations @@ -50,3 +50,96 @@ This element only contains the `` element. #### guid 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 + + + + + + 996CDE1E-AA53-4477-B943-2BE802EA6166 + false + GroupSave + + + false + t=ticket&p=profile + + + + + 00000000-0000-0000-0000-000000000000 + + false + + + + Friends + C8529CE2-6EAD-434d-881F-341E17DB3FF8 + false + + + MSN.IM.Display + 1 + + + + + + + +``` + +## Server/Response +``` +HTTP/1.1 200 OK +Content-Type: text/xml +Content-Length: 903 + + + + + + 12.01.1111.0000 + 12r1;MjAyNC0xMS0xOVQxNzo1NTo1Ni45NDla + true + contacts.example.com + ecfaf8c7-e388-4571-8641-b061a0ac4bdc + + + + + + f60efbe7-94af-4b16-b926-e4e10878d329 + + + + +``` diff --git a/docs/services/abservice/abgroupcontactadd.md b/docs/services/abservice/abgroupcontactadd.md index 58fd0bb..e461807 100644 --- a/docs/services/abservice/abgroupcontactadd.md +++ b/docs/services/abservice/abgroupcontactadd.md @@ -61,3 +61,92 @@ This element only contains the `` element. #### guid 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 + + + + + + 996CDE1E-AA53-4477-B943-2BE802EA6166 + false + GroupSave + + + false + t=ticket&p=profile + + + + + 00000000-0000-0000-0000-000000000000 + + + f60efbe7-94af-4b16-b926-e4e10878d329 + + + + + c1f9a363-4ee9-4a33-a434-b056a4c55b98 + + + + + +``` + +## Server/Response +``` +HTTP/1.1 200 OK +Content-Type: text/xml +Content-Length: 931 + + + + + + 12.01.1111.0000 + 12r1;MjAyNC0xMS0xOVQxNDowOTowNi41MzZa + true + contacts.example.com + ecfaf8c7-e388-4571-8641-b061a0ac4bdc + + + + + + c1f9a363-4ee9-4a33-a434-b056a4c55b98 + + + + +``` diff --git a/docs/services/abservice/abgroupcontactdelete.md b/docs/services/abservice/abgroupcontactdelete.md index 6db4eb0..58863dc 100644 --- a/docs/services/abservice/abgroupcontactdelete.md +++ b/docs/services/abservice/abgroupcontactdelete.md @@ -39,3 +39,88 @@ The template used in this action is described on the [Address Book Service](../a ## ABGroupContactDeleteResponse This empty element has only one attribute: * `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 + + + + + + 996CDE1E-AA53-4477-B943-2BE802EA6166 + false + GroupSave + + + false + t=ticket&p=profile + + + + + 00000000-0000-0000-0000-000000000000 + + + c1f9a363-4ee9-4a33-a434-b056a4c55b98 + + + + + f60efbe7-94af-4b16-b926-e4e10878d329 + + + + + +``` + +## Server/Response +``` +HTTP/1.1 200 OK +Content-Type: text/xml +Content-Length: 779 + + + + + + 12.01.1111.0000 + 12r1;MjAyNC0xMS0xOVQxNDowOTowNi41MzZa + true + contacts.example.com + ecfaf8c7-e388-4571-8641-b061a0ac4bdc + + + + + + +``` diff --git a/docs/services/abservice/abgroupdelete.md b/docs/services/abservice/abgroupdelete.md index 61652c3..7a1319b 100644 --- a/docs/services/abservice/abgroupdelete.md +++ b/docs/services/abservice/abgroupdelete.md @@ -28,3 +28,81 @@ The template used in this action is described on the [Address Book Service](../a ## ABGroupDeleteResponse This empty element has only one attribute: * `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 + + + + + + 996CDE1E-AA53-4477-B943-2BE802EA6166 + false + Timer + + + false + t=ticket&p=profile + + + + + 00000000-0000-0000-0000-000000000000 + + + f60efbe7-94af-4b16-b926-e4e10878d329 + + + + + +``` + +## Server/Response +``` +HTTP/1.1 200 OK +Content-Type: text/xml +Content-Length: 772 + + + + + + 12.01.1111.0000 + 12r1;MjAyNC0xMS0xOVQxNzo0ODowOS44MDNa + true + contacts.example.com + ecfaf8c7-e388-4571-8641-b061a0ac4bdc + + + + + + +``` diff --git a/docs/services/abservice/abgroupupdate.md b/docs/services/abservice/abgroupupdate.md index 9ab63f0..486f6de 100644 --- a/docs/services/abservice/abgroupupdate.md +++ b/docs/services/abservice/abgroupupdate.md @@ -21,7 +21,7 @@ This element contains three children: * ``: The GUID of the group to modify. * ``: Explained below. * ``: A space delimited list of changes made in ``: - * `GroupName` + * `GroupName` ##### groupInfo This element contains only one child: @@ -30,6 +30,88 @@ This element contains only one child: # Server/Response 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: * `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 + + + + + + 996CDE1E-AA53-4477-B943-2BE802EA6166 + false + GroupSave + + + false + t=ticket&p=profile + + + + + 00000000-0000-0000-0000-000000000000 + + + f60efbe7-94af-4b16-b926-e4e10878d329 + + Other People + + GroupName + + + + + +``` + +## Server/Response +``` +HTTP/1.1 200 OK +Content-Type: text/xml +Content-Length: 772 + + + + + + 12.01.1111.0000 + 12r1;MjAyNC0xMS0xOVQxNzo0ODowOS44MDNa + true + contacts.example.com + ecfaf8c7-e388-4571-8641-b061a0ac4bdc + + + + + + +``` diff --git a/docs/services/abservice/contactinfo.md b/docs/services/abservice/contactinfo.md index 318342d..31e7167 100644 --- a/docs/services/abservice/contactinfo.md +++ b/docs/services/abservice/contactinfo.md @@ -8,8 +8,8 @@ This element can contain many children, all of which optional: * `` Are the contents of `` hidden to the user (`true` or `false`)? * ``: Is this contact a part of the Messenger Service Network (`true` or `false`)? * ``: The type of contact this is related to: - * `LivePending`: A user yet to authorise you - * `Regular`: A user from another service. + * `LivePending`: A user yet to authorise you + * `Regular`: A user from another service. * ``: The display name for this contact. * ``: Unused. Always 0. * ``: 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: * ``: The middle name for this contact. * ``: Contains one or multiple [``](#annotation) element(s). * ``: Can be any of the following: - * `ContactEmailPersonal` - * `ContactEmailMessenger` - * `ContactEmailBusiness` - * `ContactEmailOther` - * `Passport` + * `ContactEmailPersonal` + * `ContactEmailMessenger` + * `ContactEmailBusiness` + * `ContactEmailOther` + * `Passport` * ``: Contains one or multiple [``](#contactemail) element(s). * ``: Can be any of the following: - * `ContactPhonePersonal` - * `ContactPhonePager` - * `ContactPhoneFax` - * `ContactPhoneBusiness` - * `ContactPhoneOther` - * `ContactPhoneMobile` + * `ContactPhonePersonal` + * `ContactPhonePager` + * `ContactPhoneFax` + * `ContactPhoneBusiness` + * `ContactPhoneOther` + * `ContactPhoneMobile` * ``: Contains one or multiple [``](#contactphone) element(s). * ``: Can be any of the following: - * `ContactLocationBusiness` - * `ContactLocationPersonal` + * `ContactLocationBusiness` + * `ContactLocationPersonal` * ``: Contains one or multiple [``](#contactlocation) element(s). * ``: Contains one or multiple [``](#contactwebsite) element(s). * ``: Is this contact private (`true` or `false`). @@ -54,39 +54,39 @@ This element can contain many children, all of which optional: ## Annotation This element contains two children: * ``: 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.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`). - * `AB.JobTitle`: The job title of this contact. - * `AB.NickName`: The user-provided nick-name for this contact. - * `AB.Spouse`: The contact's spouse's name. + * `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.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.NickName`: The user-provided nick-name for this contact. + * `AB.Spouse`: The contact's spouse's name. * ``: The value of this property. ## ContactEmail This element contains two children: * ``: Can be any of the following: - * `ContactEmailPersonal` - * `ContactEmailMessenger` - * `ContactEmailBusiness` - * `ContactEmailOther` + * `ContactEmailPersonal` + * `ContactEmailMessenger` + * `ContactEmailBusiness` + * `ContactEmailOther` * ``: The e-mail address associated with the ``. ## ContactPhone This element contains two children: * ``: Can be any of the following: - * `ContactPhonePersonal` - * `ContactPhonePager` - * `ContactPhoneFax` - * `ContactPhoneBusiness` - * `ContactPhoneOther` - * `ContactPhoneMobile` + * `ContactPhonePersonal` + * `ContactPhonePager` + * `ContactPhoneFax` + * `ContactPhoneBusiness` + * `ContactPhoneOther` + * `ContactPhoneMobile` * ``: The phone number associated with the ``. ## ContactLocation This element contains two children: * ``: Can be any of the following: - * `ContactLocationBusiness` - * `ContactLocationPersonal` + * `ContactLocationBusiness` + * `ContactLocationPersonal` * ``: The name associated with the ``. * ``: The street associated with the ``. * ``: The city associated with the ``. @@ -94,16 +94,16 @@ This element contains two children: * ``: The country associated with the ``. * ``: The postal code associated associated with the ``. * ``: A space delimited list of changed elements in this ``: - * `Name` - * `Street` - * `City` - * `State` - * `Country` - * `PostalCode` + * `Name` + * `Street` + * `City` + * `State` + * `Country` + * `PostalCode` ## ContactWebSite This element contains two children: * ``: Can be any of the following: - * `ContactWebSiteBusiness` - * `ContactWebSitePersonal` + * `ContactWebSiteBusiness` + * `ContactWebSitePersonal` * ``: The location of the website associated with the ``. diff --git a/docs/services/msgrconfig.md b/docs/services/msgrconfig.md index d49157a..36a944a 100644 --- a/docs/services/msgrconfig.md +++ b/docs/services/msgrconfig.md @@ -19,11 +19,18 @@ In the HTTP headers, this is defined: `SOAPAction: "http://www.msn.com/webservices/Messenger/Client/GetClientConfig"` +The main body is the following: ``` - + - + US 0809 @@ -44,7 +51,15 @@ Where `` is the binary's language code in unprefixed hexadecimal. Where `` is the system's geographic location in decimal. #### 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`. @@ -64,9 +79,15 @@ Where `ver` is the version of the client as a triplet. *This only applies if you use a SOAP request.* ``` - + - + ...]]> @@ -156,7 +177,7 @@ This element only contains `` elements. This element has two attributes: * `type`: Unknown, but is `0` for `Login`, `2` for `MapFile`, and `3` for P2P. * `name`: The name of the feature: - * `Login`: Login Process + * `Login`: Login Process * `MapFile`: Content Cache Map Files * `P2P`: Peer-to-peer communications @@ -175,7 +196,7 @@ This element only contains one or multiple `` element(s). This element has nine children: * ``: Either a direct URL to a PNG file (36x32 size) or a resource id: * `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: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. @@ -452,10 +473,10 @@ the `$FORMAT$` formatting string is avaliable. ### MusicIntegration This empty element has two attributes: * `URL`: The URL to the music search function, supporting the following formatting strings: - * `$TITLE$`: The title of the song. - * `$ARTIST$`: The artist of the song. - * `$ALBUM$`: The album of the song. - * `$WMID$`: The Windows Media DRM ID of the song (if avaliable). + * `$TITLE$`: The title of the song. + * `$ARTIST$`: The artist of the song. + * `$ALBUM$`: The album of the song. + * `$WMID$`: The Windows Media DRM ID of the song (if avaliable). * `SiteID`: The Passport Site ID that `URL` uses. ### PremiumAV @@ -464,12 +485,12 @@ This empty element has the attribute `Visibility`. `1` likely enables this featu ### RL * ``: The URL used to open the Member Directory for this user. Has the following formatting strings: - * `%1`: Unknown - * `%2`: Unknown - * `%3`: Unknown - * `%4`: Unknown - * `%5`: Unknown - * `%6`: The user handle that you want to view. + * `%1`: Unknown + * `%2`: Unknown + * `%3`: Unknown + * `%4`: Unknown + * `%5`: Unknown + * `%6`: The user handle that you want to view. ### TermsOfUse * ``: The Passport Site ID that `` uses, @@ -484,11 +505,11 @@ This element has three required attributes and three optional attributes: * `id`: The ID for this Product Provider * `PartnerID`: The partner 2 character code. * `ProductName`: The type of product: - * `Winks` - * `Emoticons` - * `Backgrounds` - * `Theme Packs` - * `Dynamic Display Pictures` + * `Winks` + * `Emoticons` + * `Backgrounds` + * `Theme Packs` + * `Dynamic Display Pictures` * `BrandName` (optional): The display name of this product. * `DialogMenuString` (optional): What the client shows when promoting this product. * `IntegrationType` (optional): How the client should promote this product. diff --git a/docs/services/sharingservice/addmember.md b/docs/services/sharingservice/addmember.md index ac7758f..b8ab221 100644 --- a/docs/services/sharingservice/addmember.md +++ b/docs/services/sharingservice/addmember.md @@ -14,9 +14,11 @@ This element has only one attribute: ### serviceHandle This element contains three children: * ``: This is always set to `0`. -* ``: This has only been observed to be `Messenger`. -* ``: This has only been observed have no content, - but is not an empty element. +* ``: The type of this member: + * `Messenger`: This is a Messenger contact. + * `Profile`: This is your profile. +* ``: If `` is `Profile`, this should be `MyProfile`, + otherwise leave empty but do not convert to an empty element. ### memberships This element only contains `` elements. @@ -24,9 +26,10 @@ This element only contains `` elements. #### Membership This element contains two children: * ``: The type of list: - * `Allow`: The Allow List (AL). - * `Block`: The Block List (BL). - * `Reverse`: The Reverse List (RL). + * `Allow`: The Allow List (AL). + * `Block`: The Block List (BL). + * `Reverse`: The Reverse List (RL). + * `ProfileExpression`: Your profile. * ``: Explained below. ##### Members @@ -35,22 +38,33 @@ This element only contains `` elements. ###### Member This element has two attributes: * `xsi:type`: The type of this ``: - * `PassportMember` - * `EmailMember` - * `PhoneMember` + * `PassportMember` + * `EmailMember` + * `PhoneMember` + * `RoleMember`: Only valid for `ProfileExpression`. * `xmlns:xsi`: This is always set to `http://www.w3.org/2001/XMLSchema-instance`. This element contains two children: * ``: The type of this ``: - * `Passport` - * `Email` - * `Phone` + * `Passport` + * `Email` + * `Phone` * ``: This is usually only set to `Accepted`, but `Pending` is a valid value. +* ``: Should this member be deleted? (Only set to `true` in `UpdateMember`?) This element also contains one of the following mutually exclusive children. 1. ``: The user handle associated with this membership. 2. ``: The e-mail address associated with this membership. -2. ``: The phone number associated with this membership. +3. ``: The phone number associated with this membership. + +This element also contains the following children IF the role is set to `ProfileExpression`: +* ``: Always `Allow`. +* ``: Contains the following: + * ``: Always `0`. + * ``: Always `Messenger`. + * ``: Always empty content, but not an empty element. +* ``: Always `0`. +* ``: Always `0`. # Server/Response 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 This empty element has only one attribute: * `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 + + + + + + 996CDE1E-AA53-4477-B943-2BE802EA6166 + false + Timer + + + false + t=ticket&p=profile + + + + + + 0 + Messenger + + + + + Allow + + + Passport + Accepted + false + anotheruser@hotmail.com + + + + + + + +``` + +## Server/Response +``` +HTTP/1.1 200 OK +Content-Type: text/xml +Content-Length: 768 + + + + + + 12.01.1111.0000 + 12r1;MjAyNC0xMS0xOVQxNzo0ODowOS44MDNa + true + contacts.example.com + ecfaf8c7-e388-4571-8641-b061a0ac4bdc + + + + + + +``` diff --git a/docs/services/sharingservice/deletemember.md b/docs/services/sharingservice/deletemember.md index 5ad9d6b..bb49b55 100644 --- a/docs/services/sharingservice/deletemember.md +++ b/docs/services/sharingservice/deletemember.md @@ -13,9 +13,11 @@ This element has only one attribute: ### serviceHandle This element contains three children: * ``: This is always set to `0`. -* ``: This has only been observed to be `Messenger`. -* ``: This has only been observed have no content, - but is not an empty element. +* ``: The type of this member: + * `Messenger`: This is a Messenger contact. + * `Profile`: This is your profile. +* ``: If `` is `Profile`, this should be `MyProfile`, + otherwise leave empty but do not convert to an empty element. ### memberships This element only contains `` elements. @@ -23,9 +25,10 @@ This element only contains `` elements. #### Membership This element contains two children: * ``: The type of list: - * `Allow`: The Allow List (AL). - * `Block`: The Block List (BL). - * `Pending`: The Pending List (RL). + * `Allow`: The Allow List (AL). + * `Block`: The Block List (BL). + * `Pending`: The Pending List (RL). + * `ProfileExpression`: Your profile. * ``: Explained below. ##### Members @@ -34,18 +37,34 @@ This element only contains `` elements. ###### Member This element has two attributes: * `xsi:type`: The type of this ``: - * `PassportMember` - * `EmailMember` - * `PhoneMember` + * `PassportMember` + * `EmailMember` + * `PhoneMember` + * `RoleMember`: Only valid for `ProfileExpression`. * `xmlns:xsi`: This is always set to `http://www.w3.org/2001/XMLSchema-instance`. This element contains three children: * ``: The type of this ``: - * `Passport` - * `Email` - * `Phone` + * `Passport` + * `Email` + * `Phone` * ``: The ID of the membership you would like to delete. * ``: This is usually only set to `Accepted`, but `Pending` is a valid value. +* ``: 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 ``: +1. ``: The user handle associated with this membership. +2. ``: The e-mail address associated with this membership. +3. ``: The phone number associated with this membership. + +This element also contains the following children IF the role is set to `ProfileExpression`: +* ``: Always `Allow`. +* ``: Contains the following: + * ``: Always `0`. + * ``: Always `Messenger`. + * ``: Always empty content, but not an empty element. +* ``: Always `0`. +* ``: Always `0`. # Server/Response 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 This empty element has only one attribute: * `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 + + + + + + 996CDE1E-AA53-4477-B943-2BE802EA6166 + false + Timer + + + false + t=ticket&p=profile + + + + + + 0 + Messenger + + + + + Allow + + + Passport + Accepted + anotheruser@hotmail.com + + + + + + + +``` + +## Server/Response +``` +HTTP/1.1 200 OK +Content-Type: text/xml +Content-Length: 771 + + + + + + 12.01.1111.0000 + 12r1;MjAyNC0xMS0xOVQxNzo0ODowOS44MDNa + true + contacts.example.com + ecfaf8c7-e388-4571-8641-b061a0ac4bdc + + + + + + +``` diff --git a/docs/table_of_commands.md b/docs/table_of_commands.md index 33c46fd..6847c71 100644 --- a/docs/table_of_commands.md +++ b/docs/table_of_commands.md @@ -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) | | | [`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) | -| [`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) | | | [`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) | @@ -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) | | [`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) | | -| [`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.) | | [`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.) | | [`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.) | | [`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 `` sub-document, and live blog updates use the new sub-document.), [MSNP13](versions/msnp13.md) (Added live contact list updates using the `` subdocument.), [MSNP18](versions/msnp18.md) (Added live persistant chat group updates using the `` subdocument.) | +| [`NOT`](commands/not.md) | Y | N | Y | [MSNP5](versions/msnp5.md) | [MSNP9](versions/msnp9.md) (Added support for extended notifications using the `` element), [MSNP11](versions/msnp11.md) (Added support for the `` sub-document, and live blog updates use the new sub-document.), [MSNP13](versions/msnp13.md) (Added live contact list updates using the `` subdocument.), [MSNP18](versions/msnp18.md) (Added live persistant chat group updates using the `` subdocument.) | | [`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.) | | [`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.) | diff --git a/docs/versions/msnp10.md b/docs/versions/msnp10.md index 6ece56b..c7519ab 100644 --- a/docs/versions/msnp10.md +++ b/docs/versions/msnp10.md @@ -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). * [LST](../commands/lst.md): Added prefixes to the user handle (`N=`) and friendly name (`F=`) parameters. * Added new initial profile variable `ABCHMigrated`. If set to 1, some commands are altered, such as: - * [SYN](../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. - the previously unused second parameter (both request and response) is used as the Last Settings Version, - and follows the same time format as List Versions now do. - * [LST](../commands/lst.md): GUID specified as `C=` parameter, group IDs are now GUIDs. - * [ADC](../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. - * [SBP](../commands/sbp.md): Uses the contact's GUID instead of the Contact Address. + * [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. + the previously unused second parameter (both request and response) is used as the Last Settings Version, + and follows the same time format as List Versions now do. + * [LST](../commands/lst.md): GUID specified as `C=` parameter, group IDs are now GUIDs. + * [ADC](../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. + * [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: - * [GTC](../commands/gtc.md) - * [BLP](../commands/blp.md) - * [ADG](../commands/adg.md) - * [BPR](../commands/bpr.md) - * [REG](../commands/reg.md) - * [RMG](../commands/rmg.md) - * [REM](../commands/rem.md) - * [PRP](../commands/prp.md) + * [GTC](../commands/gtc.md) + * [BLP](../commands/blp.md) + * [ADG](../commands/adg.md) + * [BPR](../commands/bpr.md) + * [REG](../commands/reg.md) + * [RMG](../commands/rmg.md) + * [REM](../commands/rem.md) + * [PRP](../commands/prp.md) * Added a new list: Pending List/PL (bit 5, decimal 16). Is meant for unhandled contact added you notifications. * Added 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. diff --git a/docs/versions/msnp11.md b/docs/versions/msnp11.md index 893bc3c..26cf3bf 100644 --- a/docs/versions/msnp11.md +++ b/docs/versions/msnp11.md @@ -26,7 +26,8 @@ It introduces the notification service commands: * [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 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 [``](../files/notification.md) sub-documents are supported for spaces (blogs). * 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 C: ADC 12 AL N=tel:15551111222 S: ADC 12 AL N=tel:15551111222 -S: NOT 1249 +S: NOT 1264 @@ -115,7 +116,10 @@ S: NOT 1249 - <NotificationData xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <NotificationData + xmlns:xsd="http://www.w3.org/2001/XMLSchema" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + > <SpaceHandle> <ResourceID>example1!101</ResourceID> </SpaceHandle> diff --git a/docs/versions/msnp12.md b/docs/versions/msnp12.md index 95c6cec..40aac62 100644 --- a/docs/versions/msnp12.md +++ b/docs/versions/msnp12.md @@ -15,7 +15,8 @@ It introduces the notification service commands: # Known changes (from [MSNP11](msnp11.md)): * 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)). * 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. diff --git a/docs/versions/msnp3.md b/docs/versions/msnp3.md index d8ca4fa..24882ff 100644 --- a/docs/versions/msnp3.md +++ b/docs/versions/msnp3.md @@ -38,15 +38,15 @@ It introduces the error codes: * Official Client: Automatic login form now supports Passport if parameter 3 is set in [URL](../commands/url.md). To generate `creds`, MD5 hash the following as one concatenated string: - * `auth` (from Initial Profile's `MSPAuth`, also included in the form) + - * `sl` (amount of seconds since `LoginTime`, also included in the form) + - * `passwd` (plain-text password). + * `auth` (from Initial Profile's `MSPAuth`, also included in the form) + + * `sl` (amount of seconds since `LoginTime`, also included in the form) + + * `passwd` (plain-text password). * Official Client: Legacy automatic login form parameters has changed. This only applies for [URL](../commands/url.md) commands without parameter 3. To generate `k2`, MD5 hash the following as one concatenated string: - * `login` (The local-part of your user handle, also included in the form) + - * `k1` (A short 2 digit number that you generate and is also included in the form) + - * `passwd` (plain-text password). + * `login` (The local-part of your user handle, also included in the form) + + * `k1` (A short 2 digit number that you generate and is also included in the form) + + * `passwd` (plain-text password). * Official Client: Removed [URL](../commands/url.md) service `PASSWORD`. * Official Client: Disabled inviting people to the service (needs confirmation). diff --git a/docs/versions/msnp5.md b/docs/versions/msnp5.md index dc63b71..358772f 100644 --- a/docs/versions/msnp5.md +++ b/docs/versions/msnp5.md @@ -20,7 +20,7 @@ It introduces the error codes: # Known changes (from [MSNP4](msnp4.md)): * [BPR](../commands/bpr.md) and [PRP](../commands/prp.md) have been added to [SYN](../commands/syn.md). -* [``](../files/notification.md) documents are handled by the client with the new [NOT](not.md) payload command. +* [``](../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). * 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. diff --git a/docs/versions/msnp8.md b/docs/versions/msnp8.md index 4827240..a68dad2 100644 --- a/docs/versions/msnp8.md +++ b/docs/versions/msnp8.md @@ -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), For example, a contact on the Forward List (FL), Allow List (AL) and Reverse List (RL) would have their combined list number be 11. -* [CHG](../commands/chg.md), [ILN](../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. * Official Client: Connectivity field added to application requests to notify the other user about what the network conditions are. diff --git a/package-lock.json b/package-lock.json index 1342901..636fdb6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -680,8 +680,8 @@ } }, "node_modules/yiki": { - "version": "0.1.5", - "resolved": "git+https://git.kevinthe.horse/yellows111/yiki.git#7991d78e1c2461db7ab36ee10dd0a53105801b8b", + "version": "0.1.6", + "resolved": "git+https://git.kevinthe.horse/yellows111/yiki.git#5afe18743bf59e039d245220cd36381a37cfe6eb", "license": "MIT", "dependencies": { "@liquify/prettify": "^0.5.5-beta.1", diff --git a/templates/soapaction.md b/templates/soapaction.md index 08db3ff..25ae238 100644 --- a/templates/soapaction.md +++ b/templates/soapaction.md @@ -1,5 +1,5 @@ # 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.