Skip to content
kythyria edited this page Mar 16, 2015 · 3 revisions

These commands are listed without the sequence number between the parts of the name. XML is sent without any prettyprinting, but is shown here with whitespace for clarity.

The server may send Set-Registration headers at will. Repeat the value of the last such header in a Registration header for all subsequent messages.

Handshake

A connection starts with the client sending CNT CON, ATH CON\USER, and BND CON\MSGR in that order without waiting for a response for the previous one.

Commands

CNT CON

Start a connection. This has no headers, only an XML payload:

<connect>
  <ver>2</ver>
  <agent>
    <os>winnt</os>
    <osVer>5.2</osVer>
    <proc>x86</proc>
    <lcid>en-us</lcid>
    <country>us</country>
  </agent>
</connect>

It's not clear if anything inside <agent> actually matters; <country> is optional and all the other example values came from the webclient on 64-bit Linux (the desktop client sends more accurate values).

Presumably <ver> selects a protocol version. It's not clear what the differences between 1 and 2 are.

ATH CON\USER

See Authentication.

BND CON\MSGR

Do something related to MPOP.

<msgr>
  <ver>2</ver>
  <client>
    <name>msgrliboutlook</name>
    <ver>6.4.0.0</ver>
  </client>
  <epid>{0065fdd0-0043-d90a-00a3-7d9900719f46}</epid>
</msgr>

<epid> is any UUID, and is a unique identifier for this client instance.

The response looks like this:

BND 3 CON 660
UtcTime: 1426463998
Set-Registration: U2ln...base64...OjI7
Registration-Token-Expiry: 1426550398
Context: 36...hex...48

<msgr-response>
  <ver>2</ver>
  <utctime>1426463998</utctime>
  <nonce>21297165061723964870</nonce>
  <sample-window>0</sample-window>
</msgr-response>
Clone this wiki locally