Introduction of MSNSLP
[Abstract]
MSNSLP is based on SIP(Session Initiation Protocal). MSNSLP looks much similar with sip while it support less methods. With msn messenger 6.0 or higher, it supports to use MSNSLP to transfer files instead of MSNFTP used under version 5.
Keywords: SIP, MSNSLP, File Transfer, Display Picture, Emoicon
1. What is MSNSLP?
MSNSLP looks much like SIP but it supports less Methods than SIP. Mostly we only use INVITE/ BYE/ as methods in MSNSLP. MSN Messenger 6.0 or later can transfer files / display pictures and show emoicons via MSNSLP protocol.
2. MSNSLP message
A MSNSLP message always has structures as below:
Start Line
Message Header
CRLF
Message Body
Message Footer
3. Start Line
MSNSLP has 2 kinds start line, one is REQUEST line, the other is STATUS line.
1), REQUEST line has such structures:
METHOD SPACE MSNMSGR: buddy@mail.com SPACE MSNSLP-Version CRLF
Method: INVITE / BYE
The INVITE method is used to start a initial session, and BYE to end a session.
If you got a second invite message with the same session, than it only means to change parameters of the session.
MSNSLP-Version: “MSNSLP/1.0”
Now MSNSLP only have one version.
2), Status Line:
A status line tells the response of the other client, for example 200 OK, 603 Decline etc.
Structure:
MSNSLP-Version SPACE Status-Code SPACE Reason CRLF
Status-Code:
200 OK: Everything is expected.
603 Decline: The other client declined the request
500 Internal Error: Something is wrong with the request
404 Not Found: Usually happened when a wrong buddy mail was send
4. Message Header:
The message Header contains mostly the following fileds: “To”, “From”, “Via”, “CSeq”, “Call-ID”, “Max-Forwards”, “Content-Type” and Content-Length;
To: The one who is the receiver of the message.
From: The one who send the message
Via: Shows the protocol ( MSNSLP/1.0/TLP) and branch id which is the identifier of the message.
CSeq: Command Sequence. The initial invite should be 0, and the ack of it should be 1 and so on.
Call-ID: This field identifier a certain invitation, usually a guid value should assign to it.
Max-Forwards:
Always 0. Used to limit the number of proxies and gateways, it was not used till now.
Content-Type:
For requests: application/x-msnmsgr-sessionreqbody
For Transfer: application/x-msnmsgr-transreqbody
5. Message Body:
The content of Message body depends on the type of message.
Well, In the next sector, lets see how MSNSLP works during a file transfer process.
Contact:
Email: fangzhengzhu@kingsoft.com
MSN: windows2000d@163.com