# Table of contents:
- Introduction
- Client/Request
- Server/Response
- Examples
- Known changes
# Introduction
XFR
is a command introduced with
MSNP2.
It is a Dispatch Server and Notification Server command, without either a request or response payload.
It tells the client what server to connect to for the request.
# Client/Request
XFR TrID server-type
Where
server-type
is either
SB
(for a Switchboard Server), or
NS
(for a new Notification Server).
# Server/Response
XFR TrID server-type address:port {...}
Where
server-type
is either
SB
(for Switchboard), or
NS
(for a Notification Server).
Where
address:port
is the server you have requested or being referred to is.
If this is set to
0
, proceed to
ignore
the
server-type
parameter
and restart the login process on the current server from
VER.
# XFR NS
XFR TrID NS address:port {0|U} {current-server|D}
In
MSNP3
and above until
MSNP13,
0
is always set to
0
.
In
MSNP7
and above until
MSNP13,
current-server
is the current server you are connected to.
In
MSNP13
and higher,
the
0
is replaced with a constant
U
,
and the
current-server
is replaced with a constant
D
.
# XFR SB
XFR TrID SB address:port authentication-method authentication-parameter {U} {domain} {direct-connect}
Where
authentication-method
is always
CKI
.
Where
authentication-parameter
is the "cookie" you need to log in to Switchboard.
Where
U
is always set to
U
. Since
MSNP13.
No use documented.
Where
domain
is always set to
messenger.msn.com
. Since
MSNP13.
No use documented.
Where
direct-connect
is set to one of these two values, Since
MSNP14:
-
0
: Thisaddress:port
can only be accessed only via the HTTP Gateway. -
1
: Thisaddress:port
can be connected to via TCP as well as the HTTP Gateway.
# Examples
# Before rework
# Client requests a new Switchboard session
C: XFR 1 SB
S: XFR 1 SB 10.0.1.200:1865 CKI 123456789.123456789.123456789
# Client requests a new Notification server
Only used as-is in Beta 2 as the first command sent to a Dispatch Server.
C: XFR 2 NS
S: XFR 2 NS 10.0.0.5:1863
Client disconnects from server.
Client opens a connection to
10.0.0.5:1863
.
# Client referred from Dispatch Server
# Very Old
Only in MSNP2.
C: USR 3 MD5 I example@hotmail.com
S: XFR 3 NS 10.0.0.5:1863
Client disconnects from server.
Client opens a connection to
10.0.0.5:1863
.
# Classic
C: USR 4 MD5 I example@hotmail.com
S: XFR 4 NS 10.0.0.5:1863 0
Client disconnects from server.
Client opens a connection to
10.0.0.5:1863
.
# Modern
C: USR 5 MD5 I example@hotmail.com
S: XFR 5 NS 10.0.0.5:1863 0 10.0.0.1:1863
Client disconnects from server.
Client opens a connection to
10.0.0.5:1863
.
# After rework
Since MSNP13.
# Client requests a new Switchboard session
# Without direct connect parameter
Only in MSNP13.
C: XFR 6 SB
S: XFR 6 SB 10.0.1.200:1865 CKI 123456789.123456789.123456789 U messenger.msn.com
# With direct connect parameter
Since MSNP14.
C: XFR 7 SB
S: XFR 7 SB 10.0.1.200:1865 CKI 123456789.123456789.123456789 U messenger.msn.com 1
# Client referred from Dispatch Server
C: USR 8 TWN I example@hotmail.com
S: XFR 8 NS 10.0.0.5:1863 U D
# Forced soft reset
Applies for any protocol version.
S: XFR 0 NS 0
C: VER 6 MSNP7 MSNP6 MSNP5 MSNP4
# Known changes
-
MSNP3: Added a new parameter that is always
0
to XFR NS. - MSNP7: Added a new parameter that is the current server you are communicating with to XFR NS.
-
MSNP13: Replaced
0
and the current server parameter withU
andD
respectively in XFR NS, and also added two parameters to XFR SB, one that is alwaysU
, and one that is a domain name, which is alwaysmessenger.msn.com
. -
MSNP14: Added a new parameter that is either
0
or1
to XFR SB to denote whenever the client should directly connect to the address, or use the HTTP Gateway to connect instead.