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
This commit is contained in:
Declan B. 2024-10-20 12:52:06 +01:00
parent f267b61dde
commit 6f3d1dbb85
Signed by: yellows111
SSH key fingerprint: SHA256:ynw5IJBU1pb7fZfHgLihKu9gHHA8FVpixZbB6IEB3r8
21 changed files with 704 additions and 38 deletions

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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 <https://git.kevinthe.horse/yellows111/msnp-wiki>.

View file

@ -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`)

575
docs/services/msgrconfig.md Normal file
View file

@ -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"`
```
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetClientConfig xmlns='http://www.msn.com/webservices/Messenger/Client'>
<clientinfo>
<Country>US</Country>
<CLCID>0809</CLCID>
<PLCID>0409</PLCID>
<GeoID>242</GeoID>
</clientinfo>
</GetClientConfig>
</soap:Body>
</soap:Envelope>
```
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.
#### 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.*
```
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetClientConfigResponse xmlns="http://www.msn.com/webservices/Messenger/Client">
<GetClientConfigResult><![CDATA[<MsgrConfig>...</MsgrConfig>]]></GetClientConfigResult>
</GetClientConfigResponse>
</soap:Body>
</soap:Envelope>
```
Where `<GetClientConfigResponse>` contains a `<GetClientConfigResult>`.
Where `GetClientConfigResult` always contains a Character Data block containing a `<MsgrConfig>` element.
Where `<MsgrConfig>` (in the CDATA) is the [Configuration Document](#the-configuration-document).
#### As a XML document
*This only applies if you use query parameters.*
```
<?xml version="1.0" encoding="utf-8" ?>
<MsgrConfig>
...
</MsgrConfig>
```
Where `<MsgrConfig>` (everything but the declaration) is the [Configuration Document](#the-configuration-document).
# The Configuration Document
`<MsgrConfig>`: 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.
* `<URL>`: The URL to the invitation service.
* `<SiteID>`: The Passport Site ID for the invitation service.
### Config
Contains options for the configuration data itself.
* `<ExpiresInDays>`: The amount of days as a number before this expires
### DisablePhoneDialer
If set to 1, the Phone Dialer is disabled.
### Logitech
* `<PremiumAVConfigServer>`: A URL to the premium Spotlife server (`mplocate`).
* `<PreRollEnabled>`: Are pre-roll advertisements enabled for this feature (`1` or `0`)?
* `<WebcamConfigServer>` 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.
* `<Enabled>`: If set to 1, the relay is enabled.
* `<MaxCallLength>`: The maximum time (in unknown units) before the call is ended.
* `<RegistrationDomain>`: Unknown.
* `<RelayDNS>`: Contains the Fully Qualified Domain Name (FQDN) of the relay service.
* `<TimeoutToFallback>`: The amount of milliseconds before falling back.
If you know what the fallback is, please contact me.
### TrustedDomains
Contains many `<domain>` 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 `<Feature>` elements.
#### Feature
This element only contains `<Entry>` 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 `<tab>` elements.
#### tab
This element can be repeated multiple times in the parent element.
* `<image>`: 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.
* `<name>`: The name of this tab that is displayed in the Tab Options dialog.
* `<type>`: 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.
* `<contenturl>`: A URL to the page that is displayed in the tab.
* `<hiturl>`: A URL for a tracking pixel that is requested when this tab is clicked on.
* `<siteid>`: The Passport Site ID of this tab.
Any value except `0` will attempt to log into Passport automatically when the tab is shown.
* `<tabid>`: Unknown what this is used for. If you know, please contact me.
* `<notificationid>`: The ID used for opening the alert content in the relevant tab.
* `<hidden>`: 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?
* `<oemdisplaylimit>`: Amount of OEM-defined tabs allowed to be displayed?
* `<oemtotallimit>`: Amount of OEM-defined tabs allowed to be loaded
## AbchCfg
Replaces the `abch_config.asp` service on `svcs.microsoft.com`.
### abchconfig
* `<url>`: The URL to the [Address Book Service](abservice.md).
## AdMainConfig
* `<AdDownloadTimeInMinutes>`: The amount of minutes until downloading the next banner image.
* `<AdMainCfg>`: 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
* `<AdBanner20URL>`: The URL to the advertisement service that handles banner advertisements.
* `<TextAdRefresh>`: Amount of minutes before downloading a new text advertisement.
* `<TextAdServer>`: The URL to the advertisement service that handles text advertisements.
### AppDirConfig
* `<AppDirPageURL>`: The URL to the page that is displayed that lets you open
embedded applications from the Application Directory Service.
* `<AppDirSeviceURL>`: [sic], The URL to the Application Directory Sevice, I mean, Service.
* `<AppDirVersionURL>`: 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.
* `<AddToMySpaceSiteId>`: The Passport Site ID used in `<AddToMySpaceUrl>`.
* `<AddToMySpaceUrl`>: The URL used for the "Add to my blog" service.
* `<ContactCardDisabled>`: Is the Contact Card Service disabled? (`true` or `false`)
* `<CreateSpaceSiteId>`: The Passport Site ID used in `<CreateSpaceUrl>`.
* `<CreateSpaceUrl>`: The URL used for the "Create a blog" service.
* `<GetItemVerUrl>`: The URL to the storage service that provides the `GetItemVersion` SOAP action.
* `<GetXmlFeedUrl>`: The URL to the Contact Card Service.
* `<MySpaceSiteId>`: The Passport Site ID used in `<MySpaceUrl>`.
* `<MySpaceUrl>`: The URL used for the "Visit my blog" service.
* `<SpaceBaseSiteId>`: The Passport Site ID used in `<SpaceBaseUrl>`.
* `<SpaceBaseUrl>`: The URL used for the blogging service.
* `<SpaceIntegrationEnabled>`: Is this feature enabled? (`true` or `false`).
### DynamicContent
Contains product advertisement configuration data.
#### merchant
Can contain:
* `<bkgrounds>`
* `<emoticons2>`
* `<themepacks>`
* `<winks2>`
##### bkgrounds
Free Background advertisement data. Only contains `<slots>`.
###### slots
Contains multiple `<URL>` elements that contain a URL to a `msnmenuitem` XML document.
For more information read [this section on `msnmenuitem` documents](#msnmenuitem-xml-document).
The `<URL>` element supports one attribute named `id`
which is the identification number of this slot.
The `<URL>` 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 `<slots>`.
Supports attribute `visibleto`, which is the Client Versions allowed to use this content.
Usually `7.0.729 and greater`.
###### slots
Contains multiple `<URL>` elements that contain a URL to a `msnmenuitem` XML document.
For more information read [this section on `msnmenuitem` documents](#msnmenuitem-xml-document).
The `<URL>` element supports one attribute named `id`
which is the identification number of this slot.
The `<URL>` 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>`.
###### slots
Contains multiple `<URL>` elements that contain a URL to a `msnmenuitem` XML document.
For more information read [this section on `msnmenuitem` documents](#msnmenuitem-xml-document).
The `<URL>` element supports one attribute named `id`
which is the identification number of this slot.
The `<URL>` 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 `<slots>`.
Supports attribute `visibleto`, which is the Client Versions allowed to use this content.
Usually `7.0.729 and greater`.
###### slots
Contains multiple `<URL>` elements that contain a URL to a `msnmenuitem` XML document.
For more information read [this section on `msnmenuitem` documents](#msnmenuitem-xml-document).
The `<URL>` element supports one attribute named `id`
which is the identification number of this slot.
The `<URL>` 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.
* `<providersiteid>`: The Passport Site ID used for `<providerurl>`.
* `<providerurl>`: The product provider URL.
* `<slots>`: Contains multiple `<URL>` elements.
###### slots
Contains multiple `<URL>` elements that contain a URL to a `msnmenuitem` XML document.
For more information read [this section on `msnmenuitem` documents](#msnmenuitem-xml-document).
The `<URL>` element supports one attribute named `id`
which is the identification number of this slot.
The `<URL>` 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`.
* `<providersiteid>`: The Passport Site ID used for `<providerurl>`.
* `<providerurl>`: The product provider URL.
* `<slots>`: Contains multiple `<URL>` elements.
###### slots
Contains multiple `<URL>` elements that contain a URL to a `msnmenuitem` XML document.
For more information read [this section on `msnmenuitem` documents](#msnmenuitem-xml-document).
The `<URL>` element supports one attribute named `id`
which is the identification number of this slot.
The `<URL>` 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.
* `<providersiteid>`: The Passport Site ID used for `<providerurl>`.
* `<providerurl>`: The product provider URL.
* `<slots>`: Contains multiple `<URL>` elements.
###### slots
Contains multiple `<URL>` elements that contain a URL to a `msnmenuitem` XML document.
For more information read [this section on `msnmenuitem` documents](#msnmenuitem-xml-document).
The `<URL>` element supports one attribute named `id`
which is the identification number of this slot.
The `<URL>` 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`.
* `<providersiteid>`: The Passport Site ID used for `<providerurl>`.
* `<providerurl>`: The product provider URL.
* `<slots>`: Contains multiple `<URL>` elements.
###### slots
Contains multiple `<URL>` elements that contain a URL to a `msnmenuitem` XML document.
For more information read [this section on `msnmenuitem` documents](#msnmenuitem-xml-document).
The `<URL>` element supports one attribute named `id`
which is the identification number of this slot.
The `<URL>` 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.
* `<DesktopInstallURL>`: The promotional page that opens when attempting a desktop search without the required software installed.
* `<ImagesURL>`: The image search service URL.
* `<NearMeURL>`: The search service URL for local services.
* `<NewsURL>`: The news search service URL.
* `<SearchKidsURL>`: The search service URL for children's accounts.
* `<SearchURL>`: The search service URL.
* `<SharedSearchURL>`: The search service URL used in the inline search feature.
* `<SharedSearchURL2>`: 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 `<SharedSearchURL>` or `<SharedSearchURL2>`,
the `$FORMAT$` formatting string is avaliable.
### MsnTodayConfig
* `<MsnTodaySiteID>`: The Passport Site ID that `<MsnTodayURL>` uses.
Setting this to `0` disables authentication.
* `<MsnTodayURL>`: 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
* `<ViewProfileURL>`: 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
* `<TermsOfUseSID>`: The Passport Site ID that `<TermsOfUseURL>` uses,
if this is `0`, no authentication is attempted.
* `<TermsOfUseURL>`: The URL to the Messenger Service Terms of Use.
### UPUX
This element contains many `<Product>` 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:
* `<BillingURL>`: The page that provides payment options for this product.
* `<BillingHelpURL>`: The page that provides information on purchasing content.
* `<ProductShopURL>`: The page that provides the marketplace service.
* `<BasePurchaseURL>`: 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 `<BasePurchaseURL>`, 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
* `<SendSiteID>`: The Passport Site ID that `<SendURL>` uses. Unused, always `0`.
* `<SendURL>`: The URL for the unimplemented send function.
* `<SetupSiteID>`: The Passport Site ID that `<SetupURL>` uses.
* `<SetupURL>`: The URL for the Web Watch Setup wizard.
# Other Related documents
## msnmenuitem XML Document
```
<?xml version="1.0" encoding="UTF-8"?>
<msnmenuitem version="1.0">
<thumburl>http://.../.png</thumburl>
<displaytext>...</displaytext>
<clickurl>http://...</clickurl>
<clicktrackurl></clicktrackurl>
<siteid>0</siteid>
</msnmenuitem>
```
Where `<msnmenudata>` contains:
* `<thumburl>`: The thumbnail for this product (50x50 PNG).
* `<displaytext>`: The display name for this product.
* `<clickurl>`: The URL to the marketplace page for this product.
* `<clicktrackurl>`: The URL for the click tracking service.
* `<siteid>`: The Passport Site ID used for `<clickurl>` (and `<clicktrackurl>`?).
If the item is for a `<premium>` product, `<clickurl>` is opened in the internal page browser.
If it is for a `<merchant>` product instead, `<clickurl>` is sent to MessengerContentInstaller. (TODO: Does this want something else? Passing a .cab just results in failed to install.)
## Editorial document
```
<?xml version="1.0" encoding="utf-8" ?>
<msn-data>
<RefreshLogin>True</RefreshLogin>
<RefreshInterval>60</RefreshInterval>
<article-group>
<article>
<title>...</title>
<url>http://...</url>
</article>
<title>...</title>
<url>http://...</url>
</article>
<title>...</title>
<url>http://...</url>
</article>
</article-group>
</msn-data>
```
Where `<RefreshLogin>` specifies if this document should be re-downloaded
every time you log into the Messenger Service.
Where `<RefreshInterval>` specifies in minutes when this document should be automatically
re-downloaded.
Where `<article-group>` contains multiple `<article>` elements:
* `<title>`: The display name of this article.
* `<url>`: The URL to this aricle.

View file

@ -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`)

View file

@ -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) |

View file

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

View file

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

View file

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

View file

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

View file

@ -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
```

View file

@ -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
```

View file

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

View file

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

View file

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

View file

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