# Table of contents:

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

# 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"

The main body is the following:

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

# 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

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

# Config

Contains options for the configuration data itself.

# DisablePhoneDialer

If set to 1, the Phone Dialer is disabled.

# Logitech

# 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:

# RadUrl

This element contains the advertisement service base URL.

# Relay

Contains configuration data for the Audio/Video relay.

# 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:

# Entry

This empty element has two attributes:

# TabConfig

Replaces the tabs.asp service on svcs.microsoft.com.

# msntabdata

This element only contains one or multiple <tab> element(s).

# tab

This element has nine children:

# 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?

# AbchCfg

Replaces the abch_config.asp service on svcs.microsoft.com.

# abchconfig

# AdMainConfig

# 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

# AppDirConfig

# AVPrerollAd

This empty element has four attributes:

This empty element has one attribute named URL that specifies a web page you can buy a webcam from.

# ContactCard

Blog intergration configuration options.

# DynamicContent

Contains product advertisement configuration data.

# merchant

Can contain:

# bkgrounds

Free Background advertisement data. Only contains <slots>.

# slots

Contains one or multiple <URL> element(s) that contain a URL to a msnmenuitem XML document. For more information read this section on msnmenuitem documents.

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 one or multiple <URL> element(s) that contain a URL to a msnmenuitem XML document. For more information read this section on msnmenuitem documents.

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 one or multiple <URL> element(s) that contain a URL to a msnmenuitem XML document. For more information read this section on msnmenuitem documents.

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 one or multiple <URL> element(s) that contain a URL to a msnmenuitem XML document. For more information read this section on msnmenuitem documents.

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.

# slots

Contains one or multiple <URL> element(s) that contain a URL to a msnmenuitem XML document. For more information read this section on msnmenuitem documents.

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.

# slots

Contains one or multiple <URL> element(s) that contain a URL to a msnmenuitem XML document. For more information read this section on msnmenuitem documents.

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.

# slots

Contains one or multiple <URL> element(s) that contain a URL to a msnmenuitem XML document. For more information read this section on msnmenuitem documents.

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.

# slots

Contains one or multiple <URL> element(s) that contain a URL to a msnmenuitem XML document. For more information read this section on msnmenuitem documents.

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.

# 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:

# MSNSearch

Controls the URLs used by search features.

All <...URL> elements support two formatting strings:

If the element is <SharedSearchURL> or <SharedSearchURL2>, the $FORMAT$ formatting string is avaliable.

# MsnTodayConfig

# MusicIntegration

This empty element has two attributes:

# PremiumAV

This empty element has the attribute Visibility. 1 likely enables this feature.

# RL

# TermsOfUse

# UPUX

This element contains many <Product> elements.

# Product

This element has three required attributes and three optional attributes:

This element contains the following children:

# ...URL

These empty elements have three attributes:

# VoiceClip

This empty element has one attribute named Hidden, If this is 1, the feature is hidden.

# WebWatchConfig

# 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:

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

TODO: What is a "Merchant CAB file"? InstallIndirectContent wants one.

# 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 one or multiple <article> element(s):