Protocol-A.texi 288 KB
 David Byers committed Jan 13, 1996 1 \input texinfo @c -*-texinfo-*-  David Byers committed Jan 07, 1999 2 3 @c @c FIXME: Explain how the garb works with nice and keep-commented  Per Cederqvist committed Apr 19, 2001 4 5 @c FIXME: @i{Example:} is only used in front of some examples. @c FIXME: Make all types clickable in HTML (and info?)  David Byers committed Jan 07, 1999 6 @c  Per Cederqvist committed Apr 30, 2001 7 @c $Id: Protocol-A.texi,v 1.119 2001/04/30 09:11:12 ceder Exp$  David Byers committed Jan 13, 1996 8 9 10 11 @c %**start of header @setfilename protocol-a.info @settitle LysKOM Protocol A @setchapternewpage odd  Per Cederqvist committed Apr 16, 2001 12 @c @afourpaper  David Byers committed Jan 13, 1996 13 @c %**end of header  Per Cederqvist committed Apr 16, 2001 14 15 16 17  @set PROTOEDITION 10.4 @set PROTOVER 10 @set VERSION 1.0.4  David Byers committed Jan 13, 1996 18   Per Cederqvist committed Apr 16, 2001 19 @c @req{login} is used for protocol requests.  Per Cederqvist committed Apr 28, 2001 20   Per Cederqvist committed Apr 16, 2001 21 22 23 24 @macro req {n} @code{\n\} @end macro  Per Cederqvist committed Apr 28, 2001 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 @c @reqlink{login} is used for protocol requests, that shuld be linked. @ifhtml @macro reqlink {n} @code{@ref{\n\}} @end macro @end ifhtml @ifnothtml @macro reqlink {n} @code{\n\} (@pxref{\n\}) @end macro @end ifnothtml @c @reqdlink{login}...@linkhere{} is used for protocol requests, that @c shuld be linked, where the link should occur a few words after the @c request itself. @ifhtml @c HTML version: make the word a link. @macro reqdlink {n} @code{@ref{\n\}}@c @unmacro linkhere @macro linkhere @end macro @end macro @end ifhtml @ifnothtml @ifnottex @c Info version: create linkhere as a macro that contains a reference. @macro reqdlink {n} @code{\n\}@c @unmacro linkhere @macro linkhere (@pxref{\n\}) @end macro @end macro @end ifnottex  Per Cederqvist committed Apr 29, 2001 68   Per Cederqvist committed Apr 28, 2001 69 70 @iftex  Per Cederqvist committed Apr 29, 2001 71 @c TeX version: this produces output similar to the Info version.  Per Cederqvist committed Apr 28, 2001 72   Per Cederqvist committed Apr 29, 2001 73 74 75 76 77 78 @tex \gdef\reqdlink#1{% \code{#1}% \gdef\linkhere{ (\pxref{#1})}% } @end tex  Per Cederqvist committed Apr 28, 2001 79 80 81 @end iftex @end ifnothtml  Per Cederqvist committed Apr 16, 2001 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 @c @aux{mx-allow-filter} is used for aux-item names. @macro aux {n} @code{\n\} @end macro @c @async{async-login} is used for async names. @macro async {n} @code{\n\} @end macro @c @type{Conference} is used for LysKOM types. @macro type {n} @code{\n\} @end macro @c @priv{wheel} is used for privilege bits. @macro priv {n} @code{\n\} @end macro @c @conftype{rd-prot} is used for conference type bits. @macro conftype {n} @code{\n\} @end macro @c @misc{bcc-recpt} is used for misc-info names. @macro misc {n} @code{\n\} @end macro @c @rarg{passwd} is used to reference arguments of requests. This is @c *only* used in the nodes that defines the requests. @macro rarg {n} @code{\n\} @end macro @c @aarg{text-no} is used to reference arguments of asynchronous @c messages. This is *only* used in the nodes that defines the @c relevant asynchronous message. @macro aarg {n} @code{\n\} @end macro @c @errorcode{no-such-text} is used to mark error codes. @macro errorcode {n} @code{\n\} @end macro @c @field{ident-user} is used to mark fields of struct types. @macro field {n} @code{\n\} @end macro  David Byers committed Jan 13, 1996 135 @ifinfo  Per Cederqvist committed Apr 16, 2001 136 137 138 This is the LysKOM Protocol A specification, edition @value{PROTOEDITION}. It specifies version @value{PROTOVER} of the protocol. It corresponds to version @value{VERSION} of lyskomd.  David Byers committed Jan 13, 1996 139   Per Cederqvist committed Sep 05, 2000 140 Copyright @copyright{} 1995-2000 Lysator ACS.  David Byers committed Jan 13, 1996 141 142 143 144  Permission is granted to make and distribute verbatim copies of this specification provided the copyright notice and this permission notice are preserved on all copies.  Per Cederqvist committed Apr 16, 2001 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160  @ignore Permission is granted to process this file through TeX and print the results, provided the printed document carries a copying permission notice identical to this one except for the removal of this paragraph (this paragraph not being relevant to the printed manual). @end ignore Modified versions of this document may be redistributed with the added condition that all modifications not cleared with the LysKOM development group are clearly marked and that the entire modified work be redistributed under the same conditions as the original. Permission is granted to copy and distribute translations of this manual into another language under the same conditions as for modified versions.  David Byers committed Jan 13, 1996 161 162 @end ifinfo  Per Cederqvist committed Apr 16, 2001 163 164 165 166 @c FIXME: What does this do? @iftex @parindent 0pt @font@tensltt=cmsltt10  Per Cederqvist committed Apr 29, 2001 167 @tex  Per Cederqvist committed Apr 16, 2001 168 169 170 171 172 \global\def\rett#1{{\let\t\sltt\tt #1}} \global\def\sltt#1{{\fam\ttfam\tensltt\let\t\rett #1}} \global\let\t\sltt @end tex @end iftex  Per Cederqvist committed Aug 02, 1998 173   David Byers committed Jan 13, 1996 174 175 @titlepage @title{LysKOM Protocol A}  Per Cederqvist committed Apr 16, 2001 176 177 178 @subtitle{Protocol version @value{PROTOVER}} @subtitle{Edition @value{PROTOEDITION}} @subtitle{(lyskomd @value{VERSION})}  David Byers committed Jan 13, 1996 179 180 181 182 @author by the LysKOM Developers @page @vskip 0pt plus 1filll  Per Cederqvist committed Sep 05, 2000 183 Copyright @copyright{} 1995-2000 Lysator ACS  David Byers committed Jan 13, 1996 184 185 186 187 188 189 190 191 192 193 194 195 196 197  Permission is granted to make and distribute verbatim copies of this document provided the copyright notice and this permission notice are preserved on all copies. Modified versions of this document may be redistributed with the added condition that all modifications not cleared with the LysKOM development group are clearly marked and that the entire modified work be redistributed under the same conditions as the original. Permission is granted to copy and distribute translations of this manual into another language under the same conditions as for modified versions. @end titlepage  Per Cederqvist committed Apr 16, 2001 198 199 200 @ifnothtml @contents @end ifnothtml  David Byers committed Jan 13, 1996 201   Per Cederqvist committed Apr 16, 2001 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 @dircategory LysKOM @direntry * Protocol A: (protocol-a). The LysKOM Protocol A specification. @end direntry @ifhtml @html
@end html @end ifhtml @ifnottex  Per Cederqvist committed May 23, 1999 220 @node Top  Per Cederqvist committed Apr 05, 1999 221 @top LysKOM Protocol A  Per Cederqvist committed Apr 04, 1999 222   Per Cederqvist committed Apr 16, 2001 223 224 225 226 227 228 229 This document specifies version @value{PROTOVER} of LysKOM Protocol A. This is edition @value{PROTOEDITION} of the specification. It corresponds to version @value{VERSION} of lyskomd. The most up-to-date version if this document can always be found at @uref{http://www.lysator.liu.se/lyskom/protocol/}. @end ifnottex  David Byers committed Jan 13, 1996 230 231  @menu  Per Cederqvist committed Apr 04, 1999 232 233 234 235 236 237 238 239 240 241 242 243 * Overview:: * Introduction:: * Data Types:: * Protocol Requests:: * Asynchronous Messages:: * Error Codes:: * LysKOM Content Types:: * The User Area:: * Writing Clients:: * Importing and Exporting E-Mail:: * Type Index:: * Request Index::  David Byers committed Jan 13, 1996 244 245 @end menu  Per Cederqvist committed May 23, 1999 246 @node Overview  David Byers committed Jan 13, 1996 247 248 @chapter Overview  Per Cederqvist committed Apr 16, 2001 249 250 251 252 253 @iftex This document specifies version @value{PROTOVER} of LysKOM Protocol A. This is edition @value{PROTOEDITION} of the specification. It corresponds to version @value{VERSION} of lyskomd.  Per Cederqvist committed Apr 16, 2001 254 255 The most up-to-date version if this document can always be found on the web at @uref{http://www.lysator.liu.se/lyskom/protocol/}.  Per Cederqvist committed Apr 16, 2001 256 257 @end iftex  David Byers committed Jan 13, 1996 258 LysKOM is a conferencing system@footnote{Or in modern terms, enabling  David Byers committed Sep 13, 1997 259 260 261 262 263 264 technology for Computer-Supported Cooperative Work (CSCW).}. Similar systems were QZ-KOM and PortaCOM@footnote{Also known as PottaKOM'' and BortaKOM.''}. The LysKOM system is copyrighted by Lysator Academic Computing Society and distributed under conditions of the GNU Public License. LysKOM and its documentation is provided as is'' without warranty of any kind.  David Byers committed Jan 13, 1996 265   Per Cederqvist committed Apr 16, 2001 266 267 Anything described here as unspecified'' is liable to change in future protocol versions.  David Byers committed Jan 13, 1996 268 269  This specification is the work of several people. The main contributors have  David Byers committed Sep 13, 1997 270 been  David Byers committed May 23, 1999 271 272 Per Cederqvist @email{ceder@@lysator.liu.se}, David Byers @email{byers@@lysator.liu.se},  Per Cederqvist committed Apr 23, 2001 273 @ifnottex  David Byers committed Jan 13, 1996 274 Pär  Per Cederqvist committed Apr 23, 2001 275 @end ifnottex  David Byers committed Jan 13, 1996 276 277 278 @iftex P@"ar @end iftex  David Byers committed May 23, 1999 279 280 281 282 Emanuelsson @email{pell@@lysator.liu.se}, Thomas Bellman @email{bellman@@lysator.liu.se}, Lars Aronsson @email{aronsson@@lysator.liu.se}, Linus Tolke @email{linus@@lysator.liu.se} and  Per Cederqvist committed Apr 23, 2001 283 @ifnottex  David Byers committed Jan 13, 1996 284 Kent Engström  Per Cederqvist committed Apr 23, 2001 285 @end ifnottex  David Byers committed Jan 13, 1996 286 287 288 @iftex Kent Eng@-str@"om@penalty-10000 @end iftex  David Byers committed May 23, 1999 289 @email{kent@@lysator.liu.se}.  David Byers committed Jan 13, 1996 290   David Byers committed May 23, 1999 291 292 The LysKOM developers can be reached by email to @email{lyskom@@lysator.liu.se}.  David Byers committed Jan 13, 1996 293   Per Cederqvist committed Apr 04, 1999 294 @menu  Per Cederqvist committed Apr 16, 2001 295 * Document Edition History::  Per Cederqvist committed Apr 04, 1999 296 297 * Protocol Version History:: * Notation::  David Byers committed Jan 13, 1996 298 299 @end menu  Per Cederqvist committed Apr 16, 2001 300 301 @node Document Edition History @section Document Edition History  David Byers committed Jan 13, 1996 302 303  @table @asis  David Byers committed Sep 13, 1997 304   Per Cederqvist committed Apr 16, 2001 305 @item 10.4: 2001-04-07  Per Cederqvist committed Apr 16, 2001 306 Editorial changes needed to publish an online version on the web at  Per Cederqvist committed Apr 16, 2001 307 308 @uref{http://www.lysator.liu.se/lyskom/protocol/}.  Per Cederqvist committed Sep 05, 2000 309 310 @item 10.3: 2000-09-09 Several aux-items can be set on letterboxes and not only conferences. A  Per Cederqvist committed Apr 16, 2001 311 312 313 few can now be set on the server. The @aux{allowed-content-type} and @aux{recommended-conf} aux-items were added. The @aux{mx-allow-filter} and @aux{mx-reject-forward} aux-items are marked  Per Cederqvist committed Sep 05, 2000 314 315 316 obsolete. Text regarding mail import was improved, based on actual experience in writing an email importer. Reserved a range of aux-items for komimportmail. Several minor corrections and clarifications made.  Per Cederqvist committed Sep 05, 2000 317 Distributed with lyskomd 2.0.4.  Per Cederqvist committed Sep 05, 2000 318   Per Cederqvist committed Jul 23, 1999 319 320 321 322 @item 10.2: 1999-07-23 Some typos and other minor errors were fixed. Distributed with lyskomd 2.0.2.  Per Cederqvist committed Jul 11, 1999 323 @item 10.1: 1999-07-12  Per Cederqvist committed Apr 16, 2001 324 Call @req{sub-comment} was incorrectly marked obsolete. This has been  Per Cederqvist committed Jul 11, 1999 325 326 corrected. Regexps are case sensitive. The Info-Type enumeration was introduced in the description of the protocol. (Previous versions of  Per Cederqvist committed Apr 28, 2001 327 328 329 the protocol had broken definitions of @req{add-recipient}, @async{async-new-recipient} and @async{async-sub-recipient}.) Distributed with lyskomd 2.0.1.  David Byers committed Jul 02, 1999 330   Per Cederqvist committed Jun 24, 1999 331 @item 10.0: 1999-06-27  Per Cederqvist committed Apr 04, 1999 332 333 The specification was translated to English and converted to Texinfo by David Byers. Protocol version 10. Distributed with lyskomd 2.0.0.  Per Cederqvist committed Apr 16, 2001 334 Note: this edition incorrectly marked the @req{sub-comment} call as  Per Cederqvist committed Jul 10, 1999 335 336 obsolete, and stated that regexp lookup was case insensitive. Both statements were wrong, and has since been fixed.  Per Cederqvist committed Apr 04, 1999 337 338  @item 9.0: 1996-08-04  Per Cederqvist committed May 23, 1999 339 Protocol version 9. Distributed with lyskomd 1.9.0.  David Byers committed Jun 14, 1996 340   David Byers committed Jan 13, 1996 341 @item 8.0: 1995-11-10  Per Cederqvist committed Apr 04, 1999 342 Protocol version 8. Distributed with lyskomd 1.8.0.  David Byers committed Jan 13, 1996 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366  @item 7.1: 1995-01-08. Protocol and document revision history were added by Per Cederqvist. Outline mode was used to make the document more manageable. This version was distributed with lyskomd 1.7.1. @item 7.0: 1994-12-31. The first specification with a version number. All calls that had been added since 1991-06-25 were documented. Pell and Per Cederqvist did the deed. This version was distributed with lyskomd 1.7.0. @item 1993-05-19. Linus Tolke wrote comments for some calls that were without comments. @item 1992-07-06. Linus Tolke converted the document to ISO 8859-1. @item 1991-08-12. Per Cederqvist started using version control for documentation. @item 1991-06-25. Lars Aronsson documented the protocol that was in use at the time. @end table  Per Cederqvist committed May 23, 1999 367 @node Protocol Version History  Per Cederqvist committed Apr 04, 1999 368 369 370 @section Protocol Version History @subsection Protocol version 10 (first implemented in lyskomd 2.0.0)  David Byers committed Jan 13, 1996 371   David Byers committed Sep 13, 1997 372 @table @asis  Per Cederqvist committed May 23, 1999 373 374 375 376 377 378  @item Error codes The error codes are now documented. Several error codes were changed to more sane values while documenting the new behaviour.  David Byers committed Sep 13, 1997 379 @item New Server Calls  Per Cederqvist committed May 23, 1999 380 381 382  These new calls have status Recommended.  David Byers committed Sep 13, 1997 383 384 385 386 387 388 389 390 391 392 393 394 395 @itemize @bullet @item 85=get-collate-table @item 86=create-text @item 87=create-anonymous-text @item 88=create-conf @item 89=create-person @item 90=get-text-stat @item 91=get-conf-stat @item 92=modify-text-info @item 93=modify-conf-info @item 94=get-info @item 95=modify-system-info @item 96=query-predefined-aux-items  David Byers committed Jun 14, 1998 396 397 398 399 @item 98=query-read-texts @item 99=get-membership @item 100=add-member @item 101=get-members  Per Cederqvist committed Apr 18, 1999 400 401 402 @item 102=set-membership-type @item 103=local-to-global @item 104=map-created-texts  Per Cederqvist committed May 23, 1999 403 404 405 406 407 408 409 @item 106=set-pers-flags @end itemize These new calls have status Experimental. @itemize @bullet @item 97=set-expire  David Byers committed Jan 07, 1999 410 @item 105=set-keep-commented  David Byers committed Sep 13, 1997 411 412 @end itemize  Per Cederqvist committed May 23, 1999 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 @item Name changes @multitable {59=create-anonymous-text} {59=create-anonymous-text-old} @item Old name @tab New name @item 5=create-person @tab 5=create-person-old @item 9=query-read-texts @tab 9=query-read-texts-old @item 10=create-conf @tab 10=create-conf-old @item 13=get-conf-stat-old @tab 13=get-conf-stat-older @item 14=add-member @tab 14=add-member-old @item 26=get-text-stat @tab 26=get-text-stat-old @item 28=create-text @tab 28=create-text-old @item 36=get-info @tab 36=get-info-old @item 46=get-membership @tab 46=get-membership-old @item 48=get-members @tab 48=get-members-old @item 50=get-conf-stat @tab 50=get-conf-stat-old @item 59=create-anonymous-text @tab 59=create-anonymous-text-old @end multitable @item Status change The following calls have change status from Experimental to Recommended.  David Byers committed Sep 13, 1997 435 @itemize @bullet  Per Cederqvist committed May 23, 1999 436 437 438 439 440 @item 58=get-last-text @item 77=set-last-read @item 78=get-uconf-stat @end itemize  Kent Engström committed Jul 07, 1999 441 The following calls have changed status from Recommended or  Per Cederqvist committed May 23, 1999 442 443 444 445 446 447 448 449 450 Experimental to Obsolete. @itemize @bullet @item 5=create-person-old @item 9=query-read-texts-old @item 10=create-conf-old @item 14=add-member-old @item 26=get-text-stat-old @item 28=create-text-old  David Byers committed Sep 13, 1997 451 @item 36=get-info-old  David Byers committed Jun 14, 1998 452 @item 46=get-membership-old  Per Cederqvist committed May 23, 1999 453 @item 47=get-created-texts  David Byers committed Jun 14, 1998 454 @item 48=get-members-old  Per Cederqvist committed May 23, 1999 455 456 @item 50=get-conf-stat-old @item 59=create-anonymous-text-old  David Byers committed Sep 13, 1997 457 458 @end itemize  Per Cederqvist committed May 23, 1999 459 @item New and Modified Structures  David Byers committed Sep 13, 1997 460 @itemize @bullet  Per Cederqvist committed Aug 29, 1998 461 @item Aux-Item  Per Cederqvist committed Aug 29, 1998 462 @item Aux-Item-Input  David Byers committed Sep 13, 1997 463 464 @item Conference @item Info  David Byers committed Jun 14, 1998 465 466 467 @item Member @item Membership @item Membership-Type  Per Cederqvist committed Aug 29, 1998 468 469 @item Misc-Info @item Text-Stat  David Byers committed Sep 13, 1997 470 471 @end itemize  Per Cederqvist committed May 23, 1999 472 473 474 475 476 477 @item Renamed Asynchronous Messages A @samp{async-} prefix has been added to the name of all asynchronous messages. In addition, 0=new-text has been renamed to 0=async-new-text-old, and it is now considered obsolete. Clients should use 80=accept-async to listen to 15=async-new-text instead.  David Byers committed Sep 13, 1997 478 479 @item New Asynchronous Messages @itemize @bullet  Per Cederqvist committed May 23, 1999 480 481 482 483 484 @item 14=async-deleted-text @item 15=async-new-text @item 16=async-new-recipient @item 17=async-sub-recipient @item 18=async-new-membership  David Byers committed Sep 13, 1997 485 @end itemize  David Byers committed Dec 29, 1998 486 487 488  @item Notes @itemize @bullet  Kent Engström committed Jul 07, 1999 489 @item Since protocol version 9 setting a priority of zero for a  David Byers committed Dec 29, 1998 490 491 492 conference was supposed to indicate passive membership in a conference. It was largely up to the client to implement this. True passive memberships have been introduced in this protocol version through the  Kent Engström committed Jul 07, 1999 493 Membership-type extension to the Membership type. In order to maintain  David Byers committed Dec 29, 1998 494 compatibility with clients that interpret priority 0 as passive  Per Cederqvist committed Apr 28, 2001 495 496 membership, the old calls @reqlink{add-member-old} and @reqlink{get-membership-old} perform magic, translating between priorities  David Byers committed Dec 29, 1998 497 498 and membership types. The magic is documented with each call. @end itemize  David Byers committed Sep 13, 1997 499 500 @end table  David Byers committed Dec 29, 1998 501   Per Cederqvist committed Apr 04, 1999 502 @subsection Protocol version 9 (first implemented in lyskomd 1.9.0)  David Byers committed Jun 14, 1996 503 504  @table @asis  Per Cederqvist committed Apr 04, 1999 505 506 @item New functionality @itemize @bullet  Per Cederqvist committed Apr 16, 2001 507 @item The server shall now reply with error @errorcode{not-implemented} when  Per Cederqvist committed Apr 04, 1999 508 509 510 a client attempts to use an unimplemented call. This feature requires that the client uses newline as call terminator. @end itemize  Per Cederqvist committed Jul 07, 1998 511 @item Added Commands  David Byers committed Jun 14, 1996 512 @itemize @bullet  David Byers committed Sep 13, 1997 513 514 515 516 517 518 @item 79=set-info: Can change server information. @item 80=accept-async: Can select asynchronous messages to receive. @item 81=query-async: Can query which messages are being send. @item 82=user-active @item 83=who-is-on-dynamic @item 84=get-static-session-info  David Byers committed Jun 14, 1996 519 @end itemize  Per Cederqvist committed Apr 04, 1999 520 521 @item Changed names @itemize @bullet  Per Cederqvist committed Apr 16, 2001 522 @item @req{change-conference} was previously called @code{pepsi}. The  Per Cederqvist committed Apr 04, 1999 523 524 525 526 name was changed, but not the functionality. @end itemize @item Status change @itemize @bullet  Per Cederqvist committed Apr 16, 2001 527 528 @item 63=@req{who-is-on-ident} is now considered obsolete. @item 64=@req{get-session-info-ident} is now considered obsolete.  Per Cederqvist committed Apr 04, 1999 529 @end itemize  David Byers committed Jun 14, 1996 530 531 @end table  Per Cederqvist committed Apr 04, 1999 532 @subsection Protocol version 8 (first implemented in lyskomd 1.8.0)  David Byers committed Jan 13, 1996 533   Per Cederqvist committed Apr 18, 2001 534 @table @asis  David Byers committed Jan 13, 1996 535 536 537 @item Added Functionality @itemize @bullet @item  Per Cederqvist committed Apr 16, 2001 538 30=add-recipient: Can change @misc{recpt} to @misc{cc-recpt} and vice versa.  David Byers committed Jan 13, 1996 539 @item  Per Cederqvist committed Apr 16, 2001 540 21=set-conf-type: Accepts @type{Conf-Type} and @type{Extended-Conf-Type}.  David Byers committed Jan 13, 1996 541 @item  Per Cederqvist committed Apr 16, 2001 542 10=create-conf: Accepts @type{Conf-Type} and @type{Extended-Conf-Type}.  David Byers committed Jan 13, 1996 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 @end itemize @item New Commands @itemize @bullet @item 77=set-last-read @item 78=get-uconf-stat @end itemize @end table @subsection Protocol version 7 (first implemented in lyskomd 1.7.0) @table @asis @item Added Functionality @itemize @bullet @item 53=send-message: Recipient can be a conference or a person. @end itemize @item New Commands @itemize @bullet @item 74=re-z-lookup @item  Per Cederqvist committed Apr 04, 1999 568 75=get-version-info  David Byers committed Jan 13, 1996 569 @item  Per Cederqvist committed Apr 04, 1999 570 76=lookup-z-name  David Byers committed Jan 13, 1996 571 572 573 574 575 @end itemize @item Other @itemize @bullet @item  Per Cederqvist committed Jul 07, 1998 576 The asynchronous message 1=i-am-off has been removed  David Byers committed Jan 13, 1996 577 578 579 580 581 582 583 584 585 @end itemize @end table @subsection Protocol Version 6 (first implemented in lyskomd 1.4.0) @table @asis @item New Calls @itemize @bullet @item  Per Cederqvist committed Apr 04, 1999 586 67=lookup-person  David Byers committed Jan 13, 1996 587 @item  Per Cederqvist committed Apr 04, 1999 588 68=lookup-conf  David Byers committed Jan 13, 1996 589 @item  Per Cederqvist committed Apr 04, 1999 590 69=set-client-version  David Byers committed Jan 13, 1996 591 @item  Per Cederqvist committed Apr 04, 1999 592 70=get-client-name  David Byers committed Jan 13, 1996 593 @item  Per Cederqvist committed Apr 04, 1999 594 71=get-client-version  David Byers committed Jan 13, 1996 595 @item  Per Cederqvist committed Apr 04, 1999 596 72=mark-text  David Byers committed Jan 13, 1996 597 @item  Per Cederqvist committed Apr 04, 1999 598 73=unmark-text  David Byers committed Jan 13, 1996 599 600 601 602 603 604 605 606 607 608 @end itemize @end table @subsection Protocol Version 5 (first implemented in lyskomd 1.3.0) @table @asis @item New Calls @itemize @bullet @item  Per Cederqvist committed Apr 04, 1999 609 65=re-lookup-person  David Byers committed Jan 13, 1996 610 @item  Per Cederqvist committed Apr 04, 1999 611 66=re-lookup-conf  David Byers committed Jan 13, 1996 612 613 614 615 616 617 618 619 620 621 622 @end itemize @end table @subsection Protocol Version 4 (first implemented in lyskomd 1.1.1) @table @asis @item New Calls @itemize @bullet @item 62=login @item  Per Cederqvist committed Apr 04, 1999 623 63=who-is-on-ident  David Byers committed Jan 13, 1996 624 @item  Per Cederqvist committed Apr 04, 1999 625 64=get-session-info-ident  David Byers committed Jan 13, 1996 626 627 628 629 630 631 632 633 634 @end itemize @end table @subsection Protocol Version 3 (first implemented in lyskomd 1.1.0) @table @asis @item New Calls @itemize @bullet @item  Per Cederqvist committed Apr 04, 1999 635 61=find-previous-text-no  David Byers committed Jan 13, 1996 636 @item  Per Cederqvist committed Apr 04, 1999 637 60=find-next-text-no  David Byers committed Jan 13, 1996 638 @item  Per Cederqvist committed Apr 04, 1999 639 59=create-anonymous-text  David Byers committed Jan 13, 1996 640 @item  Per Cederqvist committed Apr 04, 1999 641 58=get-last-text  David Byers committed Jan 13, 1996 642 643 644 645 646 647 648 649 650 @end itemize @end table @subsection Protocol Version 2 (first implemented in lyskomd 0.30.0) @table @asis @item New Calls @itemize @bullet @item  Per Cederqvist committed Apr 04, 1999 651 57=set-user-area  David Byers committed Jan 13, 1996 652 653 654 655 656 657 658 659 660 661 662 @end itemize @end table @subsection Protocol Version 1 (first implemented in lyskomd 0.29.2) @table @asis @item New Calls All calls from 0--56. @end table  Per Cederqvist committed May 23, 1999 663 @node Notation  David Byers committed Jan 13, 1996 664 665 @section Notation  David Byers committed Sep 13, 1997 666 This specification uses a BNF-like grammar to describe the protocol and  Per Cederqvist committed Apr 04, 1999 667 its data elements.  David Byers committed Jan 13, 1996 668   David Byers committed Sep 13, 1997 669 Data fields have been given names that start with a lower-case letter.  Per Cederqvist committed Aug 29, 1998 670   Per Cederqvist committed Apr 16, 2001 671 672 Fundamental data types have names in all-caps (such as @type{INT32} and @type{ARRAY}).  Per Cederqvist committed Aug 29, 1998 673 674 675  Derived data types have names that start with an upper-case letter. (If the type contains more than one word, all words start with an upper-case  Per Cederqvist committed Apr 16, 2001 676 letter, like this: @type{Text-Stat}.) The operator @code{::=} defines  Per Cederqvist committed Aug 29, 1998 677 678 679 680 the name to its left. Comments start with @code{!} (exclamation mark) and alternatives are separated by a @code{|} (vertical bar.) A @code{;} (semicolon)  David Byers committed Sep 13, 1997 681 682 683 terminates statements in the grammar. In some specifications there are literal strings. There is to be no whitespace before or after literal strings unless there is whitespace in the literal itself.  David Byers committed Jan 13, 1996 684 685   Per Cederqvist committed May 23, 1999 686 @node Introduction  David Byers committed Jan 13, 1996 687 688 689 690 691 692 @chapter Introduction This chapter introduces the concepts used in LysKOM, such as articles, conferences and sessions. @menu  Per Cederqvist committed Apr 04, 1999 693 694 695 696 697 698 699 * Articles:: * Conferences:: * The Misc-Info List:: * The Aux-Item List:: * Security:: * Membership and Reading:: * Client-Server Dialog::  David Byers committed Jan 13, 1996 700 701 702 @end menu  Per Cederqvist committed May 23, 1999 703 @node Articles  David Byers committed Jan 13, 1996 704 705 @section Articles  Per Cederqvist committed Apr 16, 2001 706 An article is represented as a value of the type @type{Text-Stat} and a  David Byers committed Jan 13, 1996 707 string containing the article contents. An article will usually have one  David Byers committed Sep 13, 1997 708 709 or more recipients and may be a comment or footnote to other articles. Each article is kept in the database until it is older than the  Per Cederqvist committed Apr 16, 2001 710 @field{nice} value of each of its recipients and it is not marked by any  David Byers committed Sep 13, 1997 711 user.  David Byers committed Jan 13, 1996 712   Per Cederqvist committed Apr 16, 2001 713 714 715 716 717 Currently there is an array of @type{Misc-Info} included in the @type{Text-Stat}. This array contains information about recipients, senders, comments and footnotes. In the future the information contained in the @type{Misc-Info} array will be integrated into the @type{Text-Stat}.  David Byers committed Jan 13, 1996 718 719 720  Every article has at least one number, the global article number. Global numbers are assigned in ascending order to new articles, and are never  David Byers committed Sep 13, 1997 721 reused. If an article has recipients it will also have a local number  Per Cederqvist committed Jul 07, 1998 722 for each recipient. Local numbers are used in some data structures to  Per Cederqvist committed Aug 08, 1998 723 provide more compact storage and to provide an ordering of articles for  David Byers committed Sep 13, 1997 724 725 726 a particular recipient. Local numbers are assigned in ascending order and are never reused for a particular recipient, though different recipients will have articles with the same local numbers.  David Byers committed Jan 13, 1996 727   David Byers committed Sep 13, 1997 728 Occasionally it is necessary to map between local and global numbers.  Per Cederqvist committed Apr 28, 2001 729 The server call @reqlink{local-to-global} does this.  David Byers committed Jan 13, 1996 730 731 732   Per Cederqvist committed May 23, 1999 733 @node Conferences  David Byers committed Jan 13, 1996 734 735 @section Conferences  David Byers committed Sep 13, 1997 736 Conferences hold articles. They are represented in the protocol as a  Per Cederqvist committed Apr 16, 2001 737 738 739 data type called @type{Conference}. Each conference has a @dfn{creator}, the person who created the conference, and a @dfn{supervisor}, a conference whose members can modify the conference.  David Byers committed Dec 26, 1998 740 If the supervisor is a person, the members of that person's mailbox  David Byers committed Sep 13, 1997 741 are supervisors, which in most cases is only that person. We have also  Per Cederqvist committed Apr 16, 2001 742 introduced a type called @type{UConference} (pronounced micro-conf-stat)  David Byers committed Sep 13, 1997 743 which holds a subset of the information contained in the full  Per Cederqvist committed Apr 16, 2001 744 @type{Conference} type. Use the @type{UConference} type whenever  David Byers committed Sep 13, 1997 745 possible since it places a much smaller load on the LysKOM server.  David Byers committed Jan 13, 1996 746   Per Cederqvist committed Apr 16, 2001 747 748 749 750 Each conference has a type, which is essentially a collection of boolean flags. Currently the flags @conftype{rd-prot}, @conftype{letterbox}, @conftype{secret}, @conftype{original}, @conftype{allow-anonymous} and @conftype{forbid-secret} are defined.  David Byers committed Jan 13, 1996 751   Per Cederqvist committed Apr 16, 2001 752 @table @conftype  David Byers committed Jan 13, 1996 753 754 755 756 757 @item rd-prot The conference is protected from reading by non-members. Persons become members by having one of the existing members or supervisors add him or her to the conference. This restriction is enforced by the server. @item original  David Byers committed Sep 13, 1997 758 759 760 761 Conferences of this type are intended for original articles only. Comments are to be redirected to the super-conference instead. This restriction is currently not enforced by the server; clients must implement this functionality.  David Byers committed Jan 13, 1996 762 @item letterbox  David Byers committed Sep 13, 1997 763 Conferences of this type are connected to persons. Letters to a person  David Byers committed Dec 26, 1998 764 are sent to the mailbox and the name of the mailbox is synchronized  David Byers committed Sep 13, 1997 765 766 with the person name. It is currently not possible to explicitly set or clear this flag on a conference.  David Byers committed Jan 13, 1996 767 768 @item secret Conferences of this type are secret. The server will not divulge any  Kent Engström committed Jul 07, 1999 769 information about the existence of the conference to persons who are not  David Byers committed Dec 26, 1998 770 members or supervisors of the conference. If a mailbox is made secret,  David Byers committed Jan 13, 1996 771 772 that person cannot log in using the person name, but must specify a person number instead.  David Byers committed Sep 13, 1997 773 774 775 @item allow-anonymous Conferences of this type accept anonymous articles. Other conferences will reject anonymous articles.  David Byers committed Dec 26, 1998 776 777 778 @item forbid-secret Conferences of this type do not allow secret members. If a conference is changed to this type, preexisting secret members remain secret.  David Byers committed Jan 13, 1996 779 780 781 782 @end table  Per Cederqvist committed Apr 04, 1999 783 784 785 786 @menu * Persons and Sessions:: @end menu  Per Cederqvist committed May 23, 1999 787 @node Persons and Sessions  David Byers committed Jan 13, 1996 788 789 790 @subsection Persons and Sessions Persons are represented in the protocol by values of the type  Per Cederqvist committed Apr 16, 2001 791 @type{Person}. Associated with persons are statistics, a set of personal  Per Cederqvist committed Apr 28, 2001 792 flags and a set of privileges (@pxref{Security}). Persons are also  David Byers committed Sep 13, 1997 793 associated with a conference that has the same number as the person and  Per Cederqvist committed Apr 16, 2001 794 the @conftype{letterbox} bit set.  David Byers committed Jan 13, 1996 795 796  Connections to the server are represented as values of the type  Per Cederqvist committed Apr 16, 2001 797 798 @type{Static-Session-Info}, @type{Session-Info-Ident} or @type{Session-Info}. Sessions have session number that are unique for  David Byers committed Sep 13, 1997 799 800 801 802 each session in the lifetime of the server execution. A single user can have several sessions running at once. The session is not released until the network connection is closed; a user can log in and out repeatedly in a single session.  David Byers committed Jan 13, 1996 803 804   Per Cederqvist committed May 23, 1999 805 @node The Misc-Info List  David Byers committed Jan 13, 1996 806 807 @section The Misc-Info List  Per Cederqvist committed Apr 16, 2001 808 The @type{Misc-Info} list contains tagged data. The fields are sent in  David Byers committed Sep 13, 1997 809 groups pertaining to a particular type of information: information about  Per Cederqvist committed Oct 06, 1998 810 811 recipient; carbon copy recipient; blank carbon copy recipient; comment to; footnote to; comment in  David Byers committed Sep 13, 1997 812 813 814 and footnote in. The information groups may be sent in any order and there may be any number of groups. Within each group the elements are always sent in the order listed below.  David Byers committed Jan 13, 1996 815   David Byers committed Jun 14, 1996 816 @subsection Recipient  David Byers committed Jan 13, 1996 817   Per Cederqvist committed Apr 16, 2001 818 @table @misc  David Byers committed Jan 13, 1996 819 @item recpt  David Byers committed Sep 13, 1997 820 821 Starts a recipient group. It contains the conference number of a recipient of the article.  David Byers committed Jan 13, 1996 822 @item loc-no  David Byers committed Sep 13, 1997 823 824 Always present within a recipient group. It contains the local text number of the article in the conference specified by the preceding  Per Cederqvist committed Apr 16, 2001 825 @misc{recpt} field.  David Byers committed Jan 13, 1996 826 @item rec-time  David Byers committed Sep 13, 1997 827 828 829 If the recipient is a person, this element is added by the server when the recipient marks the article as read. It contains the time when the text was read.  David Byers committed Jan 13, 1996 830 @item sent-by  David Byers committed Sep 13, 1997 831 832 833 Present when the recipient was added by a person other than the author (after the article was created.) It contains the person number of the person who added the recipient.  David Byers committed Jan 13, 1996 834 @item sent-at  David Byers committed Sep 13, 1997 835 836 Present when the recipient was added after the article was created. It contains the time when the recipient was added.  David Byers committed Jan 13, 1996 837 838 839 @end table  David Byers committed Jun 14, 1996 840 @subsection Carbon Copy (CC) Recipient  David Byers committed Jan 13, 1996 841   David Byers committed Sep 13, 1997 842 843 844 845 The carbon-copy recipient group is identical to the recipient group above. The difference is how new comments to an article with a recipient or carbon-copy recipient are treated. A comment to an article is sent to all recipients, but not to carbon-copy recipients of the original  Per Cederqvist committed Jul 07, 1998 846 article. This difference is enforced by the clients.  David Byers committed Jan 13, 1996 847   Per Cederqvist committed Apr 16, 2001 848 @table @misc  David Byers committed Jan 13, 1996 849 @item cc-recpt  David Byers committed Sep 13, 1997 850 851 Starts a carbon-copy recipient group. It contains the conference number of a carbon-copy recipient of the article.  David Byers committed Jan 13, 1996 852 @item loc-no  David Byers committed Sep 13, 1997 853 854 Always present in a CC recipient group. It contains the local text number of the article in the conference specified by the most recent  Per Cederqvist committed Apr 16, 2001 855 @misc{cc-recpt} field.  David Byers committed Jan 13, 1996 856 @item rec-time  David Byers committed Sep 13, 1997 857 Present after the CC recipient has read the article. It contains the  Per Cederqvist committed Oct 06, 1998 858 859 time when the article was read. Since only persons can read articles this will only be seen if the CC recipient is a person.  David Byers committed Jan 13, 1996 860 861 862 @item sent-by Present when a CC recipient was added by a person other than the author after the article had been created. It contains the person number of the  Per Cederqvist committed Oct 06, 1998 863 person who added the CC recipient.  David Byers committed Jan 13, 1996 864 865 866 867 868 869 @item sent-at Present when a CC recipient was added after the article had been created. It is the time when the CC recipient was added. @end table  Per Cederqvist committed Oct 06, 1998 870 871 872 873 874 @subsection Blank Carbon Copy (BCC) Recipient The blank carbon-copy recipient group is identical to the carbon-copy recipient group above. The difference is the visibility of the information. A carbon-copy recipient group is visible to anyone that is  Kent Engström committed Jul 07, 1999 875 allowed to fetch both the text status of the involved text and the  Per Cederqvist committed Oct 06, 1998 876 conference status of the involved conference. (That is, as long as the  Kent Engström committed Jul 07, 1999 877 conference isn't secret everybody is allowed to see the carbon-copy  Per Cederqvist committed Oct 06, 1998 878 879 recipient group.)  Per Cederqvist committed Sep 06, 2000 880 881 882 883 884 A BCC recipient group is basically only visible to members and supervisors of the recipient. Persons that have the right to become a member of the recipient can also see it, as can the author of the text (unless the recipient is secret to him). This is enforced by the server.  Per Cederqvist committed Oct 06, 1998 885 886  This type of group was introduced in protocol version 10. When  Per Cederqvist committed Apr 28, 2001 887 old-style calls such as @reqlink{get-text-stat-old}  Kent Engström committed Jul 07, 1999 888 889 are used this will be converted to a CC recipient group by the server for the benefit of clients that don't understand this group.  Per Cederqvist committed Oct 06, 1998 890   Per Cederqvist committed Apr 16, 2001 891 @table @misc  Per Cederqvist committed Oct 06, 1998 892 893 894 895 896 897 @item bcc-recpt Starts a blank carbon-copy recipient group. It contains the conference number of a blank carbon-copy recipient of the article. @item loc-no Always present in a BCC recipient group. It contains the local text number of the article in the conference specified by the most recent  Per Cederqvist committed Apr 16, 2001 898 @misc{bcc-recpt} field.  Per Cederqvist committed Oct 06, 1998 899 900 901 902 903 904 905 906 907 908 909 910 911 912 @item rec-time Present after the BCC recipient has read the article. It contains the time when the article was read. Since only persons can read articles this will only be seen if the BCC recipient is a person. @item sent-by Present when a BCC recipient was added by a person other than the author after the article had been created. It contains the person number of the person who added the BCC recipient. @item sent-at Present when a BCC recipient was added after the article had been created. It is the time when the BCC recipient was added. @end table  David Byers committed Jun 14, 1996 913 @subsection Comment To  David Byers committed Jan 13, 1996 914   Per Cederqvist committed Apr 16, 2001 915 @table @misc  David Byers committed Jan 13, 1996 916 917 918 919 920 921 922 923 @item comm-to Always present when the article is a comment to another article. @item sent-by Present when the article was added as a comment by a person other than the author, after the article had been created. It contains the person number of the person who added the article as a comment. @item sent-at Present when the article was added as a comment after the article had  Kent Engström committed Jul 07, 1999 924 been created. It contains the time when it was added as a comment.  David Byers committed Jan 13, 1996 925 926 927 @end table  David Byers committed Jun 14, 1996 928 @subsection Footnote To  David Byers committed Jan 13, 1996 929   Per Cederqvist committed Apr 16, 2001 930 @table @misc  David Byers committed Sep 13, 1997 931 @item footn-to  David Byers committed Jan 13, 1996 932 933 934 Always present when the article is a footnote to another article. @item sent-at Present when the article was added as a footnote after the article had  Kent Engström committed Jul 07, 1999 935 been created. It contains the time when it was added as a footnote.  David Byers committed Jan 13, 1996 936 937 938 @end table  David Byers committed Jun 14, 1996 939 @subsection Comment in  David Byers committed Jan 13, 1996 940   Per Cederqvist committed Apr 16, 2001 941 @table @misc  David Byers committed Jan 13, 1996 942 943 944 945 946 947 @item comm-in Present when there are comments to this article. It contains the article number which is a comment to this article. @end table  David Byers committed Jun 14, 1996 948 @subsection Footnote in  David Byers committed Jan 13, 1996 949   Per Cederqvist committed Apr 16, 2001 950 @table @misc  David Byers committed Sep 13, 1997 951 @item footn-in  David Byers committed Jan 13, 1996 952 953 954 955 956 Present when there are footnotes to this article. It contains the article number which is a footnote to this article. @end table  Per Cederqvist committed May 23, 1999 957 @node The Aux-Item List  Per Cederqvist committed Apr 04, 1999 958 @section The Aux-Item List  David Byers committed Sep 13, 1997 959 960 961 962 963  The aux-item list is used as a generic extension mechanism in the LysKOM server and in protocol A. @menu  Per Cederqvist committed Apr 04, 1999 964 965 966 967 968 * About Aux-Items:: * Predefined Aux-Item Types:: * Client-Specific Aux-Item Types:: * Experimental Aux-Item Types:: * Defining New Aux-Item Types::  David Byers committed Sep 13, 1997 969 970 @end menu  Per Cederqvist committed May 23, 1999 971 @node About Aux-Items  Per Cederqvist committed Apr 04, 1999 972 @subsection About Aux-Items  David Byers committed Sep 13, 1997 973 974 975 976  Aux-items were introduced in protocol version 10 as a mechanism for extending the conference, text and server information structures without changing the protocol. Persons were excluded since nobody could figure  David Byers committed Dec 26, 1998 977 out a case where setting an aux-item on the mailbox wasn't as good as  David Byers committed Sep 13, 1997 978 979 980 setting it on the person (another reason was that I was fed up writing aux-item code by the time they were working on texts and conferences.)  Per Cederqvist committed Apr 28, 2001 981 982 983 The exact structure of an aux item is specified elsewhere (@pxref{LysKOM Data Types}). The important fields here are the @field{aux-no}, @field{tag} and @field{data} fields.  David Byers committed Sep 13, 1997 984   Per Cederqvist committed Apr 28, 2001 985 986 987 988 989 990 The @field{aux-no} field is used to identify an item. The @field{aux-no} together with a text or conference number uniquely identifies a particular aux item. Items are numbered from one and up within each item list. Once assigned, the @field{aux-no} for an item is never changed. New items are guaranteed to be assigned numbers that have never been used before within a particular list.  David Byers committed Sep 13, 1997 991   Per Cederqvist committed Apr 28, 2001 992 993 994 995 The @field{tag} field identifies the type of aux item. It is used by the server and by clients to figure out how to interpret the data field, and by the server to decide if the item needs special treatment.  David Byers committed Sep 13, 1997 996   Per Cederqvist committed Apr 28, 2001 997 998 999 1000 The @field{data} field is a simple string. The meaning of the string is determined by the @field{tag} field, but since it is a string, clients that have no understanding of the contents can successfully parse the item anyway (in contrast to items in the misc-info list.)  David Byers committed Sep 13, 1997 1001 1002 1003   Per Cederqvist committed May 23, 1999 1004 @node Predefined Aux-Item Types  Per Cederqvist committed Apr 04, 1999 1005 @subsection Predefined Aux-Item Types  David Byers committed Sep 13, 1997 1006   David Byers committed May 12, 1999 1007 1008 1009 Predefined Aux-Item types are part of Protocol A, and clients should support all of them. As with other parts of the protocol, changes to these definitions will be made backwards-compatible, if possible.  David Byers committed Sep 13, 1997 1010   David Byers committed May 12, 1999 1011 1012 1013 Creation and deletion of items with a predefined type can cause arbitrarily complex and wonderous behavior in the server. Furthermore, the server may place constraints on the items with regard to content,  Kent Engström committed Jul 07, 1999 1014 flags, who can create them, to what objects they can be attached and  David Byers committed May 12, 1999 1015 1016 so forth. The server may also silently enforce specific values for any field of an item, regardless of what the client requests.  David Byers committed Sep 13, 1997 1017   Per Cederqvist committed Aug 08, 1998 1018 All items with tags in the range 1-9999 and 30000 and up are considered  David Byers committed Sep 13, 1997 1019 1020 predefined. If a client attempts to create an item with a tag in this range, but the server has no idea what that tag means, the server will  David Byers committed May 12, 1999 1021 return an error (illegal-aux-item.)  David Byers committed Sep 13, 1997 1022   Kent Engström committed Oct 20, 1999 1023 1024 Some of the aux-items below (mostly the ones that begin with "mx-") are used by mail importers. For information about supplementary aux-items  Per Cederqvist committed Apr 16, 2001 1025 introduced by @command{komimportmail}, see @ref{komimportmail Aux-Item Types}.  David Byers committed Sep 13, 1997 1026 1027 1028  @table @samp @item content-type [1] (text)  David Byers committed Oct 09, 1999 1029 Specifies the content type of a text. Data is a valid MIME type or one  Per Cederqvist committed Apr 28, 2001 1030 of the special LysKOM types (@pxref{LysKOM Content Types}).  David Byers committed Sep 13, 1997 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040  This item may only be set by the author of a text. The inherit, secret and hide-owner bits are cleared. Only one content-type item can be created per creator. @item fast-reply [2] (text) Data is a string that constitutes a brief comment to the text. This comment should be displayed immediately after the text body.  David Byers committed Dec 26, 1998 1041 1042 An item of this type will never be inherited, can always be deleted, is never anonymous and is never secret.  David Byers committed Sep 13, 1997 1043 1044   1045 @item cross-reference [3] (text, conference, letterbox)  David Byers committed Dec 26, 1998 1046 Data is a cross-reference to something else. The contents consist of a  Per Cederqvist committed Aug 18, 1999 1047 1048 letter, a number, and optionally a space and a descriptive text. The letter must be one  David Byers committed Dec 26, 1998 1049 1050 1051 1052 1053 of T, C or P. T specifies that the cross-reference points to a text; C that it points to a conference; and P that it points to a person. The number is the id of the target of the cross reference. The descriptive text is simly that, a text that describes the cross-reference. For example, "T15 Check this out!" is a cross reference to text 15 with a  Per Cederqvist committed Aug 18, 1999 1054 1055 description that reads "Check this out!", and "T17" is a cross reference without a description.  David Byers committed Sep 13, 1997 1056   David Byers committed Dec 26, 1998 1057 1058 The inherit bit is automatically cleared and the item can always be deleted.  David Byers committed Sep 13, 1997 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091  @item no-comments [4] (text) When this item is set, the author requests that nobody comments the text. This is advisory only; it is still possible to write comments, but clients should advise the user that this is contrary to the author's wishes. Data should be empty. This item may only be set by the author. The secret, hide-creator and inherit bits are automatically cleared. @item personal-comment [5] (text) When this item is set, the author requests only personal comments. This is advisory only; it is still possible to create regular comments, but clients should advise the user that the author prefers a personal comment. Data should be empty. This item may only be set by the author. The secret, hide-creator and inherit bits are automatically cleared. @item request-confirmation [6] (text) The author requests that everyone who reads the text confirms having done so by creating read-confirmation items on the text. Clients should ask users if they wish to confirm having read the text when it is displayed. Data should be empty. The hide-creator, secret and inherit bits are automatically cleared. @item read-confirm [7] (text) This item can be taken as confirmation that the item creator has read  Per Cederqvist committed Aug 08, 1998 1092 1093 1094 the text to which the item is attached. Clients should never ever create this item without an explicit confirmation from the user that the text has indeed been read.  David Byers committed Sep 13, 1997 1095 1096  The hide-creator, secret and inherit bits are automatically cleared.  David Byers committed Dec 26, 1998 1097 Once created an item of this type cannot be deleted.  David Byers committed Sep 13, 1997 1098 1099   1100 @item redirect [8] (conference, letterbox)  David Byers committed Dec 29, 1998 1101   David Byers committed Dec 26, 1998 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 This item indicates that texts should not be sent to the conference, but be directed to some other target instead. Clients should notify users that attempt to send texts to the conference of the redirect and offer to send the text to the target of the redirect instead. A typical use of this item would be a user that does not read LysKOM very often and would like to advise other users to send e-mail instead. Data is PROTOCOL:ADDRESS where PROTOCOL is either "E-mail" or "LysKOM", and ADDRESS is either an e-mail address or a LysKOM conference. Hopefully we'll be able to replace this with a forwarding mechanism later.  David Byers committed Sep 13, 1997 1113 1114  This item can only be set by the conference supervisor or in the case of  David Byers committed Dec 26, 1998 1115 a mailbox, the person attached to the mailbox. The hide-creator and  David Byers committed Sep 13, 1997 1116 1117 1118 secret bits are cleared automatically. Only one redirect can be specified.  David Byers committed Dec 29, 1998 1119   1120 @item x-face [9] (conference, letterbox, server)  David Byers committed Sep 13, 1997 1121