TOC 
IRC+ Working GroupA. Uzhva
Internet-DraftA. Inviolatum
Intended status: Standards TrackKVIrc Development Team
Expires: December 20, 2007A. Schrotenboer
 SurrealServices project
 W. Pitcock
 atheme.org
 C. v. Loesch
 psyc://psyced.org/~lynX
 June 18, 2007


IRC+ Services Protocol
draft-irc-services

Status of this Memo

By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as “work in progress.”

The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt.

The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html.

This Internet-Draft will expire on December 20, 2007.

Copyright Notice

Copyright © The IETF Trust (2007).

Abstract

Most NickServ/ChanServ based services share basic common features and syntax. But IRC clients/scripts/bots are unable to easily interact with them due to varying translations, versions, etc. The goal of this draft-RFC – is to make it possible for IRC Client’ users to understand services messages, and interact with them. Our proposal is for services to send standard numeric messages instead of notices.

Requirements Language

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

TODOs

The style of this specification still needs clean-ups. It shouldn't address users as "you." It shouldn't say "should" and "must" in non-final lower case. And there are details left to work out. Let us not add anything else to this specification or we just won't finish it! Rather reduce it further than add more, and put future extensions into future IRC+ drafts.



Table of Contents

1.  Introduction
    1.1.  Background
    1.2.  Overview
    1.3.  Services nicks
2.  Detecting IRC+ network and switching to IRC+ mode
3.  Replies
    3.1.  800 RPL_SERVICES_SUPPORTS_IRCPLUS - List of supported IRC+ features
    3.2.  801 RPL_SERVICES_NEEDPASS - Need password
    3.3.  802 RPL_SERVICES_PASSOK - Auth Ok
    3.4.  803 RPL_SERVICES_BADPASS - Password incorrect
    3.5.  804 RPL_SERVICES_COMMAND_SUCCESS - Command Success
    3.6.  805 RPL_SERVICES_COMMAND_ERROR - Command Error
    3.7.  806 RPL_SERVICES_INFO - Information about nick/channel
    3.8.  807 RPL_SERVICES_INFO_END - End of information about nick/channel
    3.9.  808 RPL_SERVICES_ERROR_NEEDREGISTRATION - You must register the nick
    3.10.  809 RPL_SERVICES_NICKSTATUS - Returns nick status
    3.11.  810 RPL_SERVICES_MEMO_READ - Your memo was read
    3.12.  811 RPL_SERVICES_HELP_START - Start help output
    3.13.  812 RPL_SERVICES_HELP - Help output
    3.14.  813 RPL_SERVICES_HELP_END - End help output
    3.15.  814 RPL_SERVICES_LIST_START - Start list output
    3.16.  815 RPL_SERVICES_LIST - List output
    3.17.  816 RPL_SERVICES_LIST_END - End list output
    3.18.  817 RPL_SERVICES_GLIST_START - Start glist output
    3.19.  818 RPL_SERVICES_GLIST - glist output
    3.20.  819 RPL_SERVICES_GLIST_END - End glist output
    3.21.  820 RPL_SERVICES_MEMO_START - Start memo output
    3.22.  821 RPL_SERVICES_MEMO - Memo output
    3.23.  822 RPL_SERVICES_MEMO_END - End memo output
    3.24.  823 RPL_SERVICES_CHANSERV_CHANKEY - Channel key
4.  Queries
    4.1.  Common
        4.1.1.  IRCPLUS - enabling/disabling IRC+ mode
        4.1.2.  IDENTIFY
        4.1.3.  INFO
        4.1.4.  HELP
        4.1.5.  Drop
        4.1.6.  Set
    4.2.  NickServ
        4.2.1.  REGISTER
        4.2.2.  GROUP
        4.2.3.  LOGOUT
        4.2.4.  DROP
        4.2.5.  ACCESS
        4.2.6.  RECOVER
        4.2.7.  RELEASE
        4.2.8.  GHOST
        4.2.9.  GLIST
        4.2.10.  STATUS
        4.2.11.  SENDPASS
    4.3.  ChanServ
        4.3.1.  REGISTER
        4.3.2.  DROP
        4.3.3.  OP
        4.3.4.  DEOP
        4.3.5.  VOICE
        4.3.6.  DEVOICE
        4.3.7.  HALFOP
        4.3.8.  DEHALFOP
        4.3.9.  PROTECT
        4.3.10.  DEPROTECT
        4.3.11.  OWNER
        4.3.12.  DEOWNER
        4.3.13.  INVITE
        4.3.14.  UNBAN
        4.3.15.  KICK
        4.3.16.  BAN
        4.3.17.  TOPIC
        4.3.18.  CLEAR
        4.3.19.  GETKEY
    4.4.  MemoServ
        4.4.1.  SEND
        4.4.2.  LIST
        4.4.3.  READ
        4.4.4.  RSEND
        4.4.5.  DEL
        4.4.6.  STAFF
5.  Normative References
Appendix A.  Error codes
Appendix B.  Nick status codes
Appendix C.  XML definition of the services capabilities
§  Authors' Addresses
§  Intellectual Property and Copyright Statements




 TOC 

1.  Introduction



 TOC 

1.1.  Background

One day in 1991, Jupiter killed NickServ. That day marked the beginning of a dark period in the evolution of IRC: Nicknames weren't owned. Virtual identities were not reliable. Sixteen years later, most large IRC networks have overcome this wrong attitude.

Since the IRC protocol does not protect identities natively, external programs called services have been employed. These services were inspired by the original NickServ, but have evolved into many different and incompatible flavors. This specification proposes a common protocol for services to ensure interoperability.

Additionally to the messaging interface the end users are familiar with, although they are different on each network, this protocol adds a more generalized, abstract and client developer friendly interface to the typical function needed for managing and securing your digital identity on IRC.



 TOC 

1.2.  Overview

Numerics SHOULD fit RFC 1459 requirements. Services SHOULD send numeric replies, where all meaningful parts SHOULD be message parameters, and not the text part. For example:

:prefix 8xx ChanServ #channel FOUNDER NICK :is channel founder

But not

:prefix 8xx ChanServ NICK :is #channel founder

ABNF for service message or reply

Many of these commands may not actually have an appropriate BNF/ABNF syntax.

ServicesMessage = prefix numeric service parameterList [":" trailing]
service = "ChanServ" / "NickServ" / "MemoServ" / "BotServ" / "OperServ"
parameterList  = singleParameter [parameterList]

The prefix is a standard IRC prefix, containing ":" and server name.

Numerics should be in an otherwise unused range (as of this draft, 800-899). This range may be reassigned or reorganized later, and this list is not to be considered authoritative.

Some services provide functionality which isn't covered by this specification. Please keep on sending NOTICEs in that case, do not come up with your own numerics, help IRC+ provide further specifications to fill in the gaps.



 TOC 

1.3.  Services nicks

There are 5 standard service agents – NickServ, ChanServ, MemoServ, BotServ, OperServ. These may be aliased via a token in RPL_SERVICES_SUPPORTS_IRCPLUS

Query = service [parameterList] [":" trailing]
service = "ChanServ" / "NickServ" / "MemoServ" / "BotServ" / "OperServ"
parameterList  = singleParameter [parameterList]

Services may be extended, and new ones added with new functionality. No one service is required. Any service may be disabled.

Services nicks are case-insensitive.



 TOC 

2.  Detecting IRC+ network and switching to IRC+ mode

An IRC+ compliant IRCd SHOULD include the IRCPLUS parameter in its server RPL_ISUPPORT message.

IRC+ compliant services MUST send an 800 code to the user with a list of the supported IRC+ features.

If the IRC client supports IRC+ mode, it MAY send a command to NickServ and the IRC server with enabling IRC+ mode request (IRCPLUS - enabling/disabling IRC+ mode). IRC+ mode MUST be set only on a per-session basis. If services and the server are not given this request, they MUST NOT use IRC+ mode.



 TOC 

3.  Replies



 TOC 

3.1.  800 RPL_SERVICES_SUPPORTS_IRCPLUS - List of supported IRC+ features

Tells the client what IRC+ features the local service supports.

800 RPL_SERVICES_SUPPORTS_IRCPLUS

Syntax

:prefix 801 MESSAGE_TARGET DEFINITION_URL TOKENLIST

DEFINITION_URL - address of the XML definition of the services capabilities (XML definition of the services capabilities).

TOKENLIST is a list of supported features for IRC+. This list does not exist yet as of this draft.



 TOC 

3.2.  801 RPL_SERVICES_NEEDPASS - Need password

Requires client to identify or use password with command.

801 RPL_SERVICES_NEEDPASS

Syntax

:prefix 801 MESSAGE_TARGET SERVICE PASS_TARGET COMMAND [SUPPORTED_AUTH_METHODS]

Where PASS_TARGET – registered target. Nick or Channel.

SUPPORTED_AUTH_METHODS SHOULD give a user list of supported auth methods and required tags.

Example

//both methods
:prefix 801 Alexey NickServ Alexey PLAIN SASL[...]
//only secure auth
:prefix 801 Alexey ChanServ #kvirc SASL[...]


 TOC 

3.3.  802 RPL_SERVICES_PASSOK - Auth Ok

Indicates that the password was accepted.

802 RPL_SERVICES_PASSOK

Syntax

:prefix 802 MESSAGE_TARGET SERVICE PASS_TARGET :password accepted

Where PASS_TARGET – registered target. Nick or Channel.

Example

:prefix 802 Alexey NickServ Alexey :password accepted
:prefix 802 Alexey ChanServ #kvirc :password accepted


 TOC 

3.4.  803 RPL_SERVICES_BADPASS - Password incorrect

Indicates, that the password is invalid.

803 RPL_SERVICES_BADPASS

Syntax

:prefix 803 MESSAGE_TARGET SERVICE PASS_TARGET :password wrong

Where PASS_TARGET – registered target. Nick or Channel.

Example

:prefix 803 Alexey NickServ Alexey :password wrong
:prefix 803 Alexey ChanServ #kvirc :password wrong


 TOC 

3.5.  804 RPL_SERVICES_COMMAND_SUCCESS - Command Success

Indicates, that the command completed successfully.

Syntax

:prefix 804 MESSAGE_TARGET SERVICE COMMAND :command ok

Where COMMAND – last used command.

Example

:prefix 804 NickServ SET :command ok


 TOC 

3.6.  805 RPL_SERVICES_COMMAND_ERROR - Command Error

Indicates that command failed or is unknown. 805 RPL_SERVICES_COMMAND_ERROR

Syntax

:prefix 805 MESSAGE_TARGET SERVICE COMMAND ERRNO :error text

Where COMMAND – last used command. ERRNO – error code.

See also: Error codes (Error codes)

Example



 TOC 

3.7.  806 RPL_SERVICES_INFO - Information about nick/channel

806 RPL_SERVICES_INFO

Syntax

prefix 806 MESSAGE_TARGET SERVICE INFO_TARGET INFO_TAG :VALUE

Where INFO_TAG can be:

Example

:prefix 806 Alexey NickServ #kvirc REGISTERED :1000000


 TOC 

3.8.  807 RPL_SERVICES_INFO_END - End of information about nick/channel

Indicates end of information about nick/channel 807 RPL_SERVICES_INFO_END

Syntax

:prefix 807 MESSAGE_TARGET SERVICE INFO_TARGET :End of info

Example

:prefix 807 Alexey NickServ #kvirc :End of info


 TOC 

3.9.  808 RPL_SERVICES_ERROR_NEEDREGISTRATION - You must register the nick

Indicates that the user is required to register the nick.

Syntax

:prefix 808 MESSAGE_TARGET SERVICE :Your nick must be registered first

Example

:prefix 808 Alexey NickServ :Your nick must be registered first


 TOC 

3.10.  809 RPL_SERVICES_NICKSTATUS - Returns nick status

Returns whether the user using the given nickname is recognized as the owner of the nickname.

Syntax

:prefix 809 NICKNAME STATUS_CODE

Where nickname is the nickname sent with the command, and status-code is one of the following:

Example

:prefix 809 Inviolatum OWNER_VIA_PASSWORD

See also: Nick status codes (Nick status codes)



 TOC 

3.11.  810 RPL_SERVICES_MEMO_READ - Your memo was read

Syntax

:prefix 810 MESSAGE_TARGET SERVICE INFO_TARGET :Your memo to <INFO_TARGET> was read.

Where <INFO_TARGET> is memo recipient.

Example

:prefix 810 Inviolatum MemoServ Alexey :Your memo to Alexey was read.



 TOC 

3.12.  811 RPL_SERVICES_HELP_START - Start help output

Start tag of help output.

Syntax

:prefix 811 MESSAGE_TARGET SERVICE :Begin of help contents

Example

:prefix 811 Inviolatum ChanServ :Begin of help contents



 TOC 

3.13.  812 RPL_SERVICES_HELP - Help output

Help item output.

Syntax

:prefix 812 MESSAGE_TARGET SERVICE HELP_ON: HELP_TEXT

Where HELP_ON is command to view help on.

Example

:prefix 812 Inviolatum ChanServ OP :This command makes you operator on the specified channel



 TOC 

3.14.  813 RPL_SERVICES_HELP_END - End help output

End tag of help output

Syntax

:prefix 813 MESSAGE_TARGET SERVICE :End of help contents

Example

:prefix 813 Inviolatum ChanServ :End of help contents



 TOC 

3.15.  814 RPL_SERVICES_LIST_START - Start list output

Start list command tag

Syntax

:prefix 814 MESSAGE_TARGET SERVICE LIST_TITLE [[PARAM1] ...]

LIST_TITLE - is a list tag; PARAMs is used to identify list targets

Example

:prefix 814 Inviolatum ChanServ AOP #kvirc
:prefix 814 Inviolatum NickServ ACCESS Alexey



 TOC 

3.16.  815 RPL_SERVICES_LIST - List output

List item content

Syntax

:prefix 815 MESSAGE_TARGET SERVICE ITEM_NUM [LEVEL]: ITEM_TEXT

Where ITEM_NUM is number of item in the list. LEVEL is used for permission lists.

Example

:prefix 815 Inviolatum ChanServ 1 99999 :Inviolatum



 TOC 

3.17.  816 RPL_SERVICES_LIST_END - End list output

End of list

Syntax

:prefix 816 MESSAGE_TARGET SERVICE :End of list

Example

:prefix 816 Inviolatum ChanServ :End of list



 TOC 

3.18.  817 RPL_SERVICES_GLIST_START - Start glist output

Start GLIST listing

Syntax

:prefix 817 MESSAGE_TARGET NickServ : Glist start

Example

:prefix 817 Inviolatum NickServ : Glist start



 TOC 

3.19.  818 RPL_SERVICES_GLIST - glist output

Syntax

:prefix 818 MESSAGE_TARGET NickServ ITEM_NUM : ITEM_TEXT

Where ITEM_NUM is number of item in the list.

Example

:prefix 818 Inviolatum NickServ 1 : 1. Invi[0xff]



 TOC 

3.20.  819 RPL_SERVICES_GLIST_END - End glist output

Glist end

Syntax

:prefix 819 MESSAGE_TARGET NickServ : End of glist

Example

:prefix 819 Inviolatum NickServ : End of glist



 TOC 

3.21.  820 RPL_SERVICES_MEMO_START - Start memo output

Starts memo output

Syntax

:prefix 820 MESSAGE_TARGET MemoServ MEMO_SENDER MEMO_TARGET :Memo start

Example

:prefix 820 Inviolatum MemoServ Alexey Inviolatum :Memo start



 TOC 

3.22.  821 RPL_SERVICES_MEMO - Memo output

Memo text

Syntax

:prefix 821 MESSAGE_TARGET MemoServ MEMO_SENDER MEMO_TARGET :TEXT

Where MEMO_SENDER - sender nick and TEXT is memo text.

Example

:prefix 821 Inviolatum MemoServ Alexey #kvirc :Hi!
:prefix 821 Inviolatum MemoServ Alexey Inviolatum :Hi!



 TOC 

3.23.  822 RPL_SERVICES_MEMO_END - End memo output

End of memo

Syntax

:prefix 822 MESSAGE_TARGET MemoServ MEMO_SENDER MEMO_TARGET :End of memo

Example

:prefix 822 Inviolatum MemoServ Alexey Inviolatum :End of memo



 TOC 

3.24.  823 RPL_SERVICES_CHANSERV_CHANKEY - Channel key

Returns the key of the given channel.

Syntax

:prefix 823 CHANNEL CHAN_KEY

Example

:prefix 823 #kvirc qwerty



 TOC 

4.  Queries



 TOC 

4.1.  Common



 TOC 

4.1.1.  IRCPLUS - enabling/disabling IRC+ mode

Enables or disables IRC+ mode.

Syntax

Query = ServiceNick "IRCPLUS" ( "ON" / "OFF" )

Numeric replies:



 TOC 

4.1.2.  IDENTIFY

Confirm nick or channel ownership.

Syntax

Query = ServiceNick "IDENTIFY" target [METHOD AUTH-DATA]

target being a target entity to identify, a user nickname in the case of NickServ or a channel in the case of ChanServ. ServiceNick can thus be one of:

If no METHOD AUTH-DATA given, server SHOULD send a greeting message (801 RPL_SERVICES_NEEDPASS - Need password) with a list of supported methods.

PLAIN auth sends password in open and unsecure way. It is not recommended to use it with a non-SSL connection. The syntax of plain auth is:

Syntax

Query = ServiceNick "IDENTIFY" target PLAIN password

Where pasword MUST be the password specified before using the REGISTER command.

SASL is a rather better system, that may use Diffie-Hellman key-exchange and Blowfish encryption.

Syntax

Query = ServiceNick "IDENTIFY" target SASL [...]

Numeric replies:



 TOC 

4.1.3.  INFO

Displays information about the given target

Syntax

Query = ServiceNick "INFO" target ["ALL"]

Target can be a channel if ServiceNick is ChanServ or a nick if ServiceNick is NickServ. If the keyword "ALL" is appended to the request, additional information will be returned in the reply.

Numeric replies:



 TOC 

4.1.4.  HELP

Shows services help for the given command or term.

Syntax


	    Query = ServiceNick "HELP" term [argument1 [argument2 [argument3 [argument4]]]]
             

Shows services help for the given term. If you provide an argument list, it will show an argument-dependent help.

Numeric replies:



 TOC 

4.1.5.  Drop

Drops a given target from services database

Syntax

Query = ServiceNick "DROP" target

Target can be a channel if ServiceNick is ChanServ or a nick if ServiceNick is NickServ. You have to auth with password before using this command.

Numeric replies:



 TOC 

4.1.6.  Set

Sets various options.

Syntax

Query = ServiceNick "SET" [target] option value

In order to use this command, the user is required to identify first.

Numeric replies:



 TOC 

4.2.  NickServ



 TOC 

4.2.1.  REGISTER

Registers your nickname in the NickServ database.

Syntax

Query = NickServ REGISTER password [email]

The parameter email is optional and will set the email associated with your nick immediately. However, it may be required on certain networks. Your privacy is respected; this e-mail won't be given to any third-party person.

Numeric replies:



 TOC 

4.2.2.  GROUP

This command makes your nickname join the target nickname's group.

Syntax

Query = NickServ GROUP target password

Where target is primary nick with password password.

Numeric replies:



 TOC 

4.2.3.  LOGOUT

This reverses the effect of the IDENTIFY command, i.e. make you not recognized as the real owner of the nick anymore. Note, however, that you won't be asked to reidentify yourself.

Syntax

Query = NickServ logout

Numeric replies:



 TOC 

4.2.4.  DROP

Drops a nickname from the NickServ database. A nick that has been dropped is free for anyone to re-register.

Syntax

Query = NickServ DROP nickname

Numeric replies:



 TOC 

4.2.5.  ACCESS

Modifies or displays the access list for your nick.



 TOC 

4.2.5.1.  ACCESS ADD

Adds allowed hostmask.

Syntax

Query = NickServ ACCESS ADD mask

Numeric replies:



 TOC 

4.2.5.2.  ACCESS DEL

Delete allowed hostmask.

Syntax

Query = NickServ ACCESS DEL mask

Numeric replies:



 TOC 

4.2.5.3.  ACCESS LIST

This is the list of addresses which will be automatically recognized by NickServ as allowed to use the registered nick.

Syntax

Query = NickServ ACCESS LIST

Numeric replies:

Numeric replies:



 TOC 

4.2.6.  RECOVER

Allows you to recover your nickname if someone else has taken it.

Syntax

Query = NickServ RECOVER nickname [password]

When you give this command, NickServ will bring a fake user online with the same nickname as the user you're trying to recover your nick from.

Numeric replies:



 TOC 

4.2.7.  RELEASE

Instructs NickServ to remove any hold on a user's nickname caused by automatic kill protection or use of the RECOVER command.

Syntax

Query = NickServ RELEASE nickname [password]

In order to use the RELEASE command for a nick, the user's current address (as shown in /WHOIS) MUST be on nickname's access list and the user MUST be identified with a nick in the same group of nickname, or the user MUST supply the correct password for nickname.

Numeric replies:



 TOC 

4.2.8.  GHOST

Terminates a "ghost" IRC session using your nick.

Syntax

Query = NickServ GHOST nickname [password]

In order to use the GHOST command for a nick, the user's current address (as shown in /WHOIS) MUST be on nickname's access list and the user MUST be identified with a nick in the same group of nickname, or the user MUST supply the correct password for nickname.

Numeric replies:



 TOC 

4.2.9.  GLIST

Lists all nicks in your group.

Syntax

Query = NickServ GLIST [nick]

Numeric replies:



 TOC 

4.2.10.  STATUS

Returns whether the user using the given nickname is recognized as the owner of the nickname.

Syntax

Query = NickServ STATUS [nickname1 [nickname2 [nickname3]]]

Up to sixteen nicknames may be sent with each command, the rest will be ignored. The nicknames may be specified either comma-delimited or space delimited. If no nickname is given, the status of the requesting nickname will be returned.

Numeric replies:



 TOC 

4.2.11.  SENDPASS

Sends the password of the given nickname to the e-mail address set in the nickname record.

Syntax

Query = NickServ SENDPASS nickname

May be limited to IRC operators on certain networks.

Numeric replies:



 TOC 

4.3.  ChanServ



 TOC 

4.3.1.  REGISTER

Registers a <channel> in the ChanServ database.

Syntax

Query = ChanServ REGISTER channel [password] [:description]

Numeric replies:



 TOC 

4.3.2.  DROP

Unregisters the named channel.

Syntax

Query = ChanServ DROP channel

Numeric replies:



 TOC 

4.3.3.  OP

Ops a selected nick on a channel.

Syntax

Query = ChanServ OP channel [nick]

Numeric replies:



 TOC 

4.3.4.  DEOP

Deops a selected nick on a channel.

Syntax

Query = ChanServ DEOP channel [nick]

Numeric replies:



 TOC 

4.3.5.  VOICE

Voices a selected nick on a channel.

Syntax

Query = ChanServ VOICE channel [nick]

Numeric replies:



 TOC 

4.3.6.  DEVOICE

Devoices a selected nick on a channel.

Syntax

Query = ChanServ DEVOICE channel [nick]

Numeric replies:



 TOC 

4.3.7.  HALFOP

Halfops a selected nick on a channel.

Syntax

Query = ChanServ HALFOP channel [nick]

Numeric replies:



 TOC 

4.3.8.  DEHALFOP

Dehalfops a selected nick on a channel.

Syntax

Query = ChanServ DEHALFOP channel [nick]

Numeric replies:



 TOC 

4.3.9.  PROTECT

Protects a selected nick on a channel.

Syntax

Query = ChanServ PROTECT channel [nick]

Numeric replies:



 TOC 

4.3.10.  DEPROTECT

Deprotects a selected nick on a channel.

Syntax

Query = ChanServ DEPROTECT channel [nick]

Numeric replies:



 TOC 

4.3.11.  OWNER

Gives you owner status on channel.

Syntax

Query = ChanServ OWNER channel

Numeric replies:



 TOC 

4.3.12.  DEOWNER

Removes your owner status on channel.

Syntax

Query = ChanServ DEOWNER channel

Numeric replies:



 TOC 

4.3.13.  INVITE

Tells ChanServ to invite you (or someone else) into the given channel.

Syntax

Query = ChanServ INVITE channel [target]

Numeric replies:



 TOC 

4.3.14.  UNBAN

Tells ChanServ to remove all bans preventing you (or someone else) from entering the given channel.

Syntax

Query = ChanServ UNBAN channel [nick]

Numeric replies:



 TOC 

4.3.15.  KICK

Kicks a selected nick on a channel.

Syntax

Query = ChanServ KICK channel nick [reason]

Numeric replies:



 TOC 

4.3.16.  BAN

Bans a selected nick on a channel.

Syntax

Query = ChanServ BAN channel nick

Numeric replies:



 TOC 

4.3.17.  TOPIC

Causes ChanServ to set the channel topic to the specified one.

Syntax

Query = ChanServ TOPIC channel topic

Numeric replies:



 TOC 

4.3.18.  CLEAR

Tells ChanServ to clear certain settings on a channel.

Syntax

Query = ChanServ CLEAR channel what

Numeric replies:



 TOC 

4.3.19.  GETKEY

Returns the key of the given channel.

Syntax

Query = ChanServ GETKEY channel

Numeric replies:



 TOC 

4.4.  MemoServ



 TOC 

4.4.1.  SEND

Sends to the specified nick or channel a memo containing memo-text.

Syntax

Query = MemoServ SEND memo-target memo-text

Numeric replies:



 TOC 

4.4.2.  LIST

Lists all your currently pending memos.

Syntax

Query = MemoServ LIST [channel] [list | NEW]

Numeric replies:



 TOC 

4.4.3.  READ

Sends you the text of the memos specified.

Syntax

Query = MemoServ READ [channel] {num | list | LAST | NEW}

Numeric replies:



 TOC 

4.4.4.  RSEND

Sends to the specified nick or channel a memo containing memo-text. When sending to a nickname, the recipient will receive a notice that he/she has a new memo. The target nickname/channel must be registered. Once the memo is read by its recipient, an automatic notification memo will be sent to the sender informing him/her that the memo has been read.

Syntax

Query = MemoServ RSEND memo-target memo-text

Numeric replies:



 TOC 

4.4.5.  DEL

Deletes the specified memo or memos.

Syntax

Query = MemoServ DEL [channel] (list / "LAST" / "ALL")

List SHOULD be a number range, such as 1-9 or 1-9,12

If LAST is given, the last memo will be deleted. If ALL is given, deletes all of your memos.

Numeric replies:



 TOC 

4.4.6.  STAFF

Sends all services staff a memo containing memo-text.

Syntax

Query = MemoServ STAFF memo-text

Numeric replies:



 TOC 

5. Normative References



 TOC 

Appendix A.  Error codes



 TOC 

Appendix B.  Nick status codes



 TOC 

Appendix C.  XML definition of the services capabilities

The example (not ready yet):

Example:

<ircplus>
<chanserv></chanserv>
<nickserv></nickserv>
<memoserv></memoserv>
</irclplus>


 TOC 

Authors' Addresses

  Alexey
  KVIrc Development Team
  Bibliotechnaya
  Volgograd, Volgograd
  Russia
Phone:  +7 905 333 50 50
Fax: 
Email: 
URI:  http://www.kvirc.ru
  
  Anna Gulchouk
  KVIrc Development Team
  Maydan Nezalezhnosti
  Kiev, 01140
  Ukraine
Phone:  +380 96 978 67 50
Fax: 
Email:  inviolatums@gmail.com
URI:  http://www.kvirc.ru
  
  Adam Schrotenboer
  SurrealServices project
  El Camino Real
  Mountain View, California 94040
  United States
Phone: 
Fax: 
Email: 
URI:  http://www.surrealchat.net/wiki/SurrealServices
  
  William Pitcock
  atheme.org
  1428 S Evanston Ave.
  Tulsa, Oklahoma 74104
  United States of America
Phone:  +1 (918) 814-0311
Fax: 
Email:  nenolod@atheme.org
URI:  http://www.nenolod.net
  
  Carlo v. Loesch
  psyc://psyced.org/~lynX
  Berlin, Berlin
 
Phone: 
Fax: 
Email:  psyc://psyced.org/~lynX
URI:  http://my.pages.de/


 TOC 

Full Copyright Statement

Intellectual Property

Acknowledgment