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-00.txt < prev    next >
Text File  |  1997-02-03  |  47KB  |  1,802 lines

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