
Internet Draft | Kent Cedola
|
All messages sent from the client to an IRCX server can optionally be tagged with a message prefix. This implies that the client has verified, that the server it is talking to supports the extended IRC protocol. A tag is a string enclosed in square brackets. Only the characters [a-z,A-Z,0-9] are valid in a tag. The string can contain a minimum of 1 and a maxminum of 16 charcters. An empty string is not allowed.
All replies from the server to a client message prefixed with a tag will have the same tag prepended. This feature allows the matching of replies to multiple outstandig messages and easy dispatch of messages to multithreaded clients. The tag will not be sent to other clients. Tagged data messages can be used for indicating a certain payload to other clients.
Syntax [alphanumeric string] <IRCX-message>
Parameters
<IRCX-message> This argument is any valid client message according to the IRC or IRCX specification.
Authenticate the client using an SASL[4] authentication mechanism. The details of the authentication mechanisms is specified in a profile that should be registered with the IANA.
Syntax 1: AUTH <name> <seq>: [<parameter>]
Syntax 2 (from server to client only): AUTH <name> OK <ident> <uid>
<name> The name of the SASL mechanism to use for authentication. The specific SASL mechanisms supported are implementation dependent.
<seq> The sequence is a value of 'I' or 'S'. The 'I' value is speci- fied for the initial AUTH message and 'S' for all subsequence AUTH messages.
<parameter> This is optional data send as an argument with the AUTH messages. The content is depends on the autentication mechanism being used.
<ident> The ident is the userid@domain of the authenticated client account. It is returned on the final response from the server (Syntax2) when authentication is successful.
<uid> The uid is the internal object identifier assigned to the client connection. If not supported by the server then '0' must be returned.
AUTH message
IRCERR_ALREADYAUTHENTICATED
IRCERR_ALREADYREGISTERED
IRCERR_AUTHENTICATIONFAILED
IRCERR_AUTHENTICATIONSUSPENDED
IRCERR_BADCOMMAND
IRCERR_BADPREFIX
IRCERR_NEEDMOREPARAMS
IRCERR_UNKNOWNPACKAGE
If the server is known to support IRCX with specific SASL mechanism(s) then the first message must be the AUTH command (if authentication is to be used). If the server state is unknown, send the message "ISIRCX\r\nPING\r\n" and non IRCX servers will return the PONG reply without the IRCX message (or an error message and then the PONG), IRCX servers will return the IRCRPL_IRCX message (see IRCX command for more info) and then the PONG reply.
The server will send the Syntax 2 form when the authentication process is complete or a numeric error reply.
Client: AUTH NTLM I: <-quoted blob data>
Server: AUTH NTLM S: <-quoted blob data>
Client: AUTH NTLM S: <-quoted blob data>
Server: AUTH NTLM * userid@domain 03FA4534C
Add/Change/Delete event logging to the client connection.
Syntax 1: EVENT [ADD DEL] <event> [<mask>]
Syntax 2: EVENT LIST [<event>]
<event> Type of event, CHANNEL, MEMBER and USER. <mask> Option mask for apply a selection critical per event.
IRCRPL_EVENTADD
IRCRPL_EVENTDELETE
IRCRPL_EVENTLIST
IRCRPL_EVENTEND
IRCERR_NEEDMOREPARAMS
IRCERR_BADFUNCTION
IRCERR_EVENTDUP
IRCERR_EVENTMIS
IRCERR_NOSUCHEVENT
IRCERR_TOOMANYEVENTS
See the EVENT section for IRCX Server Messages for more detail of generated events.
The EVENT command is a sysop only function to select which events the client is interested in.
Add channel events
Client: EVENT ADD CHANNEL
Server: 801 CHANNEL *!*@*$*
Add list event with no active events returned
Client: EVENT LIST
Server: 803 CHANNEL *!*@*$*
804 * :End of events.
Send a data message to an user, channel or member(s) in a channel. If a client does not understand a particular tag name, the message is discarded.
Syntax 1: DATA <object> <tag> :<message>
Syntax 2: DATA <channel> <nick-list> <tag> :<message>
<object> The name of channel or user.
<channel> The name of a channel.
<tag> Client defined tag following the same restrictions as the string in message prefixes, that is 1-16 alphanumeric characters.
<nick-list> A list of one or more user nicks.
DATA message
IRCERR_NEEDMOREPARAMS
IRCERR_NORECIPIENT
IRCERR_NOTEXTTOSEND
IRCERR_NOTONCHANNEL
IRCERR_CANNOTSENDTOCHANNEL
IRCERR_TOOMANYTARGETS
IRCERR_NOSUCHNICK
IRCERR_NOSUCHCHANNEL
IRCERR_NODATA
The DATA message is designed to send a tagged data message that can be used by clients to interact with other. The server does not validate the tag or message information and totally dependent on the client to support. A recommendation of tag is included in the appendixes.
The DATA message can be disabled to a channel, member or user by setting the MODEX <object> +NODATA flag.
A client send out a data message with the URL tag. The server reacts by sending the message to all users in the channel.
Client: DATA #MyChannel URL :\www.site.com
Server: DATA #MyChannel URL :\www.site.com
This example shows a tyocail scenario for a mutliplayer game or dungeon by specifiyng a an additional user list.
Client: DATA #MyChannel Nick1,Nick2 POS :34,23
Server: DATA #MyChannel Nick1 POS :34,23 (to Nick1)
DATA #MyChannel Nick2 POS :34,23 (to Nick2)
The following is a list of recommend tags to be in the DATA message between clients. This list is subject to change based on more feed- back. There should be a central registration point for new tags.
RTF: The data message contains RTF formatted text.
URL: A standard Internet URL pointer. The client can optionally load the URL address provided.
VERSION: Request for the client type and version information.
Enables IRCX mode and displays IRCX status.
Syntax: IRCX
None.
IRCRPL_IRCX
Before a client is registered with a non-IRCX server, sending the ISIRCX command will result in no response from the server. Recommend sending the ISIRCX command followed by the PING command, and if a PONG is just returned then the server doesn't support IRCX.
Client: IRCX
Server: :<host> 800 <nick> 1 0 NTLM,DPA,ANON *
://http:chat.mysite.net
Queries if the server supports the Extended IRC2 protocol (RCX).
Syntax: ISIRCX
IRCRPL_IRCX
Before a client is registered with a non-IRCX server, sending the ISIRCX command will result in no response from the server. Recommend sending the ISIRCX command followed by the PING command, and if a PONG is just returned then the server doesn't support IRCX.
Client: ISIRCX
Server: :<host> 800<nick> 1 0 NTLM,DPA,ANON *
://http:chat.mysite.net
List channels with extended filters.
Syntax 1: LIST [channel-list]
Syntax 2: LIST [query-list] [query-list ...]
<query-list> One or more <query-terms> <query-term> This parameter allows the specification of certain filters for the search operation.
| <# | Select channels with less than # members |
| ># | Select channels with more than # members |
| C<# | Select channels created less than # minutes ago |
| C># | Select channels created greater than # minutes ago |
| T<# | Select channels with a topic changed less than # minutes ago |
| T># | Select channels with a topic changed greater than # minutes ago |
Same as defined in RFC 1459.
The LIST extension was first implemented for the Undernet version of the standard IRC2 server.
Enumerates, adds or changes modes of a channel or user.
Syntax 1: MODE <nick>
Syntax 2: MODE <nick> {+ - } { o }
<nick> The nick name of a user.
MODE message IRCERR_NOPRIVILEGES
Client that have authenticated as a sysop can enable or disable their sysop access via the +/- o mode parameter.
Client: MODE MyNick -o
Server: MODE MyNick -o
Enumerates, adds or changes extended modes of a channel or user.
Syntax 1: MODEX <object>
Syntax 2: MODEX <object> {+ -} <modex> [...]
<object> The name of a user, channel, member or server.
<modex> An extended mode (see MODEX under the specific object type).
MODEX message
IRCRPL_MODELIST
IRCRPL_MODELIST2
IRCRPL_MODEEND
IRCRPL_BADMODE
IRCERR_NOPRIVILEGES
IRCERR_CHANOPRIVSNEEDED
IRCERR_CHANOWNPRIVSNEEDED
The MODEX command is a replacement to the standard IRC2 MODE command, but unlike the single character letter used by MODE, MODEX supports named mode settings. The MODEX command only effects binary (on or off) modes of an object.
To issue a MODEX command on a channel member, the <object> field consists of the channel name, followed by a comma and then the nick of the member. For example, "MODEX #MyChannel,Nick" to list the modes of the user Nick member information in the channel #MyChannel.
The IRCRPL_MODELIST (805) message contains the channel modes settable by client connections, the IRCRPL_MODELIST2 (806) message contains the channel flags that are only settable by the server or a chat service.
If an error occurs, no modes are updated.
Client: MODEX #MyChannel
Server: 805 #MyChannel Public TOPICOP NOEXTERN
806 #MyChannel PERSISTENT
807 #MyChannel :End of modes
Longer transaction with query and setting of particular modes.
Client: MODEX #MyChannel
Server: 805 #MyChannel Public TOPICOP NOEXTERN
807 #MyChannel :End of modes
Client: MODEX #MyChannel +PRIVATE -TOPICOP +NODATA +NOWHISPER
Server: MODEX #MyChannel +PRIVATE +NOEXTERN +NODATA +NOWHISPER
Client: MODEX #MyChannel
Server: 805 #MyChannel Private NOEXTERN NODATA NOWHISPER
807 #MyChannel :End of modes
Send a notice to a channel or user.
Syntax 1: NOTICE <channel|nick> :<message>
Syntax 2: NOTICE <channel> <nick-list> :<message>
Same as defined in RFC 1459.
Send a message to a channel or user.
Syntax 1: PRIVMSG <channel|nick> :<message>
Syntax 2: PRIVMSG <channel> <nick-list> :<message>
Same as defined in RFC 1459.
Add/Changes/Deletes a channel data property.
Syntax 1: ProP <channel>
Syntax 2: ProP <channel> *
Syntax 3: ProP <channel> <property>[,<property>]
Syntax 4: ProP <channel> <property> :<data>
ProP message
IRCRPL_ProPLIST
IRCRPL_ProPEND
IRCRPL_ProPVALUE
IRCERR_BADProPERTY
IRCERR_NOPRIVILEGES
IRCERR_CHANOPRIVSNEEDED
IRCERR_CHANOWNPRIVSNEEDED
The ProP command provides a new method for manipulating string and number properties of server, user, channel and member objects based of a label name. Members of channels are defined by specifying the name of the member's channel, a comma delimited, followed by the user's nick.
Client: ProP #MyChannel
Server: 808 #MyChannel TOPIC HOSTKEY PICS
809 #MyChannel :End of properties
Client: ProP #MyChannel TOPIC
Server: 810 #MyChannel TOPIC :This is the topic of my channel
Client: ProP #MyChannel TOPIC :Change my channel topic to something
Server: ProP #MyChannel TOPIC :Change my channel topic to something
Whisper to member(s) in a channel.
Syntax: WHISPER <channel> <nick-list> :<message>
WHISPER message
IRCERR_NEEDMOREPARAMS
IRCERR_NORECIPIENT
IRCERR_NOTEXTTOSEND
IRCERR_NOTONCHANNEL
IRCERR_CANNOTSENDTOCHANNEL
IRCERR_TOOMANYTARGETS
IRCERR_NOSUCHNICK
IRCERR_NOSUCHCHANNEL
The purpose of the WHISPER command is to whisper to one or more members in a channel within the context of that channel. IRCX clients must display the WHISPER message within the context (window) of the channel specified.
PREVIOUS PAGE | TABLE OF CONTENTS | NEXT PAGE
![]()
Comments about this page? Send them to
webmaster (at) invlogic.com.
Return to Innovative Logic's Home Page.
Last modified: 17-Sep-2004 01:04PM.
Pages copyright ©1996-1997,
Innovative Web Creations.
All rights reserved.