Research - MSNP9
|
Printable Version
|
Overview
MSNP9 is a new protocol that was introduced with version 6.0 of the official client. Most of the changes in MSNP9 exist solely to support MSNC1. The following description of the protocol has not been peer-reviewed or tested, so probably contains omissions and errors. Please contact us if you find anything wrong with this page.
Ping replies
The QNG command now has a parameter - an integer from 0 to 50. It represents the number of seconds to wait before sending another PNG , and is reset to 50 every time a command is sent to the server. In environments where idle connections are closed after a short time, you should send a command to the server (even if it's just a PNG ) at least this often.
>>> PNG\r\n
<<< QNG 41\r\n
>>> PNG\r\n
<<< QNG 49\r\n
Presence changes
ILN , NLN , and CHG all have an extra parameter on the end. The official server always sets this to a URL-encoded MSNObject, but it's not known whether the server requires this.
Paging
The PAG command is disabled in MSNP9, and attempting to use it will cause you to receive error 715 . It's been replaced by the PGD command, which is exactly the same, but with an extra parameter: the fourth parameter (which was the length of the payload) is now "1" (to page an MSN Mobile device) or "2" (to page an MSN Direct device). The length of the payload is now the fifth parameter.
"D" Acknowledgement type
The MSG command in a switchboard now accepts an acknowledgement type of D , as well as A , N , and U . The official client always uses it (and only uses it) for special MSNC1 messages. It generally behaves like the A type, but gives numerical error codes for some badly formed messages before you get disconnected. Here is a successful example:
>>> MSG 3 D 819\r\n
. . .
<<< ACK 3\r\n
Here is an example of a failed message. The meaning of the 282 error is unknown.
>>> MSG 1 D 800
MIME-Version: 1.0
Content-Type: application/x-msnmsgrp2p
P2P-Dest: xxxxx@hotmail.com
00000000133713370000000000000000A83000000000000A8300000000000000000000AB381E0031337357000000000000000000000000
INVITE MSNMSGR:xxxxx@hotmail.com MSNSLP/1.0
To: <msnmsgr:xxxxx@hotmail.com>
From: <msnmsgr:xxxxxxxxxxx@hotmail.com>
Via: MSNSLP/1.0/TLP ;branch={33517CE4-02FC-4428-B6F4-39927229B722}
CSeq: 0
Call-ID: {9D79AE57-1BD5-444B-B14E-3FC9BB2B5D58}
Max-Forwards: 0
Content-Type: application/x-msnmsgr-sessionreqbody
Content-Length: 906
EUF-GUID: {A4268EEC-FEC5-49E5-95C3-F126696BDBF6}
SessionID: 1980589
AppID: 1
Context: PG1zbm9iaqBDcmVhdG9yPSJ4eHh4eEBob3RtYWlsLmNvbSKgU2l6ZT0iMTY5NDUioFR5cGU9IjMioExvY2F0aW9uPSJURlIyRDIwLmRhdCKgRnJpZW5kbHk9IkFBQT0ioFNIQTFEPSJDKy9rUm0yaEFZZDZ4Q0tCdWZNUVRJRUcrWDg9IqBTSEExQz0iOTYyMldURHBPeHllTlVqRmNadlErOXoxdEEwPSIvPjAw
00
00 00 00 00
<<< 282 1
|