STEP #13:

# Configure the IRC Client module *NEW*

Last revised July 29th, 1996

The new capabilities illustrated here have been added to the IRC Beta 2 version. All options pertaining to these new features have been marked with the *NEW* tag in this section of the manual. New features include: a list of default IRC servers that will be cycled through if the BBS cannot connect to a server, default nickname and description for each user and standard accounting and security features that let you set various access keys and credit charge rates for IRC usage. Note that should any problems arise, you should report them to our technical support staff.

- Added “trick” paragraph and section new facilities in the IRC Server list (SERVnn option).

- Added /QUOTEKEY key (level 3 CNF) that restricts access to the /QUOTE command.

- /QUOTE is a porwerfull command letting you send “RAW” commands to an IRC Server.

- Added CARABT, ULBASE and MOTDDSP options in level 4 CNF, TCPIRC.MSG.

- Added the UPLOAD, DCCSEND, DCCCANCEL and /QUOTE command to the IRC commands available online.

## Overview

IRC stands for Internet Relay Chat. It was developed in 1988, as a way for people on the Internet to chat with each other. It’s like the MajorBBS/Worldgroup teleconference, except on a much wider scale. Some parts of the IRC have over 5000 people chatting at once. There are usually thousands of channels or topics to choose from.

Like the rest of the internet, the IRC is a system based on the principal of redundancy. There’s no central system that people hook-up to. Instead, we have several dozen servers linked together that act as entry points to the IRC network. Each server knows who is on the network and what channels these people are on. When a person types something on his machine, the message is broadcast thruout the network. If it happens to be a private line of text, only the server with the user whom the message is addressed to will display it. IRC servers are connected to a number of other servers. The whole forms the IRC network. Should one server go down, the traffic would simply employ an alternate path. This maintains the network’s stability.

#### The Nitty Gritty

Each user that wishes to connect to the IRC networks does so using a program called an IRC client. The IRC client takes care of transmitting and receiving information between itself and the server the user connects to. In the case of MajorTCP/IP, each user uses an “instance” of the IRC client. To make it simpler, consider that each user on the MajorTCP/IP IRC client is a client on the IRC network. So if you have 10 people using IRC on your machine, they are 10 clients using the network.

The server you connect to does two things: it transmits data from client to server, and from server to server. The network of servers form the IRC network you are using. The number of servers out there is relatively unimportant. The more servers there are, the more people can go on IRC. On the other hand, the slower the response time as packets that go from your keyboard to a friend’s screen at the other side of the network has more hops to make.

Another problem is that the more servers you have on the network, the more connections you have that links one server to a number of others. It takes time for a server to decide how it’ll route a packet towards the destination. Ergo: the more connections you have for a particular server, the longer it takes this server to decide where to send the packet next.

Finally, there is more than one IRC network. The most important ones are the Efnet and the Undernet. People who are using a server on one network cannot talk to people connected to a server on the other network.

#### Problems with the IRC network

IRC is not the most stable environment to operate on. The biggest problems one sees on the various IRC networks are:

 Net-Splits Occurs when one server on the network goes down.

 Net-Lag Occurs when traffic on the network exceeds the total bandwidth.

 IRC-Wars Occurs when troublemakers go on a rampage to annoy normal users.

#### Net-Splits

A net-split occurs when one or more server goes down, or the connection from one server to other servers goes down. Usually, what a user on a channel sees is that several people seem to log-off simultaneously from the current channel. What’s really happening is that the server those people are on has lost contact with the server our hypothetical user is on. Sometimes, entire segments of an IRC network can go down, generating some of the more spectacular net-split episodes. The funny thing about a net-split is that those users on the affected server see the same thing! They see the people on the other servers disconnecting en-masse.

There are many reasons WHY a net-split can occur. Sometimes, it’s the physical machine that acts as a server that goes down. Sometimes, operators on the machine want to re-route traffic to other servers to increase performance. The disconnection and re-routing may take a few minutes. In the meantime, a net-split occurs between this server and other machines down the line as the operators close the connection to do their re-routing.

Can you do anything about net-splits? No. Net-Splits are totally outside of your or your provider’s control. The way to avoid net-splits is to chose an IRC network that has less servers meaning, less chances of a breakdown (and less traffic). See the Efnet and Undernet sections.

#### Net-Lag

Network lag is a more generalized problem than net-splits. Network lag can be caused by a much larger number of factors. The principal symptom of network lag is simple: anything you type takes forever to reach everybody on the current channel. People notice lag when they type something and get a response to their text from 30 seconds to two minutes later. One way to see how much lag the IRC network is suffering from is by pinging (see the IRC instructions section) a user on the channel. Pinging tell us how much time it takes for a signal to go to a given user and back. Normally, lag is low when the delay is under 10 seconds. If it takes much more than 10 seconds, the connection from the user to another user on another server is lagged. Lag isn’t uniform. Sometimes, lag only occurs between one server and another server. In fact, lag can even occur between a server and the client a given person is using.

You can have multiple sources of lag:

 Local Lag: Your connection to your provider is slow because you’re already stretching the capability of your bandwidth. If you have alot of people doing stuff like FTP or Web Surfing, or even receiving files via DCC and this exceeds the capacity of your bandwidth, lag will occur locally. Any ping to the outside world will exhibit lag. Solution: Increase your bandwidth, reduce the number of FTP/SLIP/DCC sessions allowed, reduce the MSS of your system to favor the interactive sessions like Telnet, Rlogin and IRC.

 Provider Lag: Your provider’s connection to the internet is itself stressed by the heavy load of all those system your ISP is offering services to. Pinging someone else on the IRC network (on another server) would yield the same result as local lag. Solution: Provider must increase his bandwidth to the net, or you can switch providers. The second option should be used only if the lack of bandwidth on your provider’s side is harming your system in other ways.

 IRC Server Lag: The server you are connecting to is already at it’s peak loading capacity, or it’s bandwidth on the net is already saturated. If you can ping somebody else using the same server, the delay shown will be only of a few seconds. But pinging someone on any other server will yield lag. Solution: Switch IRC servers.

 IRC Network Lag: The entire network itself is operating at full capacity. This often occurs at peak hours where IRC usage is at it’s highest. Pinging anyone anywhere is practically impossible. Solution: Use IRC outside of peak load hours. Use an IRC network that has less volume.

#### IRC-Wars

One thing that can’t be stressed enough about the IRC is that nobody owns it. Nobody controls the IRC. Even if you are the sysop of a machine on the net, this means nothing to the global internet. What you do have are “zones” of control.

 Local Zone: This is the only point where you really have control. Namely, you have control over who can and can’t use your IRC client. This zone of control has more to do with the behavior of your users which can have repercussions on your connection. If you have users who are abusing their IRC priviledges by making trouble on channels, you can quickly find your system banned from some channels, and if severe enough, even some servers! Should you find yourself in such a situation, you’ll have to negotiate with whomever operates a channel or server to get your system unbanned.

 Channel Zone: Any users that opens up a new channel becomes ChanOp or Channel operator. Some channels have bots that keep channels open and give Ops powers to particular users who were given permission by the bot’s owner. Channels are created automatically when someone tries to join a new channel. Some popular channels are kept open and access to ops powers are restricted by the use of bots. A bot is a program that runs on a Unix machine that acts like a user. Most bots are capable of multiple functions including the maintenance of a list of users who have the ability to gain ChanOps powers on the channel the bot is on. Someone with ChanOps powers can do many things:

 They can change the channel’s topic.

 They can ban and unban people from the channel.

 They can ban entire sites (like your BBS) from the channel.

 They can limit the number of users that can access the channel.

 They can make the channel secret, hidden, or invite-only.

 They can kick a person off the channel (without banning them).

 They can De-Op someone with Ops powers.

 Server Zone: Those people who operate the IRC servers have the power to ban sites from their server if the people calling from that site are causing trouble. They can also ban people from using offensive bots connected thru their servers.

Where all of this comes in:

IRC wars occur when smart kids have way too much time on their hands. Often, the goal of their game is to take control of channels, kick off the people who are using them, and make themselves general nuisances on IRC. You also have the various psychopaths that can also cause trouble simply by being their psychopatic selves.

People will “Flood” channels using file dumps on a given channel. Some will do private floods, doing the same thing but only on the screen of a target user. The more sophisticated IRC warriors will run “war-bots” on unix machines where the sole goal of the bot is to create as much mayhem as possible, by trying to Deop “channel-bots”, ChanOperators, or even kick normal users off the channel by obtaining Ops powers. The methods used to counter these nuisances are many:

Channel Flooders: Channel flooders have to be kicked and banned from a channel to stop them from flooding it. That’s usually the job of the various Chanops on the channel.

Private Flooders: Private flooders are actually easier to control. All the user needs to do is to use the Forget <nick> command. The command is described in the IRC instructions section. Forgetting a user simply stops all text output from such a user to reach you.

Op-warriors: Op-warriors are kids who are trying to gain Ops powers on a channel by trying to defeat the ChanOps or the Channel Bot. In some cases, one technique they use is “riding the net-splits”. If a net-split occurs that makes them alone on the channel, they will have ops powers, being the only people there. Once that occurs, as soon as the other people come back to the channel as the system comes back to normal, they find themselves De-opped, banned and kicked off the channel. There’s no real-defense against a net-split attack except by having a ChanOp on Every server of the IRC network. The only recourse is to have the kids banned from the server they are using, giving the ChanOps time enough to regain control.

War-Bots: War-Bots are like Op-warriors, except 10 times worse. They can lie in wait for the right net-split to come around and gain control of a channel. Like the previous paragraph, the only recourse is banning from an entire server. You or other people on the channel that are victim of such an attack have to talk to the server operators on which the offending bot is connected from.

Psychopaths: All the user needs to do is to do is use the Forget <nick> command to ignore these losers. The command is described in the IRC instructions section. Forgetting a user simply stops all text output from such a user to reach you.

Should one of your users cause troubles in the manners described above, it’ll be your job to appeal to the appropriate people who have site-banned your system. Sometimes, site-banning is refered to as being K-Lined. The ultimate punishement is to be totally banned from an entire network.

#### IRC Networks: the EF-net and the Undernet

The EF-net was the first IRC network. It quickly became the most popular of the networks. Because of the extraordinary growth of the Internet, the EF-net has become plagued with all the problems mentionned above. Net-Splits, Net-Lag and IRC-Wars are rife on the EF-net. Yet despite all this, it remains popular with the IRC fans. On average, you can have over 10,000 people using the EF-net during peak hours, with over 5000 channels. But the EF-net is falling apart at the seams.

The Undernet is the largest alternative to the EF-net. Opened only a few years ago by people wanting to create an alternative to the EF-net, America-Online joined in on the effort to create a cleaner, more responsive network. Most Server Operators and Channel Operators cooperate together to keep the Undernet relatively free from the hackers that plague the EF-net. However, this being said, the Undernet is still the smaller kid on the bloc. On average, from 2000 to 3000 people use the undernet during peak hours, with around 1000 channels. The big advantage of the Undernet is stability, less lag, and less truancy. All and all, the Undernet is “cleaner”.

A list of EF-net and Undernet servers can be found in the Annex.

#### The IRC client’s effect on TCP Handles

Each user on IRC uses up one TCP Handle. If the user initiates a DCC connection while on IRC, he will use up another TCP Handle. For more details about TCP Handles, check out NBTCP (page 32 of this manual).

## Installation procedure for the IRC Client module

Step by Step installation procedure for the IRC module

STEP | Description | Done
#1 | Put the TCPIRC module in the menu tree |
#2 | Configure the TCPIRC.MSG message file |

### Put the TCPIRC module in the menu tree

To make it possible for your users to access the IRC client, you need to put the IRC module in the menu tree, preferably in the Internet Services Menu most sysops create for the various internet connectivity tools they use.

Use the following procedure to create the IRC client page

 From the main configuration menu (CNF), select F2 - Design Menu Tree

 Make sure that the menu item cursor is located on your Internet menu page

 Select F2 Edit to change the Internet Menu page

 Go to the menu options area and add a new option, say [I] for Access Internet Relay Chat.

 In the EDIT OPTION window ...

 Short Description ............................ could be “Access Internet Relay Chat (IRC)”

 Key required for this option............. The key required for internet access.

 Destination page............................. could be called IRC

 Save the menu. A new page in the menu tree should’ve been created.

 Move the cursor to the new page called IRC.

 Press F2 Edit to configure this module page.

 Allow go to this page ......... should be set to YES.

 Key required ...................... The key required for internet access.

 Select module window, you should chose the IRC Client Module.

 Display header ................... should be set to YES.

 Command String ............. Leave it blank.

 Save the resulting page.

 That’s it!

### Configure the TCPIRC.MSG message file

#### Level 3 - Security and Accounting configuration

 From the main configuration menu (CNF), select F3 - Accounting and Security

 Press on F8 - Search, type TCPIRC.MSG

 The first item you should find is the DCCKEY parameter.

 Edit each item as described below, moving from item to item using the arrow keys.

 Once done, press on F10 Save and Exit to go back to the main configuration menu.

IRCNKEY Key to prevent IRC usage. *NEW*

NOIRC If a user has this key, they will NOT be allowed to enter IRC.

DCCKEY Key needed to accept DCC file transfer.

PAYING Direct Client-to-Client file transfer is the means by which one of your users

can receive files over the IRC network. A problem with DCC transfers is that they can tie up bandwidth very rapidly in the same fashion FTP transfers do. You may want to limit access to DCC file transfers if your bandwidth is limited, hence the DCCKEY.

CHTKEY Key needed to accept DCC chat request.

PAYING Direct Client-to-Client chat lets your users converse with other people on IRC

using a secure line of communication, bypassing the servers that are prone to net-splits and lag. Contrary to DCC file transfers, DCC chatting uses about the same bandwidth as normal IRC conversations. If you provide some sort of DEMO access where people have limited access to Internet features, you may want to use the CHTKEY to restrict the DCC features, in addition to the DCCKEY.

ADTKEY Key needed to see 'adult' channels

18OLD This key lets you filter channels that have adult topics in them. What we mean

by “filtering” is that, if you try to obtain a list of channels, those with adult topics will not be displayed unless the person has the ADTKEY. This key doesn’t prevent someone to join an adult channel. It only restricts the display of adult channels in the channel list. The words MajorTCP/IP looks for that make a topic “adult” are defined in the next configuration section. The parameters from ADTWD1 to ADTWD20 contain those words.

JOINKY Key needed to join channels. *NEW*

PAYING Users that have this key will be able to join other channels. Users that do NOT

have this key will be forced to stay in the default channel.

IRCRATE Credits/minute when using IRC. *NEW*

0 Here you enter the number of credits that will be used per minute as a

surcharge when a user is in IRC.

SURKEY Key to be surcharged even when exempt. *NEW*

<Empty> If a monthly, credit-exempt, user owns the following key, IRC will apply the

appropriate surcharge for the connection manually. Leave blank to disable this feature. Note that IRC will never surcharge anyone with the master key.

NSURKEY Key that will exempt from any surcharges. *NEW*

<Empty> You can also define a key that will exempt the user from any surcharges due to

usage of IRC.

QUOTEKEY Key required to use /QUOTE. *NEW*

<Empty> The /QUOTE command allows users to send command strings directly to the

remote IRC server. This is usefull when an IRC server uses non-standard commands (for LIST, for example). You may not want to let all users use /QUOTE so that they don't flood the server with quoted commands.

#### Level 4 - System options configuration

 From the main configuration menu (CNF), select F4 - Configuration options

 Press on F8 - Search, type TCPIRC.MSG

 The first item you should find is the IRCDEB parameter.

 Edit each item as described below, moving from item to item using the arrow keys.

 Once done, press on F10 Save and Exit to go back to the main configuration menu.

IRCDEB Enable debugging options?

NO This option enables full debugging. All IRC processes get listed in the audit

trail for analysis by our Technical Support staff. To turn on debugging, change this option to YES. Note that IRC with full debugging on will slow down your system slightly if the IRC client is used frequently.

IRCDB2 Enable debugging of server messages?

NO This option enables server debugging mode. This lets you see messages sent

by the server you are connected to. This option exists to assist the Technical Support staff at Vircom in the analysis of any IRC problem that might surface.

DEFCHN Default IRC Channel.

#worldgroup This is the default IRC channel to use. Most IRC clients on the market usually

dump you basically nowhere, waiting for the user to type in a command to join a channel. MajorTCP/IP’s IRC client lets you select a default channel for your users. This is specially appreciated by IRC neophytes, as these aren’t just staring at a prompt wondering where they are. From the start, they find themselves in a channel with other people (hopefully) which could lend your user a hand. By default, the channel we suggest is #worldgroup. You could set this channel to other popular new-user channels like #irchelp (Efnet) or #wasteland (Undernet). Chances are though that users on these channels will not be familiar with this particular IRC client.

IRCINPL Number of characters allowed in input.

255 This option lets you choose the maximum number of characters allowed on a

line of input. It is recommended to leave it at the default of 255.

CARABT Use caret to abort input line. *NEW*

NO The Galacticomm teleconference uses the caret ("^") to abort a line of input.

IRC allows the caret as part of a nickname. As a result, if you enable this option, users may not be able to get certain information about users with a caret as the last character of their nickname. If you want the IRC to work more like the teleconference, you could set this to YES..

DEFMIN Default minimum # of users to list.

5 When users type LIST or QLIST to get a list of channels, only channels with at

least a certain number of users will be listed. DEFMIN contains the default setting for this. The reason we need to force a limitation on the list is simple: there are thousands of channels, most of which have one or two people in them. Often, these people turn out to be bots that were put there to keep the channel open. Out of a list of say, 1000 channels, perhaps less than 20% of them have more than 3 people, never mind 5. Another reason we want to restrict the number of channels is thus: some servers will disconnect a user that tries to get a full channel list because this ties up too much bandwidth. Better to keep this setting as is. The bare minimum we suggest though is 3. Anything lower than that is a waste of time and bandwidth.

LSTMIN Minimum # of users in channel to save desc.

5 Many IRC servers have thousands of channels. This IRC Client will save as

much of this list as it can for the default server. In order to save as many channels names as possible, it will not save the descriptions of small channels. Here you get to choose the minimum number of users that must be in a channel in order to save the description of the channel. 5 is usually a good number if you have many channels. If there are 500 or less channels, you can lower it to 2 or 3.

TOTLST Maximum number of channels to save.

2000 The TOTLST option lets you choose the maximum number of channels that the

IRC will store in memory for the default server. NOTE: If you set this option to a number LOWER than the actual number of channels on the default server, some channels will not appear in the list. A good ballpark figure to shoot for is this: on the Efnet, you can have as many as 5000 channels. On the undernet, 1000. Of these, depending on your settings for DEFMIN. You’ll need to keep only 25% to

33% of the total number of channels of a given IRC network. 2000 is a good default value to put in: Overkill for the Undernet, and just about right for the Efnet. Feel free to change this value, although a smaller value may result in some channels not being listed.

DSCMAX Max. number of channels w/description.

300 The DSCMAX option lets you choose the maximum number of channel

descriptions that the IRC client will store in memory. Up to DSCMAX channels will appear in lists complete with a description. The rest will appear, but will have no description listed. Many IRC channels do not have a description anyways.

LSFREQ Seconds between list updates.

1200 This IRC Client will automatically log on to the default server at a pre-set interval

and get a new list of all available channels. This will include channels that were added since the list was last updated. This option lets you choose how often (in seconds) to get a new list. 600 to 1800 seconds is recommended.

ONEDEF Have only default list server? *NEW*

NO The IRC Client will connect to IRC Servers occasionally to get a list of

channels. It can either connect only to the first server listed, or it can alternately connect with all of the servers listed as Group #1. Setting this to "NO" may help prevent your main server from banning you, from connecting to it too often.

DNSCLR Seconds between clearing DNS. *NEW*

600 The IRC Client automatically remembers the IP addresses of the various

servers. This can save a bit of time when a user connects to a server. However, some server domain names can point to various servers, depending on their load. If you set this to 0, it will only check with the DNS resolver once a day. Any higher value will force the client to check the with the DNS resolver if that many seconds have elapsed since it last checked.

FCHUNK Number of channels to refresh each pass.

10 This IRC Client will automatically refresh the list of channels. If there are any

users on the default IRC server, the IRC Client will check to see if channels have changed (a new topic, or new number of users). This option lets you determine how many channels to update each time. If the number is too high, users may experience unnecessary delays. If the number is too low, it will be longer before channel information is updated. It is recommended to set this option to 10.

DCCFRE How many megabytes must be free for DCC file transfers?

2 This option lets you determine the minimum amount of disk space that must be

available in order for DCC file transfers to continue. If the free disk space falls less than this amount, the transfer will be aborted.

DCCMAX Maximum length in Kilobytes a DCC file can be.

1000 This option lets you determine the maximum length that a DCC file can be.

ULBASE Port to start DCC Connections at. *NEW*

6000 DCC SEND requires a separate port be used for eachsimultaneous connection.

This means that a block of 256 ports needs to be set aside for IRC. You should enter the starting port here. It is recommended that you keep this at 6000.

MOTDDSP Display MOTD upon connecting to server. *NEW*

YES IRC servers usually have a small information text called the "message of the

day" (MOTD) that can be displayed upon connecting to the server and by using the MOTD command once logged in. Do you want the MOTD to be displayed when you (and your users) connect to the server?

SERVnn Name of Server. *NEW*

<see CNF> This option and the ones following it let you choose up to 20 different servers

that can be used. They can be grouped together, if you like; for example, you can have EFNet servers in one group and UnderNet servers as a separate group. Group 1 is the default. Options go from SERV01 to SERV20. You would normally enter here the domain name of the particular server. For instance, irc.colorado.edu would be a valid server name (although it’s not certain at this point if this particular server exists).

You can, alternatively, put in a string of this format: #ShortName/IP:port

Example: #QuarterDeck/122.122.122.1:6663

This new format lets you assign a “nickname” for a given IRC server. The IP address for a given server can be derived using the /DNS command by feeding it the domain name, you should obtain the corresponding IP address to put here. Finally, the port number was added to allow connections to other ports aside from the “default” port of 6667 that most (but not all) IRC servers use.

GRPNnn Group Number for Server. *NEW*

<see CNF> This option lets you choose a Group Number for this server. Users can select

a Group by number, so that you can have options for several different Nets. You should make sure that all servers with the same Group number are all on the same Net. Group 1 is the default (the Net users will go to if they hit Enter), and is the "Best" as it will buffer the list of channels.

ADTWDn 'Adult' word #n. (n=1 to 20)

<Empty> The next 20 options let you choose words that are considered 'adult'. If these

words are found in a channel name or topic, it will only list them to users with the key listed in ADTKEY. Note that these words will only act as a filter for the list of channels. Someone can still access an adult channel even though it isn’t displayed in the list.

### IRC Instructions *NEW*

MajorTCP/IP’s implementation of IRC is different from the other IRC clients you may have experience with. Contrary to most other IRC clients, MajorTCP/IP IRC was designed to mimic to a certain extent the Teleconference system of MajorBBS/Worldgroup instead of using the Unix command set available under IRCII (the main client available under unix). The reason we designed it this way is simple: ease of learning. It’s easier for MajorBBS/Worldgroup Teleconference users to migrate to our implementation of IRC than it would be if we supported the IRCII command set.

The first-time IRC session *NEW*:

When the user goes to the IRC module for the first time, he or she can set certain initial parameters to taste. These parameters are: the user’s nickname, default channel, user information and the IRC server or group to use by default. Hitting X at any of these options

will let the user leave the IRC module.

Default Nickname

IRC Information Editor

------------------------------

(Hit ENTER to keep any setting the same)

Enter your nickname, or Enter for ‘’: ?

A nickname is used in IRC to identify yourself. It can be up to 9

letters long, with no spaces.

Enter your nickname, or Enter for ‘’: JohnDoe

The user JohnDoe pressed the ‘?’ key first to find out what’s expected of him. He must supply his nickname, which must be no longer than 9 characters. Once he’s typed this information, it will be remembered for any subsequent IRC session. He can change this information later on if he so desires.

Default Channel

Enter channel to start at, or ENTER for ‘#Worldgroup’: ?

When the IRC client connects stats, it will automatically place you in

a channel. You can choose what channel to start in by changing this

option. You may want to set this to #Worldgroup.

Enter channel to start at, or ENTER for ‘#Worldgroup’: #FunTalk

The Default Channel is the channel the user wants to wind up in automatically when he enters the IRC client module. The channel name must start with a pound ‘#’ sign. The person might want to use the one supplied by default (#worldgroup) by simply hitting enter. This way, later on, he can do a channel list and find out which channels would suit him better. This information can be changed later on.

Default user information

Enter your User Info, or ENTER for ‘No Information supplied by user ‘

: ?

IRC users can use a command called USERINFO to get more information on a

user. By changing this option, you can change what other IRC users will

see.

Enter your User Info, or ENTER for ‘No Information supplied by user ‘

: Will program for Food

The Default user info is used to tell other users on IRC a little bit about you. When a person on IRC uses the USERINFO command (or with the IRC Client, you do a CTCP ON, then use the USERINFO <nick> command), this is the information people will see. In the case of JohnDoe, the userinfo line will show that he “Will program for food”. This information is conserved for any subsequent IRC session, but can be modified later on.

Default IRC Server or group of servers

Enter starting group number, server or ENTER for 1: ?

When you enter IRC, if you hit ENTER you will automatically get

connected to an IRC server. If you don’t know of a specific Net

or server you want to connect to, enter “1” here (no quotes).

Or, you can enter to connect to Undernet IRC servers, or 3 to

connect to DALnet.

Or, you can enter the name of a specific server you want to

connect to every time.

Enter starting group number, server, or Enter for 1: 2

Here, the client selects which group he’ll use. You should provide the user (ie: either modifying this text block or on some sort of instruction sheet) the servers you put in each group. It’s suggested also that you put all Efnet servers into group 1, all undernet servers under group 2 and all DALnet servers in group 3. That way, a person can select via the group number which net to connect to. The person can also type in his or her

favorite server as default instead of the BBS defaults. All this information can be changed at any time by the user.

Once the user has entered all his login info for the first time, he will get the standard IRC screen on subsequent sessions ...

Standard Sessions

Worldgroup IRC Client

(c) Copyright 1995 Computerized Horizons

When connected:

Type LIST to see all channels available.

Type JOIN <channel> to join a channel.

Anything you type from then on is seen by everybody in that channel.

Type ? or HELP to get more information.

Enter “E” to edit your info, ENTER for quick logon, or server name/group: ?

Hitting ENTER will automatically log you onto IRC.

Entering a number will connect you to a specific group or IRC servers.

Entering a server name will connect you to that server.

Or type “E” to edit your IRC information.

The programmed group of servers are:

ServerName Group#

========== ======

irc.cerf.net 1

irc.frontiernet.net 1

irc.bridge.net 1

irc.voicenet.com 1

irc.neosoft.com 1

irc.epix.net 1

irc.ecn.uoknor.edu 1

irc.mo.net 1

irc.law.emory.edu 1

irc.stealth.edu 1

chicago.il.us.undernet.org 2

joplin.mo.us.undernet.org 2

manhattan.ks.us.undernet.org 2

montreal.qu.ca.undernet.org 2

vancouver.bc.ca.undernet.org 2

igc.fl.us.dal.net 3

services.dal.net 3

groucho.ca.us.dal.net 3

dragon.ut.us.dal.net 3

uncc.nc.us.dal.net 3

If the user presses “E”, he will see the same questions as the first-time IRC session. That is, he or she will be asked for a nickname, a default channel, default user info and the default server or server grouping.

The user can press <RETURN> to use the default settings he put in his first IRC session. IRC will try to connect the user automatically to the first server in the selected server group. If it fails, it tries the second one, the third one ... so on and so forth. You can have up to 20 default servers.

Finally, if the user insists, he or she can type in a server name. We have an up to date list of IRC servers in the annex of this manual. Feel free to extract it and distribute it to your users.

Attempting to connect to IRC Server ......

Connected to IRC!

Signing on..........................................................

You are in the #Worldgroup IRC channel

Channel Topic: MajorBBS and Worldgroup are Hip!

*** #Worldgroup Someguy 123456789

Steve, Todd, Jeff, Lila, are here with you.

If the server you are trying to connect to is not suffering from excess loading, John Doe shouldn’t have to wait too long for the connection to be established. Should the connection time-out or be refused (the server is full), MajorTCP/IP will try the second server in the server grouping, then the third, the fourth, the fifth ... so on and so forth..

What each line means:

You are in the #Worldgroup IRC channel...................The name of the channel the user is in.

Channel Topic: MajorBBS and Worldgroup are Hip!..The current topic in this channel

*** #Worldgroup Someguy 123456789......................The person who last changed the topic

Steve, Todd, Jeff, Lila, are here with you. ................Who are in the channel. Lila is ChanOp.

Note that with a color screen, Lila would be deep red, the rest of the channel denizens would have their names written in white.

What can the user do from here?

Anything the person types that isn’t an IRC command will be transmitted to all those on the channel. The commands the person can use in the channel are listed in the following tables.

Basic commands are the minimal commands most users should know to enjoy IRC. Advanced and operator commands are useful but not fundamental to the enjoyment of IRC.

Basic Commands | Description
Anything typed normally | Is transmitted to everyone. This is what you’re saying on the channel.
MAIN /M | This returns the user to the default IRC channel define in DEFCHN, level 4 configuration in the TCPIRC file.
JOIN <channel> JOIN #<channel> /J <channel> | The join command lets the user join any channel on the IRC. The user can use the command in those three forms. Example, say the user wants to join the #Worldgroup channel. He can use: JOIN #Worldgroup JOIN Worldgroup /J Worldgroup

More Basic Commands | Description
LISTNUM <number> | Tells MajorTCP/IP To list channels with the <number> of users or more currently on them. This lets you limit the size of the list you generate. This command is used before you use the LIST or QLIST commands..
LIST LIST <char> | Lists all the channels on the IRC Network with description. Can be used with LISTNUM to reduce the size of the list generated. LIST can be used on the default server and another server as well. If using the command on the default server, you can also list the channels that start with the letter defined in <char>. Ex: LIST A will list all the channels that start with the letter A.
QLIST QLIST <char> | List all the channels on the IRC Network in compressed form (five channels per line) This command can only be used on the default server. You can also use the QLIST <char> command to list only the channels that start with the letter specified by <char>. Ex: QLIST C will list all the channels starting with the letter C.
WHOIS <user> /W <user> WHOIS <Channel> /W <Channel> | This gives you some information about a user. WHOIS Joe would give: Nickname: Joe Realname: Joe-Bob E-mail Address: JoeBob@somewhere.com Joe is on: #Widgets Joe is using server washington.dc.us.undernet.org (Undernet Server for the Greater Washington area)

Joe has been idle 27 seconds.

Lists the users on a given channel. WHOIS #Widgets would give:

Joe, Jeff, Tim, Richard are here with you.

WHISPER TO <usr> <text> /<user> <text> // <text> | Sends a private line of <text> to the user <usr> WHISPER To Joe Hiya Joe, howzit going /Joe Howzit going. // Did you hear me? <- Sent to the last whispered person.
ACTION <action> /A <action> | Lets the user perform an action. Lets assume Joe is the one acting ACTION is sleepy ............. Would appear as Joe is sleepy. /A is tired .......................... Would appear as Joe is tired.
FORGET <user> | If a user is bothering you, you can ignore any of his text by type FORGET <user>. Example: FORGET Steven Anything Steven typed would not be visible for you.
REMEMBER <user> | If the person has become reasonable again, you can use the REMEMBER <user> command. Example: REMEMBER Steven. Anything Steven types now will be visible again.
NICK <nickname> | If you want to change your nickname while you’re on a channel, simply type in NICK <newnickname>. Example: Joe wants to be known as JoeBob. NICK JoeBob is the command to use.
QUIT X | QUIT to leave IRC. X does the same thing, but should be used as the last resort.
HELP LIST | Gives you detailed instructions about LISTNUM, LIST and QLIST
HELP ADVANCED | Gives you a summary list of the advanced commands.
HELP OPERATOR | Gives you a summary list of the operator commands.

Advanced Commands | Description
AWAY <info> | This marks you as being away from your keyboard. You can say why in the info section. Example: AWAY I’m gone to get coffee. Someone who tries to whisper to you or does a whois on you will see the notice. Typing something at the keyboard when you come back automatically unmarks you.
DCC | If somebody tries to send you a file via DCC file transfers, You’ll see a notice on your screen saying “Type DCC to receive <file> from <user> of length <bytes> long”. If you type DCC, the transmission will begin. You can continue to use IRC normally, although you shouldn’t try to receive a second DCC while one is initiated. Once the file is received, you can use one of the normal file transfer protocols to receive the file on your computer.
UPLOAD <filename> | *NEW* Upload a file to send via DCC. Before doing a DCCSEND, you first need to upload the file from your home computer to the BBS. Once the file is uploaded, you can then do a DCCSEND <nickname of user> to send the file off to the desired person over IRC. Ex: UPLOAD SOMEFILE.TXT
DCCSEND <nick> | *NEW* Send the file you uploaded to <nick>. This command lets you send the file that you uploaded to the BBS via the UPLOAD <filename> command. Ex: DCCSEND Someguy
DCCCANCEL | *NEW* Cancel the DCC send. This command lets you cancel a DCCSEND in mid-transmition.
DCCCHAT | If somebody wants to go into DCC chat with you, you type in DCCCHAT to initiate the connection. From this point, type /DCC <message> will transmit the text after the /DCC command directly to the other person privately. This bypasses normal IRC Servers. In a sense, you are connected directly to the other person’s Client.
/DCC <message> | Once a DCCCHAT is initiated, this is the command to use to send text over the DCC session. /DCC Hiya, how are ya. The person on the other end will see the “Hiya, How are ya”.
MYINFO <info> | You can associate a line of information to your name if someone wants to find out about something about you. MYINFO I’m a mean guitar player will put the “I’m a mean guitar player” caption in your USERINFO description.
CTCP ON/OFF | CTCP (Client-To-Client Protocol) is turned on or off. You need to do a CTCP ON to be able to use the next command. These commands let you find out information about the Client program the target user is running, the time in his location and tons of other things.
FINGER <user> Needs CTCP ON. | Finger lets you find out some basic information about the person specified in <user>, including the time the user has been sitting idle Example: FINGER Rick would return ... Finger info (Rick): Real Name: Rick Blatt Idle: 10 seconds.
USERINFO <user> Needs CTCP ON. | Userinfo returns the text a person entered using the MYINFO command. For instance, if someone did USERINFO on the person in the previous MYINFO example, he would see: User Info (JoeBob): I’m a mean guitar player.
PING <user> Needs CTCP ON. | Ping lets you find out the time it takes for information to make a round trip between you and the person specified in <user>. For instance, say you PING JoeBob, it could return something like: Ping Info (JoeBob): Delay: 27 seconds.

More advanced commands | Description
TIME <user> Needs CTCP ON. | Time lets you find out what time it is in the person’s time zone. Say, you do TIME JoeBob, the information returned looks like: Time Info (JoeBob): 10:27:00 12/01/95
VERSION <user> | Lets you find out what Software and it’s version number the <user> is running to connect to the IRC. VERSION JoeBob could yield: Version Info (JoeBob): MajorTCP/IP IRC Client:.98 MBBS/WG
CLIENTINFO <user> Needs CTCP ON. | Lets you find out what CTCP commands the specified person’s software can handle. CLIENTINFO JoeBob could yield: Client Info (JoeBob): I know: ACTION FINGER VERSION SOURCE USERINFO CLIENTINFO PING TIME ERRMSG
SOURCE <user> Needs CTCP ON. | Lets you find out where you can get the user’s IRC Client. For instance: SOURCE JoeBob would yield in his case: Souce Info (JoeBob): gm.gamemaster.qc.ca
MOTD | *NEW* Ask server to display MOTD file again. MOTD means (M)essage (O)f (T)he (D)ay. It’s basically a logon banner all IRC servers have.
/QUOTE <command> | *NEW* Send command to server, directly. Documenting all the possible commands with the /QUOTE command is outside the scope of this manual. Basically, if you type /QUOTE HELP, you’ll see all the commands you’ll be able to use on the IRC server you are connected to. Please be advised that this command is very dangerous as it gives you some measure of control over the IRC server you are connected to. Any abuse of the IRC server could get you K-Lined from that server.
Operator commands | Description
INVITE <user> | Someone who has ChanOps can invite a user to the channel. This is especially important if the channel was set invite-only using the MODE command. INVITE JoeBob would tell him that he’s invited to your channel.
UNINVITE <user> | Just in case you change your mind on the invitation, you can uninvite someone before the person gets to your invite-only channel. UNINVITE JoeBob would tell him that he can longer access your channel.
TOPIC <Description> | If you have ChanOps, you can change the Topic of the channel. Typing TOPIC We’re here to stay would change the channel topic to “We’re here to stay”.
MODE <parameters> | MODE is the lifeblood of the ChanOp. See the special section below.

MODE List, with detailed description
Banning a user or system from the channel. MODE <channel> +b|-b <nick>!<user>@<hostname> This commands lets you ban (+b) or unban (-b) someone from your channel. You can use the wildcard character (the asterisk * ) to make it a more general ban. For instance. Say you are Channel operator on the #Widgets Channel.

MODE #Widgets +b JoeBob!Joe@somewhere.com

would ban the user JoeBob connecting from somewhere.com from your channel. To find out where a person is connected from, simply do a WHOIS on that person. The person’s E-mail address is a good indicator of where the person is connecting from.

MODE #Widgets +b *!*@somewhere.com

Would prevent everybody that calls from somewhere.com to go into the #Widgets channel.

This is what is called a site-ban.

MODE #Widgets -b *!GLeepard@nowhere.com

This command would be used to Unban a user that was previously banned from your channel. Since Gleepard uses many different nicks, we want to make sure that it’s the Gleepard person that we Unban.

Restricting the channel to Invitation only mode MODE <channel> +i|-i MODE #Widgets +i Set the channel to invite-only mode. When a channel is invite-only, you have to use the INVITE <user> command described earlier to give permission to the user to access the channel.

If user wasn’t invited, he won’t be able to get it.

MODE #Widgets -i

Removes the invite-only restriction on the channel.

Restricting the number of users that can connect to your channel MODE <channel> +l <num> OR MODE <channel> -l MODE #Widgets +l 10 Restricts the users who can use your channel to 10 people or less. MODE #Widgets -l

Removes all user restrictions.

Making the channel moderated. MODE <channel> +m | -m MODE #Widgets +m This makes the channel moderated, only channel operators can talk. MODE #Widgets -m

Removes the moderation letting everyone talk on the channel.

Restricting messages from the outside MODE <channel> +n | -n MODE #Widgets +n Makes it impossible for someone outside of the channel to whisper to users currently on the channel. This command is often used to prevent interruption in a private discussion.

MODE #Widgets -n

Remove the whisper restriction.

Give a user ChanOps priviledges MODE <nick> +o | -o MODE JoeBob +o This command gives JoeBob ChanOps powers. MODE JoeBob -o

And now, we remove them.

Make a channel Private MODE <channel> +p | -p MODE #Widgets +p Using this command, we can make the #widgets channel private. Only people that have been invited can make it in. MODE #Widgets -p

Remove the privacy flag on the channel.

MAKE a CHANNEL secret and invisible. MODE <channel> +s | -s MODE #Widgets +s This command makes the #Widgets channel secret. Such channels are invisible when one lists the channels using the LIST command. MODE #Widgets -s

Makes the channel normal again.

Prevent ordinary users from changing the channel’s topic. MODE <channel> +t | -t MODE #Widgets +t This command prevents non-ChanOps from changing the channel topic. MODE #Widgets -t

This command makes it possible for everyone to change the Channel topic.

Make yourself invisible from anybody that doesn’t know the exact spelling of your nick. MODE <nick> +i | -i MODE JoeBob +I Makes JoeBob invisible when someone does a WHOIS on him or on the channel. MODE JoeBob -i

Makes JoeBob visible again.

### Trick - Fooling a reticent IRC server

MajorTCP/IP’s IRC client connects invisibly to the first IRC server you specify in the server list to maintain a list of channels internally. This has the benefit of saving bandwidth on the IRC server side. Why? Everytime a user does a /list command, this generates a large amount of disk I/O and consumes alot of bandwidth as well on the server side. The problem is compounded when you have more than one user doing this.

Because MajorTCP/IP maintains a list internally, the impact of multiple /list requests is thus minimized. However, this is accomplished by having the IRC client operate as a “bot”. Many systems frown on bots and therefore, might K-line you from their server.

You can do two things in this case:

a) talk to the admininstrator of that particular server and explain to him what MajorTCP/IP’s IRC

client does, and how it saves him precious resources.

b) leave the first entry in your IRC server list blank. This way, MajorTCP/IP will not use its “bot”

to maintain the internal list.