1 |
michael |
3389 |
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
2 |
|
|
<html> |
3 |
|
|
<head> |
4 |
|
|
<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1"> |
5 |
|
|
<title>IRC Services Manual - 1. About IRC Services</title> |
6 |
|
|
</head> |
7 |
|
|
|
8 |
|
|
<body> |
9 |
|
|
<a name=top></a> |
10 |
|
|
<h1 align=center>IRC Services Manual</h1> |
11 |
|
|
|
12 |
|
|
<h2 align=center>1. About IRC Services</h2> |
13 |
|
|
|
14 |
|
|
<p>1-1. <a href="#1">Introduction</a> |
15 |
|
|
<br>1-2. <a href="#2">Overview of IRC Services clients</a> |
16 |
|
|
<br>1-3. <a href="#3">IRC Services download site</a> |
17 |
|
|
<br>1-4. <a href="#4">IRC Services discussion forums</a> |
18 |
|
|
<br>1-5. <a href="#5">Credits and acknowledgements</a> |
19 |
|
|
<br>1-6. <a href="#6">Contacting the author</a> |
20 |
|
|
|
21 |
|
|
<p align=right><font size=-1><a href=index.html>Table of Contents</a> | |
22 |
|
|
<a href=2.html>Next section: About IRC Services</a></font> |
23 |
|
|
|
24 |
|
|
<p><hr> |
25 |
|
|
|
26 |
|
|
<a name=1></a> |
27 |
|
|
<h3>1-1. Introduction</h3> |
28 |
|
|
|
29 |
|
|
<p>IRC Services (also called just "Services" for short) is a system of |
30 |
|
|
services to be used with Internet Relay Chat networks. Services provides |
31 |
|
|
for definitive nickname and channel ownership, as well as the ability to |
32 |
|
|
send messages ("memos") to offline users, and gives IRC operators |
33 |
|
|
considerably more control over the network. |
34 |
|
|
|
35 |
|
|
<p>In particular, Services provides the following features to an IRC |
36 |
|
|
network: |
37 |
|
|
|
38 |
|
|
<p><ul> |
39 |
|
|
<li><b>Nickname management.</b> Services allows users to "register" |
40 |
|
|
nicknames, and will prevent users other than the registrant from using |
41 |
|
|
them. Services also maintains information about each registered nickname, |
42 |
|
|
including the last time the nick's owner was online as well as a URL and |
43 |
|
|
E-mail address that can be set by the user. |
44 |
|
|
|
45 |
|
|
<li><b>Channel management.</b> Like nicknames, Services allows users to |
46 |
|
|
register channels as well. A channel's owner can give privileges to other |
47 |
|
|
users of the channel, such as auto-opping or the ability to set various |
48 |
|
|
channel options, or conversely deny other users the ability to obtain |
49 |
|
|
channel operator privileges or even enter the channel altogether. Services |
50 |
|
|
will remember the topic on the channel even after the last user leaves, and |
51 |
|
|
can automatically set modes on the channel whenever a user joins it. |
52 |
|
|
|
53 |
|
|
<li><b>Messages to offline users.</b> Probably every IRC user has gone |
54 |
|
|
through the experience of waiting and waiting for someone to come online in |
55 |
|
|
order to pass a message along or ask a question. Services alleviates this |
56 |
|
|
with a "memo" system, allowing users to leave messages for other users even |
57 |
|
|
if the recipient is not online at the time; the recipient will be notified |
58 |
|
|
of the memo the next time they log on. |
59 |
|
|
|
60 |
|
|
<li><b>Centralized network control.</b> Services includes features which |
61 |
|
|
allow IRC operators greater control over the IRC network through a single |
62 |
|
|
point, and also defines multiple privilege levels for IRC operators with |
63 |
|
|
respect to Services itself. For example, IRC operators with sufficient |
64 |
|
|
privileges can use Services to set modes on any channel; it is also |
65 |
|
|
possible to ban users or groups of users from connecting to the network |
66 |
|
|
entirely, and such bans ("autokills" in Services terminology) will remain |
67 |
|
|
active even if a server, or Services itself, splits from the network. |
68 |
|
|
</ul> |
69 |
|
|
|
70 |
|
|
<p>Furthermore, each of these sets of features can be configured or |
71 |
|
|
disabled to match individual networks' policies. |
72 |
|
|
|
73 |
|
|
<p align=right><font size="-1"><a href="#top">Back to top</a></font> |
74 |
|
|
|
75 |
|
|
<p><hr> |
76 |
|
|
|
77 |
|
|
<a name=2></a> |
78 |
|
|
<h3>1-2. Overview of Services clients</h3> |
79 |
|
|
|
80 |
|
|
<p>Each of the major feature groups mentioned in <a href="#1">section |
81 |
|
|
1-1</a> above is controlled through a Services <i>client</i>, a nickname |
82 |
|
|
associated with that particular set of features. (These are often called |
83 |
|
|
"pseudoclients", since they are not true clients, like IRC programs used by |
84 |
|
|
humans, but conveniences to simplify access to Services' features.) These |
85 |
|
|
clients, as well as others which handle smaller areas of network control, |
86 |
|
|
are briefly described below; a more detailed discussion of each feature is |
87 |
|
|
presented in <a href=3.html>section 3</a>, while complete information on |
88 |
|
|
each of the commands used to control each client can be found in |
89 |
|
|
<a href=4.html>section 4</a>. |
90 |
|
|
|
91 |
|
|
<p><b>NickServ</b> handles registration and maintenance of nicknames. Its |
92 |
|
|
primary functions include: |
93 |
|
|
<p> |
94 |
|
|
<ul><li>registration and de-registration (dropping) of nicknames; |
95 |
|
|
<li>verification of nickname users, including password authentication, |
96 |
|
|
and removal (either automatically or upon request) of unauthorized |
97 |
|
|
users; |
98 |
|
|
<li>creation and deletion of nickname aliases (links), which allow a |
99 |
|
|
single user to own and switch between multiple nicknames which |
100 |
|
|
share settings; |
101 |
|
|
<li>control of nickname options, including security level (whether to |
102 |
|
|
require a password or simply check the user's username and |
103 |
|
|
hostname), associated URL and E-mail address, and what information |
104 |
|
|
to show or not show to other users; |
105 |
|
|
<li>recording of nickname usage information, including the nickname's |
106 |
|
|
last used time and the username and hostname of the nickname's last |
107 |
|
|
user; and |
108 |
|
|
<li>expiration of nicknames that have not been used in a certain period |
109 |
|
|
of time.</ul> |
110 |
|
|
|
111 |
|
|
<p>Services has the ability to send messages to users in multiple |
112 |
|
|
languages; a user who has registered their nickname can select from any of |
113 |
|
|
the supported languages (English, Dutch, French, German, Hungarian, |
114 |
|
|
Japanese, Russian, Spanish, and Turkish). A default language can also be |
115 |
|
|
configured for users who have not registered their nicknames or have not |
116 |
|
|
selected a specific language. |
117 |
|
|
|
118 |
|
|
<p>Furthermore, NickServ has the ability to verify E-mail addresses |
119 |
|
|
associated with nicknames, by sending an "authentication code" to the |
120 |
|
|
E-mail address and not allowing the owner any privileges associated with |
121 |
|
|
the nickname until the owner sends that authentication code back to |
122 |
|
|
NickServ. This feature can help maintain accountability of users for their |
123 |
|
|
actions on IRC by requiring a valid E-mail address at which the user of a |
124 |
|
|
nickname can be contacted if problems arise. |
125 |
|
|
|
126 |
|
|
<p><b>ChanServ</b> is to channels what NickServ is to nicknames; it handles |
127 |
|
|
registration and maintenance of channels on the IRC network. Its functions |
128 |
|
|
in large part mirror those of NickServ, and include: |
129 |
|
|
<p> |
130 |
|
|
<ul><li>registration and dropping of channels (a user who registers a |
131 |
|
|
channel is known as the channel's <i>founder</i>); |
132 |
|
|
<li>verification of channel users, through either direct password |
133 |
|
|
authentication or NickServ verification; |
134 |
|
|
<li>control of channel access and autokick lists (see below); |
135 |
|
|
<li>monitoring and adjustment of channel modes, including automatically |
136 |
|
|
giving channel-operator or voice privileges or "inviting" |
137 |
|
|
authorized users into invite-only channels; |
138 |
|
|
<li>control of channel options, such as preventing users from changing |
139 |
|
|
the topic or controlling the strictness with which channel modes |
140 |
|
|
and privileges are enforced, and setting a URL or E-mail address |
141 |
|
|
for the channel; |
142 |
|
|
<li>recording of channel usage information, including the last time a |
143 |
|
|
verified user was in the channel; and |
144 |
|
|
<li>expiration of channels that have not been used in a certain period |
145 |
|
|
of time. |
146 |
|
|
</ul> |
147 |
|
|
|
148 |
|
|
<p>One major difference between nicknames and channels is the <i>access |
149 |
|
|
list</i>. While nicknames may have an "access list" that lists addresses |
150 |
|
|
which NickServ will recognize as "allowed to use the nickname"—a |
151 |
|
|
feature that has little value if passwords are used as the primary means of |
152 |
|
|
verification—channel access lists play a much greater role, in that |
153 |
|
|
they control which users (nicknames) have what degree of access to |
154 |
|
|
(privileges in) the channel. The founder of a channel will always have |
155 |
|
|
full access to the channel, but the founder can, via the access list, |
156 |
|
|
designate other users who will receive a certain subset of channel |
157 |
|
|
privileges. For example, the founder might give privileges to some users |
158 |
|
|
to automatically receive channel operator (<tt>+o</tt>) status when they |
159 |
|
|
enter the channel; those users might then, in turn, designate other users |
160 |
|
|
to automatically receive voice (<tt>+v</tt>) status if the channel is |
161 |
|
|
moderated. Certain levels of access also allow users to use privileged |
162 |
|
|
ChanServ features, such as management of the "autokick list", explained |
163 |
|
|
below, or commands which remove channel bans on a user or invite the user |
164 |
|
|
into a channel. |
165 |
|
|
|
166 |
|
|
<p>Conversely, the <i>autokick list</i> (often referred to as the "AKICK |
167 |
|
|
list", from the name of the command—<tt>AKICK</tt>—which |
168 |
|
|
controls it) specifies users which are not to be allowed access to the |
169 |
|
|
channel at all. If a user joins a channel whose autokick list they are |
170 |
|
|
listed on, ChanServ will kick them out of the channel and set a channel ban |
171 |
|
|
which prevents them from entering again. Since a malicious user could |
172 |
|
|
easily enter using an unregistered nickname, channel founders (or other |
173 |
|
|
privileged users) can enter username/hostname masks as well as nicknames in |
174 |
|
|
the autokick list. |
175 |
|
|
|
176 |
|
|
<p>As channels are complex beasts, ChanServ features many options which |
177 |
|
|
control how the channel is managed; for example, ChanServ can be set to |
178 |
|
|
disallow any changes to the channel topic (if a user changes the topic, |
179 |
|
|
ChanServ will cancel the change by restoring the previous topic), or to |
180 |
|
|
prevent any users not explicitly entered in the access list from using the |
181 |
|
|
channel. ChanServ can also enforce a certain set of modes on a channel; |
182 |
|
|
for example, a channel which wants to stay hidden from casual users could |
183 |
|
|
use ChanServ to ensure that the <tt>+s</tt> (secret) mode is always set on |
184 |
|
|
the channel. |
185 |
|
|
|
186 |
|
|
<p>If the founder of a channel loses his nickname, whether by explicitly |
187 |
|
|
dropping it or by letting it expire, the channel will be dropped as well. |
188 |
|
|
If this should happen by accident, it can be difficult to restore all of |
189 |
|
|
the channel settings. To help avoid this problem, ChanServ allows channel |
190 |
|
|
founders to designate a <i>successor</i> for the channel. If the founder's |
191 |
|
|
nickname should ever be dropped or expire, then ChanServ will give the |
192 |
|
|
channel to the successor—making them the new founder of the |
193 |
|
|
channel—rather than dropping the channel. |
194 |
|
|
|
195 |
|
|
<p><b>MemoServ</b> handles storage and notification of <i>memos</i>, short |
196 |
|
|
messages between IRC users. Memos can be thought of as an intermediate |
197 |
|
|
stage between realtime chat and E-mail; they are sent and read in the same |
198 |
|
|
way as ordinary chatting, but can be sent even if the recipient is not |
199 |
|
|
online at the time, and the recipient can read the memos at his or her |
200 |
|
|
leisure. Memos are particularly useful for short messages for which it |
201 |
|
|
would not be worth the time to start up an E-mail client and type out a |
202 |
|
|
complete message, or for cases where the nickname of the recipient is known |
203 |
|
|
but the recipient's E-mail address is not (or the recipient does not have |
204 |
|
|
an E-mail address at all). |
205 |
|
|
|
206 |
|
|
<p>MemoServ's four main functions are <i>sending</i> memos, <i>listing</i> |
207 |
|
|
memos which have been received, <i>reading</i> memos, and <i>deleting</i> |
208 |
|
|
memos after they have been read. Users can also set memo options, which |
209 |
|
|
include whether to notify them of new memos when they log on and whether |
210 |
|
|
they should be able to receive memos at all, and can have memos |
211 |
|
|
automatically forwarded to an authenticated E-mail address. |
212 |
|
|
|
213 |
|
|
<p>In addition to memos between users, memos can also be sent to channels; |
214 |
|
|
such memos will be sent to all users with sufficient privileges on the |
215 |
|
|
channel. This type of memo can be used, for example, to inform channel |
216 |
|
|
operators about a problem user, or as a way for users to ask questions |
217 |
|
|
about the channel. |
218 |
|
|
|
219 |
|
|
<p><b>OperServ</b> provides access to the "network control" functionality |
220 |
|
|
of Services. Available only to IRC operators, OperServ allows: |
221 |
|
|
<p> |
222 |
|
|
<ul><li>broadcasts of messages to the entire network (global notices), as |
223 |
|
|
well as recording of news messages to be sent to users when they |
224 |
|
|
connect to the network; |
225 |
|
|
<li>control of modes in any channel, as well as the ability to kick any |
226 |
|
|
user from any channel; |
227 |
|
|
<li>banning certain users from the entire network (autokill list and |
228 |
|
|
S-lines, described below); |
229 |
|
|
<li>limiting the number of users which can connect from a single IP |
230 |
|
|
address, useful for preventing "cloning" (sessions), as well as |
231 |
|
|
making exceptions to those limits; |
232 |
|
|
<li>disconnecting all users from a given IP address; |
233 |
|
|
<li>preventing certain servers from connecting to the network |
234 |
|
|
("juping"); |
235 |
|
|
<li>setting global Services options; and |
236 |
|
|
<li>restarting or shutting down Services itself. |
237 |
|
|
</ul> |
238 |
|
|
|
239 |
|
|
<p>Many of these functions can, if misused, have disastrous effects for the |
240 |
|
|
entire network; thus, OperServ implements a privilege system to limit which |
241 |
|
|
IRC operators can use which functions. Four different privilege levels are |
242 |
|
|
defined: normal IRC operator, Services operator, Services administrator, |
243 |
|
|
and Services super-user (also known as "Services root", from the Unix |
244 |
|
|
tradition of using the username "root" for the system super-user). Normal |
245 |
|
|
IRC operators can use very few of the functions above, while the Services |
246 |
|
|
super-user has absolute control over Services and the IRC network. |
247 |
|
|
|
248 |
|
|
<p>Of particular note are the <i>autokill list</i> and <i>S-line</i> |
249 |
|
|
features, which are to the network as autokick lists are to channels; users |
250 |
|
|
in these lists will be prohibited from connecting to any server on the |
251 |
|
|
network, and will be disconnected immediately if they do connect. The |
252 |
|
|
difference between the two is what they prohibit; the autokill list |
253 |
|
|
prohibits certain combinations of username and hostname, much like autokick |
254 |
|
|
lists do, while S-lines, named after the commands used by a certain IRC |
255 |
|
|
server to implement them, prohibit nicknames, "real names", or IP addresses |
256 |
|
|
(IP address checking is only available with a few IRC servers). |
257 |
|
|
|
258 |
|
|
<p>OperServ also includes a separate client, by default called |
259 |
|
|
<b>Global</b>, which is used to send global (network-wide) notices and news |
260 |
|
|
messages to users. Many networks rename this client to the same name as |
261 |
|
|
their network; the name of the client (as well as all other Services |
262 |
|
|
clients) can be changed by editing the configuration file, as described in |
263 |
|
|
<a href="2.html#4">section 2-4</a>. |
264 |
|
|
|
265 |
|
|
<p><b>StatServ</b> is an additional client which monitors and keeps basic |
266 |
|
|
statistical information regarding network usage. It can be useful to |
267 |
|
|
check, for example, which servers are getting the most use, or whether |
268 |
|
|
certain servers have a tendency to split from the network frequently. |
269 |
|
|
|
270 |
|
|
<p><b>In addition</b> to the clients above, Services also has a built-in |
271 |
|
|
HTTP (web) server, which allows access to Services information (such as |
272 |
|
|
registered nickname and channel information and network statistics) without |
273 |
|
|
having to connect to the IRC network. See <a href="3.html#6">section |
274 |
|
|
3-6</a> for more information about the HTTP server. |
275 |
|
|
|
276 |
|
|
<p align=right><font size="-1"><a href="#top">Back to top</a></font> |
277 |
|
|
|
278 |
|
|
<p><hr> |
279 |
|
|
|
280 |
|
|
<a name=3></a> |
281 |
|
|
<h3>1-3. IRC Services download site</h3> |
282 |
|
|
|
283 |
|
|
<p>Development and maintenance of IRC Services has been discontinued. |
284 |
|
|
As of the writing of this manual, historical information can be found at |
285 |
|
|
<a href="http://achurch.org/services/"><tt>http://achurch.org/services/</tt></a>. |
286 |
|
|
|
287 |
|
|
<p align=right><font size="-1"><a href="#top">Back to top</a></font> |
288 |
|
|
|
289 |
|
|
<p><hr> |
290 |
|
|
|
291 |
|
|
<a name=4></a> |
292 |
|
|
<h3>1-4. IRC Services discussion forums</h3> |
293 |
|
|
|
294 |
|
|
<p>Two mailing lists were previously provided for discussion of Services: |
295 |
|
|
<i>ircservices</i>, for general discussion, and <i>ircservices-coding</i>, |
296 |
|
|
for technical issues. These mailing lists were disabled on January 1, 2010, |
297 |
|
|
but archives of the lists are available at the historical information site |
298 |
|
|
listed in <a href="#3">section 1-3</a> above. |
299 |
|
|
|
300 |
|
|
<p align=right><font size="-1"><a href="#top">Back to top</a></font> |
301 |
|
|
|
302 |
|
|
<p><hr> |
303 |
|
|
|
304 |
|
|
<a name=5></a> |
305 |
|
|
<h3>1-5. Credits and acknowledgements</h3> |
306 |
|
|
|
307 |
|
|
<p>Services is primarily the work of <a href="http://achurch.org/"><b>Andrew |
308 |
|
|
Church</b></a>, and was developed from early 1996 through 2009; a somewhat |
309 |
|
|
more detailed history can be found in <a href="tech/1.html#s3">section 1-3 |
310 |
|
|
of the technical manual</a>. However, many people have contributed ideas, |
311 |
|
|
bug reports, or other help to the project as well. Some of the more |
312 |
|
|
noteworthy contributors include: |
313 |
|
|
<ul> |
314 |
|
|
<li><b>Andrew Kempe</b> (session limiting and news systems, as well as |
315 |
|
|
maintenance and development of Services for versions 4.3 and 4.4) |
316 |
|
|
<li><b>Yusuf Iskenderoglu</b> (Turkish translation and many feature suggestions) |
317 |
|
|
<li><b>Martin Pels</b> (Dutch translation) |
318 |
|
|
<li><b>Elijah</b> (French translation) |
319 |
|
|
<li><b>Jacek Margos</b> and <b>Holger Baust</b> (German translation) |
320 |
|
|
<li><b>Janos Kapitany</b> and <b>Krisztian Romek</b> (Hungarian translation) |
321 |
|
|
<li><b>Alexander Zverev</b> (Russian translation) |
322 |
|
|
<li><b><RealCFC@chatfirst.com></b> (Spanish translation) |
323 |
|
|
</ul> |
324 |
|
|
Credit is given to all contributions in the |
325 |
|
|
<tt><a href="Changes">Changes</a></tt> and |
326 |
|
|
<tt><a href="Changes.old">Changes.old</a></tt> files in this directory, |
327 |
|
|
which detail all changes made in each version of Services. |
328 |
|
|
|
329 |
|
|
<p align=right><font size="-1"><a href="#top">Back to top</a></font> |
330 |
|
|
|
331 |
|
|
<p><hr> |
332 |
|
|
|
333 |
|
|
<a name=6></a> |
334 |
|
|
<h3>1-6. Contacting the author</h3> |
335 |
|
|
|
336 |
|
|
<p>The author may be contacted via E-mail at |
337 |
|
|
<tt><a href="mailto:achurch@achurch.org">achurch@achurch.org</a></tt> |
338 |
|
|
as of the writing of this manual. |
339 |
|
|
|
340 |
|
|
<p align=right><font size="-1"><a href="#top">Back to top</a></font> |
341 |
|
|
|
342 |
|
|
<p><hr> |
343 |
|
|
|
344 |
|
|
<p align=right><font size=-1><a href=index.html>Table of Contents</a> | |
345 |
|
|
<a href=2.html>Next section: About IRC Services</a></font> |
346 |
|
|
|
347 |
|
|
</body> |
348 |
|
|
</html> |