# Table of contents:
- Introduction
- Actions
- The Configuration Document
- Simple
- TabConfig
- AbchCfg
- AdMainConfig
- AdPhoneConfig
- LocalizedConfig
- AdMainConfig
- AppDirConfig
- AVPrerollAd
- AVPrerollAd2
- Beta
- BuyWebcamLink
- Contacts
- ContactCard
- DynamicContent
- EditorialConfig
- FederatedMobileMessaging
- FlashUpgradeURL
- FSS
- GLinkMarket
- Highlight
- IntroConfig
- LiveFolders
- Marketplace
- MessengerBlogURL
- MobileMessaging
- MSNSearch
- MsnTodayConfig
- MusicIntegration
- OneCare
- PE
- PremiumAV
- PSTNOut
- PublicFederated
- ReportAbuse
- RL
- SDrive
- SocialToast
- SQMNoOpt
- TabConfig
- TermsOfUse
- ThreeDegrees
- UPUX
- VoiceClip
- VoiceVideo
- WebWatchConfig
- AvatarData
- Circles
- CPPMarket
- DynamicDisplayPics
- Products
- Examples
# Introduction
The Messenger Config service (MsgrConfig) is a SOAP (XML) and HTTP Web Service. Introduced with MSNP9.
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.
NOTE: Not all configuration options apply to all Client Versions, even those that seem like they would!
# Actions
# GetClientConfig
# Client/Request
There are two ways of requesting the GetClientConfig action.
One is by using a SOAP (XML) request, and the other is by URL parameters.
# As a SOAP Action / POST request
POST /Config/MsgrConfig.asmx HTTP/1.1
SOAPAction: "http://www.msn.com/webservices/Messenger/Client/GetClientConfig"
Cache-Control: no-cache
Content-Type: text/xml; charset=utf-8
Content-Length: 489
<?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 hexadecimal nybbles.
Where <PLCID> is the client binary's language code in hexadecimal nybbles.
Where <GeoID> is the system's geographic location in decimal.
# As query parameters
NOTE: This request is exploded for visibility and formatting reasons. Newlines aren't permitted in the HTTP request line.
GET /Config/MsgrConfig.asmx
?op=GetClientConfig
&Country=US
&CLCID=0809
&PLCID=0409
&GeoID=242
&ver=8.5.1302
HTTP/1.1
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 hexadecimal nybbles.
Where PLCID is the client binary's language code in hexadecimal nybbles.
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.
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: 467
<?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> (inside the CDATA) is the Configuration Document.
# As a XML document
This only applies if you use query parameters.
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: 70
<?xml version="1.0" encoding="utf-8" ?>
<MsgrConfig>
...
</MsgrConfig>
Where <MsgrConfig> (everything but the declaration) is the Configuration Document.
# The Configuration Document
<MsgrConfig>, the main element, contains six children:
<Simple>: Described below.<TabConfig>: Described below.<AbchCfg>: Described below.<AdMainConfig>: Described below.<AdPhoneConfig>: The URL to the advertisement service. Loaded as a Advertisement Response document. Used for the phone dialer.<LocalizedConfig>: Described below.
This element contains multiple children.
Contains various generic configuration options.
# BetaThis element only contains the <Invite> element.
This element has two children:
<URL>: The URL to the invitation service page.<SiteID>: The Passport Site ID for the<URL>.
This element only has one child:
<ExpiresInDays>: A numerical value of days before downloading a new Configuration Document.
This element has nine children:
<ObjectStore>: Described below.<TCPBridge>: Described below.<UDPBridge>: Described below.<ReceiveBlobTimeout>: A number of milliseconds (or seconds?) before timing out a P2P transaction.<SBBridge>: Described below.<SLCACertExpireDurationSeconds>: A number of seconds before the SLCA (TODO: What is this again?) cert expires.<NATTraversal>: Described below.<DirectBridge>: Described below.<TURNBridge>: Described below.
This element has three children:
<DisableCache>: (TODO: This reads a version triplet, does it disable the object store on some versions of the client?)<DirectConnect>: Described below.<SendDelay>: A numerical value of seconds (?) before sending a P2P object (?).
This element has only one attribute:
Enabled: If this attribute is set to1, direct connections are enabled.
This element has only one child:
<ChunkSize>: A numerical value of bytes that may be sent in a chunk to a direct TCP connection.
This element has six children:
<ChunkSize>: A numerical value of bytes that may be sent in a chunk to a direct UDP connection.<RetryInterval>: A numerical value of milliseconds (?) before attempting to send data again.<KeepaliveInterval>: A numerical value of milliseconds (?) before sending a heartbeat packet while waiting for a chunk.<ConnectionTimeout>: A numerical value of milliseconds (?) before giving up establishing the connection.<MaxRetransmits>: A numerical value of times a chunk can be sent.<MaxKeepalives>: A numerical value of times a heartbeat can be sent without a chunk.
This element is the numerical value of milliseconds (or seconds?) before timing out a P2P transaction.
# SBBridgeThis element has three children:
<MaxOutstandingSends>: A numerical value of times chunks can be sent before waiting for a response.<TimeoutInterval>: A numerical value of milliseconds (?) before a chunk is believed to have failed to send.<TimerPeriod>: A numerical value of milliseconds (?) before sending another chunk.
This element has two children:
ConnectionTimeout: A numerical value of milliseconds (?) before giving up establishing the connection.MaxListenAddrUpdate: A numerical value that sets the maximum amount of times the listen address can be updated.
This element only has one child:
TimeoutToSetupIndirect: A numerical value of milliseconds (?) that sets the time before falling back to an indirect connection.
This element has three children:
MaxTurnFailures: A numerical value of the amount of times the TURN bridge can fail before giving up.FlowControlInterval: A numerical value of milliseconds (?) of a timer to attempt to perform flow control.CustomMagicBase: A numerical value that sets the magic number of an unknown feature.
This element, if set to 1, disables the Phone Dialer feature.
This element if set to true, allows GetItemVersion to be called on unknown users.
This element has three children:
<PremiumAVConfigServer>: A URL to the premium Spotlife server.<PreRollEnabled>: Are pre-roll advertisements enabled for this feature? (1or0).<WebcamConfigServer>A URL to the non-premium Spotlife server.
This element has three attributes:
MajorVersion: A numerical value that sets the minimum major version.MinorVersion: A numerical value that sets the minimum minor version.BuildNumber: A numerical value that sets the minimum build number.
This element is a URL to the advertisement service.
This element supports only one attribute:
Tracking: This attribute is a URL to an advertising service. Used for tracking downloadable content installations.
The formatting string%PACKID%is replaced with the downloadable content's package ID.
This element is a URL to a tracking service.
This element supports a formatting string using the FormatMessage syntax as %1.
This element has five children:
<RegistrationDomain>: A IPv4 address that allows the registration of relayable provisions.<RelayDNS>: The fully qualified domain name of the<RegistrationDomain>.<Enabled>: If this element is set to1, using the relay is enabled.<MaxCallLength>: A numerical value of milliseconds (?) a relayed call may last. Set to0for unlimited time.<TimeoutToFallback>: A numerical value of milliseconds before aSIP INVITEfails. Defaults to7000.
This element has two children:
<Client>: Described below.<Server>: Described below.
This element has six attributes:
ZombieServerDetectDelay: A numerical value in seconds (?).ZombieServerDetectInterval: A numerical value in seconds (?).ZombieServerDetectResumeDelay: A numerical value in seconds (?).ZombieServerDetectDelayW4: A numerical value in seconds (?), for Wave 4 clients.ZombieServerDetectIntervalW4: A numerical value in seconds (?), for Wave 4 clients.ZombieServerDetectResumeDelayW4: A numerical value in seconds (?), for Wave 4 clients.
This element has eight attributes:
ZombieServerDetectDelay: A numerical value in seconds (?).ZombieServerDetectResumeDelay: A numerical value in seconds (?).ZombieServerDetectConnectDelay: A numerical value in seconds (?).ZombieServerDetectDelay: A numerical value in seconds (?).ZombieServerDetectResumeDelayW4: A numerical value in seconds (?), for Wave 4 clients.ZombieServerDetectConnectDelayW4: A numerical value in seconds (?), for Wave 4 clients.ZombieServerDetectLongDelayW4: A numerical value in seconds (?), for Wave 4 clients.ZombieServerDetectLongDelayW4: A numerical value in seconds (?), for Wave 4 clients.
This element contains any amount of <domain> elements.
This element only supports one attribute:
name: The fully qualified domain name to trust interacting with the client.
This element contains any amount of <Feature> elements.
This element has two attributes:
type: What feature to filterHRESULTs in:0: Login1: Unknown?2: MapFile3: P2P4: Unknown?5: VoiceVideo
name: The description of thetype.
This element contains any amount of <Entry> elements.
This element has two attributes:
hr: TheHRESULTto filter, in prefixed hexadecimal, or*to select all unfilteredHRESULTs.action: The action to perform:0: Unknown1: Unknown2: Unknown3: Unknown4: Unknown5: Unknown
This element contains one or more <Device> elements.
This element has two attributes:
VID: The USB Vendor ID of the device.PID: The USB Product ID of the device.
This element has two children:
<Auth>: Described below.<Log>: Described below.
This element has six children:
<Target>: The authentication target.<Policy>: The Passport authentication policy for the voice relay.<Lifetime>: A numerical value that denotes how long an authentication ticket should last.<TargetRPS>: The authentication target. Supports RPS authentication/<PolicyRPS>: The Passport RPS authentication policy for the voice relay.<LifetimeRPS>: A numerical value that denotes how long an authentication ticket should last when using RPS authentication.
This element only has one attribute:
PeerLogDisable: If this attribute is1, logging peers from the voice relay is disabled.
This element has fourteen attributes:
<General>: The URL that provides the circle's homepage.<General-SiteId>: The Passport Site ID for<General>.<Files>: The URL that provides the circle's shared storage.<Files-SiteId>: The Passport Site ID for<Files>.<Photos>: The URL that provides the circle's image library.<Photos-SiteId>: The Passport Site ID for<Photos>.<Disc>: The URL that provides the circle's discussion board.<Disc-SiteId>: The Passport Site ID for<Disc>.<Management>: The URL that provides the circle's options.<Management-SiteId>: The Passport Site ID for<Management>.<Membership>: The URL that provides the circle's membership options.<Membership-SiteId>: The Passport Site ID for<Membership>.<Leave>: The URL that provides the option to leave a circle.<Leave-SiteId>: The Passport Site ID for<Leave>.
All children that do not end with -SiteId support a formatting string of $CIRCLECID$, which is replaced with the circle's Common ID.
This element only has one child:
<SettingsPage>: Described below.
This element has two attributes:
URL: The URL that provides the configuration options for anonymous instant messaging.SiteID: The Passport Site ID forURL.
This element has five children:
<SBIdle>: A numerical value in milliseconds that sets the idle timeout on Switchboard sessions.<UserTileDelayInterval>: A numerical value in seconds between0and86400(default of600) that specifies how long the client should wait before attempting to download a contact's display picture.<SBIdleMobile>: A numerical value in milliseconds that sets the idle timeout on Switchboard sessions for mobile contacts.<NSPoll>: Described below.<SBPoll>: Described below.
This element has two attributes:
Idle: A numerical value in milliseconds that sets the HTTP polling rate for Notification Servers while idle.Norm: A numerical value in milliseconds that sets the HTTP polling rate for Notification Servers when actively using the client.
This element has two attributes:
Norm: A numerical value in milliseconds that sets the HTTP polling rate for Switchboards when actively using the client.Logon: A numerical value in milliseconds that sets the HTTP polling rate for Switchboards during logging in.
This element, if set to true, disables the 10053 error handler.
This element contains two children:
<msntabsettings>: Described below.<msntabdata>: Described below.
Replaces the tabs.asp service on svcs.microsoft.com.
This element contains two children:
<oemdisplaylimit>: Sets the total number of tabs that can be displayed from the OEM's tab configuration.<oemtotallimit>: Sets the total number of tabs that can be defined by the OEM's tab configuration.
This element may be unused, considering Client Version 6.0 does not download OEM tabs,
however there exists TestTabServer in the registry which seems to set the same flag the OEM tab downloader does.
(TODO: Do these values still apply if TestTabServer is set to anything?)
This element contains any amount of <tab> elements.
This element has eleven children:
<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 financial 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.
<hiturl>: A URL for a tracking pixel that is requested when this tab is clicked on.<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 tohotmailwill hide the tab automatically.
Setting this toalertsmakes the "View Alerts History" button go to this tab.<tooltip>: The tooltip (description) of the tab.<contenturl>: A URL to the page that is displayed in the tab.<siteid>: The Passport Site ID of this tab.
Any value except0will attempt to log into Passport automatically when the tab is shown.<tabid>: Unknown. Possibly used for some internal lookup functions or a go-to thing?<policy>: Unknown. Possibly the Passport Authentication policy to use?<notificationid>: The ID used for opening the alert content in the relevant tab.<hidden>: If set to1,trueoryes, this tab does not appear in the tab list.
This element contains only one child:
<abchconfig>: The actual config. Described below.
Replaces the abch_config.asp service on svcs.microsoft.com.
This element contains three children:
<url>: The HTTP URL to the Address Book Service.<refresh>: Unknown. Usually0.<percent>: Unknown. Usually0.0.
This element contains two children:
<AdDownloadTimeInMinutes>: The amount of minutes until downloading the next banner image.<AdMainCfg>: The URL to the advertisement service. Loaded as a Advertisement Response document. Used for the main window. If$PUID$is included in the URL, it is replaced with the user's Passport Unique ID formatted as 16 hexadecimal nybbles.
Replaces the ads.asp and adxml_main.asp service on svcs.microsoft.com.
This element is the URL to the advertisement service. Loaded as a Advertisement Response document.
Used for the phone dialer.
If $PUID$ is included in the URL, it is replaced with the user's Passport Unique ID formatted as 16 hexadecimal nybbles.
Replaces the adxml_phone.asp service on svcs.microsoft.com.
This element contains multiple elements.
This element has two attributes:
Market: The ISO 639-1 language code for this Configuration Document.GLinkMarket: Unused.
Contains a large chunk of options that may vary wildly between locales.
# AdMainConfigThis element has six children:
<AdBanner20URL>: Described below.<TextAdServer>: The URL to the advertisement service that handles text advertisements.<TextAdRefresh>: A numerical value of minutes before downloading a new ad from the<TextAdServer>.<TextAdServerBaseURL>: The base URL to the advertisement service that handles text advertisements.
This element supports a formatting string of$PAGEGROUP$.<StdAd>: Described below.<PageGroups>: Unknown.
This element is the URL to the advertisement service that handles banner advertisements.
If $PUID$ is included in the URL, it is replaced with the user's Passport Unique ID formatted as 16 hexadecimal nybbles.
This element has only one attribute:
Refresh: The number of minutes before downloading a new ad from the<AdBanner20URL>.
This element has only one child:
<VideoFeeds>: Described below.
This element has x attributes:
VideoVisible: A numerical value of seconds (up to 2147484) that the video slideshow is shown for.VideoDldIntvl: A numerical value of seconds (up to 2147484) before attempting to download another video.AdVisible: A numerical value of seconds (up to 2147484) that banner advertisements are shown for.
This element supports two attributes:
FeedsListURL: A URL to a RSS feed with links to other feeds.
For a full specification of RSS, please read https://www.rssboard.org/rss-specification.IsRAD: If this attribute istrue, any$PUID$in theFeedsListURLis replaced with the user's Passport Unique ID formatted as 16 hexadecimal nybbles.
This root element only has one child:
<channel>: Described below.
This element has only one child:
<ttl>: A numerical value of minutes before downloading theFeedsListURLfrom<VideoFeeds>again.
This element also contains one or more <item> elements.
This element has only one child:
<link>: A URL to a RSS feed with links to videos.
This root element only has one child:
<channel>: Described below.
This element has three children:
<title>: The display name of this feed.<description>: A description of this feed. (Unused?)<ttl>: A numerical value of minutes (default of 10) before downloading this feed again.
This element also contains one or more <item> elements.
This element has five children:
<title>: The title of this video.<link>: A URL to the video.<description>: A description of this video.<guid>: A unique identifier for this video.<enclosure>: Described below.
This element only has one attribute:
url: The URL to a thumbnail for the video.
This element has five children:
<AppDirPageURL>: The URL to the page that is displayed that lets you open embedded applications from the Application Directory Service.<AppDirSeviceURL>: The URL to the Application Directory Service.<AppDirVersionURL>: The URL to the Application Directory Service's version endpoint.<GamesBrowserURL>: The URL to the Games Browser page.<Wave4>: Described below.
This element contains the URL to the Games Browser page, and has only one attribute:
SiteID: The Passport Site ID to use for the URL.
This element has four attributes:
IntroLength: A numerical value in milliseconds of how long the introduction animation should last.FetchTimeout: A numerical value in milliseconds of how long the client should wait to download an advertisement before giving up.MinAdLength: A numerical value in milliseconds of the minimum length a pre-roll advertisement should last.URL: The URL to the advertisement service.
This element has four attributes:
IntroLength: A numerical value in milliseconds of how long the introduction animation should last.FetchTimeout: A numerical value in milliseconds of how long the client should wait to download an advertisement before giving up.MinAdLength: A numerical value in milliseconds of the minimum length a pre-roll advertisement should last.URL: The URL to the advertisement service.
This element only contains the <Invite> element.
This element has only one attribute:
URL: A URL to a hardware store to buy a webcam.
This element has two children:
<URL>: Unused. Would be the URL to the invitation service page.<SiteID>: Unused. Would be the Passport Site ID for the<URL>.
This element has eight children:
<ABPendingRequests>: Described below.<EditMyLiveContactProfile>: Described below.<EditMyProfile>: Described below.<BuddysSocialNetwork>: Described below.<Marketplace>: Described below.<MessengerInvite>: Described below.<Profile>: Described below.<PeopleSearch>: Described below.<Import>: Described below.<Export>: Described below.<SocialNetwork>: Described below.<SNInvites>: Described below.<ViewPhotosWLPersonURL>: Described below.<ViewMapEnabled>: Unused? Is meant to enable a feature iftrue.
This element has six children:
<url>: A URL to the pending requests page.<urlcid>: A URL to the pending requests page.
Has a formatting string of%1that supports theFormatMessagemodifiers.<SiteID>: The Passport Site ID to use for<url>or<urlcid>.<height>: A numerical value of how many pixels wide the window should be for this feature.<width>: A numerical value of how many pixels long the window should be for this feature.<IncludeSNRequests>: If this istrue, social network requests use<urlcid>.
This element has two children:
<url>: A URL to edit your Live Contacts profile.<SiteID>: The Passport Site ID to use for<url>.
This element has two children:
<url>: A URL to edit your main profile.<SiteID>: The Passport Site ID to use for<url>.
This element has four children:
<url>: A URL to view a user's social network via their Common ID.
This element supports a formatting string of%1, which is replaced by the Common ID of the user that has the network you want to view.<SiteID>: The Passport Site ID to use for<url>.<height>: A numerical value of how many pixels wide the window should be for this feature.<width>: A numerical value of how many pixels long the window should be for this feature.
This element has two children:
<url>: A URL to a online store. (Is this used?)<SiteID>: The Passport Site ID to use for<url>.
This element has three children:
<url>: A URL to the social network invites page that takes a user handle as a parameter.
This element supports a formatting string of%1, which is replaced with your Common ID, and%2, which is replaced with the user handle you want to send an invite to.<urlcid>: A URL to the social network invites page that takes a Common ID as a parameter.
This element supports a formatting string of%1, which is replaced with your Common ID, and%2, which is replaced with the Common ID you want to send an invite to.<SiteID>: The Passport Site ID to use for<url>or `.
This element has four children:
<url>: A URL to a profile page that takes a user handle as a parameter.
This element supports a formatting string of%ls, which is replaced by the user handle of the profile you want to view.<urlcid>: A URL to a profile page that takes a Common ID as a parameter.
This element supports a formatting string of%ls, which is replaced by the Common ID of the profile you want to view.<urlcid2>: A URL to the profile page of a Common ID. Has a formatting string of%1that supports theFormatMessagemodifiers which is replaced by the Common ID of the profile you want to view.<SiteID>: The Passport Site ID to use for<url>or `.
This element has two children:
<url>: A URL to the people searching service.<SiteID>: The Passport Site ID to use for<url>.
This element has two children:
<url>: A URL to the contact import service. Has a formatting string of%1that supports theFormatMessagemodifiers which is replaced by the your Common ID.<SiteID>: The Passport Site ID to use for<url>.
This element has two children:
<url>: A URL to the contact export service.<SiteID>: The Passport Site ID to use for<url>.
This element has four children:
<url>: A URL to change your social network options.<SiteID>: The Passport Site ID to use for<url>.<height>: A numerical value of how many pixels wide the window should be for this feature.<width>: A numerical value of how many pixels long the window should be for this feature.
This element has three children:
<url>: A URL to the social network invites page that takes a user handle as a parameter.
This element supports a formatting string of%1, which is replaced with your Common ID, and%2, which is replaced with the invitee's user handle.<urlcid>: A URL to the social network invites page that takes a Common ID as a parameter.
This element supports a formatting string of%1, which is replaced with your Common ID, and%2, which is replaced with the invitee's Common ID.<SiteID>: The Passport Site ID to use for<url>or `.
This element has two children:
<url>: A URL to the photo storage service. Has a formatting string of%1that supports theFormatMessagemodifiers which is replaced by your Common ID.<SiteID>: The Passport Site ID to use for<url>.
This element has x children:
<ContactCardMarket>: Unused.<ContactCardDisabled>: This element, if set totrue, disables the contard card feature.<SpaceIntegrationEnabled>: This element, if set totrue, enables integration features with the blog service.<SpaceBaseUrl>: The URL to the blog service.<SpaceBaseSiteId>: The Passport Site ID to use for<SpaceBaseUrl>.<AddToMySpaceUrl>: The URL to the post creation page on the blog service.<AddToMySpaceSiteId>: The Passport Site ID to use for<AddToMySpaceUrl>.<CreateSpaceUrl>: The URL to the blog creation form on the blog service.<CreateSpaceSiteId>: The Passport Site ID to use for<CreateSpaceUrl>.<GetXmlFeedUrl>: The URL to a SOAP-based webservice that supports thehttp://www.msn.com/webservices/spaces/v1/GetXmlFeedaction.<GetItemVerUrl>: The URL to the Schematized Storage Service, assuming it supports thehttp://www.msn.com/webservices/storage/w10/GetItemVersionSOAP action.<MySpaceUrl>: The URL to the blog service's home page.<MySpaceSiteId>: The Passport Site ID to use for<MySpaceUrl>.<GetXmlFeedRpsUrl>: The URL to a SOAP-based webservice that supports thehttp://www.msn.com/webservices/spaces/v1/GetXmlFeedaction that supports RPS authentication.<GetXmlFeedRpsCidUrl>: A formatted URL to a SOAP-based webservice that supports thehttp://www.msn.com/webservices/spaces/v1/GetXmlFeedaction that supports RPS authentication.
Has a formatting string of%1that supports theFormatMessagemodifiers.
This element contains three children:
<merchant>: Described below.<premium>: Described below.<mixed>: Described below.
NOTE: Not all categories apply to all Client Versions and/or vendor types.
# (All DynamicContent children)These elements contains many optional children:
<backgrounds>: Static backgrounds.<emoticons>: Emoticon packs.<winks>: Winks.<bkgrounds>: Backgrounds (for Client Version 7.0.729 and higher).<emoticons2>: Emoticon packs (for Client Version 7.0.729 and higher).<winks2>: Winks (for Client Version 7.0.729 and higher).<themepacks>: Theme packs.<mobilewinks>: Mobile Winks (TODO: What are these?)<usertiles>: Display pictures.<otheremoticons>Only for<premium>. Emoticon packs.<otherwinks>Only for<premium>. Winks.<otherbkgrounds>Only for<premium>. Backgrounds.<othermobilewinks>Only for<premium>. Mobile Winks.<otherusertiles>Only for<premium>. Display pictures.
All elements are described below..
NOTE: The visibleto attribute isn't used. It usually contains the string 7.0.729 and greater.
These elements contain three children:
<providersiteid>: The Passport Site ID for<providerurl>.<providerurl>: A URL to a provider's store for the category.<slots>: Described below
This element contains up to eight <URL> elements.
This element has one attribute:
id: The numerical position (1 through 8) of this slot.
This element contains a URL to a <msnmenuitem> document.
This root element contains five children:
<siteid>: The Passport Site ID used for<clickurl>.<clicktrackurl>: The URL that is called for tracking purposes.<clickurl>: The target URL to open. Supports an attribute ofaction:install: If the<clickurl>leads to an.mct, install it viaMessengerContentInstaller.InstallContent.browse: Open the<clickurl>in a full browser.minibrowse: Open the<clickurl>in the internal browser.
<displaytext>: The display name for this content.<thumburl>: The URL to a thumbnail for this content.
This root element supports only one attribute:
bordercolor: The numerical (?) color of the border that this content has around it's<thumburl>.
NOTE: Mostly with <merchant>, MessengerContentInstaller.InstallIndirectContent is used instead for the handler for <clickurl>.
In this case, a Messenger Content Package Document with the contentlocationurl
attribute set to a Messenger Content Cabinet's URL must be used like such:
<?xml version="1.0" encoding="utf-8" ?><package contentlocationurl="http://example.com/content1.mct" />
# EditorialConfigThis element is the URL to the editorial document.
Used in place of the advertisement during a cycle (can be forced via right click) before Client Version 7.0.
This root element has two children:
<RefreshLogin>: This element, if set tofalse, will disable downloading new editorial documents after logging in.<RefreshInterval>: A numerical value between 5 and 10080 that specifies the amount of minutes before downloading a new editorial document.
This root element also contains one or more <article-group> elements.
This element contains one or more <article> elements.
This element has two active children depending on the type:
<image-url>: If thetypeof this<article>isimage, then this is used as the image.<title>: If<image-url>is not in effect, then this element contains the title of the article.<url>: The URL to the full article.
This element has only one attribute:
type: If set toimage. this<article>will be parsed as an image article.
This element has two attributes:
Enabled: If set totrue, likely enables advanced mobile contact support.Migration: If set totrue, LKP-based mobile contact migration is enabled.
This element contains a URL to a web page that tells you how to update Macromedia/Adobe Flash Player.
This element supports a formatting string of $VERSION$, which is replaced with the current version of the plugin.
This element has two children:
<AddBuddyURL>: The URL to the family safety page for help with authorizing adding a new contact.<SiteID>: The Passport Site ID to use for<AddBuddyURL>
This element only has one attribute:
value: The market to use ing.msn.comURLs.
Formatted like ISO 639-1, but with an underscore instead of a hyphen and all lowercase.
This element has four children:
<FirstRunURLSet>: Described below.<MinDaysBtwFirstRunLaunches>: The minimum number of days between opening the welcome window for the first time.<MinDaysBtwRecurringLaunches>: The minimum number of days between opening the welcome window after the first time.<RecurringHighlightURL>: Described below.
This element contains one or more <FirstRunURL> elements.
This element has two children:
<url>: The URL to the page used in the first run carousel. Supports anidattribute which is the same as the parent'sidattribute.<SiteID>: The Passport Site ID for the<url>.
This element has only one attribute:
id: The numerical ID of this URL, starting from1.
This element only has one child:
<url>: The URL to the recurring highlights page.
This element has two attributes:
Disable: If this attribute exists, the introduction window is disabled.RhapsodyURL: A URL to the music store. Used for integration with the Raspsody Media Engine client.
This element has only one attribute:
UpsellMessageId: A numerical value of the message to use:0: No message?1: Unknown.
This element has two children:
<General>: Described below.<Webcam>: Described below.
This element has only one attribute:
URL: The URL to an online shop for hardware to use with the Official Client.
This element has only one attribute:
URL: The URL to an online shop for webcams to use with the Official Client.
This element contains a URL to a blog related to the Official Client's development team.
# MobileMessagingThis element has seven attributes:
MainWindowButton: If set totrue, enables the Mobile Messaging button in the main window.Mode: Mobile messaging subscription mode:CPP: Calling party pays, paid credits, route-based.RPPLegacy: Receiving party pays, free to send, route-based (Old country code parser?).RPPNew: Receiving party pays, free to send, route-based (New country code parser?).PPP: Paying party pays, subscription-based.RPPSmtp: Receiving party pays, free to send, domain-based.
CharMax: The maximum amount of characters that can be sent using this service. Usually around120and up to140.ValidRoutes: A semi-colon delimited list of ISO 3166-1 alpha-2 codes that specify which country codes this service is allowed to use for route-basedModes.CrossSell: If set to1, enables some promotional links and buttons in the Official Client for this service.OperatorPage: The URL to the information or landing page of this service.CarrierList: A semi-colon delimited list of fully qualified domain names that specify what suffixes this service is allowed to use for theRPPSmtpMode.
This element has ten children:
<DesktopInstallURL>: The intergrated desktop search URL. Redirects to an installation page if the required software is not 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 in-conversation search feature.<SharedSearchURL2>: The newer search service URL used in the in-conversation search feature.<PeopleSearchURL>: The people search service URL.<PeopleSearchSiteID>: The Passport Site ID to use for<PeopleSearchURL>.
All children support two formatting strings:
$QUERY$: The search query. Characters may be URL encoded.$FC$: Seems to be replaced withAB3.
The <SharedSearchURL> and <SharedSearchURL2> children support an extra formatting string:
$FORMAT$: Always replaced withxml.
This element has four children:
<MsnTodaySiteID>: The Passport Site ID to use for the<MsnTodayURL>.<MsnTodayURL>: The URL to use when showing the message of the day screen.<MsnTodayFrequency>: Possibly how long before the content of<MsnTodayURL>updates?<Flags>: Unknown. Usually2.
This empty element has two attributes:
URL: The URL to the music lookup service. This attribute also supports four formatting strings:$TITLE$: The name of the music the user is listening to.$ARTIST$: The name of the artist that the music the user is listening to is tagged with.$ALBUM$: The name of the album that the music the user is listening to is tagged with.$WMID$: The Windows Media ID of the music the user is listening to, should there be one.
SiteID: The Passport Site ID for theURL.
This empty element has only one attribute:
Enabled: If set to1, OneCare integration is enabled.
This empty element only has one attribute:
Tracking: A tracking URL for downloadable content? Supports two formatting strings:$ContentID$: Replaced with the content's internal ID.$Click$: Replaced with an unknown string (TODO: what?)
This empty element has three attributes:
Visibility: This attribute, if set to0, disables this feature.TrialStart: A date (in DD-MM-YYYY?). Sets the start of the trial period.TrialEnd: A date (in DD-MM-YYYY?). Sets the end of the trial period.
This empty element has only one attribute:
Hidden: This attribute, if set to0, enables the feature enabling outgoing PSTN (public switched telephone network) calls.
This element only contains the <YahooNetwork> element.
This empty element has three attributes:
Enabled: If set tofalse, sending instant messaging to Yahoo! contacts is disabled.OfflineIM: If set tofalse, sending offline instant messaging to Yahoo! contacts is disabled.Upsell: The URL to the information page of this service.
This element has two children:
<ReportAbuseURL>: Contains a URL to a user reporting service.<ReportAbuseSID>: The Passport Site ID used for<ReportAbuseURL>.
This element has two children:
<ViewProfileURL>: Described below.<ViewProfileSiteID>: The Passport Site ID to use for the<ViewProfileURL>.
This element is the URL to the profile service.
This element has only one optional attribute:
ViewSpace: Unknown.
This element supports six formatting strings using the FormatMessage syntax:
%1: Unknown.%2: The PLCID (product language code ID), which will be the client binary's language.%3: Unknown.%4: Unknown.%5: Unknown.%6: The user handle of the target.
This empty element has two attributes:
Enabled: If set totrue, the Sharing Folders feature is enabled.SNMThrottling: If set to1, SNM requests are throttled.
This element only contains the [<SuppressedEmailDomain>] element.
This element contains the fully qualified domain name to ignore when receiving a social alert.
# SQMNoOptThis element has only one child (? might be an attribute):
<SQMNoOpt>: This element, if set to0, enables opting out of the SQM program.
This element has two children:
<RowNumber>: Unknown.<slots>: Described below.
This element contains one or more <URL> elements.
This element contains the URL to a tab advertisng document, it has three attributes:
id: A numerical identification number.wave4Index: A numerical number to be used by Wave 4 clients for indexing.wave4Hidden: If this attribute istrue, then the tab(s?) provided by the document will be hidden.
TODO: write document schema out, and do they support more than one (assuming no?, need OC14)
# TermsOfUseThis element has two children:
<TermsOfUseSID>: The Passport Site ID to use for the<TermsOfUseURL>.<TermsOfUseURL>: The URL to the Messenger Service Terms of Use.
This element has two children:
<MusicMixURL>: The URL to landing page introducing threedegrees's musicmix feature.<GroupsURL>: The URL to a landing page introducing threedegrees's group feature.
This element contains one or more <Product> elements.
This element has six attributes:
id: A numerical value that identifies this<Product>.PartnerID: The internal partner code for the partner that is selling this<Product>.ProductName: The internal product name:Mobile Messaging: Setting this will allow subscription-based<MobileMessaging>features to function.Video Calling: Possibly unused?WinksDynamic Display PicturesEmoticonsTheme PacksBackgrounds
BrandName: The display name for this<Product>.DialogMenuString: The text used when this<Product>is being sold in a dialog or menu.IntegrationType: Case-insensitive, either one of two options:medium: Some integration, alternative option and shows up in some places.deep: Most intergration, usually primary option and shows up in more places.
This element has four children:
<ProductShopURL>: A URL to a content provider's store.<BillingURL>: A URL to a content provider's billing page.<BillingHelpURL>: A URL to a content provider's payment support page.<BasePurchaseURL>: A URL to the product page on a content provider's store.
All children have these three attributes:
LaunchWindowType: What kind of window to open for this URL:IE: Open in Internet Explorer.Messenger: Open in the client's internal browser.
SiteID: The Passport Site ID to use for theURL.URL: The URL to use for the respective element. The formatting string$CONTENTID$is replaced with the content's internal ID.
This element has only one attribute:
Hidden: This attribute, if set to1, disables the voice clips feature.
This element has five children:
<DisableSipProxyInviteTest>: If this element is set to1, (Is this unused?)<DisableSipProxyCapability>: If this element is set to1, disable the SIP capability bits from being set.<DisableSipProxyInvite>: If this element is set to1, SIP proxy invites are disabled.<DisableSipProxyCapability2>: If this element is set to1, (Is this unused?)<DisableSipProxyInvite2>: If this element is set to1, (Is this unused?)<VR>: Described below.
This element has three children:
<Address>: An IP Address for a TURN server.<Domain>: A fully qualified domain name for a TURN server.<Realm>: The realm to use when connecting to the voice relay TURN server.
This element has four children:
<SendSiteID>: The Passport Site ID that<SendURL>uses. Unused, always0.<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.
This element contains any amount of <avatar> elements.
This element has two children:
<CLSID>: Unknown. Contains a fully formatted UUID.<CLSID7>: Unknown. Contains a fully formatted UUID.
This element has two children:
<CircleInfoURL>: Unused. Would of been a URL to a information page about a service or feature.<CircleInfoSiteID>: Unused. Would of been the Passport Site ID for<CircleInfoURL>.
Unused.
# DynamicDisplayPicsThis element has three attributes:
Provider: The provider's display name.Name: The product's display name.URL: The URL to the product page.
TODO: Early version of <UPUX> used before Client Version 7.0.0777.
# Examples
# POST request
# Client/Request
POST /Config/MsgrConfig.asmx HTTP/1.1
SOAPAction: "http://www.msn.com/webservices/Messenger/Client/GetClientConfig"
Cache-Control: no-cache
Content-Type: text/xml; charset=utf-8
Content-Length: 489
<?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>
# Server/Response
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: 2588
<?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>
<Simple>
<Config>
<ExpiresInDays>2</ExpiresInDays>
</Config>
</Simple>
<TabConfig>
<msntabsettings>
<oemtotallimit>1</oemtotallimit>
<oemdisplaylimit>1</oemdisplaylimit>
</msntabsettings>
<msntabdata>
<tab>
<image>res:bell</image>
<name>MSN Alerts</name>
<type>Alerts</type>
<tooltip>The Alerts tab lists all of the alerts you have received in the last 24 hours from MSN Alerts</tooltip>
<contenturl>http://alerts.msn.com/alerts/alerttab.asp?Country=HT&CLCID=0409&PLCID=0409</contenturl>
<hiturl>http://c.msn.com/c.gif?di=2308&tp=http://messengertabs.msn.com/us/alerts</hiturl>
<siteid>31560</siteid>
<notificationid>111200100</notificationid>
<hidden>false</hidden>
</tab>
</msntabdata>
</TabConfig>
<AbchCfg>
<abchconfig>
<url>http://contacts.msn.com/abservice/abservice.asmx</url>
</abchconfig>
</AbchCfg>
<AdMainConfig>
<AdDownloadTimeInMinutes>120</AdDownloadTimeInMinutes>
<AdMainCfg>http://rad.msn.com/ADSAdClient31.dll?GetAd?PG=IMSCB1?SC=HF?PUID=$PUID$</AdMainCfg>
</AdMainConfig>
<AdPhoneConfig>http://rad.msn.com/ADSAdClient31.dll?GetAd?PG=IMSHB1?SC=HF?PUID=$PUID$</AdPhoneConfig>
<LocalizedConfig Market="en-US">
<EditorialConfig>http://www.msn.com/infopane/messenger.armx</EditorialConfig>
<MsnTodayConfig>
<MsnTodayURL>http://t.msn.com/en-us/default.aspx</MsnTodayURL>
<MsnTodaySiteID>6528</MsnTodaySiteID>
</MsnTodayConfig>
<AppDirConfig>
<AppDirPageURL>http://appdirectory.messenger.msn.com/AppDirectory/Directory.aspx?L=en-US</AppDirPageURL>
<AppDirSeviceURL>http://appdirectory.messenger.msn.com/AppDirectory/AppDirectory.asmx</AppDirSeviceURL>
<AppDirVersionURL>http://appdirectory.messenger.msn.com/AppDirectory/GetAppdirVersion.aspx</AppDirVersionURL>
</AppDirConfig>
<TermsOfUse>
<TermsOfUseSID>956</TermsOfUseSID>
<TermsOfUseURL>http://messenger.msn.com/Help/Terms.aspx?mkt=en-us</TermsOfUseURL>
</TermsOfUse>
</LocalizedConfig>
</MsgrConfig>]]></GetClientConfigResult>
</GetClientConfigResponse>
</soap:Body>
</soap:Envelope>
# GET request
# Client/Request
GET /Config/MsgrConfig.asmx?op=GetClientConfig&Country=US&CLCID=0809&PLCID=0409&GeoID=242&ver=8.5.1302 HTTP/1.1
# Server/Response
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: 2036
<?xml version="1.0" encoding="utf-8" ?>
<MsgrConfig>
<Simple>
<Config>
<ExpiresInDays>2</ExpiresInDays>
</Config>
</Simple>
<TabConfig>
<msntabsettings>
<oemtotallimit>1</oemtotallimit>
<oemdisplaylimit>1</oemdisplaylimit>
</msntabsettings>
<msntabdata>
<tab>
<image>res:bell</image>
<name>MSN Alerts</name>
<type>Alerts</type>
<tooltip>The Alerts tab lists all of the alerts you have received in the last 24 hours from MSN Alerts</tooltip>
<contenturl>http://alerts.msn.com/alerts/alerttab.asp?Country=HT&CLCID=0409&PLCID=0409</contenturl>
<hiturl>http://c.msn.com/c.gif?di=2308&tp=http://messengertabs.msn.com/us/alerts</hiturl>
<siteid>31560</siteid>
<notificationid>111200100</notificationid>
<hidden>false</hidden>
</tab>
</msntabdata>
</TabConfig>
<AbchCfg>
<abchconfig>
<url>http://contacts.msn.com/abservice/abservice.asmx</url>
</abchconfig>
</AbchCfg>
<AdMainConfig>
<AdDownloadTimeInMinutes>120</AdDownloadTimeInMinutes>
<AdMainCfg>http://rad.msn.com/ADSAdClient31.dll?GetAd?PG=IMSCB1?SC=HF?PUID=$PUID$</AdMainCfg>
</AdMainConfig>
<AdPhoneConfig>http://rad.msn.com/ADSAdClient31.dll?GetAd?PG=IMSHB1?SC=HF?PUID=$PUID$</AdPhoneConfig>
<LocalizedConfig Market="en-US">
<EditorialConfig>http://www.msn.com/infopane/messenger.armx</EditorialConfig>
<MsnTodayConfig>
<MsnTodayURL>http://t.msn.com/en-us/default.aspx</MsnTodayURL>
<MsnTodaySiteID>6528</MsnTodaySiteID>
</MsnTodayConfig>
<AppDirConfig>
<AppDirPageURL>http://appdirectory.messenger.msn.com/AppDirectory/Directory.aspx?L=en-US</AppDirPageURL>
<AppDirSeviceURL>http://appdirectory.messenger.msn.com/AppDirectory/AppDirectory.asmx</AppDirSeviceURL>
<AppDirVersionURL>http://appdirectory.messenger.msn.com/AppDirectory/GetAppdirVersion.aspx</AppDirVersionURL>
</AppDirConfig>
<TermsOfUse>
<TermsOfUseSID>956</TermsOfUseSID>
<TermsOfUseURL>http://messenger.msn.com/Help/Terms.aspx?mkt=en-us</TermsOfUseURL>
</TermsOfUse>
</LocalizedConfig>
</MsgrConfig>