Protocols/MSNP/MSNC/Client Capabilities

From NINA Wiki
Jump to navigation Jump to search
MSNP Protocol
MSNC
OverviewMSNObject
Client Capabilities
P2P protocol
TransportsMSNSLP
Headers
P2Pv1 Binary headers
P2Pv2 Binary headers
Transfers
Display Pictures
Custom Emoticons
File Transfer
Overview
IntroductionTermsClients
Reference
Error ListCommandsRelying Party SuiteSpotlife
Services
XMPPHTTP GatewayTabsActivities
Documentation
Development ToolsMSNP Grid
PolygamyURLs used by MSN
Documents
Protocol Versions
Version 21
Version 18
Version 16
Version 15
Version 14
Version 13
Version 12
Version 11
Version 9
Version 8
Version 2
MSNC
IntroductionP2PObject DescriptorDisplay PicturesFile Transfer
Scenarios
Microsoft Messenger for Mac
MSNP on WebTV (MSNTV)


Client Capabilities

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

The client capabilities are the sum of several values specifying capabilities advertised by the client.

Client Capabilities

Here are the values that we know to be used in client identification:

# Name Description
0x00 None Self Explanatory
0x01 OnlineViaMobile 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 OnlineViaTexas This value is set if you are a MSN Explorer 8 user, but it is sometimes used when the client resets its capabilities (Texas is the codename for MSN 8)
0x04 SupportsGifInk Your client can send/receive Ink (GIF format)
0x08 SupportsIsfInk Your client can send/receive Ink (ISF format)
0x10 WebCamDetected 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 SupportsChunking This value is being used with Multi-Packet Messaging.
0x40 MobileEnabled 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 WebWatchEnabled This is used when the client is running on a MSN Direct device. This is equivalent to the WWE setting in the BPR list.
0x100 SupportsActivities NOT CURRENTLY DOCUMENTED
0x200 OnlineViaWebIM 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.
0x400 MobileDevice NOT CURRENTLY DOCUMENTED
0x800 OnlineViaFederatedInterface Internal Microsoft client and/or Microsoft Office Live client (TGWClient).
0x1000 HasSpace This means you have a MSN Space.
0x2000 IsMceUser This means you are using Windows XP Media Center Edition.
0x4000 SupportsDirectIM This means you support 'DirectIM' (creating direct connections for conversations rather than using the traditional switchboard)
0x8000 SupportsWinks 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 SupportsSharedSearch Your client supports the MSN Search feature
0x20000 IsBot The client is bot (provisioned account)
0x40000 SupportsVoiceIM This means you support Voice Clips receiving
0x80000 SupportsSChannel This means you support Secure Channel Communications
0x100000 SupportsSipInvite Supports SIP Invitations
0x200000 SupportsMultipartyMedia Supports Tunneled SIP
0x400000 SupportsSDrive Supports Sharing Folders / SkyDrive
0x800000 SupportsPageModeMessaging NOT CURRENTLY DOCUMENTED
0x1000000 HasOneCare The client has OneCare
0x2000000 SupportsTurn Supports P2P TURN
0x4000000 SupportsDirectBootstrapping Supports P2P Bootstrap via UUN
0x8000000 UsingAlias NOT CURRENTLY DOCUMENTED
0x10000000 AppVersion60 Supports MSNC1 (MSN Messenger 6.0)
0x20000000 AppVersion61 Supports MSNC2 (MSN Messenger 6.1)
0x30000000 AppVersion62 Supports MSNC3 (MSN Messenger 6.2)
0x40000000 AppVersion70 Supports MSNC4 (MSN Messenger 7.0)
0x50000000 AppVersion75 Supports MSNC5 (MSN Messenger 7.5)
0x60000000 AppVersion80 Supports MSNC6 (Windows Live Messenger 8.0)
0x70000000 AppVersion81 Supports MSNC7 (Windows Live Messenger 8.1)
0x80000000 AppVersion85 Supports MSNC8 (Windows Live Messenger 8.5)
0x90000000 AppVersion90 Supports MSNC9 (Windows Live Messenger 9.0 [not to be confused with 2009])
0xA0000000 AppVersion2009 Supports MSNC10 (Windows Live Messenger 2009)
0xB0000000 AppVersion2011 Supports MSNC11 (Windows Live Messenger 2011)
0xC0000000 AppVersion2012 Supports MSNC12 (Windows Live Messenger 2012)

Note: If you support an MSNC protocol, the official client assumes that you also support all previous MSNC protocols.

Extended Client Capabilities (from MSNP16)

# Name Description
0x00 None Self Explanatory
0x01 IsSmsOnly NOT CURRENTLY DOCUMENTED
0x02 SupportsVoiceOverMsnp NOT CURRENTLY DOCUMENTED
0x04 SupportsUucpSipStack NOT CURRENTLY DOCUMENTED
0x08 SupportsApplicationMessages NOT CURRENTLY DOCUMENTED
0x10 RTCVideoEnabled RTC Video is enabled
0x20 SupportsPeerToPeerV2 Client supports P2Pv2
0x40 IsAuthenticatedWebIMUser NOT CURRENTLY DOCUMENTED
0x80 Supports1On1ViaGroup NOT CURRENTLY DOCUMENTED
0x100 SupportsOfflineIM NOT CURRENTLY DOCUMENTED
0x200 SupportsSharingVideo NOT CURRENTLY DOCUMENTED
0x400 SupportsNudges NOT CURRENTLY DOCUMENTED
0x800 CircleVoiceIMEnabled NOT CURRENTLY DOCUMENTED
0x1000 SharingEnabled NOT CURRENTLY DOCUMENTED
0x2000 MobileSuspendIMFanoutDisable NOT CURRENTLY DOCUMENTED
0x4000 Unknown NOT CURRENTLY DOCUMENTED
0x8000 SupportsPeerToPeerMixerRelay NOT CURRENTLY DOCUMENTED
0x10000 Unknown NOT CURRENTLY DOCUMENTED
0x20000 ConvWindowFileTransfer NOT CURRENTLY DOCUMENTED
0x40000 VideoCallSupports16x9 NOT CURRENTLY DOCUMENTED
0x80000 SupportsPeerToPeerEnveloping NOT CURRENTLY DOCUMENTED
0x100000 Unknown NOT CURRENTLY DOCUMENTED
0x200000 Unknown NOT CURRENTLY DOCUMENTED
0x400000 YahooIMDisabled NOT CURRENTLY DOCUMENTED
0x800000 SIPTunnelVersion2 NOT CURRENTLY DOCUMENTED
0x1000000 VoiceClipSupportsWMAFormat NOT CURRENTLY DOCUMENTED
0x2000000 VoiceClipSupportsCircleIM NOT CURRENTLY DOCUMENTED
0x4000000 SupportsSocialNewsObjectTypes NOT CURRENTLY DOCUMENTED
0x8000000 CustomEmoticonsCapable NOT CURRENTLY DOCUMENTED
0x10000000 SupportsUTF8MoodMessages NOT CURRENTLY DOCUMENTED
0x20000000 FTURNCapable NOT CURRENTLY DOCUMENTED
0x40000000 SupportsP4Activity NOT CURRENTLY DOCUMENTED
0x80000000 SupportsMultipartyConversations NOT CURRENTLY DOCUMENTED

Extended capabilities are written after the 'basic' capabilities, seperated by a colon. (capab:excapab) For example 4:48 means that the client can send/receive Ink (GIF format) + RTC Video enabled + Supports P2PV2

Getting and setting Client Capabilities

To create a client capability number, sum the values in the above list which apply to your client. For example, if your client is a mobile phone supporting Protocols/MSNP/MSNC0, your client number is 1. Whereas if your client supports Protocols/MSNP/MSNC2, is able to receive ink messages and would like to advertise voice chat support, your client capacity 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 capability number by bitwise ANDing the client capability 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 capability 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 Protocols/MSNP/MSNC0 clients, modulo division will always return 0, for Protocols/MSNP/MSNC1 clients, it'll always return 1, and for Protocols/MSNP/MSNC2 clients, it'll always return 2.

Example

WLM Messenger 2009 (build 14.0.8064.206) by default uses the value 0xa63cd03c:0x30 (2789003324:48).

  • Can send/receive Ink (GIF format)
  • Can send/receive Ink (ISF format)
  • Can participate in video conversations
  • Support multi-packet Messaging
  • Has MSN spaces
  • Support 'DirectIM'
  • Can send/receive winks
  • Can send/receive voice clips
  • Support secure channel communications
  • Support SIP Invitations
  • Support Tunneled SIP
  • Support P2P TURN
  • Support P2P Bootstrap via UUN
  • Uses client protocol Protocols/MSNP/MSNC10
  •  : (colon)
  • RTC Video enabled
  • Support P2PV2