Personal tools

MSNC:Client ID

From MSNPiki

(Redirected from Client ID)
MSN Client Protocol

Contents

Client ID number

In order to properly understand how client identification works in MSN Messenger, you would need a basic understanding binary arithmetic. This site assumes no knowledge of binary, so this discussion of client ID numbers is quite shallow. Client identification is very similar to list numbers, only a little bit more complicated.

The client ID number is the sum of several values specifying capabilities advertised by the client the client protocol version it supports.

Known ClientID bits

Here are the values that we know to be used in client identification:
0x10 (HEX, Base 16) = 16 (Decimal, Base 10)

  • 0x01: This means you are running a Windows Mobile device. The official client changes the little icon to a little man with a phone, and puts the status 'Phone' next to your name.
  • 0x02: This value is set if you are a MSN Explorer 8 user, but it is sometimes used when the client resets its capabilities
  • 0x04: Your client can send/receive Ink (GIF format)
  • 0x08: Your client can send/recieve Ink (ISF format)
  • 0x10: This option is set when you are able to participate in video conversations. In reality, it is only set when you have a webcam connected and have it set to 'shared'.
  • 0x20: This value is being used with Multi-Packet Messaging.
  • 0x40: This is used when the client is running on a MSN Mobile device. This is equivalent to the MOB setting in the BPR list.
  • 0x80: This is used when the client is running on a MSN Direct device. This is equivalent to the WWE setting in the BPR list.
  • 0x200: This is used when someone signs in on the official Web-based MSN Messenger. It will show a new icon in other people's contact list.
  • 0x800: Internal Microsoft client and/or Microsoft Office Live client (TGWClient).
  • 0x1000: This means you have a MSN Space.
  • 0x2000: This means you are using Windows XP Media Center Edition.
  • 0x4000: This means you support 'DirectIM' (creating direct connections for conversations rather than using the traditional switchboard)
  • 0x8000: This means you support Winks receiving (If not set the official Client will warn with 'contact has an older client and is not capable of receiving Winks')
  • 0x10000: Your client supports the MSN Search feature
  • 0x20000: The client is bot (provisioned account)
  • 0x40000: This means you support Voice Clips receiving
  • 0x80000: This means you support Secure Channel Communications
  • 0x100000: Supports SIP Invitations
  • 0x200000: Supports Tunneled SIP
  • 0x400000: Sharing Folders
  • 0x1000000 The client has OneCare
  • 0x2000000 Supports P2P Turning
  • 0x4000000 Supports P2P Bootstrap via UUN
  • 0x10000000: This is the value for MSNC1 (MSN Msgr 6.0)
  • 0x20000000: This is the value for MSNC2 (MSN Msgr 6.1)
  • 0x30000000: This is the value for MSNC3 (MSN Msgr 6.2)
  • 0x40000000: This is the value for MSNC4 (MSN Msgr 7.0)
  • 0x50000000: This is the value for MSNC5 (MSN Msgr 7.5)
  • 0x60000000: This is the value for MSNC6 (WL Msgr 8.0)
  • 0x70000000: This is the value for MSNC7 (WL Msgr 8.1)
  • 0x80000000: This is the value for MSNC8 (WL Msgr 8.5)
  • 0x90000000: This is the value for MSNC9 (WL Msgr 9.0)
  • 0xA0000000: This is the value for MSNC10 (WL Msgr 12.0)

Known ClientID (extended) bits

Beginning with MSNP16, added extended capacities. The new format is ClientCapacities:ClientCapacitiesExtended.

  • 0x10: RTC Video enabled
  • 0x20: Supports P2PV2

For ex: 4:48, can send/receive Ink (GIF format) : RTC Video enabled + Supports P2PV2

Setting and getting ClientID

To create a client ID number, sum the values in the above list which apply to your client. For example, if your client is a mobile phone supporting MSNC0, your client number is 1. Whereas if your client supports MSNC2, is able to receive ink messages and would like to advertise voice chat support, your client ID number would be 0x20000014 (0x20000000 + 0x10 + 0x4), decimal 536870932 (536870912 + 16 + 4). Note: you can only specify one supported client protocol - both 0x10000000 and 0x20000000 means 0x30000000 (MSNC3).

Just like with list numbers, you can extract values from another principal's client ID number by bitwise ANDing the client ID with the value. This is the advised method for getting client capabilities, but it's better to get the client version number by dividing the client ID by 268435456 (hex 0x10000000) and rounding down to the nearest integer. This is called 'modulo division', and most programming languages have a function or mathematical operator for it. For MSNC0 clients, modulo division will always return 0, for MSNC1 clients, it'll always return 1, and for MSNC2 clients, it'll always return 2.

Example

The latest version of MSN Messenger 7.0 (build 7.0.0813) by default uses the value 0x4000C024.

  • Use protocol MSNC4
  • Can send/receive Ink (GIF format)
  • Support Multi-Packet Messaging
  • Support 'DirectIM'
  • Support Winks
Reference