IRCX
This article needs to be updated. (June 2024) |
IRCX (Internet Relay Chat eXtensions) is an extension to the Internet Relay Chat protocol, developed by Microsoft in the 1990s.[1]
IRCX defines ways to use Simple Authentication and Security Layer authentication to authenticate securely to the server, channel properties/metadata, multilingual support that can be queried using the enhanced "LISTX" command, additional channel privilege levels, specific IRC operator levels, and support for Unicode in nicknames, channel names, and other user-visible strings.[1] IRCX was designed to be backwards compatible with IRC; the specification states that existing IRC clients should continue to function against IRCX servers, while clients supporting the extensions can query the server for IRCX support.[1]
IRCX was originally supported on Microsoft Exchange Server 5.5 (in place of the old Microsoft Chat protocol, which is a binary protocol) and a module was available for Microsoft Exchange 2000.[2]
Microsoft published several Internet Draft revisions of IRCX through the Internet Engineering Task Force.[3] The IETF Datatracker records revisions 00, 01, 02, and 04. The final revision is classified as an expired individual Internet-Draft; it has no RFC stream or intended RFC status and was not published as an RFC.[3]
Protocol
[edit]IRCX extends the client-to-server portion of IRC rather than defining a new server-to-server protocol. The specification adds commands and replies and modifies the behavior of some existing IRC commands.[1]
Backwards compatibility
[edit]IRCX was designed so that an IRCX-capable server could continue to accept conventional IRC clients. Before registering, a client can use MODE ISIRCX to determine whether the server supports IRCX. An IRCX server then responds with an IRCX status reply, while a server without IRCX support is expected to return an error. A supporting client can then use the IRCX command to enable IRCX mode.[1]
Some extended features can be represented in forms usable by conventional IRC clients. For example, the IRCX WHISPER command can be converted by the server into a conventional PRIVMSG for backwards compatibility; although the channel context associated with the whisper is thereafter unavailable to that client.[1]
Authentication
[edit]IRCX adds the AUTH command for authenticating users. The client and server will then perform a multi-step authentication exchange and permit the server to advertise the authentication mechanisms it supports.[1]
The final Internet-Draft describes authentication using mechanisms compatible with the Simple Authentication and Security Layer model and includes examples using Microsoft's NTLM authentication protocol.[1]
IRCX introduces the ACCESS command for maintaining access-control entries associated with channels, users, and servers. An access entry can grant or deny access to an object, identify users via masks with wildcards, specify an optional timeout, and include a reason for the entry.[1]
For channels, access entries can assign OWNER, HOST, or VOICE privileges, as well as GRANT and DENY access levels.[1]
Channel roles
[edit]IRCX adds the channel-owner role above the conventional IRC channel-operator role. Channel ownership is represented by user mode +q. In an IRCX nickname list, owners will be identified with a period (.), whereas hosts are represented conventionally with the @ prefix.
The protocol also retains voice as a separate privilege; thus, owners, hosts, voiced members, and ordinary members may all have different capabilities.[1]
Channel properties
[edit]IRCX adds code PROP command to read and modify string and numeric properties associated with channels. These properties are an addition to the conventional IRC topic and channel-mode mechanisms.[1]
Defined properties include TOPIC, join/leave messages, and descriptive information such as language and subject.[1]
Channel discovery
[edit]The LISTX command extends the standard LIST command with additional filtering and channel information. This permits clients to restrict the channels returned according to criteria supported by the server rather than always retrieving a complete channel list. The criteria includes channel characteristics and properties such as language.[1]
Unicode support
[edit]The final IRCX revision defines a modified UTF-8 representation for Unicode characters in user visible strings. This encoding was designed around compatibility constraints imposed by the existing IRC protocol and permits Unicode characters to appear in identifiers such as nicknames and channel names.[1]
The protocol also defines special representations for extended nicknames and channel names. When an IRCX nickname must be presented to a client that does not support IRCX, the server can use a hexadecimal representation prefixed with a caret (^) so the conventional client to refer to the IRCX user.[1]
Earlier revisions of the IRCX specification use a modified UTF-7 encoding rather than the final modified UTF-8 encoding.[4]
Additional commands
[edit]IRCX defines other commands not present in the original IRC protocol. These include CREATE for creating channels, WHISPER for priv messages associated with a specific channel, EVENT for listening to server events, and DATA, REQUEST, and REPLY for exchanging data with server extensions.[1]
Standardisation status
[edit]The first archived IRCX Internet-Draft, draft-pfenning-irc-extensions-00, is dated 31 January 1997.[4] The IETF Datatracker records four published revisions—00, 01, 02, and 04—with the final revision dating from 1998.[3]
The final revision is currently classified by the IETF as an "Expired Internet-Draft (individual)" and "Expired & archived". The Datatracker states that the document is not endorsed by the IETF and has no formal standing in the IETF standards process. It lists no RFC stream nor an intended RFC status.[3]
Implementations
[edit]IRCX was implemented as part of Microsoft's Exchange Chat software, including Exchange Server 5.5 and Exchange 2000.[2]
IRCX is still implemented by some third-party IRC software. The current OfficeIRC Server 3 manual states that the server implements IRCX alongside RFC 1459, RFC 2812, and IRCv3, and documents IRCX commands.[5]
See also
[edit]References
[edit]- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 "Extensions to the Internet Relay Chat Protocol (IRCX)". IETF Datatracker. Internet Engineering Task Force. June 1998. Retrieved 2026-08-27.
- 1 2 "Exchange Chat Features/IRCX". Microsoft. April 19, 2004. Retrieved 2008-09-04.
- 1 2 3 4 "Extensions to the Internet Relay Chat Protocol (IRCX)". IETF Datatracker. Internet Engineering Task Force. Retrieved 2026-08-27.
- 1 2 "Extensions to the Internet Relay Chat Protocol (IRCX)". IETF Datatracker. Internet Engineering Task Force. 31 January 1997. Retrieved 2026-08-27.
- ↑ "OfficeIRC Server 3 Technical Manual". OfficeIRC. Office IRC Inc. Retrieved 2026-08-27.
External links
[edit]- IRCX Draft – The latest revision of the IRCX Internet-Draft
- IRCX document history at the Internet Engineering Task Force
- TesX Server – archived website for an open-source IRCX server