IRC Services Manual

1. About IRC Services

1-1. Introduction
1-2. Overview of IRC Services clients
1-3. IRC Services download site
1-4. IRC Services discussion forums
1-5. Credits and acknowledgements
1-6. Contacting the author

Table of Contents | Next section: About IRC Services


1-1. Introduction

IRC Services (also called just "Services" for short) is a system of services to be used with Internet Relay Chat networks. Services provides for definitive nickname and channel ownership, as well as the ability to send messages ("memos") to offline users, and gives IRC operators considerably more control over the network.

In particular, Services provides the following features to an IRC network:

Furthermore, each of these sets of features can be configured or disabled to match individual networks' policies.

Back to top


1-2. Overview of Services clients

Each of the major feature groups mentioned in section 1-1 above is controlled through a Services client, a nickname associated with that particular set of features. (These are often called "pseudoclients", since they are not true clients, like IRC programs used by humans, but conveniences to simplify access to Services' features.) These clients, as well as others which handle smaller areas of network control, are briefly described below; a more detailed discussion of each feature is presented in section 3, while complete information on each of the commands used to control each client can be found in section 4.

NickServ handles registration and maintenance of nicknames. Its primary functions include:

Services has the ability to send messages to users in multiple languages; a user who has registered their nickname can select from any of the supported languages (English, Dutch, French, German, Hungarian, Japanese, Russian, Spanish, and Turkish). A default language can also be configured for users who have not registered their nicknames or have not selected a specific language.

Furthermore, NickServ has the ability to verify E-mail addresses associated with nicknames, by sending an "authentication code" to the E-mail address and not allowing the owner any privileges associated with the nickname until the owner sends that authentication code back to NickServ. This feature can help maintain accountability of users for their actions on IRC by requiring a valid E-mail address at which the user of a nickname can be contacted if problems arise.

ChanServ is to channels what NickServ is to nicknames; it handles registration and maintenance of channels on the IRC network. Its functions in large part mirror those of NickServ, and include:

One major difference between nicknames and channels is the access list. While nicknames may have an "access list" that lists addresses which NickServ will recognize as "allowed to use the nickname"—a feature that has little value if passwords are used as the primary means of verification—channel access lists play a much greater role, in that they control which users (nicknames) have what degree of access to (privileges in) the channel. The founder of a channel will always have full access to the channel, but the founder can, via the access list, designate other users who will receive a certain subset of channel privileges. For example, the founder might give privileges to some users to automatically receive channel operator (+o) status when they enter the channel; those users might then, in turn, designate other users to automatically receive voice (+v) status if the channel is moderated. Certain levels of access also allow users to use privileged ChanServ features, such as management of the "autokick list", explained below, or commands which remove channel bans on a user or invite the user into a channel.

Conversely, the autokick list (often referred to as the "AKICK list", from the name of the command—AKICK—which controls it) specifies users which are not to be allowed access to the channel at all. If a user joins a channel whose autokick list they are listed on, ChanServ will kick them out of the channel and set a channel ban which prevents them from entering again. Since a malicious user could easily enter using an unregistered nickname, channel founders (or other privileged users) can enter username/hostname masks as well as nicknames in the autokick list.

As channels are complex beasts, ChanServ features many options which control how the channel is managed; for example, ChanServ can be set to disallow any changes to the channel topic (if a user changes the topic, ChanServ will cancel the change by restoring the previous topic), or to prevent any users not explicitly entered in the access list from using the channel. ChanServ can also enforce a certain set of modes on a channel; for example, a channel which wants to stay hidden from casual users could use ChanServ to ensure that the +s (secret) mode is always set on the channel.

If the founder of a channel loses his nickname, whether by explicitly dropping it or by letting it expire, the channel will be dropped as well. If this should happen by accident, it can be difficult to restore all of the channel settings. To help avoid this problem, ChanServ allows channel founders to designate a successor for the channel. If the founder's nickname should ever be dropped or expire, then ChanServ will give the channel to the successor—making them the new founder of the channel—rather than dropping the channel.

MemoServ handles storage and notification of memos, short messages between IRC users. Memos can be thought of as an intermediate stage between realtime chat and E-mail; they are sent and read in the same way as ordinary chatting, but can be sent even if the recipient is not online at the time, and the recipient can read the memos at his or her leisure. Memos are particularly useful for short messages for which it would not be worth the time to start up an E-mail client and type out a complete message, or for cases where the nickname of the recipient is known but the recipient's E-mail address is not (or the recipient does not have an E-mail address at all).

MemoServ's four main functions are sending memos, listing memos which have been received, reading memos, and deleting memos after they have been read. Users can also set memo options, which include whether to notify them of new memos when they log on and whether they should be able to receive memos at all, and can have memos automatically forwarded to an authenticated E-mail address.

In addition to memos between users, memos can also be sent to channels; such memos will be sent to all users with sufficient privileges on the channel. This type of memo can be used, for example, to inform channel operators about a problem user, or as a way for users to ask questions about the channel.

OperServ provides access to the "network control" functionality of Services. Available only to IRC operators, OperServ allows:

Many of these functions can, if misused, have disastrous effects for the entire network; thus, OperServ implements a privilege system to limit which IRC operators can use which functions. Four different privilege levels are defined: normal IRC operator, Services operator, Services administrator, and Services super-user (also known as "Services root", from the Unix tradition of using the username "root" for the system super-user). Normal IRC operators can use very few of the functions above, while the Services super-user has absolute control over Services and the IRC network.

Of particular note are the autokill list and S-line features, which are to the network as autokick lists are to channels; users in these lists will be prohibited from connecting to any server on the network, and will be disconnected immediately if they do connect. The difference between the two is what they prohibit; the autokill list prohibits certain combinations of username and hostname, much like autokick lists do, while S-lines, named after the commands used by a certain IRC server to implement them, prohibit nicknames, "real names", or IP addresses (IP address checking is only available with a few IRC servers).

OperServ also includes a separate client, by default called Global, which is used to send global (network-wide) notices and news messages to users. Many networks rename this client to the same name as their network; the name of the client (as well as all other Services clients) can be changed by editing the configuration file, as described in section 2-4.

StatServ is an additional client which monitors and keeps basic statistical information regarding network usage. It can be useful to check, for example, which servers are getting the most use, or whether certain servers have a tendency to split from the network frequently.

In addition to the clients above, Services also has a built-in HTTP (web) server, which allows access to Services information (such as registered nickname and channel information and network statistics) without having to connect to the IRC network. See section 3-6 for more information about the HTTP server.

Back to top


1-3. IRC Services download site

Development and maintenance of IRC Services has been discontinued. As of the writing of this manual, historical information can be found at http://achurch.org/services/.

Back to top


1-4. IRC Services discussion forums

Two mailing lists were previously provided for discussion of Services: ircservices, for general discussion, and ircservices-coding, for technical issues. These mailing lists were disabled on January 1, 2010, but archives of the lists are available at the historical information site listed in section 1-3 above.

Back to top


1-5. Credits and acknowledgements

Services is primarily the work of Andrew Church, and was developed from early 1996 through 2009; a somewhat more detailed history can be found in section 1-3 of the technical manual. However, many people have contributed ideas, bug reports, or other help to the project as well. Some of the more noteworthy contributors include:

Credit is given to all contributions in the Changes and Changes.old files in this directory, which detail all changes made in each version of Services.

Back to top


1-6. Contacting the author

The author may be contacted via E-mail at achurch@achurch.org as of the writing of this manual.

Back to top


Table of Contents | Next section: About IRC Services