From NINA Wiki
Jump to navigation Jump to search
MSNP Protocol
Version 14
Error ListCommandsRelaying Party SuiteSpotlife
XMPPHTTP GatewayTabsActivities
Development ToolsMSNP Grid
PolygamyURLs used by MSN
Protocol Versions
Version 21
Version 18
Version 16
Version 15
Version 14
Version 13
Version 12
Version 11
Version 9
Version 8
IntroductionP2PObject DescriptorDisplay PicturesFile Transfer
Microsoft Messenger for Mac


A new header RouteInfo is sent along the initial profile message:

ILN 41 NLN 1 NICK 1615708204 %DPDATA%


When receiving SOAP data, there are some new fields. The type of Yahoo users is "Email" and instead of the address being in "PassportName" it is in "Email".

New member type:

<Member xsi:type="EmailMember">
 <Changes />

New contact info for a Yahoo user:

   <propertiesChanged />

Multiple networks

MSNP14 introduces support for IM between different types of networks. Each of these networks have an identifier, as described on Protocols/MSNP/MSNP12/Changes. We will refer to this type as the Network ID from now on.

New commands


UUM is, like all other UU* commands, sent by the client (and has a response). UBM is, like all other UB* commands, sent by the server. The payload seems to be the same as in the MSG command.

Abstract UUM syntax

UUM trid destination@mail.addr.ess networkid type length
Header1: value1
Header2: value2
...: ...
HeaderN: valueN

Abstract UBM syntax

UBM source@mail.addr.ess networkid type length
Header1: value1
Header2: value2
...: ...
HeaderN: valueN

Message types

Each UUM/UBM type matches with a MSG type. These values are:

1 : Text message
2 : TypingUser message
3 : Nudge message
4 : Not observed


All the TrIDs will be set to 0 here, but they may be nonzero in real cases. Note that UUM is a NAK-only command, and as such you should establish a timer of ~30s to determine whether a message was sent succesfully or not.

Alice, a MSN user (, types a message to Bob, a Yahoo user ( :

UUM 0 32 2 87
MIME-Version: 1.0
Content-Type: text/x-msmsgscontrol

Alice then says "Hello Bob !" :

UUM 0 32 1 144
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
X-MMS-IM-Format: FN=Microsoft%20Sans%20Serif; EF=B; CO=0; CS=0; PF=22
Hello Bob !

Bob says "Hello, how are you ?" :

UBM 32 1 143
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
X-MMS-IM-Format: FN=MS%20Shell%20Dlg; EF=; CO=0; CS=0; PF=0
Hello, how are you ?

Changed commands


The command is still sent by the server. The only change is the Network ID.

New syntax

UBX source@mail.addr.ess networkid length


UBX 1 67
<PSM>Hello from MSN</PSM><CurrentMedia></CurrentMedia>
UBX 32 69
<PSM>Hello from Yahoo</PSM><CurrentMedia></CurrentMedia>


They may have changed, but the new syntax isn't known yet.

Presence commands (ILN/NLN/FLN)

Probably these :

ILN trid status email@addr.ess networkid nickname clientid dpobj
NLN status email@addr.ess networkid nickname clientid dpobj
FLN email@addr.ess networkid

Where trid is the CHG/ADL transaction ID, clientid is the Protocols/MSNP/Client ID (also known as Capability Flag), and dpobj is the Display Picture Object Descriptor.


The FLN command (for when a buddy goes offline) may now be received even though a buddy is already offline. The server uses this mechanism to push the capabilities of contacts from other networks even though they are offline (mainly the Supports Page Mode Messaging bit is pushed).



The XFR SB and RNG commands now have an addition parameter at the end. This parameter, which can be either "0" or "1", indicates whether a client connected via HTTP can connect directly to the given IP ("1"), or if it should use the generic HTTP gateway ("0").

<<< XFR 32 SB CKI 1743299383.52212212.219110167 U 1\r\n
<<< RNG 1295917726 CKI 104194101.9520122 Friendly%20Name U 1\r\n