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.
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:
>>> XFR 15 SB
\r\n
<<< XFR 10 SB 207.46.108.37:1863 CKI 17262740.1050826919.32308
\r\n
NS
.CKI
for protocols up to and including MSNP7).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 error 913.
The client must now initiate a TCP connection to the given switchboard IP on the given port (without closing the NS connection). The connection details are as explained in the Connections page. The client can wait at least two minutes and still connect to the switchboard safely.
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.
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 friendly name as the third parameter.
XFR
s and use each one separately.Below is an example of logging in correctly:
<o> Client Connects to 207.46.108.37 1863 (Switchboard)
>>> USR 1 example@passport.com 17262740.1050826919.32308
\r\n
<<< USR 1 OK example@passport.com Example%20Name
\r\n
<o> Continue SB Session . . .
Below is an example of logging with the wrong authentication string:
<o> Client Connects to 207.46.108.37 1863 (Switchboard)
>>> USR 1 example@passport.com 17262740.1050826919.32307
\r\n
<<< 911 1
\r\n
<o> Switchboard Closes Connection
Now that you are properly authenticated with a switchboard server, you may invite users as described in the Participants page.
When a user invites you to a switchboard session, you will receive an RNG
command over the notification server. Note that the official client does not notify the user when another user invites him or her to a switchboard session. The only time a new window opens is when the first messages of the session is sent. The RNG
will look something like this:
<<< RNG 11752013 207.46.108.38:1863 CKI 849102291.520491113 example@passport.com Example%20Name
\r\n
The client does not respond to this command. Instead, it is expected to open a new connection to the given IP and port in the second parameter. Note that there is no TrID: the first parameter comes right after the command code.
CKI
for protocols up to and including MSNP7).After receiving an RNG
, the official client always automatically connects to the given IP and port. As a third party client, you can choose not to of course. Open the connection in the same way explained above for XFR
s. The first thing you must send is the ANS
command. It should look something like this:
<o> Client Connects to 207.46.108.38 1863 (Switchboard)
>>> ANS 1 name_123@hotmail.com 849102291.520491113 11752013
\r\n
<o> Continue SB Session . . .
The ANS
command starts with a TrID. The first parameter is your account name, the second parameter is the authentication string, and the third parameter is the switchboard session ID.
If successful, the server will respond with one or more IRO
s followed by an ANS
as described in the Participants page. However, several things can go wrong.
ANS
, the switchboard will close the connection with no error in about one minute.RNG
, the switchboard will close the connection with no error upon receiving the ANS
.ANS
is wrong, you will be disconnected with no error.ANS
, the switchboard session will be destroyed before you enter, and you will therefore be disconnected with no error after sending ANS
.You must now read the Participants page to learn what happens when users enter and leave a switchboard session.
For information on how to leave a switchboard session, read the section on Leaving a Switchboard Session.