annotate src/protocols/msn/PROTOCOL @ 3311:522f37c9f9d2

[gaim-migrate @ 3329] Added typing notification and improved support for Jabber resources. (Thanks, Nathan Walp) Fixed problem with Gaim crashing on non-ASCII buddy alias (Jabber "name" attribute) chars. (Thanks, Ho-seok Lee) Plugged memory leaks and fixed problem with away status not being propagated to conference rooms for jabberd 1.4.2 and above. committer: Tailor Script <tailor@pidgin.im>
author Jim Seymour <jseymour>
date Sat, 15 Jun 2002 17:24:07 +0000
parents 8573faeb9298
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2285
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1 Some other notes not contained in this spec.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
2 REA TrID UserHandle FriendlyName - will change your friendly name
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
3
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
4 ---
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
5 Instant Messaging and Presence Protocol R. Movva
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
6 Internet Draft Microsoft
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
7 Category: Informational August, 1999
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
8 Document: draft-movva-msn-messenger-protocol-00.txt
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
9 Document Expires: 2/00 W. Lai
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
10 Microsoft
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
11 August, 1999
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
12
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
13
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
14
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
15 MSN Messenger Service 1.0 Protocol
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
16
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
17
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
18
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
19 Status of this Memo
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
20
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
21 This document is an Internet-Draft and is NOT offered in accordance
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
22 with Section 10 of RFC2026, and the author does not provide the IETF
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
23 with any rights other than to publish as an Internet-Draft.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
24
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
25 Internet-Drafts are working documents of the Internet Engineering
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
26 Task Force (IETF), its areas, and its working groups. Note that
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
27 other groups may also distribute working documents as Internet-
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
28 Drafts. Internet-Drafts are draft documents valid for a maximum of
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
29 six months and may be updated, replaced, or obsoleted by other
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
30 documents at any time. It is inappropriate to use Internet-Drafts as
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
31 reference material or to cite them other than as "work in progress."
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
32
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
33 The list of current Internet-Drafts can be accessed at
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
34 http://www.ietf.org/ietf/1id-abstracts.txt
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
35
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
36 The list of Internet-Draft Shadow Directories can be accessed at
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
37 http://www.ietf.org/shadow.html.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
38
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
39 This document and related documents are discussed on the impp
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
40 mailing list. To join the list, send mail to impp-
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
41 request@iastate.edu. To contribute to the discussion, send mail to
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
42 impp@iastate.edu. The archives are at http://lists.fsck.com/cgi-
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
43 bin/wilma/pip. The IMPP working group charter, including the current
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
44 list of group documents, can be found at
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
45 http://www.ietf.org/html.charters/impp-charter.html.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
46
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
47
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
48
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
49 1. Abstract
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
50
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
51 Microsoft released a commercial Instant Messaging product in July of
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
52 1999 called MSN Messenger Service. This document describes the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
53 protocol used by that product for core instant messaging and
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
54 presence functionality. While this protocol does not meet many of
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
55 the requirements of the IMPP working group, it is provided as
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
56 background information on existing Instant Messaging
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
57 implementations. This protocol is provided 'as is' without warranty
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
58 of any kind.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
59
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
60
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
61 Movva and Lai Category - Informational 1
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
62
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
63 MSN Messenger Service 1.0 Protocol Aug - 99
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
64
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
65
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
66
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
67 2. Conventions used in this document
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
68
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
69 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
70 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
71 this document are to be interpreted as described in RFC-2119.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
72
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
73 Protocol messages sent from client to server are preceded by "C:".
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
74
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
75 Protocol messages sent from server to client are preceded by "S:".
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
76
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
77
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
78
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
79 3. Introduction
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
80
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
81 MSN Messenger Service enables a user to learn about the presence of
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
82 other people on the Internet, and to communicate with them in real-
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
83 time. This functionality is commonly referred to as "Instant
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
84 Messaging" (IM).
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
85
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
86 This document describes the syntax and semantics of the MSN
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
87 Messenger Protocol, the communication protocol running between MSN
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
88 Messenger Service 1.0 clients and servers. Among the core services
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
89 that the MSN Messenger Servers provide to clients are:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
90
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
91 - Authenticated user logon.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
92 - Adding and deleting members of the user's contact list.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
93 - Changing the user's on-line state.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
94 - Receipt of asynchronous, real-time, on-line state change
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
95 notifications from members of the user's contact list.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
96 - Delivering lightweight, real-time messages to other users.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
97 - Receipt of asynchronous, real-time messages from other users.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
98 - Configuring the user's access permissions, to restrict the ability
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
99 of other users to view the user's on-line state or send messages
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
100 to the user.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
101
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
102 Additional background:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
103
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
104 1. Some features extraneous to core instant messaging functionality
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
105 contained within the MSN Messenger Service 1.0 protocol are beyond
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
106 the scope of this document. Examples include client version
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
107 management and directory functionality.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
108
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
109 2. The purpose of this document is to provide the members of the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
110 IMPP working group with a reference implementation of a "monolithic"
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
111 IM system. That is, a system designed for massive scale, but not yet
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
112 capable of communication with servers other than those associated
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
113 with this specific service. Since any standard in this area will of
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
114 necessity be a "distributed" design that explicitly enables server-
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
115 to-server and service-to-service communication, this document will
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
116 serve primarily as a reference and example of one implementer's
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
117 choices when providing IM functionality at scale.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
118
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
119
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
120 Movva and Lai Category - Informational 2
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
121
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
122 MSN Messenger Service 1.0 Protocol Aug - 99
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
123
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
124
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
125 3. This document reflects the protocol used in the 1.0 release of
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
126 MSN Messenger clients and servers, deployed on the Internet in July
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
127 of 1999. However, the service is in production and rapidly growing,
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
128 which almost certainly will necessitate changes to the protocol as
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
129 Microsoft gains operational experience with the service and expands
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
130 its feature set. This Internet Draft may not be updated with such
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
131 changes, and the changes may be made with little or no notice.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
132
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
133
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
134
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
135 4. MSN Messenger Server Component Overview
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
136
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
137 MSN Messenger Service clients make connections to several different
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
138 kinds of servers. They are separate components to facilitate running
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
139 at scale - each component can be duplicated an arbitrary number of
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
140 times, independently of each other, to enable large numbers of
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
141 users.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
142
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
143 4.1 Dispatch Server (DS)
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
144
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
145 The Dispatch Server is the initial point of connection between
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
146 client and server. Its primary functions are protocol version
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
147 negotiation, determination of which Notification Server (NS) is
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
148 associated with the client making a connection (via an algorithm of
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
149 the server's choosing), and referring the client to the proper NS.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
150
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
151 4.2 Notification Server (NS)
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
152
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
153 The Notification Server is the primary server component. The client
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
154 and the Notification Server authenticate, synchronize user
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
155 properties, and exchange asynchronous event notifications. The
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
156 client's connection to the Notification Server occurs after the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
157 referral from the Dispatch Server is completed, and persists without
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
158 interruption during the user's MSN Messenger Service session.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
159
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
160 Some of the events transmitted between a client and a Notification
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
161 Server are: State changes (e.g. client is on-line, client is
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
162 offline, client is idle), Switchboard Server invitation requests
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
163 (see below), and application-specific notifications that are beyond
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
164 the scope of this document. (E.g. new e-mail has arrived)
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
165
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
166 4.3 Switchboard Server (SS)
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
167
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
168 The Switchboard Server is the component through which clients can
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
169 establish lightweight communication sessions without requiring a
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
170 direct network connection between clients. The common usage of the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
171 Switchboard Server is to provide instant messaging sessions.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
172 When a client wishes to communicate with another client, it sends a
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
173 message to its Notification Server, which then refers the client to
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
174 a Switchboard Server. Once the SS connection is established, the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
175 "destination" client receives a notification from its NS to connect
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
176 to the same SS.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
177
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
178
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
179 Movva and Lai Category - Informational 3
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
180
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
181 MSN Messenger Service 1.0 Protocol Aug - 99
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
182
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
183
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
184 5. Protocol Conventions
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
185
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
186 5.1 Connection Type
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
187
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
188 The MSN Messenger Protocol currently works over TCP/IP. The MSN
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
189 Messenger server components support connections over port numbers
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
190 1863, which is the registered port number assigned by the IANA
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
191 (http://www.isi.edu/in-notes/iana/assignments/port-numbers).
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
192
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
193 5.2 Command Syntax
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
194
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
195 MSN Messenger Protocol command syntax is ASCII and single line-
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
196 based. Commands begin with a case-sensitive, three-letter command
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
197 type, followed by zero or more parameters, and terminated by CRLF.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
198 Parameters are separated by one or more whitespace characters and
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
199 cannot contain whitespace characters. Parameters that contain spaces
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
200 or extended (non 7-bit ASCII) characters should be encoded using
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
201 URL-style encoding (e.g. "%20" for space). Some commands accept un-
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
202 encoded binary data. In these cases, the length of the data is
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
203 transmitted as part of the command, and the data is transmitted
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
204 immediately following a CRLF of the command.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
205
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
206 5.3 Asynchronous Requests
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
207
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
208 Commands issued from the client to the server that result in a reply
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
209 are known as requests. Requests are entirely asynchronous. The
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
210 client can submit several requests in sequence without waiting for
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
211 the server response after submitting each request. The server is
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
212 required to deliver a response or an error for each request
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
213 received, but it is not required to deliver the responses in the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
214 same order as the requests were received. The client can determine
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
215 the request associated with a particular response by examining the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
216 Transaction ID parameter (described below).
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
217
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
218 5.4 User Handles
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
219
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
220 MSN Messenger Protocol uses User Handles for identifying users. A
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
221 user handle (also known as "account name" and "logon name") is a
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
222 text representation of the user's identity that is both unique and
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
223 persistent. The user handle is syntactically equivalent to an e-mail
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
224 address, and as such is subject to the same restrictions for
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
225 character set, as described in RFC-822. Most notable among these
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
226 restrictions are the limitation to Latin alphanumeric characters and
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
227 a few symbols. The maximum acceptable length of the user handle is
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
228 129 bytes.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
229
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
230 Implementation note: In the initial release of the client and
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
231 server, user handles are Hotmail account names. All user handles
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
232 must contain the "@hotmail.com" domain name, and user handles that
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
233 do not contain a domain name are not valid.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
234
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
235 5.5 Custom User Names
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
236
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
237
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
238 Movva and Lai Category - Informational 4
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
239
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
240 MSN Messenger Service 1.0 Protocol Aug - 99
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
241
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
242
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
243 A custom user name (also known as "custom name" and "friendly name")
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
244 is a user's representation of the "friendly" textual name associated
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
245 with a user handle. (E.g. "Auntie Em" instead of em123@hotmail.com).
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
246 Custom user names are neither unique nor persistent, and can contain
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
247 any valid Unicode characters. Custom user names are represented in
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
248 UTF-8 as described in RFC-2044 and URL-encoded as described in RFC-
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
249 1738 when transmitted between the client and server. The maximum
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
250 acceptable length of the encoded custom user name is 387 in the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
251 current implementation.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
252
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
253 5.6 Transaction Identifiers
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
254
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
255 The Transaction Identifier (a.k.a. Transaction ID) is a numeric
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
256 string representing a number between 0 and (2^32 - 1). It is a value
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
257 that a client includes with any command that it issues to the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
258 server. In the current version of the protocol, the transaction
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
259 identifier is used to associate server responses with client-issued
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
260 commands. The server treats the transaction ID as an opaque number
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
261 and does not assume any relationship between successive Transaction
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
262
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
263 IDs or any particular starting Transaction ID. It is the client's
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
264 responsibility to guarantee the uniqueness of the Transaction IDs
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
265 for the purpose of disambiguating the commands and/or responses. (A
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
266 future version of the protocol could enable the client to track the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
267 status or cancel a particular transaction using the transaction ID.)
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
268
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
269 When the server sends the response to a command to the client, it
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
270 must include in the response the transaction ID that the client sent
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
271 to the server when the client originally issued the command. In
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
272 cases where a server sends a command to a client that requires a
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
273 transaction ID but is not in response to a specific client command,
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
274 it will use 0 as the transaction ID. In cases where a server sends
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
275 multiple responses to a single client request, the server will use
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
276 the same transaction ID in each response.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
277
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
278 5.7 User List Types
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
279
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
280 Some of the protocol commands are used to the manipulate lists of
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
281 users. The following types of user lists are supported by the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
282 protocol:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
283
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
284 Forward List (FL) - The list of users for whom a given user wants to
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
285 receive state change notifications. The Forward List is what is most
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
286 commonly referred to as the user's "contact list."
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
287
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
288 Reverse List (RL) - The list of users who have registered an
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
289 interest in seeing this user's state change notifications.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
290
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
291 Allow List (AL) - The list of users who the user has explicitly
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
292 allowed to see state change notifications and establish client-to-
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
293 client sessions via a Switchboard Server.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
294
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
295
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
296
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
297 Movva and Lai Category - Informational 5
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
298
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
299 MSN Messenger Service 1.0 Protocol Aug - 99
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
300
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
301
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
302 Block List (BL) - The list of users who the user has explicitly
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
303 prevented from seeing state change notifications and establishing
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
304 client-to-client sessions via a Switchboard Server.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
305
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
306
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
307
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
308 6. Command Summary Table
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
309
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
310 Command From To Description
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
311 ==================================================================
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
312 ACK Switchboard Client Sends a positive message
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
313 delivery acknowledgement.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
314 -------------------------------------------------------------------
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
315 ADD Client Notification Adds to the user's FL, AL,
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
316 Notification Client and BL. Notifies the client
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
317 of asynchronous additions
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
318 to a user's list.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
319 -------------------------------------------------------------------
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
320 ANS Client Switchboard Accepts a request for a
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
321 switchboard server session.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
322 -------------------------------------------------------------------
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
323 BLP Client Notification Changes the user's message
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
324 Notification Client privacy setting, which
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
325 determines how to treat
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
326 messages from users not
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
327 already in the BL or AL.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
328 -------------------------------------------------------------------
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
329 BYE Switchboard Client Notifies a client that a
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
330 user is no longer in the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
331 session.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
332 -------------------------------------------------------------------
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
333 CAL Client Switchboard Initiates a switchboard
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
334 server session.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
335 -------------------------------------------------------------------
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
336 CHG Client Notification Sends a client state change
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
337 Notification Client to the server.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
338 Echoes the success of
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
339 client's state change
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
340 request.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
341 -------------------------------------------------------------------
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
342 FLN Notification Client Notifies the client when
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
343 users in the FL go off-
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
344 line.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
345 -------------------------------------------------------------------
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
346 GTC Client Notification Changes the user's prompt
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
347 Notification Client setting, which determines
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
348 how the client reacts to
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
349 certain RL changes.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
350 -------------------------------------------------------------------
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
351 INF Client Dispatch, Requests set of support
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
352 Notification authentication protocol
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
353 Dispatch, Client from the server.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
354 Notification Provides the set of
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
355
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
356 Movva and Lai Category - Informational 6
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
357
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
358 MSN Messenger Service 1.0 Protocol Aug - 99
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
359
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
360
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
361 supported authentication
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
362 protocols to the client.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
363 -------------------------------------------------------------------
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
364 ILN Notification Client Notifies the client of the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
365 initial online state of a
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
366 user in the FL, while
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
367 either logging on or adding
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
368 a user to the FL.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
369 -------------------------------------------------------------------
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
370 IRO Switchboard Client Provides the initial roster
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
371 information for new users
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
372 joining the session.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
373 -------------------------------------------------------------------
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
374 JOI Switchboard Client Notifies a client that a
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
375 user is now in the session.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
376 -------------------------------------------------------------------
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
377 LST Client Notification Retrieves the server's
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
378 Notification Client version of the user's FL,
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
379 RL, AL, or BL.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
380 -------------------------------------------------------------------
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
381 MSG Client Switchboard Sends a message to the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
382 members of the current
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
383 session.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
384 -------------------------------------------------------------------
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
385 MSG Notification, Client Delivers a message from
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
386 Switchboard another client or from a
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
387 server-side component.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
388 -------------------------------------------------------------------
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
389 NAK Switchboard Client Sends a negative message
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
390 delivery acknowledgement.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
391 -------------------------------------------------------------------
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
392 NLN Notification Client Notifies the client when
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
393 users in the FL go on-line
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
394 or when their on-line state
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
395 changes.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
396 -------------------------------------------------------------------
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
397 OUT All All Ends a client-server
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
398 Session.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
399 -------------------------------------------------------------------
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
400 REM Client Notification Removes from the user's FL,
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
401 Notification Client AL, and BL.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
402 Notifies the client of
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
403 asynchronous removals from
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
404 a user's list.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
405 -------------------------------------------------------------------
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
406 RNG Notification Client Notifies the client of a
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
407 request by another client
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
408 to establish a session via
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
409 a switchboard server.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
410 -------------------------------------------------------------------
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
411 SYN Client Notification Initiates client-server
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
412 Notification Client property synchronization.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
413 -------------------------------------------------------------------
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
414
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
415 Movva and Lai Category - Informational 7
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
416
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
417 MSN Messenger Service 1.0 Protocol Aug - 99
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
418
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
419
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
420 USR All All Authenticates client with
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
421 server, possibly in
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
422 multiple passes.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
423 ------------------------------------------------------------------
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
424 VER Client Dispatch Negotiates common protocol
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
425 Dispatch Client dialect between client and
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
426 Server.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
427 ------------------------------------------------------------------
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
428 XFR Client Notification Requests a Switchboard
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
429 Notification Client server for use in
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
430 establishing a session.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
431 -------------------------------------------------------------------
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
432 XFR Dispatch Client Notification of login-NS to
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
433 Notification Client the client or notification
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
434 to move to a different NS.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
435 =======================================================================
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
436
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
437
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
438
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
439 7. Presence and State Protocol Details
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
440
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
441 This is a detailed list of protocol commands associated with
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
442 presence functionality. They are defined in the order used by
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
443 clients. Commands associated with instant messages are discussed in
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
444 section 8 below.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
445
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
446 7.1 Protocol Versioning
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
447
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
448 After the client connects to a dispatch server by opening a TCP
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
449 socket to port 1863, the client and server agree on a particular
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
450 protocol version before they proceed. The Client-Server protocol
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
451 version handshake involves the following command exchange:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
452
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
453 C: VER TrID dialect-name{ dialect-name...}
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
454 S: VER TrID dialect-name
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
455
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
456 The client can provide multiple dialect names in preferred order.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
457 The dialect-name parameter returned by the server is the version
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
458 server is designating for this connection
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
459
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
460 The current protocol dialect-name supported by Messenger servers is
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
461 "MSNP2". The dialect names are not case-sensitive.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
462
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
463 The string "0" is a reserved dialect name and is used to indicate a
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
464 failure response. E.g.:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
465
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
466 S: VER TrID 0{ dialect-name ... }
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
467
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
468 7.2 Server Policy Information
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
469
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
470 The client next queries the server for variable "policy"
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
471 information. In this version of the protocol, the only policy
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
472
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
473
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
474 Movva and Lai Category - Informational 8
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
475
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
476 MSN Messenger Service 1.0 Protocol Aug - 99
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
477
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
478
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
479 information returned by the server is the authentication package in
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
480 use.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
481
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
482 C: INF TrID
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
483 S: INF TrID SP{,SP...}
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
484
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
485 SP identifies a security package - the name of the SASL mechanism to
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
486 use for authentication. "MD5" is used by the Notification Server,
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
487 "CKI" by the Switchboard Server.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
488
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
489 7.3 Authentication
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
490
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
491 The client needs to authenticate itself after protocol version
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
492 handshake and identifying the security packages supported on the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
493 server. The following are the client server interactions involved.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
494
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
495 C: USR TrID SP I{ AuthInitiateInfo}
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
496 S: USR TrID SP S{ AuthChallengeInfo}
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
497 C: USR TrID SP S{ AuthResponseInfo }
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
498 S: USR TrID OK UserHandle FriendlyName
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
499
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
500 The SP parameter is the name of the security package("MD5"). The
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
501 next parameter is a sequence value, which must be I to (I)nitiate
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
502 the authentication process and S for all (S)ubsequent messages. If
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
503 authentication fails on the server, the client can start the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
504 authentication process again.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
505
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
506 For the MD5 security package:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
507 - The AuthInitiateInfo parameter provided by the client must be the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
508 User handle.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
509 - The AuthChallengeInfo parameter returned by the server contains a
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
510 challenge string.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
511 - The AuthResponseInfo contains the binary response as a hexadecimal
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
512 string, which the MD5 hash of the challenge and the User password
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
513 strings concatenated together.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
514
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
515 The final response from the server contains, in addition to the user
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
516 handle, the current "Friendly Name" associated with the user handle.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
517 This is a "Custom User Name" as described above.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
518
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
519 7.4 Referral
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
520
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
521 There are three cases in which clients are referred from one server
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
522 to another:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
523
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
524 1. The initial "Dispatch Server" refers the client to the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
525 Notification Server to which it is assigned.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
526 2. Asynchronous referral by the Notification Server to reassign the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
527 client to a different Notification Server if that server is
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
528 overloaded or undergoing maintenance.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
529 3. During Switchboard Session establishment, the assigned
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
530 Notification Server refers the client to a particular
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
531 switchboard server for use. This is discussed below.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
532
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
533 Movva and Lai Category - Informational 9
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
534
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
535 MSN Messenger Service 1.0 Protocol Aug - 99
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
536
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
537
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
538
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
539 In the current implementation the Dispatch Server uses the user
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
540 handle provided in the initial USR command above to assign the user
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
541 in question to a Notification Server. Alternate implementations
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
542 might not require referral at this stage.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
543
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
544 If received, referral is of the form:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
545
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
546 S: XFR TrID ReferralType Address[:PortNo]
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
547
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
548 ReferralType is either "NS" or "SB" and defines the type of referral
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
549 to a Notification Server or Switchboard Server.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
550 Address is a valid DNS name or IP address to a referred server, with
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
551 optional port# suffixed as ":PortNo".
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
552
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
553 If this command is received from the server, the client should
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
554 attempt to log in to the server provided.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
555
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
556 In the case of "NS" referrals during logon, the Server automatically
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
557 closes the client connection after sending this XFR response so that
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
558 the client can connect to the new IP Address.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
559
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
560 If sent asynchronously, the client is responsible for closing the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
561 connection.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
562
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
563 After a "NS" referral, the client will not receive any more messages
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
564 from the "old" NS, and also must not send any commands to the "old"
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
565 NS after receiving an XFR.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
566
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
567 7.5 Client User Property Synchronization
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
568
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
569 Several of the user properties used by the Messenger application are
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
570 stored on the server. This is done for two reasons:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
571
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
572 1) So that users can "roam", i.e. log in from different locations
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
573 and still have the appropriate data, such as their contact lists and
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
574 privacy settings.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
575 2) If changes occur to a user's Reverse List while that user was
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
576 offline (the user was added to another user's list), the client can
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
577 be updated with this information.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
578
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
579 For performance reasons it is useful to cache these properties on
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
580 the client, so that bandwidth usage is minimized in the typical case
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
581 where the user is not roaming and there were no Reverse List
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
582 changes.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
583
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
584 These requirements are met by the SYN command - synchronization.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
585
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
586 Once a client logs in successfully, it uses the SYN command to
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
587 ensure it has the latest version of the server-stored properties.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
588 These properties include: Forward List, Reverse List, Block List,
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
589 Allow List, GTC setting (privacy setting when someone adds this user
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
590 to their Forward List), and BLP setting (the user's privacy mode).
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
591
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
592 Movva and Lai Category - Informational 10
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
593
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
594 MSN Messenger Service 1.0 Protocol Aug - 99
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
595
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
596
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
597
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
598 The SYN command is:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
599
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
600 C: SYN TrID Ser#
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
601 S: SYN TrID Ser#
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
602
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
603 The Ser# parameter sent by the client is the version of the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
604 properties currently cached on the client. The server responds with
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
605 the current server version of the properties. If the server has a
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
606 newer version, the server will immediately follow the SYN reply by
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
607 updating the client with the latest version of the user properties.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
608 These updates are done as described below, and are done without the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
609 client explicitly initiating a LST, GTC or BLP command. Note that
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
610 the server will update all server-stored properties to the client,
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
611 regardless of how many entries have been changed.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
612
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
613 The following "List Retrieval and Property Management" section
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
614 describes the format of the user properties sent by the server.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
615 After the SYN reply from the server, the user property updates will
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
616 be sent from the server in this sequence: GTC, BLP, LST FL, LST AL,
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
617 LST BL, LST RL.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
618
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
619 All the user property updates will share the same TrID as the SYN
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
620 command and reply.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
621
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
622 7.6 List Retrieval And Property Management
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
623
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
624 Synchronizing can result in a batch of user properties and lists
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
625 getting sent by the server to the client. However, the client
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
626 application can also initiate a request to retrieve the server-
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
627 stored lists and properties. The following are the privacy property
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
628 and list retrieval commands. The response formats are the same
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
629 whether it is a client-initiated request, or whether it is a
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
630 response to the SYN process as described above.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
631
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
632
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
633 List Command
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
634
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
635 By issuing the LST command, the client can explicitly request that a
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
636 list be sent. The server will respond with a series of LST
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
637 responses, one LST response for each item in the requested list.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
638
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
639 C: LST TrID LIST
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
640 S: LST TrID LIST Ser# Item# TtlItems UserHandle CustomUserName
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
641
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
642 - LIST is FL/RL/AL/BL for Forward List, Reverse List, Allow List,
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
643 and Block List, respectively.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
644 - The Item# parameter contains the index of the item described in
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
645 this command message. (E.g. item 1 of N, 2 of N, etc.)
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
646 - The TtlItems parameter contains the total number of items in this
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
647 list.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
648 - UserHandle is the user handle for this list item.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
649 - CustomUserName is the friendly name for this list item.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
650
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
651
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
652 Movva and Lai Category - Informational 11
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
653
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
654 MSN Messenger Service 1.0 Protocol Aug - 99
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
655
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
656
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
657 If the list is empty, the response will be:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
658
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
659 S: LST TrID LIST Ser# 0 0
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
660
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
661 Reverse List Prompting
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
662
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
663 The client can change its persistent setting for when to prompt the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
664 user in reaction to an Reverse List change. This is accomplished via
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
665 the GTC command:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
666
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
667 C: GTC TrID [A | N]
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
668 S: GTC TrID Ser# [A | N]
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
669
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
670 The value of the A/N parameter determines how the client should
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
671 behave when it discovers that a user is in its RL, but is not in its
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
672 AL or BL. (Note that this occurs when a user has been added to
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
673 another user's list, but has not been explicitly allowed or
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
674 blocked):
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
675
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
676 A - Prompt the user as to whether the new user in the RL should be
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
677 added to the AL or the BL
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
678 N - Automatically add the new user in the RL to the AL
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
679
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
680 The A/N parameter is not interpreted by the server, merely stored.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
681
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
682 The server will respond with the current setting if the change was
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
683 successful. Otherwise, it will return an error with the matching
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
684 TrID. If the client tries to change the setting to the same value as
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
685 the current setting, the server will respond with an error message.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
686
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
687 The default setting is A when a new user connects to the server for
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
688 the first time.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
689
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
690 Privacy Mode
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
691
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
692 The client can change how the server handles instant messages from
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
693 users via the BLP command:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
694
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
695 C: BLP TrID [AL | BL]
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
696 S: BLP TrID Ser# [AL | BL]
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
697
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
698 The AL/BL parameter determines how the server should treat messages
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
699 (MSG and RNG) from users. If the current setting is AL, messages
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
700 from users who are not in BL will be delivered. If the current
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
701 setting is BL, only messages from people who are in the AL will be
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
702 delivered.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
703
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
704 The server will respond with the current setting if the change was
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
705 successful. Otherwise, it will return an error with the matching
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
706 TrID. If the client tries to change the setting to the same value as
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
707 the current setting, the server will respond with an error message.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
708
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
709
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
710
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
711 Movva and Lai Category - Informational 12
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
712
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
713 MSN Messenger Service 1.0 Protocol Aug - 99
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
714
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
715
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
716 The default setting is AL when a new user connects to the server for
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
717 the first time.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
718
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
719
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
720 7.7 Client States
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
721
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
722 After the client is authenticated and synchronized, the client
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
723 establishes its initial state with the server with the CHG command.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
724 The syntax of the command is:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
725
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
726 C: CHG TrID State
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
727 S: CHG TrID State
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
728
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
729 When the state is changed, the server will echo the settings back to
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
730 client. The state shall not be considered changed until the response
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
731 is received from the server.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
732
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
733 Note that the server can send a state change message to the client
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
734 at any time. If the server changes the state without a request from
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
735 the client, the TrID parameter will be 0.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
736
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
737 States are denoted by a string of three characters. The predefined
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
738 states that the server recognizes are:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
739
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
740 NLN - Make the client Online (after logging in) and send and receive
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
741 notifications about buddies.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
742 FLN - Make the client Offline. If the client is already online,
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
743 offline notifications will be sent to users on the RL. No message
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
744 activity is allowed. In this state, the client can only synchronize
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
745 the lists as described above.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
746 HDN - Make the client Hidden/Invisible. If the client is already
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
747 online, offline notifications will be sent to users on the RL. The
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
748 client will appear as Offline to others but can receive
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
749 online/offline notifications from other users, and can also
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
750 synchronize the lists. Clients cannot receive any instant messages
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
751 in this state.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
752
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
753 All other States are treated as sub-states of NLN (online). The
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
754 other States currently supported are:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
755 BSY - Busy.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
756 IDL - Idle.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
757 BRB - Be Right Back.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
758 AWY - Away From Computer.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
759 PHN - On The Phone.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
760 LUN - Out To Lunch.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
761
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
762 7.8 List Modifications
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
763
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
764 The protocol supports generic commands to add and remove users from
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
765 various lists. This is used by clients to enable "Adding" contacts
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
766 to the list of folks being watched, or for the "Block" and "Allow"
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
767 features that define how users chooses to interact with one another.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
768
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
769
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
770 Movva and Lai Category - Informational 13
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
771
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
772 MSN Messenger Service 1.0 Protocol Aug - 99
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
773
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
774
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
775 However, these generic commands have different semantics based on
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
776 the list being modified. For example, only the server can add or
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
777 remove entries from the Reverse List - since it is an indirect
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
778 consequence of the user having been added to another user's Forward
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
779 List.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
780
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
781 The add and remove commands:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
782
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
783 C: ADD TrID LIST UserHandle CustomUserName
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
784 S: ADD TrID LIST ser# UserHandle CustomUserName
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
785
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
786 C: REM TrID LIST UserHandle
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
787 S: REM TrID LIST ser# UserHandle
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
788
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
789 Valid values for LIST in Client initiated adds and removes are
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
790 FL/AL/BL.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
791
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
792 All client initiated adds and removes will be echoed by the server
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
793 with a new serial number that should be persisted by the client
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
794 along with the list modification. If not successful, an error will
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
795 result.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
796
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
797 The protocol also supports the concept of an ADD or REM that the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
798 client did not initiate. Server generated ADDs and REMs can have
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
799 LIST values of FL/AL/BL/RL. This is common with RL changes, which
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
800 are never initiated by the client, but is an indirect consequence of
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
801 this user having been added to someone's Forward List. If the RL
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
802 change happens while the user is online, it will trigger an
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
803 asynchronous ADD or REM command from the server.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
804
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
805 Asynchronous ADDs and REMs to the FL, AL, and BL can happen when the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
806 server allows an authenticated user to make list changes from
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
807 another environment, such as a web site. In all of these cases, the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
808 server will send the ADD or REM command with the TrID parameter
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
809 equal to 0.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
810
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
811 7.9 Notification Messages
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
812
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
813 The client receives asynchronous notifications whenever a contact on
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
814 the user's Forward List changes its state. The notifications are of
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
815 the form:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
816
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
817 S: NLN Substate UserHandle FriendlyName
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
818 S: ILN TrID Substate UserHandle FriendlyName
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
819 S: FLN UserHandle
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
820
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
821 NLN indicates that a user has come online.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
822 - Substate can be any three-letter code (see "Client States" above).
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
823 - UserHandle and FriendlyName are the handle and names associated
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
824 with the user coming online.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
825
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
826 ILN is similar to the NLN message, and is received from the server
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
827 in response to an CHG or ADD command from the client:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
828
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
829 Movva and Lai Category - Informational 14
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
830
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
831 MSN Messenger Service 1.0 Protocol Aug - 99
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
832
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
833
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
834
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
835 1. Immediately after the client logon and sends its first CHG
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
836 command to the NS. In this case several ILNs may be received -
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
837 one for each Forward List contact that is currently online.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
838 2. After the client sends an "ADD TrID FL UserHandle
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
839 CustomUserName" to the NS. (e.g. ILN for the new contact if that
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
840 contact is currently online)
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
841
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
842 In both cases, TrID in the ILN is the same as the one sent by the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
843 client in the CHG or ADD command.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
844
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
845 FLN means that the specified user is now offline.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
846
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
847 7.10 Connection Close
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
848
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
849 The client issues the following command to logoff from the NS:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
850
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
851 C: OUT
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
852 S: OUT {StatusCode}
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
853
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
854 The server will reply with an OUT to the client before it initiates
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
855 a disconnect, with an optional StatusCode.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
856
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
857 The StatusCode can be "OTH", which indicates that a client with the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
858 same user handle and password has logged on to the server from
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
859 another location, or "SSD" meaning the server is being shut down for
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
860 maintenance.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
861
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
862 The server will drop the connection after sending the OUT.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
863
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
864 7.11 Error Information
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
865
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
866 Error messages from the server are of the format:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
867
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
868 S: eee {TrID} {(error-info) {param...}}
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
869
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
870 eee is a 3 digit decimal number indicating the error code. Error-
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
871 info contains the description of the error in a text string
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
872 localized to the server's locale. The optional parameters provide
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
873 indication of the client command causing the error. TrID is the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
874 Transaction ID of the client command that caused this error. Any
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
875 server generated errors will not have Transaction IDs.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
876
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
877
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
878 ERR_SYNTAX_ERROR 200
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
879 ERR_INVALID_PARAMETER 201
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
880 ERR_INVALID_USER 205
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
881 ERR_FQDN_MISSING 206
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
882 ERR_ALREADY_LOGIN 207
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
883 ERR_INVALID_USERNAME 208
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
884 ERR_INVALID_FRIENDLY_NAME 209
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
885 ERR_LIST_FULL 210
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
886 ERR_ALREADY_THERE 215
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
887
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
888 Movva and Lai Category - Informational 15
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
889
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
890 MSN Messenger Service 1.0 Protocol Aug - 99
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
891
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
892
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
893 ERR_NOT_ON_LIST 216
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
894 ERR_ALREADY_IN_THE_MODE 218
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
895 ERR_ALREADY_IN_OPPOSITE_LIST 219
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
896 ERR_SWITCHBOARD_FAILED 280
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
897 ERR_NOTIFY_XFR_FAILED 281
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
898
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
899 ERR_REQUIRED_FIELDS_MISSING 300
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
900 ERR_NOT_LOGGED_IN 302
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
901 ERR_INTERNAL_SERVER 500
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
902 ERR_DB_SERVER 501
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
903 ERR_FILE_OPERATION 510
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
904 ERR_MEMORY_ALLOC 520
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
905 ERR_SERVER_BUSY 600
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
906 ERR_SERVER_UNAVAILABLE 601
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
907 ERR_PEER_NS_DOWN 602
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
908 ERR_DB_CONNECT 603
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
909 ERR_SERVER_GOING_DOWN 604
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
910 ERR_CREATE_CONNECTION 707
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
911 ERR_BLOCKING_WRITE 711
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
912 ERR_SESSION_OVERLOAD 712
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
913 ERR_USER_TOO_ACTIVE 713
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
914 ERR_TOO_MANY_SESSIONS 714
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
915 ERR_NOT_EXPECTED 715
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
916 ERR_BAD_FRIEND_FILE 717
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
917 ERR_AUTHENTICATION_FAILED 911
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
918 ERR_NOT_ALLOWED_WHEN_OFFLINE 913
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
919 ERR_NOT_ACCEPTING_NEW_USERS 920
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
920
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
921
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
922
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
923 8. Session based Instant Messaging Protocol Details
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
924
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
925 MSN Messenger Service utilizes a lightweight, session-based
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
926 messaging scheme. In order for two clients to exchange instant
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
927 messages, they must first establish a common session via a
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
928 Switchboard Server. They can invite additional clients to join the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
929 established session.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
930
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
931 8.1 Referral to Switchboard
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
932
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
933 This process begins with a "calling" client requesting a referral
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
934 from its Notification Server to a Switchboard Server:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
935
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
936 C: XFR TrID SB
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
937 S: XFR TrID SB Address SP AuthChallengeInfo
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
938
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
939 - SB is the type of referral being requested or granted.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
940 - Address is the DNS name or IP address of a Switchboard Server that
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
941 has been assigned, and that the client should connect to.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
942 - SP is the Security Package being used. In this version of the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
943 protocol it is "CKI" only.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
944 - AuthChallengeInfo is a cookie that the client needs to present to
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
945 the Switchboard server for authentication.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
946
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
947
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
948 Movva and Lai Category - Informational 16
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
949
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
950 MSN Messenger Service 1.0 Protocol Aug - 99
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
951
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
952
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
953 8.2 Switchboard Connections and Authentication
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
954
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
955 After the XFR reply is received, the client makes a TCP/IP
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
956 connection to the Switchboard server using port 1863. Note that a
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
957 lack of version negotiation in the switchboard connection is a
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
958 limitation of the current implementation.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
959
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
960 The client first needs to authenticates with the Switchboard Server:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
961
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
962 C: USR TrID UserHandle AuthResponseInfo
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
963 S: USR TrID OK UserHandle FriendlyName
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
964
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
965 - AuthResponseInfo is the cookie for CKI security package returned
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
966 by the Notification Server in the XFR.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
967 - UserHandle and FriendlyName are the Switchboard's echoes of the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
968 user handle and friendly name of the user.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
969
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
970 8.3 Inviting Users to a Switchboard Session
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
971
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
972 Any user in a Switchboard session can invite other users to join the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
973 session. The CAL command is sent to the Switchboard server for this
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
974 purpose:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
975
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
976 C: CAL TrID UserHandle
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
977 S: CAL TrID Status SessionID
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
978
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
979 The Messenger servers verify that the calling user has permissions
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
980 to contact the called user, with consideration given to the called
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
981 user's privacy settings and its online state. If instant messaging
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
982 with this user is not allowed, the server responds to the calling
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
983 user with an error. If it is allowed, the Switchboard server causes
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
984 a RNG command to be sent to the called client (see below), and
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
985 returns a CAL echo to the calling client. The CAL echo has these
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
986 parameters:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
987
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
988 - Status is a predefined status code - in this implementation it
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
989 must be "RINGING".
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
990 - SessionID is the ASCII representation of a decimal number that
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
991 uniquely identifies this session on the Switchboard Server.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
992
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
993 8.4 Getting Invited to a Switchboard Session
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
994
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
995 The other side of the session establishment is the behavior of the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
996 called client. The called client receives a RNG from its
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
997 Notification Server and is expected to connect to the Switchboard
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
998 Server and respond with an ANS.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
999
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1000 The client receives a RNG from the Notification Server as follows:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1001
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1002 S: RNG SessionID SwitchboardServerAddress SP AuthChallengeInfo
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1003 CallingUserHandle CallingUserFriendlyName
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1004
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1005 - SessionID is a numeric ASCII session ID.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1006
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1007 Movva and Lai Category - Informational 17
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1008
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1009 MSN Messenger Service 1.0 Protocol Aug - 99
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1010
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1011
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1012 - SwitchboardServerAddress is a DNS name or IP Address
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1013 - SP is the security package in use. In this implementation only
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1014 "CKI" is supported.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1015 - AuthChallengeInfo is the cookie to be passed back to the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1016 switchboard to gain entrance to the session.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1017 - CallingUserHandle is the user handle of the caller.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1018 - CallingUserFriendlyName is the custom user name of the caller.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1019
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1020 To join the session, the called client connects to the Switchboard
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1021 Server and carries out the following exchange to join the session:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1022
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1023 C: ANS TrID LocalUserHandle AuthResponseInfo SessionID
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1024 S: IRO TrID Participant# TotalParticipants UserHandle
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1025 FriendlyName
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1026 S: ANS TrID OK
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1027
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1028 The IRO commands relay to the newly joined client roster information
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1029 about the current session. Each IRO command message from the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1030 Switchboard contains one participant in the session.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1031 - Participant# contains the index of the participant described in
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1032 this IRO command (e.g. 1 of N, 2 of N).
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1033 - TotalParticipants contains the total number of participants
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1034 currently in the session.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1035
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1036 The entire session roster will be sent to the new client joining the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1037 session before any JOI or BYE commands described below.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1038
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1039 If no one is in the session when the user joins (an unexpected error
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1040 condition), the server skips directly to "ANS TrID OK" command. All
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1041 the responses from the server related to the issued ANS command will
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1042 contain the same TrID as the original client ANS request.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1043
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1044 8.5 Session Participant Changes
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1045
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1046 When a new user joins a Switchboard session, the server sends the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1047 following command to all participating clients, including the client
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1048 joining the session:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1049
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1050 S: JOI CalleeUserHandle CalleeUserFriendlyName
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1051
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1052 - CalleeUserHandle is the user handle of the new participant.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1053 - CalleeUserFriendlyName is the Custom User Name of the new
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1054 participant.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1055
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1056 If a client's connection with the Switchboard Server is dropped for
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1057 any reason, the server sends the following command to the remaining
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1058 clients in the session:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1059
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1060 S: BYE CalleeUserHandle
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1061
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1062 - CalleeUserHandle is the user handle of the participant that left
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1063 the session.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1064
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1065
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1066 Movva and Lai Category - Informational 18
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1067
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1068 MSN Messenger Service 1.0 Protocol Aug - 99
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1069
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1070
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1071 Privacy Note:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1072 If the client moved a contact to the BL while Switchboard sessions
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1073 are active, it is the client's responsibility to leave any session
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1074 that should now be blocked. The servers only enforce privacy
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1075 permissions when inviting users to a session. Further, the servers
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1076 only enforce privacy permission with respect to the calling user,
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1077 and not the other participants in a Switchboard session. Therefore,
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1078 in a multipoint session, it is possible for a user to participate in
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1079 a session with someone whom he has blocked, if a third party is
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1080 performing the invitation.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1081
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1082 8.6 Leaving a Switchboard Session
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1083
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1084 When a client wishes to disconnect from the session, it sends the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1085 following command and waits for the Switchboard to close the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1086 connection:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1087
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1088 C: OUT
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1089
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1090 8.7 Instant Messages
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1091
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1092 Sending an Instant Message
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1093
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1094 Once a client-to-client session has been established via the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1095 Switchboard Server, sending an Instant Message to the participants
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1096 of the session is done as follows:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1097
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1098 C: MSG TrID [U | N | A] Length\r\nMessage
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1099 S: NAK TrID
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1100 S: ACK TrID
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1101
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1102 U, N, and A correspond to the three delivery acknowledgement modes:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1103 Unacknowledged, Negative-Acknowledgement-Only, and Acknowledgement.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1104 Depending on the value of this parameter, either nothing, NAK, or
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1105 ACK will be sent back by the Switchboard Server to the client.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1106
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1107 For Unacknowledged mode, the Switchboard Server does not respond to
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1108 the sending client with the success or failure of message delivery.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1109
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1110 For Negative-Acknowledgement-Only mode, the Switchboard Server
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1111 responds to the send client only if the message could not be
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1112 delivered to the recipient client.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1113
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1114 Acknowledgement mode is not currently implemented.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1115
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1116 Length is the length of the Message parameter in bytes, whereas
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1117 Message is the actual message as described below.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1118
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1119 8.8 Receiving an Instant Message
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1120
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1121 A client can receive a system-generated message from the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1122 Notification Server, or it can receive an instant message from
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1123
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1124
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1125 Movva and Lai Category - Informational 19
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1126
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1127 MSN Messenger Service 1.0 Protocol Aug - 99
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1128
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1129
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1130 another client via a Switchboard Server. The message is received in
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1131 the following format:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1132
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1133 S: MSG UserHandle FriendlyName Length\r\nMessage
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1134
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1135 The UserHandle and FriendlyName are those of the sending user.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1136 Length is the length of the message in bytes.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1137
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1138 Message is a MIME encoded stream, using a standard MIME header as
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1139 defined by RFC-1521 and RFC-822.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1140
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1141 Message is constructed as:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1142
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1143 MIME-Header\r\nMIME-Header\r\n\r\nMessageData
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1144
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1145 MIME-Header is constructed as:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1146
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1147 string": "string
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1148 (E.g. "Content-Type: text/plain")
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1149
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1150 The Content-Type MIME headers that the current client will use and
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1151 recognize are:
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1152
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1153 "text/plain;charset=UTF-8"
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1154 "text/plain"
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1155
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1156 If "charset=UTF-8" appears at the end of the Content-Type, the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1157 Message Data is UTF-8 encoded.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1158
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1159 Note: The Switchboard Server does not interpret the contents of the
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1160 Message.
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1161
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1162
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1163
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1164 9. Author's Addresses
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1165
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1166 Ramu Movva
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1167 Microsoft Corporation
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1168 One Microsoft Way
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1169 Redmond WA 98052
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1170 ramum@microsoft.com
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1171
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1172 William Lai
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1173 Microsoft Corporation
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1174 One Microsoft Way
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1175 Redmond, WA 98052
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1176 wlai@microsoft.com
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1177
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1178
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1179
8573faeb9298 [gaim-migrate @ 2295]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
diff changeset
1180 Movva and Lai Category - Informational 20