<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.nina.chat/index.php?action=history&amp;feed=atom&amp;title=Protocols%2FMSNP%2FMSNP8%2FSB_Messages</id>
	<title>Protocols/MSNP/MSNP8/SB Messages - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.nina.chat/index.php?action=history&amp;feed=atom&amp;title=Protocols%2FMSNP%2FMSNP8%2FSB_Messages"/>
	<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Protocols/MSNP/MSNP8/SB_Messages&amp;action=history"/>
	<updated>2026-06-26T14:07:58Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Protocols/MSNP/MSNP8/SB_Messages&amp;diff=4322&amp;oldid=prev</id>
		<title>Animadoria at 10:30, 12 May 2022</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Protocols/MSNP/MSNP8/SB_Messages&amp;diff=4322&amp;oldid=prev"/>
		<updated>2022-05-12T10:30:45Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:30, 12 May 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Protocols/MSNP&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/&lt;/del&gt;MSNP8 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Messaging Nav&lt;/del&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Protocols/MSNP&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;section=&lt;/ins&gt;MSNP8}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki-wiki_:diff:1.41:old-2647:rev-4322:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Animadoria</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Protocols/MSNP/MSNP8/SB_Messages&amp;diff=2647&amp;oldid=prev</id>
		<title>AD: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Protocols/MSNP/MSNP8/SB_Messages&amp;diff=2647&amp;oldid=prev"/>
		<updated>2020-05-29T00:23:44Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 00:23, 29 May 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wiki-wiki_:diff:1.41:old-2646:rev-2647 --&gt;
&lt;/table&gt;</summary>
		<author><name>AD</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Protocols/MSNP/MSNP8/SB_Messages&amp;diff=2646&amp;oldid=prev</id>
		<title>AD: Spelling/typos</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Protocols/MSNP/MSNP8/SB_Messages&amp;diff=2646&amp;oldid=prev"/>
		<updated>2007-05-20T12:02:52Z</updated>

		<summary type="html">&lt;p&gt;Spelling/typos&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Protocols/MSNP/MSNP8 Messaging Nav}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
The use of messages ('''MSG''') is the only way to send information to other principals in the switchboard session. Each message sent to a session is relayed to every other principal in the session. '''MSG'''s can be instant messages, typing notifications, application invitations, or any arbitrary type of message you want to send - but not all clients will recognise all types of message.&lt;br /&gt;
&lt;br /&gt;
= Outgoing Messages =&lt;br /&gt;
To send a message to the switchboard, send the '''MSG''' command.&lt;br /&gt;
&lt;br /&gt;
* There must be a TrID.&lt;br /&gt;
* The first parameter is the type of acknowledgement you would like to receive. It can be either '''U''', '''N''', or '''A'''. If it is '''U''', you will receive no acknowledgement. If it is '''N''', you will receive acknowledgement only if the message was not properly received. If it is '''A''', you will receive acknowledgement whether it was properly received or not. This parameter is case-sensitive (must be uppercase, or the switchboard will close the connection without sending the message). Acknowledgement is explained below.&lt;br /&gt;
* The second parameter is the length of the payload in bytes.&lt;br /&gt;
* The payload of the '''MSG''' comes after the newline. The payload can be zero bytes.&lt;br /&gt;
&lt;br /&gt;
A message may be up to 1664 bytes (as of April 30, 2003). If it is any longer, the switchboard will close the connection without sending the message. Interestingly enough, the number 1664 is equal to 13 x 2^7. Many superstitious people consider 13 to be an unlucky number and 7 to be a lucky number. Therefore, messages have mezotarian luck and are to be avoided by Capricorns.&lt;br /&gt;
&lt;br /&gt;
Below is an example of an outgoing message:&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; MSG 4 N 133\r\n&lt;br /&gt;
     MIME-Version: 1.0\r\n&lt;br /&gt;
     Content-Type: text/plain; charset=UTF-8\r\n&lt;br /&gt;
     X-MMS-IM-Format: FN=Arial; EF=I; CO=0; CS=0; PF=22\r\n&lt;br /&gt;
     \r\n&lt;br /&gt;
     Hello! How are you?&lt;br /&gt;
&lt;br /&gt;
You do not need to end a payload with a newline. The end of the payload is determined by the given length in the second parameter, and an additional newline would just add a blank line to the end of the payload, If you send an incorrect length with your message, It will still be sent, but you will be disconnected after. (You'll even receive ACK!)&lt;br /&gt;
&lt;br /&gt;
== Acknowledgement ==&lt;br /&gt;
Acknowledgement is sent back from the switchboard to tell the client if the message it sent was successfully received by its recipients or not. The server can respond with '''ACK''' or '''NAK'''. Each of these commands has a TrID corresponding with the outgoing '''MSG''' they is sent in reply to. '''ACK''' means that the message was successfully received by every participant. '''NAK''' means that one or more participants did not successfully receive your message. '''NAK''' will be sent if there are no participants other than yourself in the switchboard session.&lt;br /&gt;
&lt;br /&gt;
If your acknowledgement parameter is set to '''A''', you will receive '''ACK''' if successful and '''NAK''' if unsuccessful. If the parameter is set to '''N''' you will receive nothing if successful and '''NAK''' if unsuccessful. IF the parameter is set to '''U''', no acknowledgment will be sent either way.&lt;br /&gt;
&lt;br /&gt;
Below is an example of a message that was successfully received and acknowledged by the '''ACK''' command:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; MSG 4 N 133\r\n&lt;br /&gt;
     MIME-Version: 1.0\r\n&lt;br /&gt;
     Content-Type: text/plain; charset=UTF-8\r\n&lt;br /&gt;
     X-MMS-IM-Format: FN=Arial; EF=I; CO=0; CS=0; PF=22\r\n&lt;br /&gt;
     \r\n&lt;br /&gt;
     Hello! How are you?&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;&amp;lt;&amp;lt; ACK 4&lt;br /&gt;
&lt;br /&gt;
The official client sends instant messages (text/plain) with type '''N''', typing notifications (text/x-msmsgscontrol) with type '''U''', and application invitations (text/x-msmsgsinvite) with type '''N'''.&lt;br /&gt;
&lt;br /&gt;
= Incoming Messages =&lt;br /&gt;
The first parameter is the account name of the principal that sent the message. The second parameter is the display name of that principal (note that if the principal changed his or her display since joining the switchboard session, this parameter will still give the old name). The third parameter is the length of the payload in bytes.&lt;br /&gt;
&lt;br /&gt;
Below is an example of an incoming message:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;&amp;lt;&amp;lt; MSG example@passport.com Mike 133\r\n&lt;br /&gt;
     MIME-Version: 1.0\r\n&lt;br /&gt;
     Content-Type: text/plain; charset=UTF-8\r\n&lt;br /&gt;
     X-MMS-IM-Format: FN=Arial; EF=I; CO=0; CS=0; PF=22\r\n&lt;br /&gt;
     \r\n&lt;br /&gt;
     Hello! How are you?&lt;br /&gt;
&lt;br /&gt;
It's very important that a client parses incoming data from the switchboard by looking at message lengths. Messages, like every other command, can be split up into multiple packets or combined with other commands into one packet. You absolutely must read the specified message length, and read that many bytes out of the socket after the initial newline.&lt;br /&gt;
&lt;br /&gt;
[[Category:MSN]]&lt;br /&gt;
[[Category:Protocols/MSNP]]&lt;br /&gt;
[[Category:Work_In_Progress]]&lt;/div&gt;</summary>
		<author><name>AD</name></author>
	</entry>
</feed>