声明
概述
什么是 MSN Messenger
,你的客户端收到此消息后,便将此人从在线用户列表中去除,并添加到离线用户列表中。
近几年中,MSN已经历经数次修订,在本文出稿时(2003年11月),微软的服务器允许使用协议的8、9、10版本。不同的协议经常被写为“MSNP8”、“MSNP9”、“MSNP10”。
为了给出充足的协议文档及微软服务器的奇特行为描述,使得第三方能够写出他们自己的程序,目前,本文仅给出了MSNP8的文档。
什么是MSN Client协议?
MSN Client协议由若干客户端间联系发送的信息组成。例如,当你对一个朋友说“hello”时,你的客户端就会发送一个包含“hello”的消息到对方。目前MSN Client协议主要有三个版本“MSNC0”、“MSNC1”、“MSNC2”。
关于这些内容微软会怎么想?
协议是如何工作的
本文相关语法
基础知识
连接
连接概述
编码
charset=UTF-8”参数,则将默认为 ISO 8859-1 编码,一个 ASCII 兼容编码,在西欧使用的非 ASCII 字符描述为单字节的编码。如果你指定另外的字符集即(如 charset=KOI8-R ),官方客户端将忽略你的信息。官方客户端发送的信息中总是会包含 charset=UTF-8 ,所以你也必须这样做。
命令次序
HTTP 连接
代理
HTTP 连接
什么是 HTTP
HTTP 怎样协同 MSN 的
协议描述
请求 / 应答范例
POST http://gateway.messenger.hotmail.com/gateway/gateway.dll?Action=open&Server=NS&IP=messenger.hotmail.com HTTP/1.1/r/nAccept: */*/r/nAccept-Language: en-us/r/nAccept-Encoding: gzip, deflate/r/nUser-Agent: MSMSGS/r/nHost: gateway.messenger.hotmail.com/r/nProxy-Connection: Keep-Alive/r/nConnection: Keep-Alive/r/nPragma: no-cache/r/nContent-Type: application/x-msn-messenger/r/nContent-Length: 18/r/n/r/nVER 5 MSNP8 CVR0/r/n
HTTP/1.0 200 OK/r/nServer: Microsoft-IIS/5.0/r/nDate: Tue, 18 Mar 2003 07:39:53 GMT/r/nX-MSN-Messenger: SessionID=.13160; GW-IP=207.46.110.18/r/nContent-Length: 18/r/nContent-Type: application/x-msn-messenger/r/nAge: 0/r/nVia: HTTP/1.1 ntl_site (Traffic-Server/5.2.0-R [c sSf ])/r/nX-Cache: MISS from nautilus.localdomain/r/nX-Cache-Lookup: MISS from nautilus.localdomain:80/r/nProxy-Connection: keep-alive/r/n/r/nVER 5 MSNP8 CVR0/r/n
POST http://gateway.messenger.hotmail.com/gateway/gateway.dll?Action=open&Server=SB&IP=207.46.108.13 HTTP/1.1/r/nAccept: */*/r/nAccept-Language: en-us/r/nAccept-Encoding: gzip, deflate/r/nUser-Agent: MSMSGS/r/nHost: gateway.messenger.hotmail.com/r/nProxy-Connection: Keep-Alive/r/nConnection: Keep-Alive/r/nPragma: no-cache/r/nContent-Type: application/x-msn-messenger/r/nContent-Length: 55/r/n/r/nUSR 3 ..28908/r/n
POST http://207.46.110.18/gateway/gateway.dll?Action=poll&SessionID=.32498 HTTP/1.1/r/nAccept: */*/r/nAccept-Language: en-us/r/nAccept-Encoding: gzip, deflate/r/nUser-Agent: MSMSGS/r/nHost: 207.46.110.18/r/nProxy-Connection: Keep-Alive/r/nConnection: Keep-Alive/r/nPragma: no-cache/r/nContent-Type: application/x-msn-messenger/r/nContent-Length: 0/r/n/r/n
HTTP/1.0 200 OK/r/nServer: Microsoft-IIS/5.0/r/nDate: Tue, 18 Mar 2003 07:39:56 GMT/r/nX-MSN-Messenger: SessionID=.6942; GW-IP=207.46.110.18/r/nContent-Length: 0/r/nContent-Type: application/x-msn-messenger/r/nAge: 1/r/nVia: HTTP/1.1 ntl_site (Traffic-Server/5.2.0-R [c sSf ])/r/nX-Cache: MISS from nautilus.localdomain/r/nX-Cache-Lookup: MISS from nautilus.localdomain:80/r/nProxy-Connection: keep-alive/r/n/r/n
POST http://207.46.110.18/gateway/gateway.dll?SessionID=.3500 HTTP/1.1/r/nAccept: */*/r/nAccept-Language: en-us/r/nAccept-Encoding: gzip, deflate/r/nUser-Agent: MSMSGS/r/nHost: 207.46.110.18/r/nProxy-Connection: Keep-Alive/r/nConnection: Keep-Alive/r/nPragma: no-cache/r/nContent-Type: application/x-msn-messenger/r/nContent-Length: 5/r/n/r/nOUT/r/n
HTTP/1.0 200 OK/r/nServer: Microsoft-IIS/5.0/r/n Date: Tue, 18 Mar 2003 07:41:39 GMT/r/n X-MSN-Messenger: SessionID=.1484; GW-IP=207.46.110.18; Session=close/r/n Content-Length: 0/r/n Content-Type: application/x-msn-messenger/r/n Age: 0/r/n Via: HTTP/1.1 ntl_site (Traffic-Server/5.2.0-R [c sSf ])/r/n X-Cache: MISS from nautilus.localdomain/r/n X-Cache-Lookup: MISS from nautilus.localdomain:80/r/n Proxy-Connection: keep-alive/r/n /r/n
命令
什么是命令
新行
参数
事务 ID
>>> VER 15 MSNP8 FOO CVR0 BAR/r/n
<<< VER 15 MSNP8 CVR0/r/n
错误命令
有效载荷命令
>>> QRY 1049 32/r/n 8f2f5a91b72102cd28355e9fc9000d6e (no newline)
异步命令
命令次序
有效载荷命令
什么是有效载荷命令
格式
消息 (MSG)
preferredEmail:
Request-Data: IP-Address:
IP-Address: 10.44.102.65
X-MMS-IM-Format: FN=Arial; EF=I; CO=ff0000; CS=0; PF=22
User-Agent: Gaim/0.59
名字
概述
账号
显示名
昵称
位 AND
什么是位与
如何实现
使用位与
通知
认证
概述
Connect: messenger.hotmail.com 1863
>>> VER 0 MSNP8 CVR0/r/n
<<< VER 0 MSNP8 CVR0/r/n
Continue Session . . .
Connect: messenger.hotmail.com 1863
>>> VER 0 MSNP8 MYPROTOCOL CVR0 /r/n
<<< VER 0 CVR0 MSNP8/r/n
Continue Session . . .
Connect: messenger.hotmail.com 1863
>>> VER 0 MYPROTOCOL/r/n
<<< VER 0 0/r/n
Server Closes Connection
Connect: messenger.hotmail.com 1863
>>> VER MSNP8 CVR0/r/n (No TrID)
Server Closes Connection
>>> CVR 2 0x0409 win 4.10 i386 MSNMSGR 5.0.0544 MSMSGS /r/n
<<< CVR 2 6.0.0602 6.0.0602 1.0.0000 http://download.microsoft.com/download/8/a/4/8a42bcae-f533-4468-b871-d2bc8dd32e9e/SETUP9x.EXE http://messenger.msn.com/r/n
>>> USR 2 TWN I /r/n
<<< XFR 2 NS 207.46.106.145:1863 0 207.46.104.20:1863/r/n
客户端保存 USR 应答串;
客户端(可选)连接到护照“ Nexus ”,得到登录服务器 URL 。这个结果不会经常变更,可以被缓存。
客户端使用存储串、护照、口令,通过登录服务器验证,服务器将作下列操作之一:
重新定位客户端到另外一个登录服务器,并进行认证(注意:这个服务器不必缓存);
返回一个登录错误,并携带适当错误信息。
返回一个“ ticket ”, ticket 将在 USR 应答中发送给通知服务器。
登出
示例
Client connects to messenger.hotmail.com, port 1863 (Dispatch Server)
>>> VER 1 MSNP8 CVR0/r/n
<<< VER 1 MSNP8 CVR0/r/n
>>> CVR 2 0x0409 win 4.10 i386 MSNMSGR 5.0.0544 MSMSGS /r/n
<<< CVR 2 6.0.0602 6.0.0602 1.0.0000 http://download.microsoft.com/download/8/a/4/8a42bcae-f533-4468-b871-d2bc8dd32e9e/SETUP9x.EXE http://messenger.msn.com/r/n
>>> USR 3 TWN I /r/n
<<< XFR 3 NS 207.46.106.35:1863 0 207.46.104.20:1863/r/n
messenger.hotmail.com closes connection
client connects to 207.46.106.35, port 1863
>>> VER 1 MSNP8 CVR0/r/n
<<< VER 1 MSNP8 CVR0/r/n
>>> CVR 2 0x0409 win 4.10 i386 MSNMSGR 5.0.0544 MSMSGS /r/n
<<< CVR 2 6.0.0602 6.0.0602 1.0.0000 http://download.microsoft.com/download/8/a/4/8a42bcae-f533-4468-b871-d2bc8dd32e9e/SETUP9x.EXE http://messenger.msn.com./r/n
>>> USR 3 TWN I /r/n
<<< USR 3 TWN S lc=1033,id=507,tw=40,fs=1,ru=http%3A%2F%2Fmessenger%2Emsn%2Ecom,ct=,kpp=1,kv=5,ver=2.1.0173.1,tpf=43f8a4c8ed940c04e3740be46c4d1619/r/n
Client authenticates itself with MS Passport
>>> USR 4 TWN S t=53*1hAu8ADuD3TEwdXoOMi08sD*2!cMrntTwVMTjoB3p6stWTqzbkKZPVQzA5NOt19SLI60PY!b8K4YhC!Ooo5ug$$&p=5eKBBC!yBH6ex5mftp!a9DrSb0B3hU8aqAWpaPn07iCGBw5akemiWSd7t2ot!okPvIR!Wqk!MKvi1IMpxfhkao9wpxlMWYAZ!DqRfACmyQGG112Bp9xrk04!BVBUa9*H9mJLoWw39m63YQRE1yHnYNv08nyz43D3OnMcaCoeSaEHVM7LpR*LWDme292X3j8N/r/n
<<< USR 4 OK example%20display%20name 1 0/r/n
USR message.
Client connects to nexus.passport.com, port 443 (Passport Nexus)
>>> GET /rdr/pprdr.asp HTTP/1.0/r/n/r/n
<<< HTTP/1.1 200 OK/r/n<<< Server: Microsoft-IIS/5.0/r/n<<< Date: Mon, 02 Jun 2003 11:57:47 GMT/r/n<<< Connection: close/r/n<<< PassportURLs: DARealm=Passport.Net,DALogin=login.passport.com/login2.srf,DAReg=http://register.passport.net/uixpwiz.srf,Properties=https://register.passport.net/editprof.srf,Privacy=http://www.passport.com/consumer/privacypolicy.asp,GeneralRedir=http://nexusrdr.passport.com/redir.asp,Help=http://memberservices.passport.net/memberservice.srf,ConfigVersion=11/r/n<<< Content-Length: 0/r/n<<< Content-Type: text/html/r/n<<< Cache-control: private/r/n<<< /r/n
nexus.passport.com closes connection
USR message sent by the Notification Server.
Client connects to login.passport.com, port 443
>>> GET /login2.srf HTTP/1.1/r/n>>> Authorization: Passport1.4 OrgVerb=GET,OrgURL=http%3A%2F%2Fmessenger%2Emsn%2Ecom,sign-in=example%40passport.com,pwd=password,lc=1033,id=507,tw=40,fs=1,ru=http%3A%2F%2Fmessenger%2Emsn%2Ecom,ct=,kpp=1,kv=5,ver=2.1.0173.1,tpf=43f8a4c8ed940c04e3740be46c4d1619/r/n>>> Host: login.passport.com/r/n
<<< HTTP/1.1 302 Found/r/n<<< Server: Microsoft-IIS/5.0/r/n<<< Date: Mon, 02 Jun 2003 11:58:32 GMT/r/n<<< PPServer: H: LAWPPLOG5C006/r/n<<< Connection: close/r/n<<< Content-Type: text/html/r/n<<< Expires: Mon, 02 Jun 2003 11:57:32 GMT/r/n<<< Cache-Control: no-cache/r/n<<< cachecontrol: no-store/r/n<<< Pragma: no-cache/r/n<<< P3P: CP="DSP CUR OTPi IND OTRi ONL FIN"/r/n<<< Authentication-Info: Passport1.4 da-status=redir/r/n<<< Location: https://loginnet.passport.com/login2.srf?lc=1033/r/n<<< /r/n
<<< HTTP/1.1 200 OK/r/n<<< Server: Microsoft-IIS/5.0/r/n<<< Date: Mon, 02 Jun 2003 11:59:00 GMT/r/n<<< PPServer: H: LAWPPIIS6B061/r/n<<< Connection: close/r/n<<< Content-Type: text/html/r/n<<< Expires: Mon, 02 Jun 2003 11:58:00 GMT/r/n<<< Cache-Control: no-cache/r/n<<< cachecontrol: no-store/r/n<<< Pragma: no-cache/r/n<<< P3P: CP="DSP CUR OTPi IND OTRi ONL FIN"/r/n<<< Set-Cookie: MSPSec1= ; expires=Thu, 30-Oct-1980 16:00:00 GMT;domain=.passport.com;path=/;HTTPOnly= ;version=1/r/n<<< Set-Cookie: MSPSec=5Cdd1SshOELpwqafsSuYSiDEuEtP1PUaX99YOZcaoJP3vkIn7DXozt868I7eJNjcWG; HTTPOnly= ; domain=.passport.com;path=/;secure=/r/n<<< Set-Cookie: MSPAuth=5yDBU0BqvDa7UiY9W9nVEncRXCLD4gjLmtEr2XkunnafkOgdgG5x*CEpqe7MyZEOir*EiA1PbwLKzqCGO671TeTQ$$; HTTPOnly= ; domain=.passport.com;path=//r/n<<< Set-Cookie: MSPProf=5a0mKE6PKDsxz!*4apQt0amnQOGLYqcCm78ie!MmHq0KnAiIJM0z0Zajs8NL7ux7Ae0hnH5AAoB!zXIZ9jTA2rcQttC*RKKRsc9k7JflwThB!H0Qa*6ipGcdj5co6taPir; HTTPOnly= ; domain=.passport.com;path=//r/n<<< Set-Cookie: MSPVis=507;domain=.passport.com;path=//r/n<<< Set-Cookie: MSPPre=; HTTPOnly= ; domain=.passport.com;path=/;Expires=Wed, 30-Dec-2037 16:00:00 GMT/r/n<<< Set-Cookie: MSPShared= ; HTTPOnly= ; domain=.passport.com;path=/;Expires=Thu, 30-Oct-1980 16:00:00 GMT/r/n<<< Authentication-Info: Passport1.4 da-status=success,tname=MSPAuth,tname=MSPProf,tname=MSPSec,from-PP='t=53*1hAu8ADuD3TEwdXoOMi08sD*2!cMrntTwVMTjoB3p6stWTqzbkKZPVQzA5NOt19SLI60PY!b8K4YhC!Ooo5ug$$&p=5eKBBC!yBH6ex5mftp!a9DrSb0B3hU8aqAWpaPn07iCGBw5akemiWSd7t2ot!okPvIR!Wqk!MKvi1IMpxfhkao9wpxlMWYAZ!DqRfACmyQGG112Bp9xrk04!BVBUa9*H9mJLoWw39m63YQRE1yHnYNv08nyz43D3OnMcaCoeSaEHVM7LpR*LWDme292X3j8N',ru=http://messenger.msn.com/r/n<<< Content-Length: 0/r/n<<< /r/n
t=53*1hAu8ADuD3TEwdXoOMi08sD*2!cMrntTwVMTjoB3p6stWTqzbkKZPVQzA5NOt19SLI60PY!b8K4YhC!Ooo5ug$$&p=5eKBBC!yBH6ex5mftp!a9DrSb0B3hU8aqAWpaPn07iCGBw5akemiWSd7t2ot!okPvIR!Wqk!MKvi1IMpxfhkao9wpxlMWYAZ!DqRfACmyQGG112Bp9xrk04!BVBUa9*H9mJLoWw39m63YQRE1yHnYNv08nyz43D3OnMcaCoeSaEHVM7LpR*LWDme292X3j8N , which is returned to the Notification Server.
<<< HTTP/1.1 401 Unauthorized/r/n<<< Server: Microsoft-IIS/5.0/r/n <<< Date: Mon, 02 Jun 2003 11:58:15 GMT/r/n <<< PPServer: H: LAWPPIIS6B077/r/n <<< Connection: close/r/n <<< Content-Type: text/html/r/n <<< Expires: Mon, 15 Sep 2003 07:57:14 GMT/r/n <<< Cache-Control: no-cache/r/n <<< cachecontrol: no-store/r/n <<< Pragma: no-cache/r/n <<< P3P: CP="DSP CUR OTPi IND OTRi ONL FIN"/r/n <<< PassportConfig: ConfigVersion=11/r/n <<< WWW-Authenticate: Passport1.4 da-status=failed,srealm=Passport.NET,ts=-3,prompt,cburl=http://www.passportimages.com/XPPassportLogo.gif,cbtxt=Type%20your%20e-mail%20address%20and%20password%20correctly.%20If%20you%20haven%E2%80%99t%20registered%20with%20.NET%20Passport%2C%20click%20the%20Get%20a%20.NET%20Passport%20link./r/n <<< Content-Length: 390/r/n/r/n
列席
什么是列席信息
NLN AWY example%20display%20name
状态
客户端标识码
设置你的列席状态
>>> CHG 12 NLN 0/r/n<<< CHG 12 NLN 0/r/n
>>> CHG 13 HDN 24/r/n<<< CHG 13 HDN 24/r/n
>>> CHG 14 AWY /r/n<<< CHG 14 AWY /r/n
接收列席信息
>>> CHG 12 NLN 6/r/n
<<< CHG 12 NLN 6/r/n
>>> PNG/r/n
<<< ILN 12 AWY Mike 0/r/n
<<< ILN 12 NLN Name_123 /r/n
<<< ILN 12 BSY My%20Name /r/n
<<< QNG/r/n
<<< FLN /r/n
<<< NLN NLN Mike 12/r/n
<<< NLN AWY Mike 0/r/n
<<< NLN AWY Mike%20Changed%20His%20Name 36/r/n
Pings/Challenges
pings 是什么
客户端 pings
>>> PNG/r/n
<<< QNG/r/n
服务器端 Pings(Challenges)
<<< CHL 0 /r/n
|
|
Q1P7W2E4J9R8U3S5
|
|
PROD0038W!61ZTF9
|
VT6PX?UQTM4WM%YR
|
|
PROD0058#7IL2{QD
|
QHDCY@7R1TB6W?5B
|
|
PROD0061VRRZH@4F
|
JXQ6J@TUOGYV@N0M
|
,而应该VT6PX?UQTM4WM%YR。
关于Challenge串为什么存在的原因,最广泛的看法是让第三方客户端从协议中走开。至于客户端ID码最初是如何发现的早已不得而知了,但不外乎反编译或者微软泄露,所以我们没有办法知道他们的合法状态是什么。论坛的帖子http://www.hypothetic.org/docs/msn/phorum/read.php?f=1&i=2169&t=2169中有详细讨论。
MD5概要
MD5是一个信息概要运算,对于一个串应用MD5摘要,将得到一个32字节的指纹串。如有可能,尽量找到创建MD5指纹的库或者扩展程序,当然如果你觉得你有足够的能力,你也可以参照官方描述(RFC 1321)来实现。确认你的库可以产生小写的十六进制数字(应该作为其中的一个选项)。
当服务器给你一个Challenge串时,添加你的客户端码到尾部。如,服务器给出的是abcdefg,而你的客户端码为,提供给MD5函数的串就应该为abcdefg,指纹为d1713d0f1d2e8faed8fd59de01,建议你用这个例子验证你的实现。
服务器Ping示例
下例是服务器Ping及响应的示范,你应该通过它来验证你的MD5实现的是否正确。最可能的错误是在challenge串编码前或后添加了一个新行到尾部:
<<< CHL 0 /r/n
>>> QRY 1049 32/r/n 8f2f5a91b72102cd28355e9fc9000d6e (no newline)
<<< QRY 1049/r/n
获取个人详细资料
本节概述
背景知识
同步
>>> SYN 12 2194/r/n
>>> SYN 13 0/r/n
>>> SYN 1 125/r/n
<<< SYN 1 125/r/n
>>> SYN 1 0/r/n
<<< SYN 1 139 5 4/r/n<<< GTC A
/r/n<<< BLP AL/r/n<<< PRP PHH 01%20234
/r/n<<< PRP PHM 56%20789/r/n<<< LSG 0 Other%20Contacts 0
/r/n<<< LSG 1 Coworkers 0/r/n<<< LSG 2 Friends 0/r/n<<< LSG 3 Family 0/r/n<<< LST principal1 4
/r/n<<< LST principal2 10/r/n<<< LST principal3 11 1,3/r/n<<< LST principal4 11 0/r/n<<< BPR PHH 01%20234/r/n<<< BPR MOB Y/r/n<<< LST principal5 12/r/n<<< LST principal6 11 2/r/n<<< BPR PHW 45%/r/n隐私设置
电话号码
<<< PRP PHH 555%20555-0690/r/n<<< PRP MBE Y/r/n组列表
联系表
设置细节
概述
隐私设置
>>> GTC 20 A/r/n <<< GTC 20 200 A/r/n >>> GTC 21 N/r/n <<< GTC 21 201 N/r/n >>> GTC 22 N/r/n <<< 218 22/r/n <<< GTC 23 F/r/n
Server Closes Connection
>>> BLP 24 AL/r/n <<< BLP 24 202 AL/r/n >>> BLP 25 BL/r/n <<< BLP 25 203 BL/r/n >>> BLP 26 BL/r/n <<< 218 26/r/n <<< BLP 27 FL/r/n
Server Closes Connection
设置你的电话号码
>>> PRP 55 PHH 555-1234/r/n <<< PRP 55 12183 PHH 555-1234/r/n >>> PRP 56 PHW/r/n <<< PRP 56 12184 PHW/r/n >>> PRP 57 PHV 1234/r/n <<< 715 57/r/n >>> PRP 58 MOB Y/r/n <<< PRP 58 12185 MOB Y/r/n增删联系人
>>> ADD 18 AL a@b a@b/r/n<<< 201 18/r/n>>> ADD 19 FL /r/n<<< 205 19/r/n>>> ADD 20 AL /r/n<<< ADD 20 AL 1200 /r/n>>> ADD 21 BL /r/n<<< 219 21/r/n>>> ADD 22 AL /r/n<<< 215 22/r/n>>> ADD 23 FL 1/r/n<<< ADD 23 FL 1201 1/r/n<<< BPR 1201 PHH/r/n<<< BPR 1201 PHW/r/n<<< BPR 1201 PHM/r/n<<< BPR 1201 MOB N/r/n>>> ADD 24 FL 15/r/n (nonexistent Group)<<< 224 24/r/n>>> ADD 25 RL /r/n
Server Closes Connection
>>> REM 26 AL a@b/r/n<<< 216 26/r/n>>> REM 27 FL /r/n<<< 216 27/r/n>>> REM 28 FL /r/n (Principal Not In List)<<< 216 28/r/n>>> REM 29 FL 15/r/n (nonexistent Group)<<< 224 29/r/n>>> REM 30 FL 3/r/n (Principal Not In Group)<<< 225 30/r/n>>> REM 31 FL /r/n<<< REM 31 FL 1202 /r/n>>> REM 32 FL 1/r/n<<< REM 32 FL 1203 1/r/n>>> REM 33 AL /r/n<<< REM 33 AL 1204 /r/n>>> REM 34 RL /r/n
Server Closes Connection
>>> REM 35 FL 1/r/n>>> ADD 36 FL 2/r/n<<< REM 35 FL 1205 1/r/n<<< ADD 36 FL 1206 2/r/n>>> REM 27 AL /r/n<<< REM 27 AL 3053 /r/n>>> ADD 28 BL /r/n<<< ADD 28 BL 3054 /r/n>>> REA 101 nickname/r/n (Principal Not In List)<<< 216 101/r/n>>> REA 102 msn%20help/r/n<<< 209 102/r/n>>> REA 103 new%20name/r/n<<< REA 103 3055 new%20name/r/n组
>>> ADG 37 this%20group's%20name%20is%20sixty%20two%20bytes%20in%20length 0/r/n<<< 229 37/r/n>>> ADG 38 My%20New%20Group 0/r/n<<< ADG 38 4029 My%20New%20Group 4 0/r/n>>> ADG 39 thirtyfirst%20group 0/r/n (31st Group)<<< 223 39/r/n>>> RMG 40 4/r/n<<< RMG 40 4030 4/r/n>>> RMG 41 4/r/n<<< 224 41/r/n>>> RMG 42 0/r/n<<< 230 42/r/n>>> REG 43 3 My%20New%20Name 0/r/n<<< REG 43 4031 3 My%20New%20Name 0/r/n>>> REG 44 20 NewName 0/r/n (Group Does Not Exist)<<< 224 44/r/n>>> REG 45 30 NewName 0/r/n
Server Closes Connection
他人变更资料时
<<< ADD 0 RL 3049 My%20Name/r/n<<< REM 0 RL 3050 /r/n<<< BPR 12183 PHH 555%20555-4321/r/n消息
概述
初始化消息
text/x-msmsgsprofile ,这个消息有一个大的头部信息,并包含许多字段,而且没有主体。MSG Hotmail Hotmail 425/r/nMIME-Version: 1.0/r/nContent-Type: text/x-msmsgsprofile; charset=UTF-8/r/nLoginTime: /r/nEmailEnabled: 0/r/nMemberIdHigh: 85040/r/nMemberIdLow: -/r/nlang_preference: 1033/r/npreferredEmail: /r/ncountry: US/r/nPostalCode: 90201/r/nGender: m/r/nKid: 0/r/nAge: /r/nBDayPre: 5/r/nBirthday: 0/r/nWallet: 0/r/nFlags: 1027/r/nsid: 507/r/nkv: 4/r/nMSPAuth: 4sCuECZ4UsAaBIy0AIsk!c9bWcuATTmuQ$$/r/nClientIP: 1.2.3.4/r/nClientPort: 516./r/nMSG Hotmail Hotmail 221/r/nMIME-Version: 1.0/r/nContent-Type: text/x-msmsgsinitialemailnotification; charset=UTF-8/r/n/r/nInbox-Unread: 1/r/nFolders-Unread: 0/r/nInbox-URL: /cgi-bin/HoTMaiL/r/nFolders-URL: /cgi-bin/folders/r/nPost-URL: http://www.hotmail.com/r/n/r/n实时邮件通知
ACTIVE
– Inbox
sAVeD
– Sent Mail
drAfT
– Drafts
trAsH
– Trash
HM_BuLkMail_
– Junk Mail
/r/n
MIME-Version: 1.0
/r/n
Content-Type: text/x-msmsgsemailnotification; charset=UTF-8
/r/n
/r/n
From: Mike Mintz
/r/n
Message-URL: /cgi-bin/getmsg?msg=MSG.21
?
&start=2310&len=2059&curmbox=ACTIVE
/r/n
Post-URL: https://loginnet.passport.com/ppsecure/
?
md5auth.srf?lc=1038
/r/n
Subject: =?”us-ascii”?Q?newsubject?=
/r/n
Dest-Folder: ACTIVE
/r/n
From-Addr:
/r/n
id: 2
/r/n
From
– The name of the person who sent the email
Message-URL
– Used for automatic Hotmail login
Post-URL
– Used for automatic Hotmail login
Subject
– Subject parameter of the email
Dest-Folder
– Name of the folder the email arrived in
From-Addr
– Email address of the person who sent the email
id
– Used for automatic Hotmail login
text/x-msmsgsactivemailnotification 的消息通知客户端。下例中从收件箱删除了两个邮件(实际上仅是把他们移动到了垃圾箱):/r/n
MIME-Version: 1.0
/r/n
Content-Type: text/x-msmsgsactivemailnotification; charset=UTF-8
/r/n
/r/n
Src-Folder: ACTIVE
/r/n
Dest-Folder: trAsH
/r/n
Message-Delta: 2
/r/n
Src-Folder
– The name of the folder that the message was originally in
Dest-Folder
– Used name of the folder that the message was moved to
Message-Delta
– The number of messages affected by this action
.!!trAsH ,与其他情况一样, Message-Delta 总是仅显示所影响的未读邮件数。如下是清空垃圾箱,并且其中包含了 4 个未读邮件:MSG Hotmail Hotmail 147/r/nMIME-Version: 1.0/r/nContent-Type: text/x-msmsgsactivemailnotification; charset=UTF-8/r/n/r/nSrc-Folder: trAsH/r/nDest-Folder: .!!trAsH/r/nMessage-Delta: 4/r/n自动的 Hotmail/MSN.com 登录
下面给出了每个需要处理的高亮的变量。
.URL来自于初始化邮件通知中的Post-URL。
.action来自于URL命令(带INBOX、FOLDERS、COMPOSE参数)(尤其是,第二个响应参数)。
.login —你的邮件地址
.sid与kv来自profile中sid与kv的值
.id来自于新邮件通知或URL INBOX, FOLDERS 或者COMPOS命令应答的第三个参数。
.sl —(session-length)是从收到初始profile消息的秒数。不应该用profile中的LoginTime字段来计算该值,实际上,你本地的时钟是不准确的。
.rru —可以为Inbox-URL,Folders-URL,Message-URL或Compose-URL中的任意一个。这可以从初始邮件通知、新邮件通知或URL命令的第一个参数中获得。如果你选用了Compose-URL,你可以指定一些特殊变量,包括“mailto”(必须设置为1),“subject”和“to”。所以你可以指定/cgi-bin/compose?mailto=1&subject?=Hi%20Dave&to=example%40hotmail%2ecom来直接到窗体,其中收件人为“”,主题为“Hi Dave”。
.auth —来自于profile中的MSPAuth。
.creds —是MSPAuth + sl + password的MD5串。
其他值为常数。
系统消息
application/x-msmsgssystemmessage 发送的消息。我们只发现了一种系统消息,那就是服务器将停止服务,并进行维护。
MIME-Version: 1.0/r/nContent-type: application/x-msmsgssystemmessage/r/n/r/n
Type: 1/r/nArg1: 5/r/n
MSG Hotmail Hotmail 88/r/nMIME-Version: 1.0/r/nContent-type: application/x-msmsgssystemmessage/r/n/r/nType: 1/r/nArg1: 5/r/n
杂项
服务的 URL
INBOX
- Hotmail
收件箱
FOLDERS
- Believed to be the Hotmail's "MSN home" URL.
COMPOSE
- Compose an email
CHGMOB
- Mobile settings (pager etc.)
PROFILE
- Edit your MSN member directory profile.
PERSON
- Member services, password, secret question, account info
CHAT
- Chat rooms
MOBILE ,ADDRBOOK ,ADVSEARCH 和INTSEARCH ,但这些从来没有被发现过。
>>> URL 15 INBOX/r/n
<<< URL 15 /cgi-bin/HoTMaiL https://loginnet.passport.com/ppsecure/md5auth.srf?lc=1033 2/r/n
http://members.msn.com/default.msnw?mem=ACCOUNTNAME ,其中 ACCOUNTNAME 是你要查看的人员账号。
发送一个邮件邀请
wants to talk to you! ”。它是一个有效载荷命令,需要事务 ID 和 8 个参数:
wants to talk to you! ”。
>>> SDC 3 0x0409 MSMSGS WindowsMessenger X X Andrew%20Sayers 8/r/n Hi Mike! (no newline)
<<< SDC 21 OK/r/n
wants to talk to you! ”,这个命令没有做更多测试。
>>> SND 22 0x409 MSMSGS MSMSGS/r/n
<<< SND 22 OK/r/n
发送页
?
string?
string? 开始,来指定一个回呼号。然后是
string ,其中包含了要发送的消息。严格的说,enc="utf-8" 仅当消息包含非 ASCII 字符时有必要,但包含它总是保险的。
接收页
<<< IPG 643/r/n643 bytes in the message body
注意
<<< NOT 589/r/n589 bytes in the message body
会话示例
概述
示例
>>> VER 1 MSNP8 CVR0/r/n
<<< VER 1 MSNP8 CVR0/r/n
>>> CVR 2 0x0409 win 4.10 i386 MSNMSGR 5.0.0544 MSMSGS /r/n
<<< CVR 2 6.0.0602 6.0.0602 1.0.0000 http://download.microsoft.com/download/8/a/4/8a42bcae-f533-4468-b871-d2bc8dd32e9e/SETUP9x.EXE http://messenger.msn.com/r/n
>>> USR 3 TWN I /r/n
<<< XFR 3 NS 207.46.106.118:1863 0 207.46.104.20:1863/r/n
>>> VER 4 MSNP8 CVR0/r/n
<<< VER 4 MSNP8 CVR0/r/n
>>> CVR 5 0x0409 win 4.10 i386 MSNMSGR 5.0.0544 MSMSGS /r/n
<<< CVR 5 6.0.0602 6.0.0602 1.0.0000 http://download.microsoft.com/download/8/a/4/8a42bcae-f533-4468-b871-d2bc8dd32e9e/SETUP9x.EXE http://messenger.msn.com/r/n
>>> USR 6 TWN I /r/n
<<< USR 6 TWN S lc=1033,id=507,tw=40,fs=1,ru=http%3A%2F%2Fmessenger%2Emsn%2Ecom,ct=,kpp=1,kv=5,ver=2.1.0173.1,tpf=43f8a4c8ed940c04e3740be46c4d1619
>>> USR 7 TWN S t=53*1hAu8ADuD3TEwdXoOMi08sD*2!cMrntTwVMTjoB3p6stWTqzbkKZPVQzA5NOt19SLI60PY!b8K4YhC!Ooo5ug$$&p=5eKBBC!yBH6ex5mftp!a9DrSb0B3hU8aqAWpaPn07iCGBw5akemiWSd7t2ot!okPvIR!Wqk!MKvi1IMpxfhkao9wpxlMWYAZ!DqRfACmyQGG112Bp9xrk04!BVBUa9*H9mJLoWw39m63YQRE1yHnYNv08nyz43D3OnMcaCoeSaEHVM7LpR*LWDme292X3j8N/r/n
<<< USR 7 OK Alice 1 0/r/n
<<< MSG Hotmail Hotmail 491/r/n MIME-Version: 1.0/r/n Content-Type: text/x-msmsgsprofile; charset=UTF-8/r/n LoginTime: /r/n EmailEnabled: 0/r/n MemberIdHigh: 85040/r/n MemberIdLow: -/r/n lang_preference: 1033/r/n preferredEmail: /r/n country: US/r/n PostalCode: 90201/r/n Gender: m/r/n Kid: 0/r/n Age: /r/n BDayPre: 5/r/n Birthday: 0/r/n Wallet: 0/r/n Flags: 1027/r/n sid: 507/r/n kv: 4/r/n MSPAuth: MSPAuth: 41bbzZ*NzDmDQ8ic4HWo89b9zhCBk!?ONDJKB3Los8UMgBnCOLSwQKo!8IeIH?QF0vVItSlOzIL36e5MAdMaB3mpZw$$/r/n ClientIP: 1.2.3.4/r/n ClientPort: 516./r/n /r/n
>>> SYN 8 6/r/n
<<< SYN 8 27 5 4/r/n
<<< GTC A/r/n<<< BLP AL/r/n<<< PRP PHH 01%20234
/r/n<<< PRP PHM 56%20789/r/n <<< LSG 0 Other%20Contacts 0/r/n LSG 1 Coworkers 0/r/n LSG 2 Friends 0/r/n LSG 3 Family 0/r/n <<< LST Bob 13 0/r/n BPR MOB Y/r/n <<< LST Carol 3 0/r/n BPR PHM 9876 <<< -54321/r/n <<< LST 1 1,2 <<< ,3/r/n BPR PHH 3./r/n BPR PH <<< W <<< <<< 2./r/n BPR PHM sqrt(-1)/r/n <<< LST Eavesdropper 12/r/n <<< LST Fred 8/r/n >>> CHG 9 NLN 0/r/n>>> ADD 10 AL Fred/r/n <<< CHG 9 NLN 0/r/n ILN 9 NLN Bob 24/r/n ILN 9 IDL Carol /r/n <<< ADD 10 AL 28 Fred 1/r/n ILN 9 BSY Emily /r/n <<< CHL 0 0/r/n >>> QRY 11 32/r/n d0c1178c0d99f8c36ed9c (no newline) <<< QRY 11 >>> CHG 12 IDL 0/r/n <<< CHG 12 IDL 0/r/n <<< FLN /r/n >>> CHG 13 NLN 0/r/n <<< CHG 13 NLN 0/r/n <<< NLN BSY Caroline /r/n >>> REA 14 Caroline/r/n <<< REA 14 28 Caroline/r/n >>> REM 15 AL /r/n ADD 16 BL Bob/r/n OUT/r/n
Server closes connection
交换板
认证
概述
请求一个交换板会话
>>> XFR 15 SB/r/n <<< XFR 15 SB 207.46.108.37:1863 CKI ..32308/r/n
Client Connects to 207.46.108.37 1863 (Switchboard)
>>> USR 1 ..32308/r/n <<< USR 1 OK Example%20Name/r/n
Continue SB Session . . .
Client Connects to 207.46.108.37 1863 (Switchboard)
>>> USR 1 ..32307/r/n <<< 911 1/r/n
Switchboard Closes Connection
被邀请到交换板会话中
<<< RNG 207.46.108.38:1863 CKI . Example%20Name/r/n
Client Connects to 207.46.108.38 1863 (Switchboard)
>>> ANS 1 . /r/n <<< IRO 1 1 2 Mike/r/n <<< IRO 1 2 2 My%20Name/r/n <<< ANS 1 OK/r/n
Continue SB Session . . .
杂项
邀请参与者
>>> CAL 2 /r/n <<< CAL 2 RINGING /r/n >>> CAL 3 /r/n <<< 217 3/r/n >>> CAL 4 /r/n <<< 217 4/r/n >>> CAL 5 @@a/r/n <<< 208 5/r/n >>> CAL 5 /r/n <<< 216 5/r/n >>> CAL 5 /r/n<<< 216 5/r/n >>> CAL 5 /r/n <<< 216 5/r/n >>> CAL 5 /r/n <<< 216 5/r/n >>> CAL 5 /r/n <<< 216 5/r/n >>> CAL 5 /r/n <<< 216 5/r/n >>> CAL 5 /r/n <<< 713 5/r/n <<< JOI Name_123/r/n 退出交换板会话
>>> OUT/r/n
Switchboard Closes Connection
<<< BYE /r/n <<< BYE 1/r/n
Switchboard Closes Connection
消息
概述
输出消息
>>> MSG 4 N 133/r/n MIME-Version: 1.0/r/n Content-Type: text/plain; charset=UTF-8/r/n X-MMS-IM-Format: FN=Arial; EF=I; CO=0; CS=0; PF=22/r/n /r/n Hello! How are you? >>> MSG 4 N 133/r/n MIME-Version: 1.0/r/n Content-Type: text/plain; charset=UTF-8/r/n X-MMS-IM-Format: FN=Arial; EF=I; CO=0; CS=0; PF=22/r/n /r/n Hello! How are you? <<< ACK 4 来报
<<< MSG Mike 133/r/n MIME-Version: 1.0/r/n Content-Type: text/plain; charset=UTF-8/r/n X-MMS-IM-Format: FN=Arial; EF=I; CO=0; CS=0; PF=22/r/n /r/n Hello! How are you? 会话示例
概述
示例 1
<<< RNG 207.46.108.78:1863 CKI .26158 Bob/r/n >>> ANS 1 .26158 /r/n <<< MSG Bob 89/r/n MIME-Version: 1.0/r/n Content-Type: text/x-msmsgscontrol/r/n TypingUser: /r/n /r/n /r/n <<< MSG Bob 143/r/n MIME-Version: 1.0/r/n Content-Type: text/plain; charset=UTF-8/r/n X-MMS-IM-Format: FN=Lucida%20Sans%20Unicode; EF=B; CO=ff0000; CS=0; PF=22/r/n /r/n Hello. <<< MSG 2 U 91/r/n MIME-Version: 1.0/r/n Content-Type: text/x-msmsgscontrol/r/n TypingUser: /r/n /r/n /r/n >>> MSG 3 N 127/r/n MIME-Version: 1.0/r/n Content-Type: text/plain; charset=UTF-8/r/n X-MMS-IM-Format: FN=MS%20Sans%20Serif; EF=; CO=0; CS=0; PF=0/r/n /r/n Hi. >>> MSG 4 U 91/r/n MIME-Version: 1.0/r/n Content-Type: text/x-msmsgscontrol/r/n TypingUser: /r/n >>> MSG 5 N 138/r/n MIME-Version: 1.0/r/n Content-Type: text/plain; charset=UTF-8/r/n X-MMS-IM-Format: FN=MS%20Sans%20Serif; EF=; CO=0; CS=0; PF=0/r/n /r/n Are you there? <<< NAK 5/r/n >>> MSG 6 U 91/r/n MIME-Version: 1.0/r/n Content-Type: text/x-msmsgscontrol/r/n TypingUser: /r/n >>> MSG 7 U 91/r/n MIME-Version: 1.0/r/n Content-Type: text/x-msmsgscontrol/r/n TypingUser: /r/n >>> MSG 8 A 139/r/n MIME-Version: 1.0/r/n Content-Type: text/plain; charset=UTF-8/r/n X-MMS-IM-Format: FN=MS%20Sans%20Serif; EF=; CO=0; CS=0; PF=0/r/n /r/n I like turtles. <<< ACK 7/r/n >>> CAL 8 /r/n <<< CAL 8 RINGING /r/n <<< JOI Dave/r/n >>> CAL 10 /r/n <<< 217 10/r/n >>> CAL 10 /r/n <<< 216 10/r/n <<< JOI George/r/n <<< BYE /r/n <<< BYE 1/r/n 示例 2
>>> XFR 7 SB/r/n <<< 913 7/r/n >>> CHG 8 NLN 0/r/n <<< CHG 8 NLN 0/r/n >>> XFR 9 SB/r/n <<< XFR 9 SB 207.46.108.46:1863 CKI ..29994/r/n >>> USR 7 ..29994/r/n <<< USR 7 OK Alice/r/n >>> CAL 8 /r/n <<< CAL 8 RINGING /r/n <<< JOI Bob/r/n <<< MSG Bob 277/r/n MIME-Version: 1.0/r/n Content-Type: text/x-msmsgsinvite; charset=UTF-8/r/n /r/n Application-Name: File Transfer/r/n Application-GUID: {5D3E02AB-6190-11d3-BBBB-00C04F}/r/n Invitation-Command: INVITE/r/n Invitation-Cookie: /r/n Application-File: turtle.txt/r/n Application-FileSize: 2341/r/n /r/n >>> MSG 9 N 182/r/n MIME-Version: 1.0/r/n Content-Type: text/x-msmsgsinvite; charset=UTF-8/r/n /r/n Invitation-Command: ACCEPT/r/n Invitation-Cookie: /r/n Launch-Application: FALSE/r/n Request-Data: IP-Address:/r/n /r/n <<< MSG Bob 244/r/n MIME-Version: 1.0/r/n Content-Type: text/x-msmsgsinvite; charset=UTF-8/r/n /r/n Invitation-Command: ACCEPT/r/n Invitation-Cookie: /r/n IP-Address: 203.121.147.134/r/n Port: 6891/r/n AuthCookie: /r/n Launch-Application: FALSE/r/n Request-Data: IP-Address:/r/n /r/n <<< MSG Bob 152/r/n MIME-Version: 1.0/r/n Content-Type: text/x-msmsgsinvite; charset=UTF-8/r/n /r/n Invitation-Command: CANCEL/r/n Invitation-Cookie: /r/n Cancel-Code: FTTIMEOUT/r/n /r/n >>> MSG 10 A 292/r/n MIME-Version: 1.0/r/n Content-Type: text/x-msmsgsinvite; charset=UTF-8/r/n /r/n Application-Name: NetMeeting/r/n Application-GUID: {44BBA842-CC51-11CF-AAFA-00AA00B6015C}/r/n Session-Protocol: SM1/r/n Invitation-Command: INVITE/r/n Invitation-Cookie: /r/n Session-ID: {60F887C8-A5D0-11D7-A88E-0040F43DB1D9}/r/n /r/n <<< ACK 10/r/n <<< MSG Bob 225/r/n MIME-Version: 1.0/r/n Content-Type: text/x-msmsgsinvite; charset=UTF-8/r/n /r/n Invitation-Command: CANCEL/r/n Cancel-Code: REJECT/r/n Invitation-Cookie: /r/n Session-ID: {CE1ABB0F-D40D-432F-A359-5AEC532CDBC3}/r/n Session-Protocol: SM1/r/n /r/n <<< MSG Bob 335/r/n MIME-Version: 1.0/r/n Content-Type: text/x-msmsgsinvite; charset=UTF-8/r/n /r/n Application-Name: Whiteboard/r/n Application-GUID: {1DF57D09-637A-4ca5-91B9-2C3EDAAF62FE}/r/n Session-Protocol: SM1/r/n Application-URL: http://www.microsoft.com/r/n Invitation-Command: INVITE/r/n Invitation-Cookie: /r/n Session-ID: {463CB365-0213-4933-AA8A-D01FAA}/r/n /r/n >>> MSG 11 A 216/r/n MIME-Version: 1.0/r/n Content-Type: text/x-msmsgsinvite; charset=UTF-8/r/n /r/n Invitation-Command: CANCEL/r/n Cancel-Code: REJECT_NOT_INSTALLED/r/n Invitation-Cookie: /r/n Session-ID: {60F887CB-A5D0-11D7-A88E-0040F43DB1D9}/r/n /r/n <<< ACK 11/r/n >>> OUT/r/n 客户端
通知文档
概述
通知格式
红色标出。
" siteurl="http://calendar.msn.com" id="1">/r/n
0x00060000
:0x81ee5a43" name="" />/r/n
1
">/r/n
/calendar/isapi.dll?request=action&operation=modify&objectID=1&uicode1=modifyreminder&locale=2052
"/>/r/n
/calendar/isapi.dll?request=action&operation=modify&objectID=1&uicode1=modifyreminder&locale=2052
"/>
" />/r/n 2052" icon="/En/img/calendar.png">/r/n
goto club 7. 2002 21:15 - 22:15 /r/n /r/n /r/n/r/n ver attribute of theNOTIFICATION element is set to "1". email attribute of theTO element is missing VIA andFROM elements are missing. ACTION element comes before theSUBSCR element CAT element BODY element has anicon attribute.
" siteid="" siteurl="http://alerts.msn.com">/r/n
0x0006BFFD
:0x8582C0FB" name=""/>/r/n
1
" id="">/r/n
http://g.msn.com/3ALMSNTRACKING/ToastChange?http://alerts.msn.com/Alerts/MyAlerts.aspx?strela=1
"/>/r/n
http://g.msn.com/3ALMSNTRACKING/ToastAction?http://alerts.msn.com/Alerts/MyAlerts.aspx?strela=1
"/>/r/n 3076" icon="">/r/n
utf8-encoded text/r/n/r/n ver attribute of theNOTIFICATION element is set to "2" email attribute of theTO element is missing VIA andFROM elements are missing. SUBSCR element comes before theACTION element CAT element is missing BODY element has anicon attribute.
0
" siteid="" siteurl="http://mobile.msn.com/">/r/n
" pid="0x00037ffe:0x82f131c1" email="">/r/n
mobile
"/>/r/n /r/n
0x00037ffe:0x82f131c1
" name=""/>/r/n
1
" id="0">/r/n
2wayIM.asp
"/>/r/n
2wayIM.asp
"/>/r/n
"/>/r/n 2057">/r/n
Message /r/n
The following mobile instant message could not be delivered to you via Messenger because you were offline./r/n From: /r/n Message: Message /r/n /r/n /r/n/r/n ver attribute of theNOTIFICATION element is missing. TO element has anemail attribute. VIA andFROM elements. ACTION element comes before theSUBSCR element CAT element icon attribute of theBODY element is missing. EMAILTEXT element 说明
如何使用通知
base_URL¬ification_id=NOTIFICATION_id&message_id=MSG_id&agent=messenger . siteurl ofhttp://mysite.com , an action URL of/script.asp , notification ID of1 , and a message ID of2 , the target URL would behttp://mysite.com/script.asp¬ification_id=1&message_id=2&agent=messenger . 消息
消息类型
即时消息 (text/plain)
键入通知( text/x-msmsgscontrol )
MIME-Version: 1.0/r/nContent-Type: text/x-msmsgscontrol/r/nTypingUser: /r/n/r/n/r/n 应用邀请( text/x-msmsgsinvite )
非官方的消息类型
纯文本消息
概述
消息格式
Content-Type: text/plain 发送,默认为 ISO 8859-1 编码。Content-Type: text/plain; charset=UTF-8 , UTF-8 编码。如果创建了其他类型的字符集(比如 charset=iso-8859-15 ),官方客户端将不会显示, ISO-8859-1 与 UTF-8 在基础知识的连接节中有描述。 MIME-Version: 1.0/r/nContent-Type: text/plain; charset=UTF-8/r/nX-MMS-IM-Format: FN=Arial; EF=I; CO=ff0000; CS=0; PF=22/r/n/r/nHello!/rHow are you? MIME-Version: 1.0/r/nContent-Type: text/plain/r/n/r/nI'm fine. :)/r/nAnd you? X-MMS-IM-Format 字段
FN=MS%20Sans%20Serif ”,字体名大小写不敏感,但空格必须被 URL 编码。对于其他字符如数字与字母进行编码,结果不可预知。如果客户端不包含指定字体,应该判断 PF 与 CS 参数。基本上,客户端应按照 CS 指定选择可以支持的字体,并且最接近 PF 的指定。如果那些参数都不存在,使用默认字体。 -
ANSI_CHARSET
-
DEFAULT_CHARSET
-
SYMBOL_CHARSET
-
MAC_CHARSETLT
-
SHIFTJIS_CHARSET
-
HANGEUL_CHARSET
-
JOHAB_CHARSET
-
GB2312_CHARSET
-
CHINESEBIG5_CHARSET
-
GREEK_CHARSET
-
TURKISH_CHARSET
-
VIETNAMESE_CHARSET
-
HEBREW_CHARSET
-
ARABIC_CHARSET
-
BALTIC_CHARSET
-
RUSSIAN_CHARSET_DEFAULT
-
THAI_CHARSET
-
EASTEUROPE_CHARSET
-
OEM_DEFAULT
-
FF_DONTCARE
This name is used when information about a font does not exist or does not matter. The default font is used.
-
FF_ROMAN
-
FF_SWISS
-
FF_MODERN
-
FF_SCRIPT
-
FF_DECORATIVE
-
DEFAULT_PITCH
-
FIXED_PITCH
-
VARIABLE_PITCH
X-MMS-IM-Format: FN=MS%20Sans%20Serif; EF=; CO=0; CS=0; PF=22
This
X-MMS-IM-Format
field expresses the MS Sans Serif font with no effects and a black colour.
X-MMS-IM-Format: FN=Comic%20Sans%20MS; EF=S; CO=; CS=0; PF=42
This field expresses the Comic Sans MS font in a dark blue colour, underlined, and bold.
X-MMS-IM-Format: FN=Verdana; CO=ff; EF=UB; PF=22; CS=cc
This field expresses the Verdana font in full red colour, with the strikeout effect, and with a Cyrillic charset. The parameters are in an unusual order, but as long as
FN
is in the front, it's all right.
X-MMS-IM-Format: FN=Courier%20New; EF=; CO=ff00ff; CS=0; PF=31
This field expresses the Courier New font in a bright magenta colour with no effects.
X-MMS-IM-Format: FN=My%20Hebrew%20Font; EF=; CS=b1; PF=00; RL=1
This field expresses a made up font called My Hebrew Font with no specified colour, no effects, a Hebrew charset, and right-alignment.
邀请消息
什么是邀请
文件传输
- 邀请者发送INVITE命令
- 被邀请者ACCEPT邀请
- 如果被邀请者不能提供服务,邀请者ACCEPT
- 任一客户端可能发送CANCEL命令,并携带撤销码FTTIMEOUT,如果传输中出现错误的话。如,官方客户端将在30秒内监听接入连接,然后就取消了服务。
Filoverføring ,日语中为ファイル送信 。这仅应该是为用户描述用 — 如果说应用程序的 GUID 的话,谁会识别呢? >>> MSG 12 N 294 MIME-Version: 1.0 Content-Type: text/x-msmsgsinvite; charset=UTF-8 Application-Name: File Transfer Application-GUID: {5D3E02AB-6190-11d3-BBBB-00C04F} Invitation-Command: INVITE Invitation-Cookie: 85366 Application-File: Autoexec.bat Application-FileSize: 187 Connectivity: N <<< MSG Bob 306 MIME-Version: 1.0 Content-Type: text/x-msmsgsinvite; charset=UTF-8 IP-Address: 81.99.77.64 IP-Address-Internal: 10.5.1.3 Port: 6891 PortX: 11178 AuthCookie: Sender-Connect: TRUE Invitation-Command: ACCEPT Invitation-Cookie: Launch-Application: FALSE Request-Data: IP-Address: >>> MSG 4 N 277 MIME-Version: 1.0 Content-Type: text/x-msmsgsinvite; charset=UTF-8 Application-Name: File Transfer Application-GUID: {5D3E02AB-6190-11d3-BBBB-00C04F} Invitation-Command: INVITE Invitation-Cookie: 33267 Application-File: readme.txt Application-FileSize: 60904 <<< MSG Tim 179 MIME-Version: 1.0 Content-Type: text/x-msmsgsinvite; charset=UTF-8 Invitation-Command: ACCEPT Invitation-Cookie: 33267 Launch-Application: FALSE Request-Data: IP-Address: >>> MSG 4 N 238 MIME-Version: 1.0 Content-Type: text/x-msmsgsinvite; charset=UTF-8 Invitation-Command: ACCEPT Invitation-Cookie: 33267 IP-Address: 10.44.102.65 Port: 6891 AuthCookie: 93301 Launch-Application: FALSE Request-Data: IP-Address: >>> MSG 4 N 151 MIME-Version: 1.0 Content-Type: text/x-msmsgsinvite; charset=UTF-8 Invitation-Command: CANCEL Invitation-Cookie: 85366 Cancel-Code: FTTIMEOUT 其他邀请类型
Filoverføring ,日语中为ファイル送信 。这仅应该是为用户描述用 — 如果说应用程序的 GUID 的话,谁会知道是什么呢 >>> MSG Bob 353/r/n MIME-Version: 1.0/r/n Content-Type: text/x-msmsgsinvite; charset=UTF-8/r/n /r/n Application-Name: voice conversation/r/n Application-GUID: {02D3C01F-BF30-4825-A83A-DE7AF41648AA}/r/n Session-Protocol: SM1/r/n Context-Data: Requested:SIP_A,;Capabilities:SIP_A,;/r/n Invitation-Command: INVITE/r/n Invitation-Cookie: /r/n Session-ID: {CD482FDC-AE24-3574-C2A5-AD94D1}/r/n /r/n <<< MSG 16 N 319/r/n MIME-Version: 1.0/r/n Content-Type: text/x-msmsgsinvite; charset=UTF-8/r/n /r/n Invitation-Command: ACCEPT/r/n Context-Data: Requested:SIP_A,;/r/n Invitation-Cookie: /r/n Session-ID: {A8B34C0E-2EEF-932F-F120-F7492E39CDA9}/r/n Session-Protocol: SM1/r/n Launch-Application: TRUE/r/n Request-Data: IP-Address:/r/n IP-Address: 203.122.147.102/r/n /r/n >>> MSG Bob 242/r/n MIME-Version: 1.0/r/n Content-Type: text/x-msmsgsinvite; charset=UTF-8/r/n /r/n Invitation-Command: ACCEPT/r/n Invitation-Cookie: /r/n Session-ID: {CD482FDC-AE24-3574-C2A5-AD94D1}/r/n Launch-Application: TRUE/r/n IP-Address: 203.122.147.102:13455/r/n /r/n
Connect to 203.122.147.102:13455 . . .
/r/n MIME-Version: 1.0/r/n Content-Type: text/x-msmsgsinvite; charset=UTF-8/r/n /r/n Application-Name: Remote Assistance/r/n Application-GUID: {56b994a7-380f-410b-9985-c809d78c1bdc}/r/n Session-Protocol: SM1/r/n Application-URL: http://www.microsoft.com/r/n Invitation-Command: INVITE/r/n Invitation-Cookie: /r/n Session-ID: {DF93A302-30D2-DF92-C392-FDB9EA}/r/n /r/n <<< MSG 7 N 162/r/n MIME-Version: 1.0/r/n Content-Type: text/x-msmsgsinvite; charset=UTF-8/r/n /r/n Invitation-Command: CANCEL/r/n Invitation-Cookie: /r/n Cancel-Code: REJECT_NOT_INSTALLED/r/n /r/n 邀请类型
概述
共享应用
Baldur’s Gate 2
MechWarrior Mercenaries
NetMeeting
远程协助
音频及视频会话
摄像头
括号。
23868E-B45F-401d-B8B0-1E16B774A5B7
白板
Jedi Knight
文件传输
概述
建立连接
二进制数据
协议 — 正文
协议 — 二进制部分
会话示例
Incoming Connection on Port: 6891
<<< VER MYPROTO MSNFTP >>> VER MSNFTP <<< USR 93301 >>> FIL 13 <<< TFR >>> 0, 13, 0, 72, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100, 33 >>> 1, 0, 0 <<< BYE
Incoming Connection on Port: 6891
<<< VER MYPROTO
Disconnect
错误列表
200 Never before encountered.
201 Sent if the command has a parameter that is considered invalid by the server. Setting your status to
FLN would be an example. >>> CHG 19 FLN 0/r/n <<< 201 19/r/n Also sent if you try to
ADD an invalid email address. >>> ADD 20 FL a@b a@b/r/n <<< 201 20/r/n 205 Sent if you try to
ADD a nonexistent, but valid, account name. >>> ADD 21 AL /r/n <<< 205 21/r/n 206 Never before encountered.
207 If the client sends a
USR after already logging in, this error will be sent in response. >>> USR 20 TWN I /r/n <<< 207 20/r/n >>> USR 21 TWN S 6b05a0f5b1aa0959e128cfdd513ccf5c/r/n <<< 207 21/r/n 208 Sent from the switchboard in reply to a
CAL which specifies an invalid account name. >>> CAL 2 @@a/r/n <<< 208 2/r/n 209 Sent in reply to a
REA when there is a blocked word/phrase in the new nickname or when the Passport has not yet been confirmed. >>> REA 18 look%20msn/r/n <<< 209 18/r/n 210 Sent in response to an
ADD command if the FL is already full. The principal will not be added. Currently (as of March 23, 2003), the limit is 150 principals, as doubled from a previous 75. >>> ADD 23 FL 0/r/n <<< 210 23/r/n 215 Sent if you try to
ADD a principal to a list, but the principal is already in that list. >>> ADD 26 AL /r/n <<< ADD 26 AL 824 /r/n >>> ADD 27 AL /r/n <<< 215 27/r/n Also sent if you try to
ADD a principal to your FL in a group that the principal is already in. >>> ADD 28 FL 2/r/n <<< ADD 28 825 FL 2/r/n >>> ADD 29 FL 2/r/n <<< 215 29/r/n Also sent if you try to invite (
CAL ) a principal into a switchboard session that has already been invited and/or is already present. >>> CAL 5 /r/n <<< CAL 5 RINGING /r/n >>> CAL 6 /r/n <<< 215 6/r/n 216 Sent in reply to
REM s that try to remove principals that are not in the list. Also sent if you try to remove nonexistent or invalid account names because, naturally, they couldn't be in your list. >>> REM 14 FL /r/n <<< 216 14/r/n This error is also sent in reply to invitations to the switchboard (
CAL s) to principals that either have you in their BL or have their BLP settings so that you are automatically in their BL . This is only sent when the principal is on-line, but you're not allowed to know their on-line status. >>> CAL 2 /r/n <<< 216 2/r/n Also sent in reply to
REA s that try to rename principals that are not in any of your lists. >>> REA 48 nickname/r/n <<< 216 48/r/n 217 This error is sent in reply to invitations to the switchboard (
CAL s) to principals that are currently either offline or appearing offline. This error will also be sent in reply to invitations to nonexistent account names. >>> CAL 2 /r/n <<< 217 2/r/n >>> CAL 3 /r/n <<< 217 3/r/n 218 Sent in reply to a
GTC or a BLP if it tries to change the mode to the mode it is already in. In other words, if the GTC value is already set to A, and the client sends the GTC command setting it to A again, it will receive this error. >>> GTC 15 A/r/n <<< GTC 15 150 A/r/n >>> GTC 16 A/r/n <<< 218 16/r/n
>>> BLP 17 BL/r/n
<<< BLP 17 151 BL/r/n
>>> BLP 18 BL/r/n
<<< 218 18/r/n
219 Send in reply to an
ADD that causes the same principal to be in the BL and the AL at the same time. Obviously, that cannot be possible, and the principal will not be added. >>> ADD 15 AL /r/n <<< ADD 15 AL 108 Mike/r/n >>> ADD 16 BL /r/n <<< 219 16/r/n 223 Sent if you try to add a group (
ADG ) so that you have more than 30 groups (the maximum). The group with the ID of zero counts toward the limit. >>> ADG 38 thirtyfirst%20group 0/r/n <<< 223 38/r/n 224 Sent if you try to
ADD a principal to your FL with a nonexistent group ID. Also sent in reply to REM s to nonexistent groups. Also sent in reply if you try to remove ( RMG ) or rename ( REG ) a nonexistent group. >>> RMG 24 15/r/n <<< RMG 24 12065 15/r/n >>> ADD 25 FL 15/r/n <<< 224 25/r/n >>> REM 26 FL 15/r/n <<< 224 26/r/n >>> RMG 27 15/r/n <<< 224 27/r/n >>> REG 28 15 New%20Name 0/r/n <<< 224 28/r/n 225 Sent if you try to remove (
REM ) a principal from an existent group that they are not currently in. >>> REM 27 FL 3/r/n <<< 224 27/r/n 229 Sent if you try to add a group (
ADG ) with more than 61 bytes in the name. >>> ADG 50 this%20group's%20name%20is%20sixty%20two%20bytes%20in%20length 0/r/n <<< 229 50/r/n 230 Sent if you try to remove (
RMG ) the group with the ID of zero. >>> RMG 28 0/r/n <<< 230 28/r/n 231 Never before encountered.
280 Never before encountered.
281 Never before encountered.
300 Never before encountered.
302 Never before encountered.
500 When the MSN servers are down, this might be sent in reply to your command to the NS containing your digested password. The official client interprets this as "Service Temporarily Unavailable". This error might also be sent if your account has banned from MSN.
>>> USR 28 TWN S 1938acd78b5524ce56a0ab6a01f3239/r/n <<< 500 28/r/n 501 Never before encountered.
502 Sent if you try to use a command associated with an MSN Messenger feature that no longer exists.
>>> FND 3 fname=Bill lname=Gates city=* state=* country=US/r/n <<< 502 3/r/n 510 Never before encountered.
520 Never before encountered.
540 Sent in response to a
QRY that is invalid. The server will close the connection after sending the error. <<< CHL 0 /r/n >>> QRY 10 32/r/n 4f2f5a91b72102cd28355e9fc9000d6e <<< 540 10/r/n 600 Never before encountered.
601 Can be sent in reply to the initial
USR to the NS if the server is somehow "unavailable". >>> USR 10 TWN I /r/n <<< 601 10/r/n 602 Never before encountered.
603 Never before encountered.
604 Never before encountered.
605 Never before encountered.
707 Never before encountered.
710 Sent in reply to a
CVR if you send an invalid LCID. >>> CVR 1 0x0809 winnt 5.1 i386 MSNMSGR 6.0.0602 MSMSGS /r/n <<< 710 1/r/n 711 Never before encountered.
712 Never before encountered.
713 When the client repeatedly calls someone who is offline or blocking them, this error message will be sent in response to the commands that the server rejects.
>>> CAL 5 /r/n <<< 216 5/r/n >>> CAL 5 /r/n <<< 216 5/r/n >>> CAL 5 /r/n <<< 216 5/r/n >>> CAL 5 /r/n <<< 216 5/r/n >>> CAL 5 /r/n <<< 216 5/r/n >>> CAL 5 /r/n <<< 713 5/r/n 714 Never before encountered.
715 Sent in response to a
PRP setting an invalid phone type of three or less characters. >>> PRP 30 PHV 555-0690/r/n <<< 715 30/r/n Also sent in response to a change of display name (
REA ) on an unverified Passport account. >>> REA 31 newname/r/n <<< 715 31/r/n 717 Never before encountered.
731 Sent in response to a badly formatted CVR
>>> CVR 2 foo/r/n <<< 731 2/r/n
Server Closes Connection
/r/n 800 When the client tries to change the display name (
REA ) too rapidly, this error message will be sent in response to the commands that the server rejects. This does not affect renaming other principals. >>> REA 100 NAME/r/n <<< REA 100 2000 NAME/r/n >>> REA 101 NAME/r/n <<< REA 101 2001 NAME/r/n >>> REA 102 NAME/r/n <<< REA 102 2002 NAME/r/n >>> REA 103 NAME/r/n <<< REA 103 2003 NAME/r/n >>> REA 104 NAME/r/n <<< 800 104/r/n Also when the client tries to change the status (
CHG ) too rapidly. >>> CHG 105 NLN 0/r/n <<< CHG 105 NLN 0/r/n >>> CHG 106 HDN 0/r/n <<< CHG 106 HDN 0/r/n >>> CHG 107 NLN 0/r/n <<< CHG 107 NLN 0/r/n >>> CHG 108 HDN 0/r/n <<< CHG 108 HDN 0/r/n >>> CHG 109 NLN 0/r/n <<< 800 109/r/n 910 When the MSN servers are busy, this might be sent in reply to your command to the NS containing your digested password..
>>> USR 28 TWN S t=53*1hAu8ADuD3TEwdXoOMi08sD . . . /r/n <<< 910 28/r/n 911 Sent in response to some invalid formats of the
USR command to the DS. Also sent if the account name is invalid. >>> USR 3 TWN S /r/n <<< 911 3/r/n
>>> USR 4 TWN I passport.com/r/n
<<< 911 4/r/n
Sent in response to an invalid TWN value sent in the second USR command to the NS. Also sent if the account name is invalid or nonexistent.
>>> USR 6 TWN S t=some_invalid_value/r/n
<<< 911 6/r/n
Also sent in response to problems authenticating with the switchboard with USR or ANS .
>>> USR 1 ..105/r/n
<<< 911 1/r/n
>>> ANS 1 . /r/n
<<< 911 1/r/n
912 Never before encountered.
913 Sent in reply to commands that are not allowed in the
HDN status which the principal is currently in. The only known command that is prohibited when offline is XFR >>> XFR 13 SB/r/n <<< 913 13/r/n 914 Never before encountered.
915 Never before encountered.
916 Never before encountered.
917 Never before encountered.
918 Never before encountered.
919 Never before encountered.
920 Never before encountered.
921 When the MSN servers are busy, this might be sent in reply to your command to the NS containing your digested password..
>>> USR 28 TWN S t=53*1hAu8ADuD3TEwdXoOMi08sD . . . /r/n <<< 921 28/r/n 922 Never before encountered.
923 Sent in reply to the second
USR to the NS if client is logging in with a Kids Passport without parental consent to chat online. >>> USR 29 TWN S t=53*1hAu8ADuD3TEwdXoOMi08sD . . . /r/n <<< 923 29/r/n 924 Never before encountered.
928 Sent in reply to the second
USR to the NS if your ticket is invalid. Mostly seen if you don't handle redirections properly with the login server connection and use an @msn or @hotmail account >>> USR 29 TWN S my_invalid_passport/r/n <<< 928 29/r/n MSNP10
MSNC1
结束语
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/212982.html原文链接:https://javaforall.net
