Skip to content
leecher1337 edited this page May 31, 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

See Authentication.

PUT MSGR\ACTIVEENDPOINT

<activeendpoint>
  <timeout>135</timeout>
</activeendpoint>

Seems to be sent every 135 seconds as long as the user is working on his machine and therefore the endpoint is active. As soon as the Screensaver starts and the user therefore isn't paying attention to the machine, timeout is set to 0. So this command seems to be some sort of idle timer. It doesn't replace PNG. Not present in Skype 6, comes with Skype 7.

PUT MSGR\CHALLENGE

See Authentication.

PUT MSGR\CONTACTS

See Subscriptions.

PUT MSGR\PARTNERS

<partners>
  <type>ABCH</type>
</partners>

Unknown? Not used.

PUT MSGR\OPTIONS

<options>
  <pwrmode>1</pwrmode>
  <deliveryConfirmation>true</deliveryConfirmation>
  <batchtimeout>10</batchtimeout>
</options>

Unknown? Not used.

PUT MSGR\NETWORKS

<networks>
  <network>fb</network>
</networks>

Seems to be related to other networks like i.e. Facebook in this sample. Curently no sample.

PUT MSGR\REPORTSPAM

<reportspam>
  <alias>{wluid}</alias>
</reportspam>

May be used to report abusive Skype and MSN contacts.

PUT MSGR\CONVERSATION

PUT 26 MSGR\CONVERSATION 590
Registration: ...some long base64...

<conversation>
  <id>8:live:user1</id>
  <properties>
    <consumptionhorizon>1431964251000;1431964252000;2928664941477818879</consumptionhorizon>
  </properties>
</conversation>

Sets properties for a given conversation (id can be another member for P2P chat or a Groupchat (=thread) ID.

consumptionshorizon seems to consits of 2 Unix-Timestamps in ms and an unknown identifier. Usually also results in a NFY MSGR\CONVERSATION

PUT MSGR\SUBSCRIPTIONS

See Subscriptions.

PUT MSGR\THREAD

See Threads.

GET MSGR\IMONLINE

Unknown.

GET MSGR\PRESENCE

<presence>
  <contact>{wluid}</contact>
</presence>

Unknown. Results in a presence-response but without really usable info...?

GET MSGR\RECENTCONVERSATIONS

See Synchronizing.

GET MSGR\MESSAGESBYCONVERSATION

See Synchronizing.

GET MSGR\THREADS

See Threads.

GET MSGR\CONVERSATIONS

<conversations>
  <conversation><id>{id}</id></conversation>
</conversations>

Unknown. Fetch infos for conversations?