PageRenderTime 36ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/W3b.MsnpServer/_source/Notes/miscellaneous.php.htm

#
HTML | 441 lines | 310 code | 82 blank | 49 comment | 0 complexity | 57d3f1238ad5192ff1a9c5b56cca5c4a MD5 | raw file
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  3. <head>
  4. <title>MSN Messenger Protocol - Notification - Miscellaneous</title>
  5. <link rel="stylesheet" href="../default.css" type="text/css" />
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  7. <meta name="description" content="An unofficial overview of the MSN Messenger protocol." />
  8. <meta name="keywords" content="MSN Messenger Protocol, MSN Messenger, MSN, Protocol, IM, Messenger, Mike Mintz" />
  9. <meta name="author" content="Mike Mintz (Michael David Mintz)" />
  10. </head>
  11. <body bgcolor="#FFFFFF">
  12. <br />
  13. <table cellpadding="0" cellspacing="10" width="100%" border="0" align="center" bgcolor="#FFFFFF">
  14. <tr valign="top"><td colspan="2">
  15. <div style="padding: 5pt; margin-left: 10pt; margin-right: 10pt; border-bottom: #AAAAFF solid 1pt" align="right"><font color="#444488"><i>Since March 10, 2003</i> - <b> Version 2</b></font></div>
  16. <div style="padding: 5pt; margin-left: 10pt; margin-right: 10pt; border-top: #CCCCFF solid 1pt" align="right"><a href="http://www.hypothetic.org/"><small><b>hypothetic.org</b></small></a></div>
  17. <h1>MSN Messenger Protocol</h1>
  18. </td></tr>
  19. <tr valign="top">
  20. <td>
  21. <table border="0" cellpadding="0" cellspacing="1" width="200" bgcolor="#FFFFFF">
  22. <tr><td>
  23. <table border="0" cellpadding="8" cellspacing="5" bgcolor="#000000" width="100%"><tr valign="middle"><td align="center" bgcolor="#FFFFFF">
  24. <a href="../index.php"><big><b><font style="letter-spacing: 2px">Home Page</font></b></big></a>
  25. </td></tr></table>
  26. <br />
  27. </td></tr>
  28. <tr><td>
  29. <table border="0" cellpadding="4" cellspacing="3" bgcolor="#CCAAFF" width="100%"><tr valign="middle"><td align="center" bgcolor="#FFFFFF">
  30. <a href="http://www.hypothetic.org/docs/msn/phorum/"><b><font style="letter-spacing: 1px">Forum</font></b></a>
  31. </td></tr><tr valign="middle"><td align="center" bgcolor="#FFFFFF">
  32. <a href="../chat.php"><b><font style="letter-spacing: 1px">Chat</font></b></a>
  33. </td></tr></table>
  34. <br />
  35. </td></tr>
  36. <tr><td>
  37. <table border="0" cellpadding="4" cellspacing="3" bgcolor="#AACCFF" width="100%"><tr valign="middle"><td align="center" bgcolor="#FFFFFF">
  38. <a href="../about.php"><b><font style="letter-spacing: 1px">About</font></b></a>
  39. </td></tr></table>
  40. <br />
  41. </td></tr>
  42. <tr><td>
  43. <table border="0" cellpadding="0" cellspacing="1" width="100%" bgcolor="#000000">
  44. <tr><td>
  45. <table border="0" cellpadding="0" cellspacing="1" bgcolor="#000000" width="100%"><tr valign="middle"><td align="center" bgcolor="#EEEEEE" height="30">
  46. <big><b>Resources</b></big>
  47. </td></tr></table>
  48. </td></tr>
  49. <tr><td>
  50. <table border="0" cellpadding="2" cellspacing="0" bgcolor="#FBFBFB" width="100%"><tr valign="top"><td>
  51. <div class="menuitem"><b>&middot;</b> <a href="../resources/faq.php">FAQ</a></div>
  52. <div class="menuitem"><b>&middot;</b> <a href="../resources/unofficial_protocol.php">Unofficial Protocol</a></div>
  53. <div class="menuitem"><b>&middot;</b> <a href="../resources/projects.php">Projects</a></div>
  54. <div class="menuitem"><b>&middot;</b> <a href="../resources/links.php">Links</a></div>
  55. </td></tr></table>
  56. </td></tr>
  57. </table>
  58. <br />
  59. </td></tr>
  60. <tr><td>
  61. <table border="0" cellpadding="0" cellspacing="1" width="100%" bgcolor="#000000">
  62. <tr><td>
  63. <table border="0" cellpadding="0" cellspacing="1" bgcolor="#000000" width="100%"><tr valign="middle"><td align="center" bgcolor="#EEEEEE" height="30">
  64. <big><b>Research</b></big>
  65. </td></tr></table>
  66. </td></tr>
  67. <tr><td>
  68. <table border="0" cellpadding="2" cellspacing="0" bgcolor="#FBFBFB" width="100%"><tr valign="top"><td>
  69. <div class="menuitem"><b>&middot;</b> <a href="../research/research_practice.php">Research Practice</a></div>
  70. <div class="menuitem"><b>&middot;</b> <a href="../research/msnp8.php">MSNP8</a></div>
  71. <div class="menuitem"><b>&middot;</b> <a href="../research/msnp9.php">MSNP9</a></div>
  72. <div class="menuitem"><b>&middot;</b> <a href="../research/msnp10.php">MSNP10</a></div>
  73. <div class="menuitem"><b>&middot;</b> <a href="../research/client_ID.php">Client ID structure</a></div>
  74. </td></tr></table>
  75. </td></tr>
  76. </table>
  77. <br />
  78. </td></tr>
  79. <tr><td>
  80. <table border="0" cellpadding="0" cellspacing="1" width="100%" bgcolor="#000000">
  81. <tr><td>
  82. <table border="0" cellpadding="0" cellspacing="1" bgcolor="#000000" width="100%"><tr valign="middle"><td align="center" bgcolor="#EEEEEE" height="30">
  83. <big><b>Documentation</b></big>
  84. </td></tr></table>
  85. </td></tr>
  86. <tr><td>
  87. <table border="0" cellpadding="1" cellspacing="1" bgcolor="#000000" width="100%"><tr valign="middle"><td align="left" bgcolor="#FFFAEF" height="20">
  88. &nbsp;<b>General</b>
  89. </td></tr></table>
  90. </td></tr>
  91. <tr><td>
  92. <table border="0" cellpadding="2" cellspacing="0" bgcolor="#FFFDF8" width="100%"><tr valign="top"><td>
  93. <div class="menuitem"><b>&middot;</b> <a href="../general/overview.php">Overview</a></div>
  94. <div class="menuitem"><b>&middot;</b> <a href="../general/glossary.php">Glossary</a></div>
  95. <div class="menuitem"><b>&middot;</b> <a href="../general/connections.php">Connections</a></div>
  96. <div class="menuitem"><b>&middot;</b> <a href="../general/http_connections.php">HTTP Connections</a></div>
  97. <div class="menuitem"><b>&middot;</b> <a href="../general/commands.php">Commands</a></div>
  98. <div class="menuitem"><b>&middot;</b> <a href="../general/payload_commands.php">Payload Commands</a></div>
  99. <div class="menuitem"><b>&middot;</b> <a href="../general/names.php">Names</a></div>
  100. <div class="menuitem"><b>&middot;</b> <a href="../general/md5.php">MD5</a></div>
  101. </td></tr></table>
  102. </td></tr>
  103. <tr><td>
  104. <table border="0" cellpadding="1" cellspacing="1" bgcolor="#000000" width="100%"><tr valign="middle"><td align="left" bgcolor="#EFFFEF" height="20">
  105. &nbsp;<b>Notification</b>
  106. </td></tr></table>
  107. </td></tr>
  108. <tr><td>
  109. <table border="0" cellpadding="2" cellspacing="0" bgcolor="#F8FFF8" width="100%"><tr valign="top"><td>
  110. <div class="menuitem"><b>&middot;</b> <a href="../notification/authentication.php">Authentication</a></div>
  111. <div class="menuitem"><b>&middot;</b> <a href="../notification/statuses.php">Statuses</a></div>
  112. <div class="menuitem"><b>&middot;</b> <a href="../notification/pings_challenges.php">Pings / Challenges</a></div>
  113. <div class="menuitem"><b>&middot;</b> <a href="../notification/contact_lists.php">Contact Lists</a></div>
  114. <div class="menuitem"><b>&middot;</b> <a href="../notification/users_groups.php">Users / Groups</a></div>
  115. <div class="menuitem"><b>&middot;</b> <a href="../notification/messages.php">Messages</a></div>
  116. <div class="menuitem"><b>&middot;</b> <a href="../notification/miscellaneous.php">Miscellaneous</a></div>
  117. <div class="menuitem"><b>&middot;</b> <a href="../notification/example_session.php">Example Session</a></div>
  118. </td></tr></table>
  119. </td></tr>
  120. <tr><td>
  121. <table border="0" cellpadding="1" cellspacing="1" bgcolor="#000000" width="100%"><tr valign="middle"><td align="left" bgcolor="#FFEFEF" height="20">
  122. &nbsp;<b>Switchboard</b>
  123. </td></tr></table>
  124. </td></tr>
  125. <tr><td>
  126. <table border="0" cellpadding="2" cellspacing="0" bgcolor="#FFF8F8" width="100%"><tr valign="top"><td>
  127. <div class="menuitem"><b>&middot;</b> <a href="../switchboard/authentication.php">Authentication</a></div>
  128. <div class="menuitem"><b>&middot;</b> <a href="../switchboard/participants.php">Participants</a></div>
  129. <div class="menuitem"><b>&middot;</b> <a href="../switchboard/messages.php">Messages</a></div>
  130. <div class="menuitem"><b>&middot;</b> <a href="../switchboard/plaintext.php">Plaintext</a></div>
  131. <div class="menuitem"><b>&middot;</b> <a href="../switchboard/invitations.php">Invitations</a></div>
  132. <div class="menuitem"><b>&middot;</b> <a href="../switchboard/example_session.php">Example Session</a></div>
  133. </td></tr></table>
  134. </td></tr>
  135. <tr><td>
  136. <table border="0" cellpadding="1" cellspacing="1" bgcolor="#000000" width="100%"><tr valign="middle"><td align="left" bgcolor="#FAEFFF" height="20">
  137. &nbsp;<b>Protocols</b>
  138. </td></tr></table>
  139. </td></tr>
  140. <tr><td>
  141. <table border="0" cellpadding="2" cellspacing="0" bgcolor="#FCF8FF" width="100%"><tr valign="top"><td>
  142. <div class="menuitem"><b>&middot;</b> <a href="../protocols/invitations.php">Invitations</a></div>
  143. <div class="menuitem"><b>&middot;</b> <a href="../protocols/file_transfer.php">File Transfer</a></div>
  144. </td></tr></table>
  145. </td></tr>
  146. <tr><td>
  147. <table border="0" cellpadding="1" cellspacing="1" bgcolor="#000000" width="100%"><tr valign="middle"><td align="left" bgcolor="#EFFAFF" height="20">
  148. &nbsp;<b>Reference</b>
  149. </td></tr></table>
  150. </td></tr>
  151. <tr><td>
  152. <table border="0" cellpadding="2" cellspacing="0" bgcolor="#F8FCFF" width="100%"><tr valign="top"><td>
  153. <div class="menuitem"><b>&middot;</b> <a href="../reference/original_draft.php">Original Draft</a></div>
  154. <div class="menuitem"><b>&middot;</b> <a href="../reference/error_list.php">Error List</a></div>
  155. </td></tr></table>
  156. </td></tr>
  157. </table>
  158. </td></tr>
  159. <tr><td align="center">
  160. <br />
  161. <!--<a href="http://validator.w3.org/check/referer"><small>Validate XHTML</small></a>-->
  162. <a href="http://validator.w3.org/check?uri="><small>Validate XHTML</small></a>
  163. <br />
  164. <!--<a href="http://jigsaw.w3.org/css-validator/check/referer"><small>Validate CSS</small></a>-->
  165. <a href="http://jigsaw.w3.org/css-validator/validator?uri="><small>Validate CSS</small></a>
  166. <br />
  167. </td></tr>
  168. </table>
  169. </td>
  170. <td width="100%">
  171. <table border="0" cellpadding="3" cellspacing="0" bgcolor="#AAAAAA" width="100%"><tr valign="middle">
  172. <td align="center" bgcolor="#FFFFFF" width="100%">
  173. <font color="#663399" style="letter-spacing: 2px" size="+2"><b>Notification - Miscellaneous</b></font>
  174. </td>
  175. <td align="center" bgcolor="#EEEEEE">
  176. <div><b>Printable&nbsp;Version</b></div>
  177. <div><a href="/docs/msn/sitev2.0/notification/miscellaneous.php?printable=color">Color</a> / <a href="/docs/msn/sitev2.0/notification/miscellaneous.php?printable=gray">Grayscale</a></div>
  178. </td>
  179. </tr></table>
  180. <h2>Cosnumer Versioning (CVR)<a name="cvr"></a></h2>
  181. <p>The <code>CVR</code> command sends version information about a client and operating system to the server. For the official client, the server will reply with information about a recommended version of the client (which may be the same as the current version).</p>
  182. <p>The <code>CVR</code> command is optional in protocol versions up to and including MSNP7. It's debatable whether third-party clients should send <code>CVR</code>. On one hand, Microsoft might start blocking users based on this command. On the other hand, they might treat third-party clients better if there was evidence that a significant number of people used them. On the one hand, there are serious privacy issues with the information given out. On the other hand, there's no way for Microsoft to verify the information given.</p>
  183. <p>The <code>CVR</code> command includes information about the language you speak, the name and version of your client, and the name and version of your OS. You can send a <code>CVR</code> command to the NS at any time after you have finished logging in, but the official client always sends it immediately after sending the initial <code>CHG</code>. You can send <code>CVR</code> as many or as few times as you like. <code>CVR</code> has a TrID and 6 parameters in MSNP2 and MSNP3, or 7 parameters in MSNP5 and MSNP7.</p>
  184. <ul>
  185. <li>The first parameter is hexadecimal number specifying your <a href="http://krafft.com/scripts/deluxe-calendar/lcid_chart.htm">locale ID</a> (e.g. "0x0409" For U.S. English).</li>
  186. <li>The second parameter is your OS type (e.g. "win" for Windows).</li>
  187. <li>The third parameter is your OS version (e.g. "4.10" for Windows 98).</li>
  188. <li>The fourth parameter is the architecture of your computer (e.g. "i386" for Intel-comaptible PCs of type 386 or above).</li>
  189. <li>The fifth parameter is your client name (e.g. "MSMSGS" for the official MSN Messenger client).</li>
  190. <li>The sixth parameter is your client version (e.g. "1.0.0863" for the first version of the official client).</li>
  191. <li>The seventh parameter is always "MSMSGS" in the official client. Your guess about what this means is as good as mine.</li>
  192. </ul>
  193. <p>Like with any other command, the server will reply to a <code>CVR</code> command with a <code>CVR</code> reply. For some reason, though, the official client would be just as happy if you replaced <code>CVR</code> with <code>CVQ</code> in the reply. The reply command will contain 5 parameters:</p>
  194. <ul>
  195. <li>The first parameter is a recommended version of the client for you to use, or "1.0.0000" if your client information is not recognised.</li>
  196. <li>The second parameter is identical to the first.</li>
  197. <li>The third parameter is "1.0.0000".</li>
  198. <li>The fourth parameter is a URL you can download the recommended version of the client from.</li>
  199. <li>The fifth parameter is a URL the user can go to to get more information about the client.</li>
  200. </ul>
  201. <p>Here is the <code>CVR</code> information sent by version 3.6 of the official client.</p>
  202. <p><code class="client">&gt;&gt;&gt; CVR 7 0x0409 win 4.10 i386 MSMSGS 3.6.0025 MSMSGS<code class="newline">\r\n</code></code></p>
  203. <p><code class="server">&lt;&lt;&lt; CVR 7 4.6.0083 4.6.0083 1.0.0000 http://download.microsoft.com&#x200B;/download/msnmessenger/install/4.6/win98me/en-us/&#x200B;mmssetup.exe http://messenger.microsoft.com<code class="newline">\r\n</code></code></p>
  204. <p><code class="client">&gt;&gt;&gt; CVR 8 0x0409 win 4.10 i386 MSGSTRST 3.6.0025 MSMSGS<code class="newline">\r\n</code></code></p>
  205. <p><code class="server">&lt;&lt;&lt; CVR 8 1.0.0000 1.0.0000 1.0.0000 http://download.microsoft.com&#x200B;/download/msnmessenger/install/4.6/win98me/en-us/&#x200B;mmssetup.exe http://messenger.microsoft.com.<code class="newline">\r\n</code></code></p>
  206. <h2>Service URLs (URL)<a name="url"></a></h2>
  207. <p>The <code>URL</code> command retrieves URLs relating to the various MSN services to be opened in an external or integrated browser. It takes one parameter, which can be multiple words. Note that the parameter is case-sensitive. The <code>0x...</code> does not symbolize a special character and is to be taken literally. The parameter must be one of the following:</p>
  208. <ul>
  209. <li><code>INBOX</code> - Hotmail inbox</li>
  210. <li><code>FOLDERS</code> - Believed to be the Hotmail's "MSN home" URL.</li>
  211. <li><code>COMPOSE</code> - Compose an email</li>
  212. <li><code>COMPOSE example@passport.com</code> - Compose an email for example@passport.com</li>
  213. <li><code>PROFILE 0x1409</code> - Edit your MSN member directory profile</li>
  214. <li><code>CHGMOB</code> - Mobile settings (pager etc.)</li>
  215. <li><code>PERSON 0x0409</code> - Member services, password, secret question, account info</li>
  216. <li><code>CHAT 0x0409</code> - Chat rooms</li>
  217. </ul>
  218. <p>The server will respond with another <code>URL</code>. It always has three parameters: the first two are URLs and the third is an ID number. These parameters are used to determine how to direct the web browser. The first four items are explained in the <a href="../notification/messages.php#hotmail_login">notification server messages page</a>.</p>
  219. <p>Below is an example of requesting the URL information for the Hotmail inbox:</p>
  220. <p><code class="server">&gt;&gt;&gt; URL 15 INBOX<code class="newline">\r\n</code></code></p>
  221. <p><code class="client">&lt;&lt;&lt; URL 15 /cgi-bin/HoTMaiL https://loginnet.passport.com/ppsecure/md5auth.srf?lc=1033 2<code class="newline">\r\n</code></code></p>
  222. <p>The <code>URL</code> command does not give you the URL to view profiles of people in the <a href="http://members.msn.com">MSN Member List</a>. To do this, direct the web browser to <code>http://members.msn.com/default.msnw?mem=<font color="#AA00AA">ACCOUNTNAME</font></code> where <code><font color="#AA00AA">ACCOUNTNAME</font></code> is the account name of the user whose profile you want to view.</p>
  223. <h2>Sending an e-mail invitation</h2>
  224. <p><b>Note: This command has not been well tested. If you have done any research on this command, please <a href="../about.php#contact">let us know</a>!</b></p>
  225. <p>You can send an e-mail saying <i>"&lt;your-passport&gt; wants to talk to you!"</i> to a specified e-mail address with the <code>SND</code> command, which has a TrID and 4 parameters.</p>
  226. <ul>
  227. <li>The first parameter is the e-mail address you want to send the message to.</li>
  228. <li>The second parameter is the <a href="http://krafft.com/scripts/deluxe-calendar/lcid_chart.htm">locale ID</a> of the language to send the message in.</li>
  229. <li>The third and fourth parameters are "MSMSGS MSMSGS".</li>
  230. </ul>
  231. <p>If the message was sent successfully, the server will reply with an <code>SND</code> with a single parameter of <code>OK</code>. Here is an example.</p>
  232. <p><code class="client">&gt;&gt;&gt; SND 22 alice@hotmail.com 0x409 MSMSGS MSMSGS<code class="newline">\r\n</code></code></p>
  233. <p><code class="server">&lt;&lt;&lt; SND 22 OK<code class="newline">\r\n</code></code></p>
  234. <p>If bob@hotmail.com sent this message, Alice would receive an e-mail saying <i>"bob@hotmail.com wants to talk to you!"</i>.</p>
  235. <h2>Searching For Users<a name="fnd"></a></h2>
  236. <p>MSN Messenger used to include a search facility, but this has been superceded by the <a href="http://members.msn.com/">MSN Memeber Directory</a>. The command used for this was <code>FND</code>. Sending an <code>FND</code> command in any version of the MSN Messenger protocol will now cause you to receive a <code>502</code> error, and nothing more.</p>
  237. <!--
  238. <p>You can try to find people on MSN with the <code>FND</code> command, though this has been largely superceded by the <a href="http://members.msn.com/">MSN Memeber Directory</a> in recent years. <code>FND</code> has a TrID and five parameters. For some reason, all of the parameters to FND have a "key=value" format, for example "fname=Mike" or "lname=Mintz".</p>
  239. <ul>
  240. <li>The first parameter is "fname=&lt;First name&gt;". If you set the value of fname to <code>*</code>, the server will return error <code>201</code>.</li>
  241. <li>The second parameter is "lname=&lt;Last name&gt;". If you set the value of lname to <code>*</code>, the server will return error <code>201</code>.</li>
  242. <li>The third parameter is "city=&lt;City&gt;". Only major US cities are allowed.</li>
  243. <li>The fourth parameter is "state=&lt;U.S. state&gt;". This is a two-letter code for a US state.</li>
  244. <li>The fifth parameter is "country=&lt;Country&gt;". This is the two letter <a href="http://www.iso.ch/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/index.html">ISO country code</a>.</li>
  245. </ul>
  246. <p><code>city</code>, <code>state</code>, or <code>country</code> can be set to <code>*</code>, meaning "any". If you specify a country other than "US", you must set city and state to <code>*</code>, or you will be disconnected.</p>
  247. <p>There is an (as yet unknown) maximum number of matches allowed on a query. If a search has more than the maximum number of matches, the server will return error <code>301</code>. Otherwise, it will return a series of matches, one per command. The matches have 6 arguments: an incrementing number, a total number, first name, last name, city, state, and country of an individual match. Here are some examples.</p>
  248. <p><code class="client">&gt;&gt;&gt; FND 3 fname=Bill lname=Gates city=* state=* country=US<code class="newline">\r\n</code></code></p>
  249. <p><code class="server">&lt;&lt;&lt; 301 3<code class="newline">\r\n</code></code></p>
  250. <p><code class="client">&gt;&gt;&gt; FND 3 fname=Mike lname=Mintz city=* state=* country=DE<code class="newline">\r\n</code></code></p>
  251. <p><code class="server">&lt;&lt;&lt; FND 3 0 0<code class="newline">\r\n</code></code></p>
  252. <p><code class="client">&gt;&gt;&gt; FND 9 fname=Mike lname=Mintz city=* state=* Country=US<code class="newline">\r\n</code></code></p>
  253. <p><code class="server">
  254. &lt;&lt;&lt; FND 9 1 3 fname=Mike lname=Mintz State=Alaska Country=US<code class="newline">\r\n</code><br />
  255. &nbsp;&nbsp;&nbsp; FND 9 2 3 fname=Mike lname=Mintz State=South%20Dakota Country=US<code class="newline">\r\n</code><br />
  256. &nbsp;&nbsp;&nbsp; FND 9 3 3 fname=Mike lname=Mintz State=Oklahoma Country=US<code class="newline">\r\n</code>
  257. </code></p>
  258. <h3>SDC</h3>
  259. <p><b>Note: This command has not been well tested. If you have done any research on this command, please <a href="../about.php#contact">let us know</a>!</b></p>
  260. <p>After finding someone with <code>FND</code>, you can use the <code>SDC</code> command much like <code>SND</code>, above. The user specified with <code>SDC</code> will receive an e-mail saying <i>"&lt;your_friendlyname&gt; wants to talk to you!"</i>. <code>SDC</code> has a TrID and 8 parameters.</p>
  261. <ul>
  262. <li>The first parameter is the the incrementing number associated with the match.</li>
  263. <li>The second, third, fourth, fifth and sixth parameters are "0x0409 MSMSGS WindowsMessenger X X"</li>
  264. <li>The seventh argument is the friendly name you want to specify in the e-mail address they receive.</li>
  265. <li>The eighth argument is the length of the payload to this command.</li>
  266. </ul>
  267. <p>For example, if I had just run the above search for Mike Mintz, and decided to contact the Mike Mintz in Alaska, I might send the following:</p>
  268. <p><code class="client">
  269. &gt;&gt;&gt; SDC 3 1 0x0409 MSMSGS WindowsMessenger X X Andrew%20Sayers 8<code class="newline">\r\n</code><br />
  270. &nbsp;&nbsp;&nbsp; Hi Mike! <code class="other">(no newline)</code>
  271. </code></p>
  272. <!-- * What do you receive when you send an SDC? -->
  273. <h2>MSN Alerts<a name="not"></a></h2>
  274. <p><b>Note: This command has not been well tested. If you have done any research on this command, please <a href="../about.php#contact">let us know</a>!</b></p>
  275. <p>MSN Alerts use the <code>NOT</code> ("notification") command, which has one parameter - the length of the message body.</p>
  276. <p>If you use the official client, you can register this service by clicking on the golden bell tab (under the msn "green buddy" tab).</p>
  277. <p>This command hasn't been thoroughly researched, so the information in this section is fairly speculative. If you are interested in it, please <a href="../about.php#contact">let us know</a> what you find! Only two examples of this command has been observed.</p>
  278. <p><code class="server">
  279. &lt;&lt;&lt; NOT 586<code class="newline">\r\n</code><br />
  280. &nbsp;&nbsp;&nbsp; &lt;NOTIFICATION ver="1" siteid="111100200" siteurl="http://calendar.msn.com" id="2"&gt;<code class="newline">\r\n</code><br />
  281. &nbsp;&nbsp;&nbsp; &lt;TO pid="0x00060000:0x81ee5a43" name="jabber_test@hotmail.com" /&gt;<code class="newline">\r\n</code><br />
  282. &nbsp;&nbsp;&nbsp; &lt;MSG pri="" id="2"&gt;<code class="newline">\r\n</code><br />
  283. &nbsp;&nbsp;&nbsp; &lt;ACTION url=&#x200B;"/calendar/isapi.dll?request=action&amp;operation=modify&#x200B;&amp;objectID=2&#x200B;&amp;uicode1=modifyreminder&amp;locale=2052"/&gt;<code class="newline">\r\n</code><br />
  284. &nbsp;&nbsp;&nbsp; &lt;SUBSCR url=&#x200B;"/calendar/isapi.dll?request=action&amp;operation=modify&#x200B;&amp;objectID=2&#x200B;&amp;uicode1=modifyreminder&amp;locale=2052"/&gt;&#x200B;&lt;CAT id="111100201" /&gt;<code class="newline">\r\n</code><br />
  285. &nbsp;&nbsp;&nbsp; &lt;BODY lang="2052" icon="/En/img/calendar.png"&gt;<code class="newline">\r\n</code><br />
  286. &nbsp;&nbsp;&nbsp; &lt;TEXT&gt;aaaaa (bbbbb) 2002偁十䁁月14星期21:45 - 22:45 &lt;/TEXT&gt;<code class="newline">\r\n</code><br />
  287. &nbsp;&nbsp;&nbsp; &lt;/BODY&gt;<code class="newline">\r\n</code><br />
  288. &nbsp;&nbsp;&nbsp; &lt;/MSG&gt;<code class="newline">\r\n</code><br />
  289. &nbsp;&nbsp;&nbsp; &lt;/NOTIFICATION&gt;<code class="newline">\r\n</code><br />
  290. </code></p>
  291. <p><code class="server">
  292. &lt;&lt;&lt; NOT 590<code class="newline">\r\n</code><br />
  293. &nbsp;&nbsp;&nbsp; &lt;NOTIFICATION ver="1" siteid="111100200" siteurl="http://calendar.msn.com" id="1"&gt;<code class="newline">\r\n</code><br />
  294. &nbsp;&nbsp;&nbsp; &lt;TO pid="0x00060000:0x81ee5a43" name="jabber_test@hotmail.com" /&gt;<code class="newline">\r\n</code><br />
  295. &nbsp;&nbsp;&nbsp; &lt;MSG pri="" id="1"&gt;<code class="newline">\r\n</code><br />
  296. &nbsp;&nbsp;&nbsp; &lt;ACTION url=&#x200B;"/calendar/isapi.dll?request=action&amp;operation=modify&#x200B;&amp;objectID=1&#x200B;&amp;uicode1=modifyreminder&amp;locale=2052"/&gt;<code class="newline">\r\n</code><br />
  297. &nbsp;&nbsp;&nbsp; &lt;SUBSCR url=&#x200B;"/calendar/isapi.dll?request=action&amp;operation=modify&#x200B;&amp;objectID=1&#x200B;&amp;uicode1=modifyreminder&amp;locale=2052"/&gt;&#x200B;&lt;CAT id="111100201" /&gt;<code class="newline">\r\n</code><br />
  298. &nbsp;&nbsp;&nbsp; &lt;BODY lang="2052" icon="/En/img/calendar.png"&gt;<code class="newline">\r\n</code><br />
  299. &nbsp;&nbsp;&nbsp; &lt;TEXT&gt;goto club 7. 2002 21:15 - 22:15 &lt;/TEXT&gt;<code class="newline">\r\n</code><br />
  300. &nbsp;&nbsp;&nbsp; &lt;/BODY&gt;<code class="newline">\r\n</code><br />
  301. &nbsp;&nbsp;&nbsp; &lt;/MSG&gt;<code class="newline">\r\n</code><br />
  302. &nbsp;&nbsp;&nbsp; &lt;/NOTIFICATION&gt;<code class="newline">\r\n</code><br />
  303. </code></p>
  304. <p>The body appears to be XML, though we're not sure whether it's actually parsed as XML, which commands are necessary, whether you can insert arbitrary extra fields, and so on. Our current theories about the various sections of the message are:</p>
  305. <ul>
  306. <li>The NOTIFICATION element specifies that this is a notification.
  307. <ul>
  308. <li>The "ver" attribute specifies the version of the notification standard being used.</li>
  309. <li>The "siteurl" attribute is the base URL to be used with the relative URLs in nested elements.</li>
  310. <li>The "id" attribute is an ID value which increases by one for every notification in the current session.</li>
  311. </ul>
  312. </li>
  313. <li>The TO element specifies who the message is addressed to (i.e. you). The "name" attribute is your passport.</li>
  314. <li>The MSG element contains a particular message. This might suggest that more (or less?) than one message can be sent in a single notification. The "id" attribute is the same as the id of the NOTIFICATION tag.</li>
  315. <li>The ACTION and SUBSCR elements are identical, and give a URL (relative to the URL given in the NOTIFICATION element) to visit.</li>
  316. <li>The CAT element might be some kind of categorisation?</li>
  317. <li>The BODY element contains the body of the notification.
  318. <ul>
  319. <li>The "lang" attribute is a language code.</li>
  320. <li>The "icon" attribute is an icon to display in the alert box.</li>
  321. </ul>
  322. </li>
  323. <li>The TEXT element contains the text of the alert</li>
  324. </ul>
  325. <h2>Mobile Paging (PAG)<a name="pag"></a></h2>
  326. <p><b>Note: This command has not been well tested. If you have done any research on this command, please <a href="../about.php#contact">let us know</a>!</b></p>
  327. <p>You can page someone on their <a href="http://mobile.msn.com">MSN Mobile</a> device with the <code>PAG</code> command. It is believed that you can receive an incoming message from an MSN Mobile device with the <code>IPG</code> command.</p>
  328. <p>If someone on your forward list has an MSN Mobile device and have allowed you to send messages to them with it, their "MOB" will be set to "Y". The <code>PAG</code> command has a TrID and two arguments.</p>
  329. <ul>
  330. <li>The first argument is the passport of the user you want to send the message to.</li>
  331. <li>The second argument is the length of the message body.</li>
  332. </ul>
  333. <p>The body of a PAG can be either <code>&lt;TEXT xml:space="preserve"&gt; . . . &lt;/TEXT&gt;</code> or <code>&lt;PHONE pri="1"&gt;&#x200B;&lt;LOC&gt;string&lt;/LOC&gt;&#x200B;&lt;NUM&gt;string&lt;/NUM&gt;&#x200B;&lt;/PHONE&gt;&lt;&#x200B;TEXT xml:space="preserve"&gt; . . . &lt;/TEXT&gt;</code>. The extra information in the second format is not yet understood.</p>
  334. <p>If the command failed to send, the reply is an <code>800</code> error. If there is some other error (for example, you are not allowed to send <code>PAG</code>s, or your <code>PAG</code> is malformed), you get a 220 error. If the message was sent successfully, there is no reply.</p>
  335. <p>A message sent with the PAG command must be no more than 113 characters long. It can include any characters valid in an XML document. That means that <code>&amp;</code> must be converted to <code>&amp;amp;</code>, characters with values greater than 127 or less than 32 must be converted to <code>&amp;#NN;</code>, etc.</p>
  336. <p>The <code>IPG</code> command has never been observed in the wild, but analysis of the official client suggests that it is a normal payload command with a specified length.</p>
  337. </td>
  338. </tr>
  339. </table>
  340. <h1> </h1>
  341. <div align="center">
  342. <small>
  343. Copyright &copy;2002-2003 to <a href="http://www.mikemintz.com/">Mike Mintz</a>.
  344. </small>
  345. </div>
  346. <br />
  347. </body>
  348. </html>