Protocols/MSNP/Client Versioning

From NINA Wiki
Jump to navigation Jump to search
MSNP Protocol
Error ListCommandsRelaying Party SuiteSpotlife
XMPPHTTP GatewayTabsActivities
Development ToolsMSNP Grid
PolygamyURLs used by MSN
Protocol Versions
Version 21
Version 18
Version 16
Version 15
Version 14
Version 13
Version 12
Version 11
Version 9
Version 8
IntroductionP2PObject DescriptorDisplay PicturesFile Transfer
Microsoft Messenger for Mac


CVR0 is a special type always supported by the server. It was introduced along with MSNP2, and can be used by clients who do not support any of the other MSNP versions to query the server for the latest client information. It is represented by the string "CVR0" in the VER, instead of following the traditional MSNPx format.

Supported commands


For more information about VER, see VER


Client Version Query. The client can send this to the server, and will also accept any CVQ commands coming from the server. It will be sent by the client if the server responds to VER without an actual protocol (i.e. only "CVR0" is sent).

The syntax was discovered by making the MSNP13 client connect to an MSNP12 server. The reply of the server is identical to that of a CVR command (this was simply reversed by guessing the syntax):

(Connection established)
>>> VER 1 MSNP13 CVR0
<<< VER 1 CVR0
>>> CVQ 2 0x0409 winnt 5.1 i386 MSG80BETA b.0.0328 msmsgs email@addr.ess
<<< CVQ 4 8.0.0328 8.0.0328 8.0.0290 <Download Link>

When the client detects that the latest version (the first parameter) is higher than its own build, it will take no action (one would have expected a 'A newer version is available' warning). If the latest client is equal to or lower than its own build, it will prompt the user with the following error:

Messenger (BETA)
Signing in to Messenger 8.0 BETA failed because the service is not compatible
with this version of Messenger. 81000305
Retry   Cancel   Help