home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_n_r / draft-pfenning-irc-extensions-01.txt < prev    next >
Text File  |  1997-02-17  |  51KB  |  1,850 lines

  1.  
  2. INTERNET-DRAFT                                             Kent Cedola
  3. File: <draft-pfenning-irc-extensions-01.txt>     Microsoft Corporation
  4. 13 February 1997                                       Thomas Pfenning
  5.                                                  Microsoft Corporation
  6.  
  7.  
  8.  
  9.  
  10.         Extensions to the Internet Relay Chat Protocol (IRCX)
  11.  
  12.  
  13.  
  14. 1.  Status of this Memo
  15.  
  16. This document is an Internet-Draft.  Internet-Drafts are working docu-
  17. ments of the Internet Engineering Task Force (IETF),  its  areas,  and
  18. its  working groups.  Note that other groups may also distribute work-
  19. ing documents as Internet-Drafts.
  20.  
  21. Internet-Drafts are draft documents valid for a maximum of six  months
  22. and  may  be updated, replaced, or obsoleted by other documents at any
  23. time.  It is inappropriate to use Internet-Drafts as  reference  mate-
  24. rial or to cite them other than as ``work in progress.''
  25.  
  26. To  learn  the  current status of any Internet-Draft, please check the
  27. ``1id-abstracts.txt'' listing contained in the Internet-Drafts  Shadow
  28. Directories   on   ds.internic.net   (US  East  Coast),  nic.nordu.net
  29. (Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific Rim).
  30.  
  31. The  distribution  of  this memo is unlimited.  It is filed as <draft-
  32. pfenning-irc-extensions-00.txt>, and  expires July 13,  1997.   Please
  33. send comments to the authors.
  34.  
  35.  
  36. 2.  Abstract
  37.  
  38. This document describes extensions to the Internet Relay Chat protocol
  39. defined in RFC 1459[1]. The added functionality includes optional user
  40. authentication for multiple security providers, support for UNICODE[2]
  41. characters, multilayer security, and  a  unified  property  mechanism.
  42. Chat  server  implementations can optionally support channel or server
  43. services with full control over all messages and  events.  These  ser-
  44. vices  communicate  with  the core server over an extended IRC connec-
  45. tion.
  46.  
  47. All changes to the IRC protocol are designed in a  way  that  existing
  48. clients  will continue to work against servers implementing the exten-
  49. sions. Support for the extended protocol can be queried by clients  to
  50. take  advantage  of the added functionality or to conform to the basic
  51. protocol as defined in RFC 1459.
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59. Cedola & Pfenning                                             [Page 1]
  60.  
  61.  
  62.  
  63.  
  64.  
  65. INTERNET-DRAFT                                        13 February 1997
  66.  
  67.  
  68. 3.  Modified UTF7 Encoding of UNICODE characters
  69.  
  70. Allowing UNICODE characters for all user visible strings introduces  a
  71. set  of  compatibility problems if the protocol must be backwards com-
  72. patible. While UTF7 encoding[1] maintains readability for  pure  ASCII
  73. strings,  the BASE64 encoding of extended characters can contain char-
  74. acters which have a special meaning to the parser. In order to provide
  75. backwards  compatibility  with  exisiting IRC clients and to allow new
  76. client to use a subset of UNICODE features on existing IRC  server  we
  77. introduce  an  additional postprocessing step on the result of an UTF7
  78. translation.
  79.  
  80. The quoting character for the postprocessing step is ''. All  mappings
  81. are listed in the table below.
  82.  
  83.  
  84.                 +------------------------------------+
  85.                 |Table 1 - Character Quoting in UTF7 |
  86.                 +----------------+-------------------+
  87.                 |      \b        |  for " " blank    |
  88.                 |      \c        |  for ","          |
  89.                 |      \\        |  for "\"          |
  90.                 |      \r        |  for CR           |
  91.                 |      \n        |  for LF           |
  92.                 +----------------+-------------------+
  93.  
  94. This mechanism is a first proposal and subject to change if we dicover
  95. a more general solution to this problem. Since a similar  problem  was
  96. discovered  in  the context of the IMAP protocol[3] it might be worth-
  97. while to define a new safe encoding of  UNICODE  which  translates  to
  98. alphanumeric  characters only.  It seems, that every special character
  99. has a special meaning in one or the other protocol.
  100.  
  101.  
  102. 4.  Terms and Definitions
  103.  
  104. Throughout the document we will use certain terms which are defined in
  105. this section.
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125. Cedola & Pfenning                                             [Page 2]
  126.  
  127.  
  128.  
  129.  
  130.  
  131. INTERNET-DRAFT                                        13 February 1997
  132.  
  133.  
  134.  +------------------------------------------------------------------+
  135.  |                  Table 2 - Definition of Terms                   |
  136.  +---------------+--------------------------------------------------+
  137.  | Chat Network  |  Chat  Network  is  comprised  of  one  or more  |
  138.  |               |  servers linked together.                        |
  139.  | Server        |  A server is a single machine.                   |
  140.  | Channel       |  A channel (sometimes called a room or  confer-  |
  141.  |               |  ence)  is  conversation  between  one  or more  |
  142.  |               |  users.                                          |
  143.  | Member        |  A member is a user that is part of a conversa-  |
  144.  |               |  tion in a channel.                              |
  145.  | User          |  A  user is a client that makes a connection to  |
  146.  |               |  the server.                                     |
  147.  | Objects       |  An object is  a  general  term  for  channels,  |
  148.  |               |  users,  members  (users  in  a  channel),  and  |
  149.  |               |  servers. The type of object can be  determined  |
  150.  |               |  from the first character of the object's name.  |
  151.  +---------------+--------------------------------------------------+
  152.  
  153.  
  154. 4.1.  User Access Levels
  155.  
  156. Each client falls into one of eight level that define the  ability  to
  157. perform  operations.  Some levels are determined on the context of the
  158. operation to be performed.
  159.  
  160.  
  161.  +------------------------------------------------------------------+
  162.  |              Table 3 - Definition of Client Levels               |
  163.  +---------------------+--------------------------------------------+
  164.  | Chat Administrator  |  A Chat Administrator has full access  to  |
  165.  |                     |  all aspect of the server.                 |
  166.  | Chat Service        |  A  Chat  Service is defined for external  |
  167.  |                     |  application to provide extended services  |
  168.  |                     |  to the chat network.  Also refered to as  |
  169.  |                     |  bots.                                     |
  170.  | A Chat Manager      |  A Chat Manager is a senior sysop  access  |
  171.  |                     |  level that is permitted a wider range of  |
  172.  |                     |  opertions than a Chat Sysop.              |
  173.  | A Chat Sysop        |  A Chat Sysop is a user that  is  ability  |
  174.  |                     |  to oversee and control the chat network.  |
  175.  | A Chat Owner        |  A Chat Owner is a  owner  of  a  channel  |
  176.  |                     |  that  has  the ability to manage channel  |
  177.  |                     |  hosts.                                    |
  178.  | A Chat Host         |  A Chat Host is a  member  of  a  channel  |
  179.  |                     |  with  the  ability  to manage a channel.  |
  180.  |                     |  Also refered to as a channel operator.    |
  181.  | A Chat Member       |  An Chat Member is a member of a channel.  |
  182.  | A Chat User         |  An  Chat  User  is a client connected to  |
  183.  |                     |  the server.                               |
  184.  +---------------------+--------------------------------------------+
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191. Cedola & Pfenning                                             [Page 3]
  192.  
  193.  
  194.  
  195.  
  196.  
  197. INTERNET-DRAFT                                        13 February 1997
  198.  
  199.  
  200. 4.2.  Prefixes
  201.  
  202. Each object contains a unique  prefix  that  identifies  the  type  of
  203. object.  By tagging UNICODE objects with a special prefix a client can
  204. easily decide whether to use standard ASCII or UNICODE when sending  a
  205. message to a user or channel.
  206.  
  207.  
  208.   +-----------------------------------------------------------------+
  209.   |                  Table 4 - Object identifiers                   |
  210.   +---------+-------------------------------------------------------+
  211.   | #       |  The '#' prefix identifies an IRC2 global channel.    |
  212.   | &       |  The '&' prefix identifies an IRC2 local channel.     |
  213.   | +       |  The '+' prefix identifies an IRC2 modeless channel.  |
  214.   | %#      |  The "%#" prefix identifies an extended global chan-  |
  215.   |         |  nel name which consist of a modified  UTF7  encoded  |
  216.   |         |  Unicode string.                                      |
  217.   | %&      |  The  "%&" prefix identifies an extended local chan-  |
  218.   |         |  nel name which consist of a modified  UTF7  encoded  |
  219.   |         |  Unicode string.                                      |
  220.   | %+      |  The  "%+"  prefix  identifies  an extended modeless  |
  221.   |         |  channel name  which  consist  of  a  modified  UTF7  |
  222.   |         |  encoded Unicode string.                              |
  223.   | %       |  The  '%' character identifies the last channel that  |
  224.   |         |  this client specified and is a member of.  The  '%'  |
  225.   |         |  character must be followed by a space or comma.  It  |
  226.   |         |  is used to optimize server processing  of  multiple  |
  227.   |         |  messages from a client to a channel.                 |
  228.   | A to }  |  The  'A'  through  '}' prefix identifies a standard  |
  229.   |         |  IRC2 nick name.                                      |
  230.   | '       |  The ''' prefix identifies  an  extended  IRCX  nick  |
  231.   |         |  name  which consist of a modified UTF7 encoded Uni-  |
  232.   |         |  code string.  The ''' character followed by a space  |
  233.   |         |  or comma represents the local client connection.     |
  234.   | 0       |  The  '0' prefix identifies an internal object iden-  |
  235.   |         |  tifier (OID).  The OID consists of the  '0'  prefix  |
  236.   |         |  and  8  hexadecimal  characters.  The use of OID is  |
  237.   |         |  implementation dependent.                            |
  238.   | $       |  The '$' prefix identifies a server on the  network.  |
  239.   |         |  Just  '$' represents the local server the client is  |
  240.   |         |  connected to.                                        |
  241.   +---------+-------------------------------------------------------+
  242.  
  243.  
  244. 5.  Channels
  245.  
  246. Channels support four mutually exclusive states of visibility; public,
  247. private, hidden and secret.  The visibility of a channel effects which
  248. modes and properties are available to a client.  Each mode/property is
  249. followed  by  a table that consists of a matrix of the channel's visi-
  250. bility state and each type of client.  R/W is for  Read/Write  access,
  251. WO  for  Write Only access, RO for Read Only access, "-" for no access
  252. (can't be queried) and N/A for does not apply. These access rights are
  253. listed for the different adminstrative levels.
  254.  
  255.  
  256.  
  257. Cedola & Pfenning                                             [Page 4]
  258.  
  259.  
  260.  
  261.  
  262.  
  263. INTERNET-DRAFT                                        13 February 1997
  264.  
  265.  
  266. 5.1.  Modes
  267.  
  268. Each channel object contains a number of binary mode settings that can
  269. be queried and optionally updated via the IRC2 MODE  and/or  the  IRCX
  270. MODEX  command.   The  IRC2  mode, if available, is presented with the
  271. +<Letter> format after the name of the mode.
  272.  
  273.  
  274. 5.1.1.  PUBLIC (IRC2 default)
  275.  
  276. The channel is public and all information about  the  channel  (except
  277. for  text messages) can be queried by non-members.  The PUBLIC mode is
  278. mutually exclusive with the PRIVATE, HIDDEN and SECRET modes.
  279.  
  280.  
  281.           Admin  Service  Manager  Sysop  Owner  Host  Member  User
  282.   Public   R/W     R/W      RO      RO     R/W    R/W    RO     RO
  283.   Private  N/A     N/A      N/A     N/A    N/A    N/A    N/A    N/A
  284.   Hidden   N/A     N/A      N/A     N/A    N/A    N/A    N/A    N/A
  285.   Secret   N/A     N/A      N/A     N/A    N/A    N/A    N/A    N/A
  286.  
  287.  
  288. 5.1.2.  PRIVATE (IRC2 +P)
  289.  
  290. The channel is private and only the name and number of members can  be
  291. queried  by  non-members.  The PRIVATE mode is mutually exclusive with
  292. the PUBLIC, HIDDEN and SECRET modes.
  293.  
  294.  
  295.           Admin  Service  Manager  Sysop  Owner  Host  Member  User
  296.   Public   N/A     N/A      N/A     N/A    N/A    N/A    N/A    N/A
  297.   Private  R/W     R/W      RO      RO     R/W    R/W    RO     RO
  298.   Hidden   N/A     N/A      N/A     N/A    N/A    N/A    N/A    N/A
  299.   Secret   N/A     N/A      N/A     N/A    N/A    N/A    N/A    N/A
  300.  
  301.  
  302. 5.1.3.  HIDDEN (IRCX +Q)
  303.  
  304. The channel is hidden and can not by located by  enumeration  queries.
  305. The  HIDDEN  mode  is mutually exclusive with the PUBLIC, PRIVATE, and
  306. SECRET modes.  The purpose of the new HIDDEN channel mode is to permit
  307. channels  that  can  not be found using the standard LIST command, but
  308. properties can be queried if the exact name is known.  Thus  a  HIDDEN
  309. channel is the same as a PUBLIC channel except that it can not be enu-
  310. merated by using the LIST command.
  311.  
  312.  
  313.           Admin  Service  Manager  Sysop  Owner  Host  Member  User
  314.   Public   N/A     N/A      N/A     N/A    N/A    N/A    N/A    N/A
  315.   Private  N/A     N/A      N/A     N/A    N/A    N/A    N/A    N/A
  316.   Hidden   R/W     R/W      RO      RO     R/W    R/W    RO     RO
  317.   Secret   N/A     N/A      N/A     N/A    N/A    N/A    N/A    N/A
  318.  
  319.  
  320.  
  321.  
  322.  
  323. Cedola & Pfenning                                             [Page 5]
  324.  
  325.  
  326.  
  327.  
  328.  
  329. INTERNET-DRAFT                                        13 February 1997
  330.  
  331.  
  332. 5.1.4.  SECRET (IRC2 +S)
  333.  
  334. The channel is secret and can not by located by any query. The  SECRET
  335. mode is mutually exclusive with the PUBLIC, PRIVATE, and HIDDEN modes.
  336.  
  337.  
  338.           Admin  Service  Manager  Sysop  Owner  Host  Member  User
  339.   Public   N/A     N/A      N/A     N/A    N/A    N/A    N/A    N/A
  340.   Private  N/A     N/A      N/A     N/A    N/A    N/A    N/A    N/A
  341.   Hidden   N/A     N/A      N/A     N/A    N/A    N/A    N/A    N/A
  342.   Secret   R/W     R/W      RO      RO     R/W    R/W    RO     RO
  343.  
  344.  
  345. 5.1.5.  MODERATED (IRC2 +M) The MODERATED  mode  changes  the  default
  346. speaker setting for new members to off.
  347.  
  348.  
  349.           Admin  Service  Manager  Sysop  Owner  Host  Member  User
  350.   Public   R/W     R/W      RO      RO     R/W    R/W    RO     RO
  351.   Private  R/W     R/W      RO      RO     R/W    R/W    RO     -
  352.   Hidden   R/W     R/W      RO      RO     R/W    R/W    RO     RO
  353.   Secret   R/W     R/W      RO      RO     R/W    R/W    RO     -
  354.  
  355.  
  356. 5.1.6.  NOEXTERN (IRC2 +N)
  357.  
  358. The NOEXTERN mode blocks messages from non-members to the channel.
  359.  
  360.  
  361.           Admin  Service  Manager  Sysop  Owner  Host  Member  User
  362.   Public   R/W     R/W      RO      RO     R/W    R/W    RO     RO
  363.   Private  R/W     R/W      RO      RO     R/W    R/W    RO     -
  364.   Hidden   R/W     R/W      RO      RO     R/W    R/W    RO     RO
  365.   Secret   R/W     R/W      RO      RO     R/W    R/W    RO     -
  366.  
  367.  
  368. 5.1.7.  TOPICOP (IRC2 +T)
  369.  
  370. The  TOPICOP mode only permits channel hosts the ability to change the
  371. channel topic property.
  372.  
  373.  
  374.           Admin  Service  Manager  Sysop  Owner  Host  Member  User
  375.   Public   R/W     R/W      RO      RO     R/W    R/W    RO     RO
  376.   Private  R/W     R/W      RO      RO     R/W    R/W    RO     -
  377.   Hidden   R/W     R/W      RO      RO     R/W    R/W    RO     RO
  378.   Secret   R/W     R/W      RO      RO     R/W    R/W    RO     -
  379.  
  380.  
  381. 5.1.8.  INVITE (IRC2 +I)
  382.  
  383. The INVITE mode only permits invited users to enter the channel.
  384.  
  385.  
  386.  
  387.  
  388.  
  389. Cedola & Pfenning                                             [Page 6]
  390.  
  391.  
  392.  
  393.  
  394.  
  395. INTERNET-DRAFT                                        13 February 1997
  396.  
  397.  
  398.           Admin  Service  Manager  Sysop  Owner  Host  Member  User
  399.   Public   R/W     R/W      RO      RO     R/W    R/W    RO     RO
  400.   Private  R/W     R/W      RO      RO     R/W    R/W    RO     -
  401.   Hidden   R/W     R/W      RO      RO     R/W    R/W    RO     RO
  402.   Secret   R/W     R/W      RO      RO     R/W    R/W    RO     -
  403.  
  404.  
  405. 5.1.9.  KNOCK (IRCX +J)
  406.  
  407. The KNOCK extended mode causes a KNOCK message to be sent to all chan-
  408. nel  hosts  if an uninvited user attempts to join an invite only chan-
  409. nel.  Useful for clients that wish to use custom access control  of  a
  410. channel  and  will  automatically issue an invite to a select group of
  411. users.
  412.  
  413.  
  414.           Admin  Service  Manager  Sysop  Owner  Host  Member  User
  415.   Public   R/W     R/W      RO      RO     R/W    RO     RO     RO
  416.   Private  R/W     R/W      RO      RO     R/W    RO     RO     -
  417.   Hidden   R/W     R/W      RO      RO     R/W    RO     RO     RO
  418.   Secret   R/W     R/W      RO      RO     R/W    RO     RO     -
  419.  
  420.  
  421. 5.1.10.  NODATA (IRCX +D) The NODATA channel mode  will  disable  CTCP
  422. messages from being sent to a channel.  A CTCP message is defined as a
  423. message that contains Control-A as the first character of the  message
  424. text.
  425.  
  426.  
  427.           Admin  Service  Manager  Sysop  Owner  Host  Member  User
  428.   Public   R/W     R/W      RO      RO     R/W    RO     RO     RO
  429.   Private  R/W     R/W      RO      RO     R/W    RO     RO     -
  430.   Hidden   R/W     R/W      RO      RO     R/W    RO     RO     RO
  431.   Secret   R/W     R/W      RO      RO     R/W    RO     RO     -
  432.  
  433.  
  434. 5.1.11.  NOFORMAT (IRCX +F) The NOFORMAT channel mode is an indication
  435. to the client application not to format text received from  the  chan-
  436. nel.  Normally clients will prefix text messages with "x said y" or "x
  437. whispers to y and x", if the NOFORMAT mode is set then  just  the  raw
  438. text  should  be  displayed  moving to the next line at the end of the
  439. message.  The client should not echo text sent by the client.  This is
  440. to permit custom applications to control the formatting to clients.
  441.  
  442.  
  443.           Admin  Service  Manager  Sysop  Owner  Host  Member  User
  444.   Public   R/W     R/W      RO      RO     R/W    RO     RO     RO
  445.   Private  R/W     R/W      RO      RO     R/W    RO     RO     -
  446.   Hidden   R/W     R/W      RO      RO     R/W    RO     RO     RO
  447.   Secret   R/W     R/W      RO      RO     R/W    RO     RO     -
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455. Cedola & Pfenning                                             [Page 7]
  456.  
  457.  
  458.  
  459.  
  460.  
  461. INTERNET-DRAFT                                        13 February 1997
  462.  
  463.  
  464. 5.1.12.  NOWHISPER (IRCX +W)
  465.  
  466. The  NOWHISPER  channel  mode will disable WHISPER messages from being
  467. sent to a channel.
  468.  
  469.  
  470.           Admin  Service  Manager  Sysop  Owner  Host  Member  User
  471.   Public   R/W     R/W      RO      RO     R/W    RO     RO     RO
  472.   Private  R/W     R/W      RO      RO     R/W    RO     RO     -
  473.   Hidden   R/W     R/W      RO      RO     R/W    RO     RO     RO
  474.   Secret   R/W     R/W      RO      RO     R/W    RO     RO     -
  475.  
  476.  
  477. 5.1.13.  BROADCAST (IRCX +E)
  478.  
  479. The BROADCAST channel mode is a special mode used  for  channels  that
  480. will  send  information one way from channel hosts to channel members.
  481. Each member in a channel  will  only  see  themself  in  the  channel.
  482. Client  applications  should expect messages from host members that do
  483. not appear in the channel member list via the WHO or NAMES commands.
  484.  
  485.  
  486.           Admin  Service  Manager  Sysop  Owner  Host  Member  User
  487.   Public   R/W     R/W      RO      RO     RO     RO     RO     RO
  488.   Private  R/W     R/W      RO      RO     RO     RO     RO     -
  489.   Hidden   R/W     R/W      RO      RO     RO     RO     RO     RO
  490.   Secret   R/W     R/W      RO      RO     RO     RO     RO     -
  491.  
  492.  
  493. 5.1.14.  EXTERNAL (IRCX +X)
  494.  
  495. The EXTERNAL channel  mode  restricts  the  visibility  and  messaging
  496. within  a  channel.  Members will only see themself and other hosts in
  497. the channel.  Any message sent by a member will only  be  received  by
  498. the  host members.  Hosts will see all members in the channel and mes-
  499. sages from a host are seen by all members.
  500.  
  501.  
  502.           Admin  Service  Manager  Sysop  Owner  Host  Member  User
  503.   Public   R/W     R/W      RO      RO     R/W    RO     RO     RO
  504.   Private  R/W     R/W      RO      RO     R/W    RO     RO     -
  505.   Hidden   R/W     R/W      RO      RO     R/W    RO     RO     RO
  506.   Secret   R/W     R/W      RO      RO     R/W    RO     RO     -
  507.  
  508.  
  509. 5.1.15.  REGISTERED (IRCX +R)
  510.  
  511. The channel has been registered via a chat service.
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521. Cedola & Pfenning                                             [Page 8]
  522.  
  523.  
  524.  
  525.  
  526.  
  527. INTERNET-DRAFT                                        13 February 1997
  528.  
  529.  
  530.           Admin  Service  Manager  Sysop  Owner  Host  Member  User
  531.   Public   R/W     R/W      RO      RO     RO     RO     RO     RO
  532.   Private  R/W     R/W      RO      RO     RO     RO     RO     -
  533.   Hidden   R/W     R/W      RO      RO     RO     RO     RO     RO
  534.   Secret   R/W     R/W      RO      RO     RO     RO     RO     -
  535.  
  536.  
  537. 5.1.16.  SERVICE (IRCX +Z)
  538.  
  539. A service is monitoring/controlling the channel.  This is  an  indica-
  540. tion  to  the client that message traffic sent to the channel is being
  541. monitored by a Chat Service which does not appear as a member  in  the
  542. channel.  The SERVICE flag is only set by the Chat Server.
  543.  
  544.  
  545.           Admin  Service  Manager  Sysop  Owner  Host  Member  User
  546.   Public   RO      RO       RO      RO     RO     RO     RO     RO
  547.   Private  RO      RO       RO      RO     RO     RO     RO     -
  548.   Hidden   RO      RO       RO      RO     RO     RO     RO     RO
  549.   Secret   RO      RO       RO      RO     RO     RO     RO     -
  550.  
  551.  
  552. 5.1.17.  AUTHONLY
  553.  
  554. The  AUTHONLY  channel  mode  restricts  access to the channel to only
  555. users that have been authenticated by the server.
  556.  
  557.  
  558.           Admin  Service  Manager  Sysop  Owner  Host  Member  User
  559.   Public   R/W     R/W      RO      RO     R/W    RO     RO     RO
  560.   Private  R/W     R/W      RO      RO     R/W    RO     RO     -
  561.   Hidden   R/W     R/W      RO      RO     R/W    RO     RO     RO
  562.   Secret   R/W     R/W      RO      RO     R/W    RO     RO     -
  563.  
  564.  
  565. 5.1.18.  CLONEABLE
  566.  
  567. The CLONEABLE channel mode defines a  channel  that  will  create  new
  568. clone channels if the parent channel is full.  A clone channel is cre-
  569. ated with the same name as the parent cloneable channel with a numeric
  570. suffix  starting  at  1,  ranging  to  99.  It is not valid to set the
  571. CLONEABLE channel mode of a channel that ends with a  numeric  charac-
  572. ter.   When  a clone channel is created, any channel that has the same
  573. name will be removed.  This is to prevent channel take over of a clone
  574. channel.
  575.  
  576.  
  577.           Admin  Service  Manager  Sysop  Owner  Host  Member  User
  578.   Public   R/W     R/W      RO      RO     RO     RO     RO     RO
  579.   Private  R/W     R/W      RO      RO     RO     RO     RO     -
  580.   Hidden   R/W     R/W      RO      RO     RO     RO     RO     RO
  581.   Secret   R/W     R/W      RO      RO     RO     RO     RO     -
  582.  
  583.  
  584.  
  585.  
  586.  
  587. Cedola & Pfenning                                             [Page 9]
  588.  
  589.  
  590.  
  591.  
  592.  
  593. INTERNET-DRAFT                                        13 February 1997
  594.  
  595.  
  596. 5.1.19.  CLONE
  597.  
  598. The  CLONE  channel  mode  defines  a  channel that was created by the
  599. server when a parent CLONEABLE channel was full.
  600.  
  601.  
  602.           Admin  Service  Manager  Sysop  Owner  Host  Member  User
  603.   Public   R/W     R/W      RO      RO     (1)    RO     RO     RO
  604.   Private  R/W     R/W      RO      RO     (1)    RO     RO     -
  605.   Hidden   R/W     R/W      RO      RO     (1)    RO     RO     RO
  606.   Secret   R/W     R/W      RO      RO     (1)    RO     RO     -
  607.  
  608.  
  609. 1. The CLONE channel mode can only be set on a channel  that  has  the
  610. same  base  name  as a CLONEABLE channel the user is also an owner of.
  611. This is to permit a channel owner to pre-create clone channels.
  612.  
  613. 5.2.  Properties
  614.  
  615. Each channel object contains  a  number  of  properties  that  can  be
  616. queried and optionally updated via the IRCX PROP command.
  617.  
  618. 5.2.1.  OID (R/O)
  619.  
  620. The  OID  channel  property  is the internal object identifier for the
  621. channel.  The OID can be optionally used in place of the  full  string
  622. name  of  a channel as a short cut.  If the OID is "0", then this fea-
  623. ture is not supported on the server.
  624.  
  625.  
  626.           Admin  Service  Manager  Sysop  Owner  Host  Member  User
  627.   Public   RO      RO       RO      RO     RO     RO     RO     RO
  628.   Private  RO      RO       RO      RO     RO     RO     RO     -
  629.   Hidden   RO      RO       RO      RO     RO     RO     RO     RO
  630.   Secret   RO      RO       RO      RO     RO     RO     RO     -
  631.  
  632.  
  633. 5.2.2.  NAME (R/O)
  634.  
  635. The NAME channel property is the name of the channel.
  636.  
  637.  
  638.           Admin  Service  Manager  Sysop  Owner  Host  Member  User
  639.   Public   RO      RO       RO      RO     RO     RO     RO     RO
  640.   Private  RO      RO       RO      RO     RO     RO     RO     -
  641.   Hidden   RO      RO       RO      RO     RO     RO     RO     RO
  642.   Secret   RO      RO       RO      RO     RO     RO     RO     -
  643.  
  644.  
  645. 5.2.3.  KEYWORD The KEYWORD channel property is the  keyword  required
  646. to enter the channel.
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653. Cedola & Pfenning                                            [Page 10]
  654.  
  655.  
  656.  
  657.  
  658.  
  659. INTERNET-DRAFT                                        13 February 1997
  660.  
  661.  
  662.           Admin  Service  Manager  Sysop  Owner  Host  Member  User
  663.   Public   R/W     R/W      -       -      R/W    R/W    RO     RO
  664.   Private  R/W     R/W      -       -      R/W    R/W    RO     -
  665.   Hidden   R/W     R/W      -       -      R/W    R/W    RO     RO
  666.   Secret   R/W     R/W      -       -      R/W    R/W    RO     -
  667.  
  668.  
  669. 5.2.4.  HOSTKEY
  670.  
  671. The  HOSTKEY  channel  property  is the host keyword that will provide
  672. host (channel op) access when entering the channel.
  673.  
  674.  
  675.           Admin  Service  Manager  Sysop  Owner  Host  Member  User
  676.   Public   R/W     R/W      WO      -      R/W    RO     -      -
  677.   Private  R/W     R/W      WO      -      R/W    RO     -      -
  678.   Hidden   R/W     R/W      WO      -      R/W    RO     -      -
  679.   Secret   R/W     R/W      WO      -      R/W    RO     -      -
  680.  
  681.  
  682. 5.2.5.  OWNERKEY
  683.  
  684. The OWNERKEY channel property is the owner keyword that  will  provide
  685. owner access when entering the channel.
  686.  
  687.  
  688.           Admin  Service  Manager  Sysop  Owner  Host  Member  User
  689.   Public   R/W     R/W      -       -      R/W    -      -      -
  690.   Private  R/W     R/W      -       -      R/W    -      -      -
  691.   Hidden   R/W     R/W      -       -      R/W    -      -      -
  692.   Secret   R/W     R/W      -       -      R/W    -      -      -
  693.  
  694.  
  695. 5.2.6.  TOPIC
  696.  
  697. The TOPIC channel property is the current topic of the channel.
  698.  
  699.  
  700.           Admin  Service  Manager  Sysop  Owner  Host  Member  User
  701.   Public   R/W     R/W      RO      RO     R/W    R/W    (1)    RO
  702.   Private  R/W     R/W      RO      RO     R/W    R/W    (1)    -
  703.   Hidden   R/W     R/W      RO      RO     R/W    R/W    (1)    RO
  704.   Secret   R/W     R/W      RO      RO     R/W    R/W    (1)    -
  705.  
  706. 1.  The TOPIC property can only be set by members if the TOPICOP chan-
  707. nel mode is not set.
  708.  
  709. 5.2.7.  PICS
  710.  
  711. The PICS channel property is the current PICS rating of  the  channel.
  712. Chat  clients that are PICS enabled can use this property to determine
  713. if the channel is appropriate for the user.
  714.  .LP
  715.  
  716.  
  717.  
  718.  
  719. Cedola & Pfenning                                            [Page 11]
  720.  
  721.  
  722.  
  723.  
  724.  
  725. INTERNET-DRAFT                                        13 February 1997
  726.  
  727.  
  728.           Admin  Service  Manager  Sysop  Owner  Host  Member  User
  729.   Public   R/W     R/W      R/W     RO     RO     RO     RO     RO
  730.   Private  R/W     R/W      R/W     RO     RO     RO     RO     RO
  731.   Hidden   R/W     R/W      R/W     RO     RO     RO     RO     RO
  732.   Secret   R/W     R/W      R/W     RO     RO     RO     RO     -
  733.  
  734.  
  735.  
  736. 6.  IRCX Server Messages
  737.  
  738. This section summarizes all extended messages which can be send  unso-
  739. licited from the server.
  740.  
  741.  
  742. 6.1.  CLONE (new IRCX message)
  743.  
  744. Informs  the  hosts  in  a  CLONEABLE channel of the creation of a new
  745. CLONE channel.
  746.  
  747. Syntax: CLONE <channel-name> <oid>
  748.  
  749. 6.1.1.  Parameters
  750.  
  751. <channel-name> The name of the created CLONE channel.
  752.  
  753. <oid> The object identifier for this new CLONE channel.  The value  is
  754. implementation dependent and must be 0 if not supported.
  755.  
  756. 6.1.2.  Remarks
  757.  
  758. The  CLONE  message can be sent at anytime to the hosts of a CLONEABLE
  759. channel of the creation of a CLONE channel.  Normally used  by  custom
  760. application to automatically join the new CLONE channel.
  761.  
  762.  
  763. 6.1.3.  Example
  764.  
  765.  
  766.      Server: CLONE #MyChat1 034F8FF32
  767.  
  768.  
  769.  
  770. 6.2.  EVENT (new IRCX message)
  771.  
  772. Notification to the client of an event.
  773.  
  774. Syntax 1: EVENT CHANNEL <time-stamp> CREATE <user>
  775.  
  776. Syntax 2: EVENT CHANNEL <time-stamp> DELETE <user>
  777.  
  778. Syntax 3: EVENT CHANNEL <time-stamp> KILL <user> :<reason>
  779.  
  780. Syntax 4: EVENT MEMBER <time-stamp> JOIN <user>
  781.  
  782.  
  783.  
  784.  
  785. Cedola & Pfenning                                            [Page 12]
  786.  
  787.  
  788.  
  789.  
  790.  
  791. INTERNET-DRAFT                                        13 February 1997
  792.  
  793.  
  794. Syntax 5: EVENT MEMBER <time-stamp> PART <user> :<reason>
  795.  
  796. Syntax 6: EVENT MEMBER <time-stamp> KICK <user> :<reason>
  797.  
  798. Syntax 7: EVENT USER <time-stamp> REGISTER <user> <local-ip/port>
  799.                      <remote-ip/port> <access>
  800.  
  801. Syntax 8: EVENT USER <time-stamp> QUIT <user> :<reason>
  802.  
  803. Syntax 9: EVENT USER <time-stamp> KILL <user> :<reason>
  804.  
  805. 6.2.1.  Parameters
  806.  
  807. <time-stamp>  The number of seconds elapsed since midnight (00:00:00),
  808. January 1, 1970, coordinated universal time when the event occured  on
  809. the server.
  810.  
  811. <user>    The    user's    nick,    userid,   host   and   server   in
  812. nick!user@host$server format that triggered the event.
  813.  
  814. <reason>  {same as for REDIRECT}
  815.  
  816. <local-ip:port> The local server IP address and  port  number  of  the
  817. <user>.
  818.  
  819. <remote-ip:port>  The  remote client IP address and port number of the
  820. <user>.
  821.  
  822. 6.2.2.  Remarks
  823.  
  824. The EVENT command is to use to define the events that  the  client  is
  825. interested in.
  826.  
  827.  
  828.  
  829. 6.3.  REDIRECT (new IRCX message)
  830.  
  831. Informs the client to connect to another server.
  832.  
  833. Syntax: REDIRECT <server-list> :<reason>
  834.  
  835. 6.3.1.  Parameters
  836.  
  837. <server-list>  The  server list is a comma seperated list of host:port
  838. pairs.  That can be specified either as a FQDN or by the IP address in
  839. quuad dotted notation.
  840.  
  841. <reason>  The  redirect  reason  is an implementation dependent string
  842. which can optionally be displayed at the client. If the string  starts
  843. with  a '%' character is is handled as modified UTF7 according to sec-
  844. tion 4.
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851. Cedola & Pfenning                                            [Page 13]
  852.  
  853.  
  854.  
  855.  
  856.  
  857. INTERNET-DRAFT                                        13 February 1997
  858.  
  859.  
  860. 6.3.2.  Remarks
  861.  
  862. The REDIRECT message can be sent to the client at anytime  to  request
  863. the  client to disconnect and reconnect to another server specified in
  864. the list.   The REDIRECT message is generally sent when a server is to
  865. be shutdown.
  866.  
  867.  
  868. 6.3.3.  Example
  869.  
  870.  
  871.      Server: REDIRECT chat.corp.net:6667,134.9.3.3:6667 :Server full.
  872.  
  873.  
  874.  
  875. 7.  IRCX Client Messages
  876.  
  877. All  messages sent from the client to an IRCX server can optionally be
  878. tagged with a message prefix. This implies that the client  has  veri-
  879. fied,  that the server it is talking to supports the extended IRC pro-
  880. tocol. A tag is a string enclosed in square brackets. Only the charac-
  881. ters  [a-z,A-Z,0-9] are valid in a tag. The string can contain a mini-
  882. mum of 1 and a maxminum of  16  charcters.  An  empty  string  is  not
  883. allowed.
  884.  
  885. All  replies  from  the server to a client message prefixed with a tag
  886. will have the same tag prepended. This feature allows the matching  of
  887. replies  to multiple outstandig messages and easy dispatch of messages
  888. to multithreaded clients.  The tag will not be sent to other  clients.
  889. Tagged  data  messages can be used for indicating a certain payload to
  890. other clients.
  891.  
  892.  
  893. Syntax [alphanumeric string] <IRCX-message>
  894.  
  895. Parameters
  896.  
  897. <IRCX-message> This argument is any valid client message according  to
  898. the IRC or IRCX specification.
  899.  
  900.  
  901. 7.1.  AUTH Command (new IRCX command)
  902.  
  903. Authenticate the client using an SASL[4] authentication mechanism. The
  904. details of the authentication mechanisms is  specified  in  a  profile
  905. that should be registered with the IANA.
  906.  
  907. Syntax 1: AUTH <name> <seq>: [<parameter>]
  908.  
  909. Syntax 2 (from server to client only): AUTH <name> OK <ident> <uid>
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917. Cedola & Pfenning                                            [Page 14]
  918.  
  919.  
  920.  
  921.  
  922.  
  923. INTERNET-DRAFT                                        13 February 1997
  924.  
  925.  
  926. 7.1.1.  Parameters
  927.  
  928. <name>  The name of the SASL mechanism to use for authentication.  The
  929. specific SASL mechanisms supported are implementation dependent.
  930.  
  931. <seq>  The sequence is a value of 'I' or 'S'. The 'I' value is  speci-
  932. fied  for  the  initial  AUTH message and 'S' for all subsequence AUTH
  933. messages.  If the client specifies '*' for  the  sequence  the  server
  934. will  abort  the authentication sequence and return IRCERR_AUTHENTICA-
  935. TIONFAILED.
  936.  
  937. <parameter>  This is optional data send as an argument with  the  AUTH
  938. messages.  The content is depends on the autentication mechanism being
  939. used.
  940.  
  941. <ident>  The ident is the userid@domain of  the  authenticated  client
  942. account.  It  is  returned on the final response from the server (Syn-
  943. tax2) when authentication is successful.
  944.  
  945. <uid>  The uid is the  internal  object  identifier  assigned  to  the
  946. client  connection.  If  not  supported by the server then '0' must be
  947. returned.
  948.  
  949.  
  950. 7.1.2.  Results:
  951.  
  952.   AUTH message
  953.   IRCERR_ALREADYAUTHENTICATED
  954.   IRCERR_ALREADYREGISTERED
  955.   IRCERR_AUTHENTICATIONFAILED
  956.   IRCERR_AUTHENTICATIONSUSPENDED
  957.   IRCERR_BADCOMMAND
  958.   IRCERR_BADPREFIX
  959.   IRCERR_NEEDMOREPARAMS
  960.   IRCERR_UNKNOWNPACKAGE
  961.  
  962.  
  963. 7.1.3.  Remarks:
  964.  
  965. If the server is known to support IRCX with specific SASL mechanism(s)
  966. then  the first message must be the AUTH command (if authentication is
  967. to be used).  If  the  server  state  is  unknown,  send  the  message
  968. "ISIRCX\r\nPING\r\n"  and  non IRCX servers will return the PONG reply
  969. without the IRCX message (or an error message and then the PONG), IRCX
  970. servers will return the IRCRPL_IRCX message (see IRCX command for more
  971. info) and then the PONG reply.
  972.  
  973. The server will send the syntax 2 form when the authentication process
  974. is complete or a numeric error reply.
  975.  
  976. 7.1.4.  Example:
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983. Cedola & Pfenning                                            [Page 15]
  984.  
  985.  
  986.  
  987.  
  988.  
  989. INTERNET-DRAFT                                        13 February 1997
  990.  
  991.  
  992.      Client: AUTH NTLM I: <-quoted blob data>
  993.      Server: AUTH NTLM S: <-quoted blob data>
  994.      Client: AUTH NTLM S: <-quoted blob data>
  995.      Server: AUTH NTLM OK userid@domain 03FA4534C
  996.  
  997.  
  998.  
  999.  
  1000. 7.2.  EVENT (new IRCX command)
  1001.  
  1002. Add/Change/Delete event logging to the client connection.
  1003.  
  1004.  
  1005. Syntax 1: EVENT [ADD | DEL] <event> [<mask>]
  1006.  
  1007. Syntax 2: EVENT LIST [<event>]
  1008.  
  1009. 7.2.1.  Parameters
  1010.  
  1011. <event>  Type of event, CHANNEL, MEMBER and USER.
  1012.  
  1013. <mask>  Option mask for apply a selection critical per event.
  1014.  
  1015.  
  1016. 7.2.2.  Results
  1017.  
  1018.  
  1019.   IRCRPL_EVENTADD
  1020.   IRCRPL_EVENTDELETE
  1021.   IRCRPL_EVENTLIST
  1022.   IRCRPL_EVENTEND
  1023.   IRCERR_NEEDMOREPARAMS
  1024.   IRCERR_BADFUNCTION
  1025.   IRCERR_EVENTDUP
  1026.   IRCERR_EVENTMIS
  1027.   IRCERR_NOSUCHEVENT
  1028.   IRCERR_TOOMANYEVENTS
  1029.  
  1030.  
  1031.  
  1032. 7.2.3.  Events
  1033.  
  1034. See the EVENT section for IRCX Server Messages for more detail of gen-
  1035. erated events.
  1036.  
  1037. 7.2.4.  Remarks
  1038.  
  1039. The EVENT command is a sysop only function to select which events  the
  1040. client is interested in.
  1041.  
  1042. 7.2.5.  Examples
  1043.  
  1044. Add channel events
  1045.  
  1046.  
  1047.  
  1048.  
  1049. Cedola & Pfenning                                            [Page 16]
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055. INTERNET-DRAFT                                        13 February 1997
  1056.  
  1057.  
  1058.      Client: EVENT ADD CHANNEL
  1059.      Server: 801 CHANNEL *!*@*$*
  1060.  
  1061.  
  1062. Add list event with no active events returned
  1063.  
  1064.  
  1065.      Client: EVENT LIST
  1066.      Server: 803 CHANNEL *!*@*$*
  1067.              804 * :End of events.
  1068.  
  1069.  
  1070.  
  1071.  
  1072. 7.3.  IRCX (new IRCX command)
  1073.  
  1074. Enables IRCX mode and displays IRCX status.
  1075.  
  1076. Syntax: IRCX
  1077.  
  1078. 7.3.1.  Parameters
  1079.  
  1080. None.
  1081.  
  1082. 7.3.2.  Results
  1083.  
  1084.  
  1085.   IRCRPL_IRCX
  1086.  
  1087.  
  1088. 7.3.3.  Remarks
  1089.  
  1090. Before  a  client  is  registered  with a non-IRCX server, sending the
  1091. ISIRCX command will result in no response from the server.   Recommend
  1092. sending the ISIRCX command followed by the PING command, and if a PONG
  1093. is just returned then the server doesn't support IRCX.
  1094.  
  1095. 7.3.4.  Example
  1096.  
  1097.  
  1098.      Client: IRCX
  1099.      Server: :<host> 800 <nick> 1 0 NTLM,DPA,ANON *
  1100. ://http:chat.mysite.net
  1101.  
  1102.  
  1103.  
  1104.  
  1105. 7.4.  ISIRCX (new IRCX command)
  1106.  
  1107. Queries if the server supports the Extended IRC2 protocol (RCX).
  1108.  
  1109. Syntax: ISIRCX
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116. Cedola & Pfenning                                            [Page 17]
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122. INTERNET-DRAFT                                        13 February 1997
  1123.  
  1124.  
  1125. 7.4.1.  Results
  1126.  
  1127.  
  1128.   IRCRPL_IRCX
  1129.  
  1130.  
  1131. 7.4.2.  Remarks
  1132.  
  1133. Before a client is registered with  a  non-IRCX  server,  sending  the
  1134. ISIRCX  command will result in no response from the server.  Recommend
  1135. sending the ISIRCX command followed by the PING command, and if a PONG
  1136. is just returned then the server doesn't support IRCX.
  1137.  
  1138. 7.4.3.  Example
  1139.  
  1140.  
  1141.      Client: ISIRCX
  1142.      Server: :<host> 800<nick> 1 0 NTLM,DPA,ANON *
  1143. ://http:chat.mysite.net
  1144.  
  1145.  
  1146.  
  1147.  
  1148. 7.5.  LIST (extension to IRC2 command)
  1149.  
  1150. List channels with extended filters.
  1151.  
  1152. Syntax 1: LIST [channel-list]
  1153.  
  1154. Syntax 2: LIST [query-list] [query-list ...]
  1155.  
  1156. 7.5.1.  Parameters
  1157.  
  1158. <query-list>  One or more <query-terms>
  1159.  
  1160. <query-term>  This  parameter allows the specification of certain fil-
  1161. ters for the search operation.
  1162.  
  1163.  
  1164.  +------------------------------------------------------------------+
  1165.  |            Table 5 - Search filters for LIST command             |
  1166.  +---------+--------------------------------------------------------+
  1167.  |  <#     |  Select channels with less than # members              |
  1168.  |  >#     |  Select channels with more than # members              |
  1169.  |  C<#    |  Select channels created less than # minutes ago       |
  1170.  |  C>#    |  Select channels created greater than # minutes ago    |
  1171.  |  T<#    |  Select channels with a topic  changed  less  than  #  |
  1172.  |         |  minutes ago                                           |
  1173.  |  T>#    |  Select  channels with a topic changed greater than #  |
  1174.  |         |  minutes ago                                           |
  1175.  +---------+--------------------------------------------------------+
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183. Cedola & Pfenning                                            [Page 18]
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189. INTERNET-DRAFT                                        13 February 1997
  1190.  
  1191.  
  1192. 7.5.2.  Results
  1193.  
  1194.  
  1195. Same as defined in RFC 1459.
  1196.  
  1197.  
  1198. 7.5.3.  Remarks
  1199.  
  1200. The LIST extension was first implemented for the Undernet  version  of
  1201. the standard IRC2 server.
  1202.  
  1203.  
  1204.  
  1205. 7.6.  MODE (extension to IRC2 command)
  1206.  
  1207. Enumerates, adds or changes modes of a channel or user.
  1208.  
  1209.  
  1210. Syntax 1: MODE <nick>
  1211.  
  1212. Syntax 2: MODE <nick> {+ | - } { o }
  1213.  
  1214. 7.6.1.  Parameters
  1215.  
  1216. <nick>  The nick name of a user.
  1217.  
  1218. 7.6.2.  Results
  1219.  
  1220.  
  1221.   MODE message
  1222.   IRCERR_NOPRIVILEGES
  1223.  
  1224.  
  1225. 7.6.3.  Remarks
  1226.  
  1227. Client  that have authenticated as a sysop can enable or disable their
  1228. sysop access via the +/- o mode parameter.
  1229.  
  1230. 7.6.4.  Example
  1231.  
  1232.  
  1233.      Client:   MODE MyNick -o
  1234.      Server:   MODE MyNick -o
  1235.  
  1236.  
  1237.  
  1238.  
  1239. 7.7.  MODEX (new IRCX command)
  1240.  
  1241. Enumerates, adds or changes extended modes of a channel or user.
  1242.  
  1243. Syntax 1: MODEX <object>
  1244.  
  1245. Syntax 2: MODEX <object> {+ | -} <modex> [...]
  1246.  
  1247.  
  1248.  
  1249. Cedola & Pfenning                                            [Page 19]
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255. INTERNET-DRAFT                                        13 February 1997
  1256.  
  1257.  
  1258. 7.7.1.  Parameters
  1259.  
  1260. <object>  The name of a user, channel, member or server.
  1261.  
  1262. <modex>  An extended mode (see MODEX under the specific object  type).
  1263.  
  1264. 7.7.2.  Results
  1265.  
  1266.  
  1267.   MODEX message
  1268.   IRCRPL_MODELIST
  1269.   IRCRPL_MODELIST2
  1270.   IRCRPL_MODEEND
  1271.   IRCRPL_BADMODE
  1272.   IRCERR_NOPRIVILEGES
  1273.   IRCERR_CHANOPRIVSNEEDED
  1274.   IRCERR_CHANOWNPRIVSNEEDED
  1275.  
  1276.  
  1277. 7.7.3.  Remarks
  1278.  
  1279. The  MODEX command is a replacement to the standard IRC2 MODE command,
  1280. but unlike the single character letter used by  MODE,  MODEX  supports
  1281. named  mode  settings.   The  MODEX command only effects binary (on or
  1282. off) modes of an object.
  1283.  
  1284. To issue a MODEX command on a channel member, the <object> field  con-
  1285. sists  of  the  channel name, followed by a comma and then the nick of
  1286. the member.  For example, "MODEX #MyChannel,Nick" to list the modes of
  1287. the user Nick member information in the channel #MyChannel.
  1288.  
  1289. The  IRCRPL_MODELIST (805) message contains the channel modes settable
  1290. by client connections, the IRCRPL_MODELIST2 (806) message contains the
  1291. channel  flags that are only settable by the server or a chat service.
  1292.  
  1293. If an error occurs, no modes are updated.
  1294.  
  1295. 7.7.4.  Examples
  1296.  
  1297.  
  1298.      Client: MODEX #MyChannel
  1299.      Server: 805 #MyChannel PUBLIC TOPICOP NOEXTERN
  1300.              806 #MyChannel PERSISTENT
  1301.              807 #MyChannel :End of modes
  1302.  
  1303.  
  1304. Longer transaction with query and setting of particular modes.
  1305.  
  1306.  
  1307.  
  1308.  
  1309.  
  1310.  
  1311.  
  1312.  
  1313.  
  1314.  
  1315. Cedola & Pfenning                                            [Page 20]
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321. INTERNET-DRAFT                                        13 February 1997
  1322.  
  1323.  
  1324.      Client:   MODEX #MyChannel
  1325.      Server:   805 #MyChannel PUBLIC TOPICOP NOEXTERN
  1326.              807 #MyChannel :End of modes
  1327.  
  1328.      Client: MODEX #MyChannel +PRIVATE -TOPICOP +NODATA +NOWHISPER
  1329.      Server: MODEX #MyChannel +PRIVATE +NOEXTERN +NODATA +NOWHISPER
  1330.  
  1331.      Client: MODEX #MyChannel
  1332.      Server: 805 #MyChannel PRIVATE NOEXTERN NODATA NOWHISPER
  1333.              807 #MyChannel :End of modes
  1334.  
  1335.  
  1336.  
  1337.  
  1338. 7.8.  NOTICE (extension to IRC2 command)
  1339.  
  1340. Send a notice to a channel or user.
  1341.  
  1342. Syntax 1: NOTICE <channel|nick> :<message>
  1343.  
  1344. Syntax 2: NOTICE <channel> <nick-list> :<message>
  1345.  
  1346. 7.8.1.  Results
  1347.  
  1348. Same as defined in RFC 1459.
  1349.  
  1350.  
  1351.  
  1352.  
  1353.  
  1354. 7.9.
  1355.   PRIVMSG (extension to IRC2 command)
  1356.  
  1357. Send a message to a channel or user.
  1358.  
  1359. Syntax 1: PRIVMSG <channel|nick> :<message>
  1360.  
  1361. Sybtax 2: PRIVMSG <channel> <nick-list> :<message>
  1362.  
  1363. 7.9.1.  Results
  1364.  
  1365. Same as defined in RFC 1459.
  1366.  
  1367.  
  1368.  
  1369. 7.10.  PROP (new IRCX command)
  1370.  
  1371. Add/Changes/Deletes a channel data property.
  1372.  
  1373.  
  1374. Syntax 1: PROP <channel>
  1375.  
  1376. Syntax 2: PROP <channel> *
  1377.  
  1378.  
  1379.  
  1380.  
  1381. Cedola & Pfenning                                            [Page 21]
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387. INTERNET-DRAFT                                        13 February 1997
  1388.  
  1389.  
  1390. Syntax 3: PROP <channel> <property>[,<property>]
  1391.  
  1392. Syntax 4: PROP <channel> <property> :<data>
  1393.  
  1394. 7.10.1.  Results
  1395.  
  1396.  
  1397.   PROP message
  1398.   IRCRPL_PROPLIST
  1399.   IRCRPL_PROPEND
  1400.   IRCRPL_PROPVALUE
  1401.   IRCERR_BADPROPERTY
  1402.   IRCERR_NOPRIVILEGES
  1403.   IRCERR_CHANOPRIVSNEEDED
  1404.   IRCERR_CHANOWNPRIVSNEEDED
  1405.  
  1406.  
  1407. 7.10.2.  Remarks
  1408.  
  1409. The PROP command provides a new method  for  manipulating  string  and
  1410. number properties of server, user, channel and member objects based of
  1411. a label name.  Members of channels are defined by specifying the  name
  1412. of  the  member's  channel,  a comma delimited, followed by the user's
  1413. nick.
  1414.  
  1415. 7.10.3.  Examples
  1416.  
  1417.  
  1418.      Client:   PROP #MyChannel
  1419.      Server:   808 #MyChannel TOPIC HOSTKEY PICS
  1420.              809 #MyChannel :End of properties
  1421.  
  1422.  
  1423.      Client:   PROP #MyChannel TOPIC
  1424.      Server:   810 #MyChannel TOPIC :This is the topic of my channel
  1425.      Client:   PROP #MyChannel TOPIC :Change my channel topic to
  1426. something
  1427.      Server:   PROP #MyChannel TOPIC :Change my channel topic to
  1428. something
  1429.  
  1430.  
  1431.  
  1432.  
  1433. 7.11.  WHISPER (new IRCX command)
  1434.  
  1435. Whisper to member(s) in a channel.
  1436.  
  1437. Syntax: WHISPER <channel> <nick-list> :<message>
  1438.  
  1439. 7.11.1.  Results
  1440.  
  1441.  
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449. Cedola & Pfenning                                            [Page 22]
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455. INTERNET-DRAFT                                        13 February 1997
  1456.  
  1457.  
  1458.   WHISPER message
  1459.   IRCERR_NEEDMOREPARAMS
  1460.   IRCERR_NORECIPIENT
  1461.   IRCERR_NOTEXTTOSEND
  1462.   IRCERR_NOTONCHANNEL
  1463.   IRCERR_CANNOTSENDTOCHANNEL
  1464.   IRCERR_TOOMANYTARGETS
  1465.   IRCERR_NOSUCHNICK
  1466.   IRCERR_NOSUCHCHANNEL
  1467.  
  1468.  
  1469. 7.11.2.  Remarks
  1470.  
  1471. The purpose of the WHISPER command is to whisper to one or  more  mem-
  1472. bers  in  a  channel within the context of that channel.  IRCX clients
  1473. must display the WHISPER message within the context  (window)  of  the
  1474. channel specified.
  1475.  
  1476.  
  1477.  
  1478. 8.  IRCX Command Responses
  1479.  
  1480. The  new  extended  IRCX numeric replies follow the same convention as
  1481. with IRC with a specific range for command responses and another range
  1482. for  error  results.   The IRCX command responses are in the ranage of
  1483. 800 to 899 and 900 to 999 for the error results.  The prefix field  is
  1484. optional  if the host generating the error is the same as the host the
  1485. client is connected to.
  1486.  
  1487.  
  1488. 8.1.  Command Replies
  1489.  
  1490.  
  1491. 800 - IRCRPL_IRCX <state>
  1492.  
  1493.      <version> <package-list> <option-list> :<admin url>
  1494.  
  1495. The response to the IRCX command.  The <state> indicates  if  the  has
  1496. IRCX  mode  enabled (0 for disabled, 1 for enabled).  The <version> is
  1497. the version of the IRCX protocol starting at  0.   The  <package-list>
  1498. contains  a  list  of authentication packages supported by the server.
  1499. The package name of "ANON" is reserved to indicate  anonymous  connec-
  1500. tions  are  permitted.   The  <option-list> contains a list of options
  1501. supported by the server; theses are implementation dependent.   If  no
  1502. options  are available, the '*' character should be used.  The <admin-
  1503. url> field contains an administrator defined URL.
  1504.  
  1505.  
  1506. 801 - IRCRPL_EVENTADD
  1507.  
  1508.      <event> <mask>
  1509.  
  1510. The acknowledgment response to the EVENT  ADD  command.   The  <event>
  1511. contains  the  name  of  the event added.  The <mask> is the selection
  1512.  
  1513.  
  1514.  
  1515. Cedola & Pfenning                                            [Page 23]
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521. INTERNET-DRAFT                                        13 February 1997
  1522.  
  1523.  
  1524. mask.  If no mask was provided in the EVENT command, then the  default
  1525. mask of *!*@*$* is used.
  1526.  
  1527.  
  1528. 802 - IRCRPL_EVENTDEL
  1529.  
  1530.      <event> <mask>
  1531.  
  1532. The  acknowledgment  response  to  the EVENT DEL command.  The <event>
  1533. contains the name of the event deleted.  The <mask> is  the  selection
  1534. mask.   If no mask was provided in the EVENT command, then the default
  1535. mask of *!*@*$* is used.
  1536.  
  1537.  
  1538. 803 - IRCRPL_EVENTLIST
  1539.  
  1540.      <event> <mask>
  1541.  
  1542. Response to the EVENT LIST <event> message to display a list  of  cur-
  1543. rent events the client is interested in.
  1544.  
  1545.  
  1546. 804 - IRCRPL_EVENTEND
  1547.  
  1548.      :End of events
  1549.  
  1550. Response  to the EVENT LIST <event> message to indicate the end of the
  1551. event list.
  1552.  
  1553.  
  1554. 805 - IRCRPL_MODELIST
  1555.  
  1556.      <object> <mode-list>
  1557.  
  1558. Response to the MODEX command of extended modes.
  1559.  
  1560.  
  1561. 806 - IRCRPL_MODELIST2
  1562.  
  1563.      <object> <mode-list>
  1564.  
  1565. Response to the MODEX command of extended flags that are only  set  by
  1566. the server.
  1567.  
  1568.  
  1569. 807 - IRCRPL_MODEEND
  1570.  
  1571.      <object> :End of modes
  1572.  
  1573. Last message in an extended mode list.
  1574.  
  1575.  
  1576. 808 - IRCRPL_PROPLIST
  1577.  
  1578.  
  1579.  
  1580.  
  1581. Cedola & Pfenning                                            [Page 24]
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587. INTERNET-DRAFT                                        13 February 1997
  1588.  
  1589.  
  1590.      <object> <property-list>
  1591.  
  1592. Response  to the PROP command to list properties of an object.  Multi-
  1593. ple IRCRPL_PROPLIST messages can be generated per list.
  1594.  
  1595.  
  1596. 809 - IRCRPL_PROPEND
  1597.  
  1598.      <object> :End of properties
  1599.  
  1600. Last message in a property list.
  1601.  
  1602.  
  1603. 810 - IRCRPL_PROPVALUE
  1604.  
  1605.      <object> <property> :<value>
  1606.  
  1607. Response to a PROP query of a specific property.
  1608.  
  1609.  
  1610.  
  1611. 8.2.  IRCX Error Replies.
  1612.  
  1613.  
  1614. 900 - IRCERR_BADCOMMAND
  1615.  
  1616.      <command> :Bad command
  1617.  
  1618. In response to an incorrectly formatted command.
  1619.  
  1620.  
  1621. 901 - IRCERR_BADPREFIX
  1622.  
  1623.      <command> :Bad command prefix specified
  1624.  
  1625. A message prefix is not supported for this command.
  1626.  
  1627.  
  1628. 902 - IRCERR_BADTAG
  1629.  
  1630.      <channel> <property> :Bad property specified
  1631.  
  1632. The message tag is incorrect.
  1633.  
  1634.  
  1635. 903 - IRCERR_ALREADYAUTHENTICATED
  1636.  
  1637.      <package> :Already authentication
  1638.  
  1639. The client has already authenticated with the server.
  1640.  
  1641.  
  1642. 904 - IRCERR_AUTHENTICATIONFAILED
  1643.  
  1644.  
  1645.  
  1646.  
  1647. Cedola & Pfenning                                            [Page 25]
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653. INTERNET-DRAFT                                        13 February 1997
  1654.  
  1655.  
  1656.      <package> :Authentication failed
  1657.  
  1658. The authentication failed due to a bad userid/password or  server/net-
  1659. work failure.
  1660.  
  1661.  
  1662. 905 - IRCERR_AUTHENTICATIONSUSPENDED
  1663.  
  1664.      <package> :Authentication suspended for this IP
  1665.  
  1666. Authentication has been temporary disabled due to too many authentica-
  1667. tion failures from this IP.
  1668.  
  1669.  
  1670. 906 - IRCERR_UNKNOWNPACKAGE
  1671.  
  1672.      <package> :Unsupported authentication package
  1673.  
  1674. The authentication package specified  is  not  known  to  the  server.
  1675. ISIRCX  command  will  return a list of supported authentication pack-
  1676. ages.
  1677.  
  1678.  
  1679. 907 - IRCERR_EVENTDUP
  1680.  
  1681.      <event> <mask> :Duplicate event entry
  1682.  
  1683.  
  1684. 908 - IRCERR_EVENTMIS
  1685.  
  1686.      <event> <mask> :Unknown event entry
  1687.  
  1688.  
  1689. 909 - IRCERR_NOSUCHEVENT
  1690.  
  1691.      <event> :No such event type
  1692.  
  1693.  
  1694.  
  1695. 10 - IRCERR_TOOMANYEVENTS
  1696.  
  1697.      <event> :Too many events specifed
  1698.  
  1699.  
  1700. 911 - IRCERR_UNKNOWNFUNCTION
  1701.  
  1702.      <command> :Unknown function
  1703.  
  1704. A unknown command function was specified.
  1705.  
  1706.  
  1707. 912 - IRCERR_UNKNOWNMODE
  1708.  
  1709.      <mode> :Unknown mode
  1710.  
  1711.  
  1712.  
  1713.  
  1714. Cedola & Pfenning                                            [Page 26]
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720. INTERNET-DRAFT                                        13 February 1997
  1721.  
  1722.  
  1723. 913 - IRCERR_UNKNOWNPROPERTY
  1724.  
  1725.      <property> :Unknown property
  1726.  
  1727.  
  1728. 914 - IRCERR_NODATA
  1729.  
  1730.      <object> :Does not permit data messages
  1731.  
  1732.  
  1733. 915 - IRCERR_NOWHISPER
  1734.  
  1735.      <object> :Does not permit whisper messages
  1736.  
  1737.  
  1738. 916 - IRCERR_NOREMOTE
  1739.  
  1740.      <object> :Does not remote clients to join this channel
  1741.  
  1742.  
  1743. 917 - IRCERR_RESTRICTED
  1744.  
  1745.      <command> :Restricted by the administrator
  1746.  
  1747. The command/function/operation was not executed due to an  administra-
  1748. tor restriction on this client connection.
  1749.  
  1750.  
  1751. 918 - IRCERR_SECURITY
  1752.  
  1753.      <command> :Security failure
  1754.  
  1755. The  command/function/operation  is  not  permited  for  this level of
  1756. client due to security.
  1757.  
  1758.  
  1759. 999 - IRCERR_INTERNALERROR
  1760.  
  1761.      :Internal error code <error-code>
  1762.  
  1763. Internal error generated that doesn't map to a valid IRCX error reply.
  1764. The error code is implementation dependent.
  1765.  
  1766.  
  1767.  
  1768. 9.  Security Considerations
  1769.  
  1770. Security issues are discussed in the authentication section.
  1771.  
  1772. The  IRCX command returns a set of authentication mechanisms supported
  1773. by the server. This method is open to a  middle man attack whereby  an
  1774. attacker  modifies the list of returned authentication method and only
  1775. offer a cleartext password transaction. In order to avoid this type of
  1776. attack only authentication methods with a challenge response mechanism
  1777.  
  1778.  
  1779.  
  1780. Cedola & Pfenning                                            [Page 27]
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786. INTERNET-DRAFT                                        13 February 1997
  1787.  
  1788.  
  1789. should be used whenever security is a concern.
  1790.  
  1791. Since all administration commands for IRC and IRCX are send in cleart-
  1792. ext  a  stream  layer  encryption  mechanism  like  SSL[5] or IPSEC is
  1793. required to protect the integrity and confidentiality of the  transac-
  1794. tions.   The  mechanisms for establishing these connection are outside
  1795. the scope of this document.
  1796.  
  1797. 10.  References
  1798.  
  1799. [1] "Internet Relay Chat Protocol", Network Working Group RFC 1459, J.
  1800. Oikarinen, D. Reed, May 1993
  1801.  
  1802. [2]  The Unicode Consortium, "The Unicode Standard Version 2.0", Addi-
  1803. son Wesley Developers Press, July 1996
  1804.  
  1805. [3] "INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1", Network  Work-
  1806. ing Group RFC 2060, M. Crispin, December 1996
  1807.  
  1808. [4]  "Simple  Authentication  and  Security  Layer  (SASL)",  Work  in
  1809. Progress, draft-myers-auth-sasl-07.txt, J. Myers, December 1996
  1810.  
  1811. [5] "The SSL Protocol Version 3.0", Work in Progress,  draft-ietf-tls-
  1812. ssl-version3-00.txt,  Alan  O. Freier, Philip Karlton, Paul C. Kocher,
  1813. November 1996
  1814.  
  1815.  
  1816. 11.  Authors' Addresses
  1817.  
  1818. Kent Cedola
  1819. Microsoft Corporation
  1820. One Microsoft Way
  1821. Redmond, WA 98052
  1822.  
  1823. EMail: kentce@microsoft.com
  1824.  
  1825. Thomas Pfenning
  1826. Microsoft Corporation
  1827. One Microsoft Way
  1828. Redmond, WA 98052
  1829.  
  1830. EMail: thomaspf@microsoft.com
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846. Cedola & Pfenning                                            [Page 28]
  1847.  
  1848.  
  1849.  
  1850.