annotate src/protocols/msn/PROTOCOL @ 5310:f4912a833ff6

[gaim-migrate @ 5682] Fixed the bug where typing notifications (actually, any message where an attribute was removed) would strlen() the value just freed. This was causing the message size to be wrong on occasion (and probably very wrong on other platforms), which MSN would then puke about and cause a disconnect from the Switchboard server. committer: Tailor Script <tailor@pidgin.im>
author Christian Hammond <chipx86@chipx86.com>
date Tue, 06 May 2003 04:27:38 +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