<?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%2FSBAuthentication</id>
	<title>Protocols/MSNP/MSNP8/SBAuthentication - 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%2FSBAuthentication"/>
	<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Protocols/MSNP/MSNP8/SBAuthentication&amp;action=history"/>
	<updated>2026-06-26T13:16:45Z</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/SBAuthentication&amp;diff=4323&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/SBAuthentication&amp;diff=4323&amp;oldid=prev"/>
		<updated>2022-05-12T10:30:51Z</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;/table&gt;</summary>
		<author><name>Animadoria</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Protocols/MSNP/MSNP8/SBAuthentication&amp;diff=2649&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/SBAuthentication&amp;diff=2649&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-2648:rev-2649 --&gt;
&lt;/table&gt;</summary>
		<author><name>AD</name></author>
	</entry>
	<entry>
		<id>https://wiki.nina.chat/index.php?title=Protocols/MSNP/MSNP8/SBAuthentication&amp;diff=2648&amp;oldid=prev</id>
		<title>AD: what is the switchboard beggining note (I really took a long time to realize what a switchboard was)</title>
		<link rel="alternate" type="text/html" href="https://wiki.nina.chat/index.php?title=Protocols/MSNP/MSNP8/SBAuthentication&amp;diff=2648&amp;oldid=prev"/>
		<updated>2007-09-13T18:10:57Z</updated>

		<summary type="html">&lt;p&gt;what is the switchboard beggining note (I really took a long time to realize what a switchboard was)&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;
On MSNP user messaging occurs mainly on an external server known as switchboard.&lt;br /&gt;
There are two ways to connect to a switchboard: you can either request a new switchboard session or be invited to an existing one. Both of these events take place on the notification server. When connecting to the switchboard, a client will need to handle the creation of a session {'''XFR''') and being invited ('''RNG''') somewhat differently.&lt;br /&gt;
&lt;br /&gt;
= Requesting a Switchboard Session =&lt;br /&gt;
== Notification Server ==&lt;br /&gt;
To request a switchboard session, the client must send the '''XFR''' command to the NS with a TrID and a parameter of '''SB''' (for switchboard). The server will reply with another '''XFR''' with instructions on authenticating with the switchboard. Below is an example:&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; XFR 15 SB\r\n&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;&amp;lt;&amp;lt; XFR 15 SB 207.46.108.37:1863 CKI 17262740.1050826919.32308\r\n&lt;br /&gt;
&lt;br /&gt;
* The first parameter tells you that you are being transferred to a switchboard (this should always remain the same). Note that in the [[Protocols/MSNP/MSNP8/Authentication#XFR|dispatch server]], this parameter reads '''NS'''.&lt;br /&gt;
* The second parameter is the colon-delimited string for the address and port (has always been 1863) of the switchboard server.&lt;br /&gt;
* The third parameter specifies the type of authentication, which should always be '''CKI'''.&lt;br /&gt;
* The fourth parameter is an authentication string that the client will need to send when connecting to the switchboard to prove its identity.&lt;br /&gt;
&lt;br /&gt;
However, if you have not set your initial status, or you are set to '''HDN''', you may not transfer to a switchboard. Instead of receiving an '''XFR''' in response to your '''XFR''', you will receive [[Protocols/MSNP/Reference/Error_List#913|error 913]].&lt;br /&gt;
&lt;br /&gt;
== Switchboard Server ==&lt;br /&gt;
The client must now initiate a TCP connection to the given switchboard IP on the given port (without closing the NS connection).  The client can wait at least two minutes and still connect to the switchboard safely.&lt;br /&gt;
&lt;br /&gt;
Once connected to the switchboard, the client must send the '''USR''' command. It must have a TrID, your account name as the first parameter, and the authentication string as the second parameter. This command must be sent within approximately one minute or else the switchboard will close the connection.&lt;br /&gt;
&lt;br /&gt;
If successful, the server will respond with a '''USR''' with the same TrID, '''OK''' as the first parameter, your account name as the second parameter, and your display name as the third parameter.&lt;br /&gt;
&lt;br /&gt;
*  If of either (or both) the account name or the authentication string were incorrect, the server will send [[Protocols/MSNP/Reference/Error_List#911|error 911]] and close the connection.&lt;br /&gt;
* If the format was wrong, the server will immediately close the connection with no error.&lt;br /&gt;
* If you try to authenticate with the correct information with the wrong switchboard server (different IP), you will be disconnected with no error.&lt;br /&gt;
* If you have already logged into the switchboard server with the authentication information, and try to log in again with the same information, you will receive [[Protocols/MSNP/Reference/Error_List#911|error 911]] and be disconnected. Note that you can still connect to multiple switchboards simultaneously, but you must send multiple '''XFR'''s and use each one separately.&lt;br /&gt;
&lt;br /&gt;
Below is an example of logging in correctly:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;o&amp;gt; Client Connects to 207.46.108.37 1863 (Switchboard)&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; USR 1 example@passport.com 17262740.1050826919.32308\r\n&lt;br /&gt;
 &amp;lt;&amp;lt;&amp;lt; USR 1 OK example@passport.com Example%20Name\r\n&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;o&amp;gt; Continue SB Session . . .&lt;br /&gt;
&lt;br /&gt;
Below is an example of logging with the wrong authentication string:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;o&amp;gt; Client Connects to 207.46.108.37 1863 (Switchboard)&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; USR 1 example@passport.com 17262740.1050826919.32307\r\n&lt;br /&gt;
 &amp;lt;&amp;lt;&amp;lt; 911 1\r\n&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;o&amp;gt; Switchboard Closes Connection&lt;br /&gt;
&lt;br /&gt;
Now that you are properly authenticated with a switchboard server, you may invite principals as described in the [[Protocols/MSNP/MSNP8/SBMiscellaneous#invite|Participants page]].&lt;br /&gt;
&lt;br /&gt;
= Getting Invited to a Switchboard Session =&lt;br /&gt;
== Notification Server ==&lt;br /&gt;
When a principal invites you to a switchboard session, you will receive an '''RNG''' command over the notification server. The official client will automatically connect to a switchboard session and won't open a chat window until a plaintext message is sent, but third party clients may choose to behave differently.&lt;br /&gt;
&lt;br /&gt;
The '''RNG''' command has no TrID and five parameters:&lt;br /&gt;
*  The first parameter is the session ID of the new switchboard session. Every switchboard session has a unique ID, and each principal invited will use the same session ID. You will need this for authenticating with the switchboard.&lt;br /&gt;
* The second parameter is the colon-delimited string for the address and port (has always been 1863) of the switchboard.&lt;br /&gt;
* The third parameter specifies the type of authentication, which should always be '''CKI'''.&lt;br /&gt;
* The fourth parameter is an authentication string that you will need when authenticating with the switchboard.&lt;br /&gt;
* The fifth and sixth parameters are respectively the account name and the URL-encoded display name of the principal that invited you to the switchboard session.&lt;br /&gt;
&lt;br /&gt;
Note: If client version is [[Protocols/MSNP/MSN_Protocol_Version_13|MSNP13]] or later, RNG will have [[Protocols/MSNP/MSNP13/Changes#RNG|two additional parameters]].&lt;br /&gt;
&lt;br /&gt;
Here is an example '''RNG''' command:&lt;br /&gt;
 &amp;lt;&amp;lt;&amp;lt; RNG 11752013 207.46.108.38:1863 CKI 849102291.520491113 example@passport.com Example%20Name\r\n&lt;br /&gt;
&lt;br /&gt;
The client does not respond to this command. Instead, it opens a new connection to the IP and port given in the second parameter.&lt;br /&gt;
&lt;br /&gt;
== Switchboard Server ==&lt;br /&gt;
As with '''XFR''', you should open a TCP connection to the server within two minutes of receiving the '''RNG''' command. The first thing you must send is the '''ANS''' command. The '''ANS''' command has a TrID and three parameters. The first parameter is your account name, the second parameter is the authentication string, and the third parameter is the switchboard session ID.&lt;br /&gt;
&lt;br /&gt;
If successful, the server will respond with one or more '''IRO'''s followed by an '''ANS'''. However, several things can go wrong.&lt;br /&gt;
*  If you connect but do not send '''ANS''', the switchboard will close the connection with no error in about one minute.&lt;br /&gt;
* If you don't connect within about one minute of receiving the '''RNG''', the switchboard will close the connection with no error upon receiving the '''ANS'''.&lt;br /&gt;
* No matter what, if your session ID is wrong, you will be disconnected with no error.&lt;br /&gt;
* If you send a nonexistent or invalid account name and/or an incorrect authentication string, you will receive [[Protocols/MSNP/Reference/Error_List#911|error 911]] and the server will close the connection.&lt;br /&gt;
* If the general syntax of the '''ANS''' is wrong, you will be disconnected with no error.&lt;br /&gt;
* If you connect to the wrong switchboard address and try to authenticate, you will be disconnected with no error.&lt;br /&gt;
* If you (or an attacker) has already connected and authenticated, and you authenticate with the correct information again, you will receive [[Protocols/MSNP/Reference/Error_List#911|error 911]] and the switchboard will close the connection.&lt;br /&gt;
* If all of the participants in the switchboard session leave before you connect and send '''ANS''', the switchboard session will be destroyed before you enter, and you will therefore be disconnected with no error after sending '''ANS'''.&lt;br /&gt;
&lt;br /&gt;
The list of participants already in the switchboard session is sent with the '''IRO''' command, which probably stands for &amp;quot;initial roster&amp;quot;. A separate '''IRO''' will be sent for each participant. Note that you, having just entered, are not included in this list. '''IRO''' has the same TrID as the '''ANS''' and four parameters.&lt;br /&gt;
&lt;br /&gt;
* The first parameter is the number of the current '''IRO''' command in the list. In the first '''IRO''' command, this will be '''1''', the second will be '''2''', and so on until the total number of commands.&lt;br /&gt;
* The second parameter is the total number of '''IRO''' commands that will be sent.&lt;br /&gt;
* The third parameter is the participant's account name.&lt;br /&gt;
* The fourth parameter is a display name for the participant. If the participant has changed their display name since joining the switchboard session, this parameter will be out-of-date.&lt;br /&gt;
&lt;br /&gt;
Because display names reported by the switchboard server can be out-of-date, you should use the display name given to you by the notification server if possible.&lt;br /&gt;
&lt;br /&gt;
After receiving the last '''IRO''' (where the incrementing number is the same as the total number), you will receive '''ANS''' with the same TrID as the '''ANS''' that you sent initially, with the parameter '''OK'''. After receiving this, you are officially part of the switchboard session and can send and receive messages.&lt;br /&gt;
&lt;br /&gt;
Below is an example of authenticating with the switchboard and finding out that there are two other principals (making a total of three):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;o&amp;gt; Client Connects to 207.46.108.38 1863 (Switchboard)&lt;br /&gt;
&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; ANS 1 name_123@hotmail.com 849102291.520491113 11752013\r\n&lt;br /&gt;
 &amp;lt;&amp;lt;&amp;lt; IRO 1 1 2 example@passport.com Mike\r\n&lt;br /&gt;
 &amp;lt;&amp;lt;&amp;lt; IRO 1 2 2 myname@msn.com My%20Name\r\n&lt;br /&gt;
 &amp;lt;&amp;lt;&amp;lt; ANS 1 OK\r\n&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;o&amp;gt; Continue SB Session . . .&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>