Previous Page TOC Next Page


18

Live Conversations Internet Relay Chat and Other Methods

Most Internet communication facilities work asynchronously. You rarely read your e-mail within moments of its being sent. People put information into Web, Gopher, and FTP servers; others access that information at different times. However, as has been proven by the telephone, real-time synchronous communications between two geographically distant people is valuable.

Over the years, the Internet and other wide area networks (such as Bitnet, Span, and Hepnet) have offered synchronous communication facilities that people have used for live conversations. Span and Hepnet were based on DEC's DECnet protocol, which includes a program called Phone. Phone is similar to the Talk program described in this chapter, but Phone is more powerful than Talk. In fact, some of the functionality of Phone should be added to Talk. Bitnet offers a facility generally called Tell, but VAX users know it as Send. These protocols were extremely useful on Bitnet and were the predecessors to the largely unused, but useful, Internet Message Send Protocol.

Most importantly, a Bitnet facility known as Bitnet Relay was created by leveraging off of Tell. In many ways, it is the direct predecessor to Internet Relay Chat (IRC). Although Bitnet Relay still lives, it is dying (as is Bitnet itself). In fact, the author of Bitnet Relay can regularly be found on IRC these days.

Real-time communication facilities are extremely popular on the Internet. They are also extremely useful.

Talk

Talk is a facility for holding one-on-one conversations but has no native facility for holding conference calls. The command is very simple to use. Normally, you can just type talk user@hostname. For example, type talk goodguy@tetris.utdallas.edu. Then goodguy is told he or she is being called and is given the command to respond on the screen.

It is up to goodguy to decide whether he or she wants to respond. If goodguy does respond, you and he or she are each given half a screen in which you can type. Your text is always on the top half of the screen; the other person's text is at the bottom. You see all keystrokes as you press them and both you and your correspondent can type at the same time. To see what it really looks like, see Figure 18.1.


FIGURE 18.1. A sample Talk session.

When you finish your conversation, either of you can press Ctrl+C to end the call. Afterwards, both you and your correspondent are placed back at the command prompt.

Incompatibilities

Unfortunately, the original Talk protocol had a bug that prevented all systems in the world from talking to each other. The protocol was later fixed and called new talk (ntalk for short). Unfortunately, some vendors, notably Sun, refused to adopt the new protocol. Therefore, the old protocol has lived on and is called old talk by many people.

What this means is that if you are on a machine that supports one protocol and the machine of the person you want to talk to supports the other protocol, you are out of luck. Because source code for both versions of Talk can be found on the Internet, it is possible that your system administrator can install the other version of the protocol (leaving the original in place). Normally, you must issue a different command for each of the two protocols, but at least you can talk to everybody you want to.

Software

Talk software comes with almost all versions of UNIX (although you must verify which version of the protocol it is). Source code for Talk can be found using Archie. Another version of Talk for UNIX, called YTalk, allows conference calls and overcomes the protocol differences.

Versions of Talk are also available for other platforms such as VAX/VMS and Windows. For these machines, Talk is most often a part of the TCP/IP package for the machine, which must be purchased.

Internet Relay Chat

Internet Relay Chat (IRC) is comparable to multiuser chat facilities on BBSes or an online service. However, IRC is larger and more global than any of these systems. At any given moment, thousands of people—and quite possibly, tens of thousands at times—simultaneously use IRC. In contrast, Talk is almost always just one-on-one conversations.

IRC was created during the late 1980s by Jarkko Oikarinen (who is sometimes on IRC as Wiz). He was writing a chat facility for a BBS in Finland. However, at some point, he gave the software to others who set it up. They connected their various servers together to form the IRC network.

During the Gulf War and the coup against Mikhail Gorbachev, IRC made big news. IRC was used for real-time communications regarding these events by eyewitnesses.

Uses

IRC has a reputation of being for frivolous communications. In truth, the bulk of IRC conversations are frivolous. In addition, IRC has many games you can play. So is the use of IRC at public universities just a waste of our tax dollars?

The answer is no. Valuable conversations are also going on. As already mentioned, live news reports can be found on IRC. On occasion, some people use IRC to get the answers to UNIX system administration questions. Actually, you can get the answer to any question. People hold real meetings on IRC, too.

Architecture

IRC is a client-server protocol. The user runs a client and specifies an IRC server to be used. Various IRC servers can be connected to form an IRC network.

The main IRC network is known as EFnet (Eris Free network), but few people call it that. Many people think that EFnet is all of IRC, but it is not. The primary alternative to EFnet is known as Undernet.

EFnet is chaos: there are an enormous number of users, occasional rogue operators, and painful robots. Although it is not well managed, EFnet does remain useful. However, its naysayers think its death is on the way. Some of them formed Undernet, which has strict controls in place. You can still talk about anything on Undernet, but the operators are carefully selected and abuse is not tolerated.

In addition to the main IRC network, many smaller ones exist. Lamenet and Dalnet are a few examples. Additionally, some stand-alone servers are running here and there.

Acquiring IRC Software

IRC software is available for numerous operating systems, including UNIX, Mac, MS-DOS, Windows, OS/2, VM/CMS, VMS, and even Amiga. They all can be found at ftp://ftp.undernet.org/pub/irc/clients.

The UNIX client, known as ircII, is probably the most popular and has the most active development support. This chapter uses ircII to explain how to use IRC.

The installation of IRC is not covered here. If you have a UNIX-based Internet service provider, IRC is probably already installed. If not, ask your system supervisor to install it. Companies and universities may discourage its use because it tends to be used for frivolous activities and takes up resources (especially dial-up modems); be understanding if your system administrator refuses your request.

IRC clients can also be accessed by Telnet. However, this is not recommended for several reasons. First, it increases the load on the Internet. The Telnet clients also tend to be slow and limit the number of people using them. Finally, you have no way to customize your IRC setup and must do it manually every time you use IRC. However, accessing IRC through Telnet is a nice way to try IRC before you invest the time installing a client. A partial list of sites that let you use IRC through Telnet is available in the FAQs described later in this chapter.

Starting IRC

Normally, you start IRC by typing irc at the prompt. The irc command connects you to the server specified at the time the client was compiled. By default, your IRC nickname is your user ID (more on this later).

You can change all of this by using a configuration script called .ircrc, which must be in your home directory. The .ircrc file can contain any of the IRC commands discussed in this chapter. The commands in the .ircrc file are run each time IRC is started.

If you do not want to use the server specified at the time the irc command was compiled, change it with the /server command. (By the way, all IRC commands start with a slash.) The syntax is as follows:

/server hostname

For example, use /server dewey.cc.utexas.edu to connect to the IRC server called Dewey at the University of Texas at Austin.

Nicknames

Nicknames are what they sound like. Those of you who were CBers in the 1970s know them by the term handles. When in IRC, you do not talk to people by their Internet address; you always use their nicknames.

You must be careful however. A person can have multiple nicknames and switch between them; you may have to look under several nicknames to find the person. The other problem—which has happened to a lot of people— is that you may log in to IRC and find that someone else is using your nickname. In that case, you have to use another one. The worst part is that people on IRC can start confusing the two of you.

Nicknames are set with the /nick command followed by the nickname desired. For example, if you want your nickname to be DarthVader, type /nick DarthVader.

If you want more information about someone who is currently on IRC, use the /whois nickname command. For example, if you use DarthVader as your nickname, other users can find out about you by typing /whois DarthVader. The /whois command gives you the person's user ID, host name, real name, the channel they are on, the server they are connected to, and finally the amount of time that they have been idle (see Figure 18.2) . Please note that it is possible for people to forge some of this information, so do not trust it as always being valid.


FIGURE 18.2. A sample /whois command.

If someone has recently disconnected from IRC, you can still get information about him or her. Instead of using /whois, use /whowas. Otherwise, the command works the same. However, after a period of time, the information is purged from the system and you cannot find out who somebody was.

Sometimes, you want to be notified when a certain nickname signs on IRC. Use the /notify command to do that. Type /notify nickname to activate the notification facility. For example, if you want to know when goodguy logs in, type /notify goodguy.

Channels

IRC is divided into channels. Each channel is similar to a channel on a CB system. All the people on that channel hear (or see) all the messages sent to that channel. Under normal circumstances, anybody can send messages on a channel. In IRC syntax, all channel names must start with a pound sign (#).

There are numerous channels on IRC. Some are transient and others are permanent (for all practical purposes). Table 18.1 lists some "permanent" IRC channels on EFnet.

Channel Name


Purpose


#hottub

Simulates a conversation around a hot tub

#sex

Discussions of sex (not for sensitive people)

#talk

General discussions

#unix

Discussions about UNIX (very useful for getting questions answered)

There are two commands for seeing the available channels: /list and /names. The /list command lists all the visible channels, the number of users, and the topic of the channel. The /names command lists all the visible channels and the names of the people on that channel (see Figure 18.3).


FIGURE 18.3. A sample output from the IRC /names command.


CAUTION On a large IRC network, the /names and /list commands can generate more output than you want. This caution definitely applies to EFnet and may also be true for Undernet.

In Figure 18.3, you may notice that some people have an at symbol (@) in front of their nicknames. This symbol identifies the people known as channel operators (channel ops for short). The person who creates a channel is automatically a channel operator. This person (or anyone who has channel-op privileges) can op you (that is, make you a channel operator).

The channel operator controls the channel. He or she can kick people off the channel or change channel settings using the /mode command. You can get the full list of modes by using the help feature (described later in this chapter); here, we are concerned with only a few of the most important ones. The basic syntaxes of the command are as follows:

/mode #channel [+—]<modes> [parameters]

/mode nickname [+—]<modes>

The plus sign (+) turns on the mode; the minus sign (—) turns it off.

For example, the command /mode #channel +i makes the channel invite only: only people invited to a channel can join (more about inviting in a minute). The /mode your_nickname +i command makes you invisible so that people cannot find you with a /list or /names command. The /mode #channel +s command makes the channel secret, which basically means invisible. The /mode #channel +o nickname command gives channel-op privilege to nickname.

Although we said earlier that anybody can send a message to a channel, that is not true if a channel has been made moderated by the /mode #channel +m command. In this case, only channel operators and people who have been given voice mode by a channel operator can speak. Channel operators can give voice mode to particular users with the /mode #channel +v nickname command. Others can only hear what is being said but cannot add their own comments.

To see the users on a particular channel, use the /who #channel command. This command lists users' nicknames, Internet addresses, and real names (which are usually just comments).

If a channel already exists, you type /join #channel to join it. If you use the /join command with a channel name that does not already exist, the command creates a channel with that name and makes you the channel operator on it.

At times, you may want to invite a person to join you on a channel. Do this with the /invite nickname #channel command. The person is then asked to join you with a message like *** DarthVader invites you to channel #sillyness.

To leave a channel, use the /part or /leave command (both are the same). You can type /part #channel to leave a specific channel or /part * to leave your current channel.

Sending Messages

Until now, all the IRC commands you have seen started with a slash. If you type something that does not start with a slash, that "message" is sent to IRC. By default, the message is sent to the channel you are currently on. Other people see your messages starting with your nickname in angle brackets. In Figure 18.4, look at the first line for an example.


FIGURE 18.4. A sample conversation using various types of messages.

However, sometimes you want to send a private message. The facility for doing so is the /msg command. Type /msg nickname message. The message goes to the specified person; no other IRC users can see it. The intended user sees your nickname followed by the message between two asterisks (*).


NOTE Although the /msg command is supposed to deliver private messages, it is possible that someone has installed an IRC server that uses a code modification to let him or her intercept private messages.

If you want to deliver a really private message, the next level of security is DCC (Direct Client-to-Client). With DCC, instead of your messages being passed through the IRC servers, your client and the other person's client make a direct connection that bypasses the IRC servers. To set up a DCC session, type /dcc chat nickname. When you want to send a private message to that person, type /msg =nickname message or /dmsg nickname message. The other user sees the message; your nickname between two equal signs precedes the message. For examples of the types of messages discussed so far, see Figure 18.4.

A final level of security actually encrypts your messages. You set up the encrypted session by typing /encrypt nickname key. The other person must also type this command (each of you uses the other's nickname and both of you specify the same key). Exchanging keys in a secure manner is an interesting challenge. The documentation for IRC says the default encryption system is not very secure. You can select your own external encryption program if you want.

In addition to sending messages, your nickname can perform actions. For example, if your romantic interest is online and in the same channel as you, you can type /me kisses my love. The message * DarthVader kisses my love * appears on the channel.

Earlier, we said that if you do not precede what you type with a slash, the text you type is sent as a message to the channel. This is true with one exception: If you are talking to a certain person quite a bit and want to have these messages sent to that person instead of to the general channel, you can use the /query command to redirect the messages. The syntax is /query nickname (/query =nickname in the case of a DCC conversation).

At times, you may run across someone who annoys or harasses you. Fortunately, you can tune that person out using the /ignore command. The /ignore command is very configurable. Only the most basic uses are covered here. To prevent the messages from a particular nickname from appearing on your screen (although other people still see it), type /ignore nickname all. Unfortunately, that person can change his or her nickname and start talking to you again. To prevent this, you can also type /ignore user@host all, where user is the user ID and host is the user's host name.

File Transfer

You can transfer files over IRC using another variation of the /dcc command. You type /dcc send nickname filename. When the file gets there, the recipient is notified. At that point, the file can be received by the command /dcc get nickname filename. You can also cancel a file sent to you by using /dcc close send nickname filename.

Help

With ircII, it is fairly easy to get help: type /help. However, the help screens are numerous. If you cannot find what you are looking for and need a quick answer, the best approach is often to ask someone on IRC what the command is called and then look at the help page for that command.

If you are not in a rush, you can ask your question of a Usenet newsgroup such as alt.irc.questions. Alternatively, you can take a look at the IRC FAQs found in the IRC newsgroups or at ftp://rtfm.mit.edu/pub/usenet/alt.irc/.

Quitting

The normal way to quit IRC is to type /quit, /signoff, /bye, or /exit. These commands log you out of the IRC server and put you back at the prompt. All these commands support an optional message parameter (for example, /quit going home). The message is sent to all your active channels.

Others prefer to use the /away command: If you type /away message and someone sends you a message, the message is sent back to that person. If you use /away, you must keep your IRC client running—which your system administrator may not appreciate.

Security

Be warned that there are many crackers on IRC who like to prey on novice Internet users. Here are some guidelines you can follow to avoid being taken advantage of:

If you ever run across any problems of this nature, contact your IRC server administrator or your local system administrator. You can find out who the IRC server administrator is by using the /admin command. Every IRC server administrator has special powers on the IRC network to kick people off if they are breaking the rules. However, do not involve the IRC server administrators over personal disagreements.

Bots

A bot is an abbreviation for robot. A bot is a program that interacts with IRC and looks like another IRC user. Bots usually have the word bot in their nicknames. The good bots run games, provide files, or provide some other useful IRC services. Unfortunately, there are numerous harmful bots that can have negative effects on IRC.

Most IRC novices think bots are cool. Most IRC experts think they are annoying. One of the most annoying kind is those that pretend to be real people.

Before running a bot, we strongly suggest that you spend a lot of time on IRC interacting with numerous bots. You should run bot code only for those bots you completely understand. Sometimes, crackers give novices bots that leave the novice's account open for attack. Make sure that you have a positive and useful purpose to which you want to put the bot. Finally, make sure that your system administrator and the IRC server you are using both allow bots.

Etiquette

Just like e-mail, IRC has some etiquette that all IRC users should follow. Most of the rules are fairly obvious.

First of all, you should not send messages to people when they have asked you to stop talking to them. Related to this, never send a massive amount of text to other IRC users or channels. This rule definitely includes any kind of ASCII graphic pictures. Massive text or graphics files can overflow some people's modems, making IRC unusable for them.

Most importantly, do not do anything destructive to harm IRC. Trying to break IRC security is an obvious no-no. You should also never run annoying bots that flood IRC with messages or kick people off.

Previous Page TOC Next Page