Table of contents:

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 almost always CKI.
CTP and MD5 are also allowed values until MSNP11.
CKI is not avaliable in Beta 2. It is recommended you use MD5 when authenticating these clients.

Where authentication-parameter depends on the specified authentication-method:

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:

Examples

Before rework

Only in MSNP2 to MSNP12.

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

Only in MSNP3 to MSNP6.

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

Only in MSNP7 to MSNP12.

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 9 MSNP7 MSNP6 MSNP5 MSNP4

You can not be hidden or semi-offline while requesting a new Switchboard session

Applies for any protocol version.

C: XFR 10 SB
S: 913 10

Known changes