Protocols/MSNP/MSNP14/Changes

From NINA Wiki
Revision as of 04:40, 3 August 2009 by AD (talk | contribs) (Reverted edit of DeltrLetos, changed back to last version by Idil)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
MSN Protocol Version 14


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/UBM

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
body

Abstract UBM syntax

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

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

Examples

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 (alice@live.com), types a message to Bob, a Yahoo user (bob@yahoo.com) :

UUM 0 bob@yahoo.com 32 2 87
MIME-Version: 1.0
Content-Type: text/x-msmsgscontrol
TypingUser: alice@live.com


Alice then says "Hello Bob !" :

UUM 0 bob@yahoo.com 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 bob@yahoo.com 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

UBX

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

New syntax

UBX source@mail.addr.ess networkid length
<PSM></PSM><CurrentMedia></CurrentMedia>

Examples

UBX example@live.com 1 67
<PSM>Hello from MSN</PSM><CurrentMedia></CurrentMedia>
UBX example@yahoo.com 32 69
<PSM>Hello from Yahoo</PSM><CurrentMedia></CurrentMedia>

UUN/UBN

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.

FLN

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).

RNG

XFR SB

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 65.54.171.31:1863 CKI 1743299383.52212212.219110167 U messenger.msn.com 1\r\n
<<< RNG 1295917726 65.54.228.15:1863 CKI 104194101.9520122 email@domain.com Friendly%20Name U messenger.msn.com 1\r\n