From 6f3d1dbb85fc7b970c237d7617e13d7eeef17bcc Mon Sep 17 00:00:00 2001 From: yellows111 Date: Sun, 20 Oct 2024 12:52:06 +0100 Subject: [PATCH] added new section "service", corrections added: + ABService landing page + SharingService landing page + MsgrConfig fully * moved command table to table of commands because it was being annoying there exclusively --- docs/commands/adg.md | 4 +- docs/commands/cvq.md | 13 +- docs/commands/cvr.md | 18 +- docs/commands/inf.md | 3 +- docs/commands/msg.md | 3 +- docs/commands/out.md | 4 + docs/index.md | 15 +- docs/services/abservice.md | 33 + docs/services/msgrconfig.md | 575 ++++++++++++++++++ docs/services/sharingservice.md | 33 + ...{command-table.md => table_of_commands.md} | 4 +- docs/versions/cvr0.md | 11 +- docs/versions/msnp10.md | 4 +- docs/versions/msnp11.md | 2 +- docs/versions/msnp12.md | 3 +- docs/versions/msnp3.md | 6 +- docs/versions/msnp4.md | 1 + docs/versions/msnp5.md | 4 +- docs/versions/msnp6.md | 2 +- docs/versions/msnp8.md | 2 +- docs/versions/msnp9.md | 2 +- 21 files changed, 704 insertions(+), 38 deletions(-) create mode 100644 docs/services/abservice.md create mode 100644 docs/services/msgrconfig.md create mode 100644 docs/services/sharingservice.md rename docs/{command-table.md => table_of_commands.md} (98%) diff --git a/docs/commands/adg.md b/docs/commands/adg.md index 4229f4a..cc4e357 100644 --- a/docs/commands/adg.md +++ b/docs/commands/adg.md @@ -4,7 +4,7 @@ It is a Notification Server command, without a request or response payload. Creates a new group. -Replaced with Address Book Service's `ABCreateGroup` in [MSNP13](../versions/msnp13.md). +Replaced with [Address Book Service](../services/abservice)'s `ABGroupAdd` in [MSNP13](../versions/msnp13.md). # Client/Request `ADG TrID group-name {0}` @@ -127,4 +127,4 @@ Server disconnects client. * [MSNP10](../versions/msnp10.md): Removed unused `0` parameter, Returns a GUID instead of a Group ID if `ABCHMigrated: 1`. * [MSNP13](../versions/msnp13.md): Removed (automatic disconnect), - use Address Book Service's `ABCreateGroup` instead. + use Address Book Service's `ABGroupAdd` instead. diff --git a/docs/commands/cvq.md b/docs/commands/cvq.md index 3337d2c..a513ac3 100644 --- a/docs/commands/cvq.md +++ b/docs/commands/cvq.md @@ -4,7 +4,7 @@ It is a Dispatch Server command, without either a request or response payload. Sends the current client information and retrieves the latest avaliable version of the client when there are no other avaliable protocols. -Related to [CVR](cvr.md). +For the version of this command that is sent in the main protocols, read [CVR](cvR.md). # Client/Request `CVQ TrID locale system-type system-ver system-arch requesting-library client-version client-identification {user-handle}` @@ -21,9 +21,10 @@ Where `requesting-library` is the name of the library that requested this CVR, u Where `client-version` is the current client's major, minor and patch version, should be in the format of "{M}M.m.pppp". -Where `client-identification` is the internal name of the codebase used to create `requesting-library`, usually `MSMSGS`. +Where `client-identification` is the internal name of the codebase used to create `requesting-library`, usually `MSMSGS`, or an empty parameter. +Added since [MSNP4](../versions/msnp4.md), but is empty until [MSNP8](../versions/msnp8.md). -Where `user-handle` is the user's handle. Included since [MSNP8](../versions/msnp8.md). +Where `user-handle` is the user's handle. Added since [MSNP8](../versions/msnp8.md). # Server/Response `CVQ TrID recommended-version recommended-version-2 minimum-allowed-version download-url fallback-url` @@ -92,6 +93,8 @@ S: 731 6 Server disconnects client. # Known changes -* [MSNP2](../versions/msnp2.md): Changed [CVR](cvr.md) to [CVQ](cvq.md), Added a fallback URL parameter to the response (parameter 5). -* [MSNP8](../versions/msnp8.md): Added support for this command in Dispatch Servers. +* [MSNP2](../versions/msnp2.md): Added a fallback URL parameter to the response (parameter 5). + In [CVR0](../versions/cvr0.md) Only: Changed [CVR](cvr.md) to [CVQ](cvq.md) carrying the previous change. +* [MSNP4](../versions/msnp4.md): Added a client codebase identification parameter (parameter 7). Always empty. +* [MSNP8](../versions/msnp8.md): Fixed client codebase identification parameter (parameter 7), is now filled correctly and added a current user parameter (parameter 8). * Removed in MSNP24. diff --git a/docs/commands/cvr.md b/docs/commands/cvr.md index 6898d44..8ba24e0 100644 --- a/docs/commands/cvr.md +++ b/docs/commands/cvr.md @@ -4,7 +4,7 @@ It is a Notification Server and as of [MSNP8](../versions/msnp8.md) a Dispatch Server command, without either a request or response payload. Sends the current client information and retrieves the latest avaliable version of the client. -Related to [CVQ](cvq.md). +For the version of this command that is sent in [CVR0](../versions/cvr0.md), read [CVQ](cvq.md). # Client/Request `CVR TrID locale system-type system-ver system-arch requesting-library client-version {client-identification} {user-handle}` @@ -22,12 +22,12 @@ Where `requesting-library` is the name of the library that requested this CVR, u Where `client-version` is the current client's major, minor and patch version, should be in the format of "{M}M.m.pppp". Where `client-identification` is the internal name of the codebase used to create `requesting-library`, usually `MSMSGS` or an empty parameter. -Included since [MSNP4](../versions/msnp4.md). Non-empty since [MSNP8](../versions/msnp8.md). +Added since [MSNP4](../versions/msnp4.md). -Where `user-handle` is the user's handle. Included since [MSNP8](../versions/msnp8.md). +Where `user-handle` is the user's handle. Added since [MSNP8](../versions/msnp8.md). # Server/Response -`CVR TrID recommended-version recommended-version-2 minimum-allowed-version download-url fallback-url` +`CVR TrID recommended-version recommended-version-2 minimum-allowed-version download-url {fallback-url}` Where `recommended-version` is the current version of the client for this system. @@ -41,7 +41,7 @@ and request an forced upgrade using the binary provided in `download-url`. Where `download-url` is the file to download and open to update this client to `recommended-version`. -Where `fallback-url` is the URL the client opens if it failed to download `download-url` for any reason. +Where `fallback-url` is the URL the client opens if it failed to download `download-url` for any reason. Added since [MSNP2](../versions/msnp2.md). # Examples *NOTE: This has been line-breaked. @@ -93,7 +93,9 @@ S: 731 6 Server disconnects client. # Known changes -* [MSNP2](../versions/msnp2.md): Added a fallback URL parameter to the response (parameter 5). -* [MSNP4](../versions/msnp4.md): -* [MSNP8](../versions/msnp8.md): Added support for this command in Dispatch Servers. +* [MSNP2](../versions/msnp2.md): Added a fallback URL parameter to the response (parameter 5). + In [CVR0](../versions/cvr0.md) Only: Changed [CVR](cvr.md) to [CVQ](cvq.md) carrying the previous change. +* [MSNP4](../versions/msnp4.md): Added a client codebase identification parameter (parameter 7). +* [MSNP8](../versions/msnp8.md): Added a current user parameter (parameter 8), + and replaced [INF](inf.md) in the login process. * Removed in MSNP24. diff --git a/docs/commands/inf.md b/docs/commands/inf.md index b69035d..494644d 100644 --- a/docs/commands/inf.md +++ b/docs/commands/inf.md @@ -38,4 +38,5 @@ C: INF 3 Server disconnects client. # Known changes -* Removed in [MSNP8](../versions/msnp8.md). [USR](usr.md) assumes the authentication method is `TWN`. +* [MSNP3](../versions/msnp3.md): Removed `CTP` support. +* [MSNP8](../versions/msnp8.md). Removed. [USR](usr.md) always assumes the authentication method is `TWN`. diff --git a/docs/commands/msg.md b/docs/commands/msg.md index fda706b..203af62 100644 --- a/docs/commands/msg.md +++ b/docs/commands/msg.md @@ -187,4 +187,5 @@ acknowledged ``` # Known changes -* [MSNP9](../versions/msnp9.md): Added acknoledgement type D. +* [MSNP3](../versions/msnp3.md): Switchboard: Added support for the `X-MMS-IM-Format` header. +* [MSNP9](../versions/msnp9.md): Switchboard: Added acknoledgement type D. diff --git a/docs/commands/out.md b/docs/commands/out.md index da8b2da..a9d1150 100644 --- a/docs/commands/out.md +++ b/docs/commands/out.md @@ -61,3 +61,7 @@ S: OUT TOU ``` S: OUT RCT 6 ``` + +# Known changes +* [MSNP10](../versions/msnp10.md): Added `MIG` (Migrated) and `TOU` (Terms of Use) reasons. +* [MSNP11](../versions/msnp11.md): Added `RCT` (Reconnect) reason. \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index f340f0d..f7cd143 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,10 +1,9 @@ # Introduction Welcome to yellows' MSNP wiki - "we actually have documentation" -Why not visit the [Command Table](command-table.md)? +Why not visit the [Table of Commands](table_of_commands.md)? # Protocol Versions - * [CVR0](versions/cvr0.md) * [MSNP2](versions/msnp2.md) * [MSNP3](versions/msnp3.md) @@ -20,6 +19,13 @@ Why not visit the [Command Table](command-table.md)? More is to come soon! Hopefully! +# Web Services +* [Address Book Service](services/abservice.md) +* [Contact Sharing Service](services/sharingservice.md). +* [Messenger Config Service](services/msgrconfig.md). + +More is to come soon! Hopefully! + # Wanted Information * [MSNP2](versions/msnp2.md): What is the format of the initial `text/x-msmsgsemailnotification`? * [MSNP6](versions/msnp6.md): What makes the "Account must be verified before using the service" dialog show up? @@ -34,7 +40,6 @@ More is to come soon! Hopefully! * All Protocols: Good CVR responses, all of them are their release versions, when they could be latest. * All Protocols since [MSNP10](versions/msnp10.md): Use legitimate CVR responses from the time if possible, not ones for Client Version 6.1. * [FND command](commands/fnd.md): What was returned when this was disabled in 2003 in [MSNP2](versions/msnp2.md) to [MSNP6](versions/msnp6.md)? -* [FND command](commands/fnd.md): How did sending an invitation work in [MSNP2](versions/msnp2.md)-[MSNP4](versions/msnp4.md)? Client Version 3.0 using [MSNP4](versions/msnp4.md) just uses SND instead, but what about Client Version 1.0 to 2.2? * [IMS command](commands/ims.md): What is the unknown number (that is usually `0`) in the response? * [NAK command](commands/nak.md): This isn't used ever as a response for [MSG](commands/msg.md) D right? * [MSG command](commands/msg.md): What can return from [MSG](commands/msg.md) D? @@ -51,7 +56,7 @@ More is to come soon! Hopefully! * Official Client: MSN Messenger (Service) or Windows Live Messenger. * Client Version: relevant Official Client version. * MSNP: Mobile Status Notification Protocol, or whatever acronym you like. Runs over TCP via port 1863. -* ABCH: Address Book Clearing House +* ABCH: Address Book Clearing House. Usually refers to the [Address Book Service](services/abservice.md) and the [Contact Sharing Service](services/sharingservice.md). * Messenger Config: A file used by Client Version 6.0 and higher that specifies some data for the Official Client. * `svcs.microsoft.com`: Usually a grab-bag of random XML files or services used for clients older than Client Version 6.0. * Protocol Split: A MSNP version that usually defines a point of no return. @@ -69,6 +74,8 @@ More is to come soon! Hopefully! * 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: A 129-character max address used across the protocol. + May be called "principles" in other places. # Where do I find or edit these page's source? The git repo is avaliable at . diff --git a/docs/services/abservice.md b/docs/services/abservice.md new file mode 100644 index 0000000..26aa711 --- /dev/null +++ b/docs/services/abservice.md @@ -0,0 +1,33 @@ +# Introduction +The Address Book Service (abservice) is a SOAP (XML) Web Service. +Introduced with [MSNP8](../versions/msnp8.md). + +It manages the link(s) between the E-mail Service Address Book and the Forward List (FL). + +It's default HTTP URL is `http://contacts.msn.com/abservice/abservice.asmx`. +It's default HTTPS URL is `https://contacts.msn.com/abservice/abservice.asmx`. + +This service requires Passport authentication. + +Related: [Contact Sharing Service](sharingservice.md) (for other List's members). + +# Actions +*All actions listed have the prefix of +`http://www.msn.com/webservices/AddressBook/`.* + +* ABFindAll (internal name: `Contacts.Pull`) +* ABContactAdd (internal name: `Contacts.Push.Contact.Add`) +* ABContactDelete (internal name: `Contacts.Push.Contact.Delete`) +* ABContactUpdate (internal name: `Contacts.Push.Contact.Update`) +* ABGroupContactAdd (internal name: `Contacts.Push.Contact.AddToGroup`) +* ABGroupContactDelete (internal name: `Contacts.Push.Contact.DeleteFromGroup`) +* ABGroupAdd (internal name: `Contacts.Push.Group`) +* ABGroupDelete (internal name: `Contacts.Push.Group.Delete`) +* ABGroupUpdate (internal name: `Contacts.Push.Contact.Edit`) + +## Actions that we don't know much about +* ABFind (internal name: `Contacts.FindId`) +* ABAdd (internal name: `Contacts.AddAb`) +* ABDelete (internal name: `Contacts.DeleteAb`) +* ABFindByContacts (internal name: `Contacts.Pull.Id`) +* UpdateDynamicItem (internal name: `Contacts.Push.DynamicItem.Edit`) diff --git a/docs/services/msgrconfig.md b/docs/services/msgrconfig.md new file mode 100644 index 0000000..636d4ff --- /dev/null +++ b/docs/services/msgrconfig.md @@ -0,0 +1,575 @@ +# Introduction +The Messenger Config service (MsgrConfig) is a SOAP (XML) and HTTP Web Service. +Introduced with [MSNP9](../versions/msnp9.md). + +Defines various configuration options for the Official Client. Replaces `svcs.microsoft.com`. + +It's default URL is `http://config.messenger.msn.com/Config/MsgrConfig.asmx`. + +This service does not require Passport authentication. + +# Actions + +## GetClientConfig + +### Client/Request + +#### As a SOAP Action / POST request +In the HTTP headers, this is defined: + +`SOAPAction: "http://www.msn.com/webservices/Messenger/Client/GetClientConfig"` + +``` + + + + + + US + 0809 + 0409 + 242 + + + + +``` + +Where `` is the ISO 3166-1 alpha-2 of the binary you are using. + +Where `` is the system's language code in unprefixed hexadecimal. + +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` + +Where `op` is always `GetClientConfig`. + +Where `Country` is the ISO 3166-1 alpha-2 of the binary you are using. + +Where `CLCID` is the system's language code in unprefixed hexadecimal. + +Where `PLCID` is the binary's language code in unprefixed hexadecimal. + +Where `GeoID` is the system's geographic location in decimal. + +Where `ver` is the version of the client as a triplet. + +### Server/Response + +#### As a SOAP envelope +*This only applies if you use a SOAP request.* +``` + + + + + ...]]> + + + +``` + +Where `` contains a ``. + +Where `GetClientConfigResult` always contains a Character Data block containing a `` element. + +Where `` (in the CDATA) is the [Configuration Document](#the-configuration-document). + +#### As a XML document +*This only applies if you use query parameters.* +``` + + +... + +``` + +Where `` (everything but the declaration) is the [Configuration Document](#the-configuration-document). + +# The Configuration Document +``: The main element, contains everything. + +## Simple +Contains multiple shared configuration options, usually. + +### Beta +Contains configuration data for the Beta Program. + +#### Invite +Manages the configuration data for the Beta Program Invitation service. + +* ``: The URL to the invitation service. +* ``: The Passport Site ID for the invitation service. + +### Config +Contains options for the configuration data itself. + +* ``: The amount of days as a number before this expires + +### DisablePhoneDialer +If set to 1, the Phone Dialer is disabled. + +### Logitech +* ``: A URL to the premium Spotlife server (`mplocate`). +* ``: Are pre-roll advertisements enabled for this feature (`1` or `0`)? +* `` A URL to the non-premium Spotlife server (`mlocate`). + +### MinFlashPlayer +The minimum version of Adobe/Macromedia Flash Player allowed +before the client is allowed to use content that uses the Flash Player software. + +This element has no children, but does have the following attributes: +* `BuildNumber`: The minimum build number for this `MinorVersion`. +* `MajorVersion`: The minimum major version for the plugin. +* `MinorVersion`: The minimum minor version for this `MajorVersion`. + +### RadUrl +This element contains the advertisement service base URL. + +### Relay +Contains configuration data for the Audio/Video relay. + +* ``: If set to 1, the relay is enabled. +* ``: The maximum time (in unknown units) before the call is ended. +* ``: Unknown. +* ``: Contains the Fully Qualified Domain Name (FQDN) of the relay service. +* ``: The amount of milliseconds before falling back. + If you know what the fallback is, please contact me. + +### TrustedDomains +Contains many `` elements. + +#### domain +This empty element has the `name` attribute, which specifies the +Fully Qualified Domain Name of the trusted domain. Treated as a silent wildcard. + +### ErrorResponseTable +This element only contains `` elements. + +#### Feature +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 + * `MapFile`: Content Cache Map Files + * `P2P`: Peer-to-peer communications + +##### Entry +This empty element has two attributes: +* `hr`: The HRESULT of this entry, as prefixed hexadecimal. +* `action`: What should the Official Client do in this case? (Usually `3`.) + +## TabConfig +Replaces the `tabs.asp` service on `svcs.microsoft.com`. + +### msntabdata +This element only contains `` elements. + +#### tab +This element can be repeated multiple times in the parent element. + +* ``: 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: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. + * `res:carpoint`: A car icon. Used for the car reselling service. + * `res:espn`: The ESPN "E". Used for the relevant service. + * `res:zone`: A joystick icon. Used for the games service. + * `res:msnbc`: The MSNBC logo. Used for the relevant service. + * `res:eshop`: A shopping bag icon. Used for the shopping service. +* ``: The name of this tab that is displayed in the Tab Options dialog. +* ``: An all-lowercase unique name for this tab. + Setting this to `hotmail` will hide the tab automatically. + Setting this to `alerts` makes the "View Alerts History" button go to this tab. +* ``: A URL to the page that is displayed in the tab. +* ``: A URL for a tracking pixel that is requested when this tab is clicked on. +* ``: The Passport Site ID of this tab. + Any value except `0` will attempt to log into Passport automatically when the tab is shown. +* ``: Unknown what this is used for. If you know, please contact me. +* ``: The ID used for opening the alert content in the relevant tab. +* ``: If `true`, this tab does not appear in the tab list. + +### msntabsettings +Contains options for OEM (Original Equipment Manufacturer) tabs. +Unknown when this is used. If you know more, feel free to contact me. +May only be used in Client Version 4.5 back on svcs? + +* ``: Amount of OEM-defined tabs allowed to be displayed? +* ``: Amount of OEM-defined tabs allowed to be loaded + +## AbchCfg +Replaces the `abch_config.asp` service on `svcs.microsoft.com`. + +### abchconfig +* ``: The URL to the [Address Book Service](abservice.md). + +## AdMainConfig +* ``: The amount of minutes until downloading the next banner image. +* ``: The URL to the advertisement service. Loaded as a HTML document. + +## AdPhoneConfig +Contains a URL to a document of currently undocumented content using the advertisement service. + +## LocalizedConfig +Contains a large chunk of special options that can vary wildly between locales. + +This element has the attribute `Market`, +which contains the ISO 639-1 language code for this Configuration Document. + +### AdMainConfig +* ``: The URL to the advertisement service that handles banner advertisements. +* ``: Amount of minutes before downloading a new text advertisement. +* ``: The URL to the advertisement service that handles text advertisements. + +### AppDirConfig +* ``: The URL to the page that is displayed that lets you open + embedded applications from the Application Directory Service. +* ``: [sic], The URL to the Application Directory Sevice, I mean, Service. +* ``: The URL to the Application Directory Service's version endpoint. + +### AVPrerollAd +This empty element has four attributes: +* `FetchTimeout`: How many milliseconds before the client stops trying to fetch the pre-roll advertisement. +* `IntroLength`: How long the advertisement introduction animation plays for in milliseconds. +* `MinAdLength`: The minimum advertisement length in milliseconds. +* `URL`: The URL to the advertisement service for pre-roll advertisements. + +### BuyWebcamLink +This empty element has one attribute named `URL` +that specifies a web page you can buy a webcam from. + +### ContactCard +Blog intergration configuration options. +* ``: The Passport Site ID used in ``. +* `: The URL used for the "Add to my blog" service. +* ``: Is the Contact Card Service disabled? (`true` or `false`) +* ``: The Passport Site ID used in ``. +* ``: The URL used for the "Create a blog" service. +* ``: The URL to the storage service that provides the `GetItemVersion` SOAP action. +* ``: The URL to the Contact Card Service. +* ``: The Passport Site ID used in ``. +* ``: The URL used for the "Visit my blog" service. +* ``: The Passport Site ID used in ``. +* ``: The URL used for the blogging service. +* ``: Is this feature enabled? (`true` or `false`). + +### DynamicContent +Contains product advertisement configuration data. + +#### merchant +Can contain: +* `` +* `` +* `` +* `` + +##### bkgrounds +Free Background advertisement data. Only contains ``. + +###### slots +Contains multiple `` elements that contain a URL to a `msnmenuitem` XML document. +For more information read [this section on `msnmenuitem` documents](#msnmenuitem-xml-document). + +The `` element supports one attribute named `id` +which is the identification number of this slot. + +The `` element supports a formatting string of `$PUID$`, +which is replaced with your Passport User ID in unprefixed lowercase hexadecimal. + +##### emoticons2 +Free Emoticon Pack advertisement data. Only contains ``. + +Supports attribute `visibleto`, which is the Client Versions allowed to use this content. +Usually `7.0.729 and greater`. + +###### slots +Contains multiple `` elements that contain a URL to a `msnmenuitem` XML document. +For more information read [this section on `msnmenuitem` documents](#msnmenuitem-xml-document). + +The `` element supports one attribute named `id` +which is the identification number of this slot. + +The `` element supports a formatting string of `$PUID$`, +which is replaced with your Passport User ID in unprefixed lowercase hexadecimal. + +##### themepacks +Free Theme Pack advertisement data. Only contains ``. + +###### slots +Contains multiple `` elements that contain a URL to a `msnmenuitem` XML document. +For more information read [this section on `msnmenuitem` documents](#msnmenuitem-xml-document). + +The `` element supports one attribute named `id` +which is the identification number of this slot. + +The `` element supports a formatting string of `$PUID$`, +which is replaced with your Passport User ID in unprefixed lowercase hexadecimal. + +##### winks2 +Free Winks advertisement data. Only contains ``. + +Supports attribute `visibleto`, which is the Client Versions allowed to use this content. +Usually `7.0.729 and greater`. + +###### slots +Contains multiple `` elements that contain a URL to a `msnmenuitem` XML document. +For more information read [this section on `msnmenuitem` documents](#msnmenuitem-xml-document). + +The `` element supports one attribute named `id` +which is the identification number of this slot. + +The `` element supports a formatting string of `$PUID$`, +which is replaced with your Passport User ID in unprefixed lowercase hexadecimal. + +#### premium +Premium product advertisement configuration data. + +##### bkgrounds +Premium background advertisement configuration data. + +* ``: The Passport Site ID used for ``. +* ``: The product provider URL. +* ``: Contains multiple `` elements. + +###### slots +Contains multiple `` elements that contain a URL to a `msnmenuitem` XML document. +For more information read [this section on `msnmenuitem` documents](#msnmenuitem-xml-document). + +The `` element supports one attribute named `id` +which is the identification number of this slot. + +The `` element supports a formatting string of `$PUID$`, +which is replaced with your Passport User ID in unprefixed lowercase hexadecimal. + +##### emoticons2 +Premium emoticon pack advertisement configuration data. + +Supports attribute `visibleto`, which is the Client Versions allowed to use this content. +Usually `7.0.729 and greater`. + +* ``: The Passport Site ID used for ``. +* ``: The product provider URL. +* ``: Contains multiple `` elements. + +###### slots +Contains multiple `` elements that contain a URL to a `msnmenuitem` XML document. +For more information read [this section on `msnmenuitem` documents](#msnmenuitem-xml-document). + +The `` element supports one attribute named `id` +which is the identification number of this slot. + +The `` element supports a formatting string of `$PUID$`, +which is replaced with your Passport User ID in unprefixed lowercase hexadecimal. + +##### themepacks +Premium Theme Pack advertisement configuration data. + +* ``: The Passport Site ID used for ``. +* ``: The product provider URL. +* ``: Contains multiple `` elements. + +###### slots +Contains multiple `` elements that contain a URL to a `msnmenuitem` XML document. +For more information read [this section on `msnmenuitem` documents](#msnmenuitem-xml-document). + +The `` element supports one attribute named `id` +which is the identification number of this slot. + +The `` element supports a formatting string of `$PUID$`, +which is replaced with your Passport User ID in unprefixed lowercase hexadecimal. + +##### winks2 +Premium Wink advertisement configuration data. + +Supports attribute `visibleto`, which is the Client Versions allowed to use this content. +Usually `7.0.729 and greater`. + +* ``: The Passport Site ID used for ``. +* ``: The product provider URL. +* ``: Contains multiple `` elements. + +###### slots +Contains multiple `` elements that contain a URL to a `msnmenuitem` XML document. +For more information read [this section on `msnmenuitem` documents](#msnmenuitem-xml-document). + +The `` element supports one attribute named `id` +which is the identification number of this slot. + +The `` element supports a formatting string of `$PUID$`, +which is replaced with your Passport User ID in unprefixed lowercase hexadecimal. +which is the identification number of this slot. + +### EditorialConfig +This element contains a URL to a XML document that contains [editorial data](#editorial-document). + +### FlashUpgradeURL +This element contains a URL to a web page that tells you how to update Adobe/Macromedia Flash Player, +with the `$VERSION$` in the URL being replaced with the current version of the plugin. + +### MessengerBlogURL +This element contains a URL that specifies the official blog of the service. +Adds the "Open Messenger Blog" option to the Contact List's Tools menu. + +### MobileMessaging +This empty element has five attributes: +* `Mode`: Unknown. `RPPNew` works. +* `CrossSell`: Unknown. `1` works. +* `CharMax`: The maximum amount of characters that can be sent using this service. +* `OperatorPage`: The URL to the landing page of this service. +* `ValidRoutes`: A semi-colon delimited list of ISO 3166-1 alpha-2 codes that specify which + phone numbers this service is allowed to use. + +### MSNSearch +Controls the URLs used by search features. +* ``: The promotional page that opens when attempting a desktop search without the required software installed. +* ``: The image search service URL. +* ``: The search service URL for local services. +* ``: The news search service URL. +* ``: The search service URL for children's accounts. +* ``: The search service URL. +* ``: The search service URL used in the inline search feature. +* ``: The other search service URL used in the inline search feature. + +All `<...URL>` elements support two formatting strings: +* `$QUERY$`: The search query. +* `$FC$`: The format code. + +If the element is `` or ``, +the `$FORMAT$` formatting string is avaliable. + +### MsnTodayConfig +* ``: The Passport Site ID that `` uses. + Setting this to `0` disables authentication. +* ``: The URL to the daily news service. + +### 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). +* `SiteID`: The Passport Site ID that `URL` uses. + +### PremiumAV +This empty element has the attribute `Visibility`. `1` likely enables this feature. + +### 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. + +### TermsOfUse +* ``: The Passport Site ID that `` uses, + if this is `0`, no authentication is attempted. +* ``: The URL to the Messenger Service Terms of Use. + +### UPUX +This element contains many `` elements. + +#### Product +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` +* `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. + Can either be `medium` or `deep`. + +This element contains the following children: +* ``: The page that provides payment options for this product. +* ``: The page that provides information on purchasing content. +* ``: The page that provides the marketplace service. +* ``: The page that opens when a client uses the "Get this" feature. + +##### ...URL +These empty elements have three attributes: +* `LaunchWindowType`: If this is `IE`, open in the default browser, + otherwise the internal page viewer in the client. +* `SiteID`: The Passport Site ID for `URL`. +* `URL`: The URL to this service. If this element is ``, then + the formatting string `$CONTENTID$` is avaliable. + +### VoiceClip +This empty element has one attribute named `Hidden`, +If this is `1`, the feature is hidden. + +### WebWatchConfig +* ``: The Passport Site ID that `` uses. Unused, always `0`. +* ``: The URL for the unimplemented send function. +* ``: The Passport Site ID that `` uses. +* ``: The URL for the Web Watch Setup wizard. + +# Other Related documents + +## msnmenuitem XML Document +``` + + + http://.../.png + ... + http://... + + 0 + +``` + +Where `` contains: +* ``: The thumbnail for this product (50x50 PNG). +* ``: The display name for this product. +* ``: The URL to the marketplace page for this product. +* ``: The URL for the click tracking service. +* ``: The Passport Site ID used for `` (and ``?). + +If the item is for a `` product, `` is opened in the internal page browser. +If it is for a `` product instead, `` is sent to MessengerContentInstaller. (TODO: Does this want something else? Passing a .cab just results in failed to install.) + +## Editorial document +``` + + + True + 60 + +
+ ... + http://... +
+ ... + http://... + + ... + http://... + +
+
+``` + +Where `` specifies if this document should be re-downloaded +every time you log into the Messenger Service. + +Where `` specifies in minutes when this document should be automatically +re-downloaded. + +Where `` contains multiple `
` elements: +* ``: The display name of this article. +* `<url>`: The URL to this aricle. diff --git a/docs/services/sharingservice.md b/docs/services/sharingservice.md new file mode 100644 index 0000000..da19362 --- /dev/null +++ b/docs/services/sharingservice.md @@ -0,0 +1,33 @@ +# Introduction +The Contact Sharing Service (SharingService) is a SOAP (XML) Web Service. +Introduced with [MSNP13](../versions/msnp13.md). + +It manages the Messenger Service's Allow List (AL), Block List (BL), Reverse List (RL), and Pending List (PL) members. + +It's default HTTP URL is `http://byrdr.omega.contacts.msn.com/abservice/SharingService.asmx`. +It's default HTTPS URL is `https://byrdr.omega.contacts.msn.com/abservice/SharingService.asmx`. + +This service requires Passport authentication. + +Related: [Address Book Service](abservice.md) (for Forward List (PL) members). + +# Actions +*All actions listed have the prefix of +`http://www.msn.com/webservices/AddressBook/`.* + +* FindMembership (internal name: `Sharing.Pull.Membership`) +* AddMember (internal name: `Sharing.Push.Member.Add`) +* DeleteMember (internal name: `Sharing.Push.Member.Delete`) +* UpdateMember (internal name: `Sharing.Push.Member.Edit`) + +## Actions that we don't know much about +* AddService (internal name: `Sharing.Push.Service.Add`) +* UpdateService (internal name: `Sharing.Push.Service.Edit`) +* FindInverseService (internal name: `Sharing.Pull.InverseServices`) +* DeleteInverseService (internal name: `Sharing.Push.Document.Delete`) +* AcceptInvitation (internal name: `Sharing.Push.Invitation.Accept`) +* DeclineInvitation (internal name: `Sharing.Push.Invitation.Decline`) +* AddNamespace (internal name: `Sharing.Push.Namespace.Add`) +* DeleteNamespace (internal name: `Sharing.Push.Namespace.Delete`) + + diff --git a/docs/command-table.md b/docs/table_of_commands.md similarity index 98% rename from docs/command-table.md rename to docs/table_of_commands.md index 877ee5c..3a96bc0 100644 --- a/docs/command-table.md +++ b/docs/table_of_commands.md @@ -1,4 +1,4 @@ -# Command Table +# Table of Commands This is a list of all known MSNP commands and their originating version. @@ -35,7 +35,7 @@ This is a list of all known MSNP commands and their originating version. | [`QNG`](commands/qng.md) | N | N | Y | [MSNP2](versions/msnp2.md) | [MSNP9](versions/msnp9.md) (Added next seconds parameter) | | [`URL`](commands/url.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP3](versions/msnp3.md) (Added Passport Site ID support as parameter 3), removed `PASSWORD` service), [MSNP5](versions/msnp5.md) (Added `MOBILE` and `CHGMOB` services), [MSNP6](versions/msnp6.md) (Added `PROFILE`, `N2PACCOUNT` and `N2PFUND` services), [MSNP7](versions/msnp7.md) (Added `CHAT` service), [MSNP8](versions/msnp8.md) (Added `ADDRBOOK`, `ADVSEARCH` and `INTSEARCH` services) | | [`LSG`](commands/lsg.md) | N | Y | Y\*| [MSNP7](versions/msnp7.md) | [MSNP8](versions/msnp8.md) (Removed iterator and List Version parameters from SYN version), [MSNP10](versions/msnp10.md) (Removed unused parameter, and replaced Group IDs with Group GUIDs if `ABCHMigrated: 1`.) | -| [`ADG`](commands/adg.md) | N | Y | N | [MSNP7](versions/msnp7.md) | [MSNP10](versions/msnp10.md) (Removed unused parameter, and replaced Group IDs with Group GUIDs if `ABCHMigrated: 1`), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect?, use Address Book Service `ABCreateGroup` instead.) | +| [`ADG`](commands/adg.md) | N | Y | N | [MSNP7](versions/msnp7.md) | [MSNP10](versions/msnp10.md) (Removed unused parameter, and replaced Group IDs with Group GUIDs if `ABCHMigrated: 1`), [MSNP13](versions/msnp13.md) (Removed; automatic disconnect?, use [Address Book Service](services/abservice.md) `ABGroupAdd` instead.) | | [`ILN`](commands/iln.md) | N | N | Y | [MSNP2](versions/msnp2.md) | [MSNP8](versions/msnp8.md) (Added support for Client Capabilities), [MSNP9](versions/msnp9.md) (Added optional MSNObject parameter), [MSNP14](versions/msnp14.md) (Added Network ID parameter and optional Presence Icon URL parameter), [MSNP16](versions/msnp16.md) (Support for the Extended Client Capabilities, changing the original Client Capabilities parameter to now be delimited by a colon) | | [`NLN`](commands/nln.md) | N | N | Y | [MSNP2](versions/msnp2.md) | [MSNP8](versions/msnp8.md) (Added support for Client Capabilities), [MSNP9](versions/msnp9.md) (Added optional MSNObject parameter), [MSNP14](versions/msnp14.md) (Added Network ID parameter and optional Presence Icon URL parameter), [MSNP16](versions/msnp16.md) (Support for the Extended Client Capabilities, changing the original Client Capabilities parameter to now be delimited by a colon) | | [`REA`](commands/rea.md) | N | Y | N | [MSNP2](versions/msnp2.md) | [MSNP10](versions/msnp10.md) (Removed; automatic disconnect) | diff --git a/docs/versions/cvr0.md b/docs/versions/cvr0.md index 21daa4a..d7142f8 100644 --- a/docs/versions/cvr0.md +++ b/docs/versions/cvr0.md @@ -15,13 +15,16 @@ It introduces the commands: # Known changes (from Beta 2): * Changed [CVR](../commands/cvr.md) to [CVQ](../commands/cvq.md) -* CVQ: Added fallback URL to response (parameter 5) -* [[MSNP8](msnp8.md) and higher]: Added current principle address to request (parameter 8) +* [CVQ](../commands/cvq.md): Added fallback URL to response (parameter 5) +* Since [MSNP4](msnp4.md): Added an empty parameter that is meant to be the + client codebase identification parameter added in [CVR](../commands/cvr.md) (parameter 7) +* Since [MSNP8](msnp8.md): Fixed client codebase identification parameter (parameter 7) + to be no longer always empty, and added current user handle to request (parameter 8) # Client-server communication examples ## Older protocols -* [MSNP2](msnp2.md)-[MSNP7](msnp7.md), example using Client Version 1.0. +*Only in[MSNP2](msnp2.md) to [MSNP7](msnp7.md), example using Client Version 1.0.* ``` C: VER 1 MSNP2 CVR0 S: VER 1 CVR0 @@ -31,7 +34,7 @@ S: CVQ 2 5.0.0537 5.0.0537 1.0.0863 http://download.microsoft.com/download/msnme Server disconnects client. ## Newer protocols -* [MSNP8](msnp8.md) and higher, example using Client Version 6.1. +*Since [MSNP8](msnp8.md), example using Client Version 6.1.* ``` C: VER 1 MSNP10 MSNP9 CVR0 S: VER 1 CVR0 diff --git a/docs/versions/msnp10.md b/docs/versions/msnp10.md index a4f6198..cfe7675 100644 --- a/docs/versions/msnp10.md +++ b/docs/versions/msnp10.md @@ -34,12 +34,12 @@ The following commands were removed in this version: and follows the same time format as List Versions now do. * [LST](../commands/lst.md): GUID specified as `C=` parameter, group IDs are now GUIDs. * ADC, [REM](../commands/rem.md): uses GUIDs instead of contact emails if the list is the Forward List (FL), and same applies also for groups. - * [LSG](../commands/lsg.md), ADG: Uses GUIDs instead of IDs. + * [LSG](../commands/lsg.md), [ADG](../commands/adg.md): Uses GUIDs instead of IDs. * SBP: Uses the contact's GUID instead of the Contact Address. * All list version updating commands no longer return the current list version when used. The following commands are affected: * [GTC](../commands/gtc.md) * [BLP](../commands/blp.md) - * ADG + * [ADG](../commands/adg.md) * [BPR](../commands/bpr.md) * REG * RMG diff --git a/docs/versions/msnp11.md b/docs/versions/msnp11.md index 9e7c95b..7e0a03e 100644 --- a/docs/versions/msnp11.md +++ b/docs/versions/msnp11.md @@ -22,7 +22,7 @@ It introduces the notification service commands: of time in minutes the client should wait before reconnecting. * All `ABCHMigrated` changes are now the default - `ABCHMigrated: 0` is Undefined Behavour from now on. * Official Client: WebMessenger now canonically exists - Client Capability 512 is used for this. -* Official Client: Notifications (NOTs) with encoded `NotificationData` documents are supported for spaces. +* Official Client: Notifications (NOT commands) with encoded `NotificationData` documents are supported for spaces (blogs). * Official Client: Messenger Config requests now support regional arguments via SOAP. * Official Client: [OUT](../commands/out.md) SSD is actually implemented now. diff --git a/docs/versions/msnp12.md b/docs/versions/msnp12.md index 6430b85..9377a27 100644 --- a/docs/versions/msnp12.md +++ b/docs/versions/msnp12.md @@ -16,9 +16,10 @@ It introduces the notification service commands: (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. -* [LST](../commands/lst.md) has the Network ID after the list bits (on any list), but before the Group ID (if on 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: Dropped support for older operating systems, Now requires Windows XP or higher. +* Official Client: Now supports Voice Clips, which can be disabled in the [Messenger Config](../services/msgrconfig.md). # Client-server communication example *NOTE: This has been line-breaked. diff --git a/docs/versions/msnp3.md b/docs/versions/msnp3.md index 9c1c2bc..38737cc 100644 --- a/docs/versions/msnp3.md +++ b/docs/versions/msnp3.md @@ -24,12 +24,13 @@ It introduces the error codes: * [SND](../commands/snd.md): Added a target language parameter and a client library parameter, similar to the one in [CVR](../commands/cvr.md). * Initial profile: Added Passport intergration fields. -* Font information has been added to Switchboard MSGs. +* Font information has been added to Switchboard [MSG](../commands/msg.md) commands. * Multiple error-codes unimplemented in 1.x that were in the draft are now implemented in the Official Client. Examples include: 208, 215, 501, 604 (bizzarely enough), 715 and finally 913. * Non-protocol: Client can now use non-hotmail domains in relevant places. * Non-protocol: WebTV 2.5+ clients (example@webtv.net) can talk to other users (example@hotmail.com) -* Clear-Text Password (CTP) authentication method discontinued. +* Clear-Text Password (`CTP`) authentication method removed. Use `MD5` instead. + Applies to both [INF](../commands/inf.md) and USR. * Entire content of initial email notification changed from `text/x-msmsgsemailnotification` to `application/x-msmsgsinitialemailnotification`, the format is likely different. Now includes unread email count. [Examination needed] @@ -46,6 +47,7 @@ It introduces the error codes: * `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). # Client-server communication example ``` diff --git a/docs/versions/msnp4.md b/docs/versions/msnp4.md index 6a869eb..0364c3c 100644 --- a/docs/versions/msnp4.md +++ b/docs/versions/msnp4.md @@ -14,6 +14,7 @@ It was introduced officially in Client Version 2.1.1047. * [CVR](../commands/cvr.md), [SND](../commands/snd.md): Added a client codebase identification parameter. * [CVQ](../commands/cvq.md) has an empty parameter, meant to be the client codebase identification parameter, like [CVR](../commands/cvr.md) has, but is always empty. +* Official Client: Client Version 2.2.1053 re-enables the ability to invite people again. # Client-server communication example ``` diff --git a/docs/versions/msnp5.md b/docs/versions/msnp5.md index 1482ae5..aeef671 100644 --- a/docs/versions/msnp5.md +++ b/docs/versions/msnp5.md @@ -23,8 +23,8 @@ It introduces the notification service commands: * Official Client: Log in notifications are now handled by the newly introduced toast system. * Official Client: Introduced emoticons. * Official Client: Introduced File Transfer and Messenger-to-Messenger calling via invitations. -* Introduced first payload commands (SDC, PAG) to be sent to the switchboard from the client. -* Official Client: Error code 913 is no longer handled. It was last seen in Client Version 2.1. +* Introduced first payload commands (SDC, PAG) to be sent to the Notification Server from the client. +* Official Client: Error code 913 is no longer handled. It was last seen in Client Version 2.2. * Official Client: [FND](../commands/fnd.md) functionality changed slightly to say that Passport doesn't allow users to retrieve the e-mails assocated with the user's account, sending the user to a invitation screen with, with it ending in sending an SDC in the format of diff --git a/docs/versions/msnp6.md b/docs/versions/msnp6.md index 4d58533..81449b0 100644 --- a/docs/versions/msnp6.md +++ b/docs/versions/msnp6.md @@ -22,7 +22,7 @@ It introduces the notification service commands: * Client-server challenges were introduced. The format for the response is `MD5(challenge + clientSecret)` as a lowercase hex-string. * An example client secret is `Q1P7W2E4J9R8U3S5`, which is tied to `msmsgs@msnmsgr.com`. -* First protocol version added in a patch release (3.6.0025 and 3.6.0026 do not support MSNP6). +* First protocol version added in a patch release (Client Versions 3.6.0025 and 3.6.0026 do not support MSNP6). * Official Client: Added new [URL](../commands/url.md) services `PROFILE`, `N2PACCOUNT` and `N2PFUND`. # Client-server communication example diff --git a/docs/versions/msnp8.md b/docs/versions/msnp8.md index dd60763..ca4cee8 100644 --- a/docs/versions/msnp8.md +++ b/docs/versions/msnp8.md @@ -21,7 +21,7 @@ The following commands were removed in this version: * Introduced `TWN` authentication method, which uses Passport 1.4 over HTTPS. * Reworked SYN and related response commands (notably [LSG](../commands/lsg.md) and [LST](../commands/lst.md)) drastically: Iterators are gone, now total size of both groups and total contacts included in SYN response. - All transaction IDs and list versions removed from response commands (now treated as asynchronous commands). + All transaction IDs and list versions have been removed from response commands (now treated as asynchronous commands). Unset properties ([PRP](../commands/prp.md) commands) are now omitted. Hurray. * [CVR](../commands/cvr.md) request now has a new 8th parameter, which is the current user. This also applies to [CVQ](../commands/cvq.md) in [CVR0](cvr0.md). diff --git a/docs/versions/msnp9.md b/docs/versions/msnp9.md index f68a0f3..5652896 100644 --- a/docs/versions/msnp9.md +++ b/docs/versions/msnp9.md @@ -23,7 +23,7 @@ The following commands were removed in this version: Can respond with either [ACK](../commands/ack.md), error 282, or possibly any other error codes. * Official Client: Error 603 is handled again after being removed in Client Version 5.0. Error code 711 is no longer handled after being implemented in Client Version 5.0. -* Official Client: Supports the Messenger Config XML service, replacing `svcs.microsoft.com`. +* Official Client: Supports the [Messenger Config](../services/msgrconfig.md) XML service, replacing `svcs.microsoft.com`. # Client-server communication example *NOTE: This has been line-breaked.