sig@europa.asd.contel.com.asd.contel.com (Sigurd P. Crossland - Contel WTP 2214N 703-818-4202) (01/28/91)
IRC (Internet Relay Chat) is the protocol specification, as well as the program which allows multi-user, real time teleconferencing over the Internet. Those who have used Compuserve's CB and similar services should already be familiar with the concept. An interesting example of the uses for IRC occurred during the early (at least a week ago :-) military activities in the Gulf. Channel +report was being supplied with information from most all of the major news sources by various individuals who were monitoring the actual services and two or three persons residing in Israel. As many as 130 users, at times, were logged on and able to receive the reports from a multitude of sources simultaneously. FTP tolsun.oulu.fi and access directory irc for a complete set of docs and sources for IRC. (I have included some introductory info.) Build yourself the client, point it towards one of the servers, such as arrakis.engin.umich.edu, and I'll see you on +NeXT Tuesday, January 29th, 1100 EST (0800 PST 1600 GMT). Take care. - Sig Sigurd P. Crossland Contel Federal Systems Principal Engineer FSS/GSY/SWE WTP-2214N Internet: sig@europa.asd.contel.com 15000 Conference Center Dr. Telephone: (703) 818-4202 Chantilly, VA 22021 /************************************************************************ * IRC - Internet Relay Chat, doc/ADVERTISEMENT * Copyright (C) 1990, Jeff Trim * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 1, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ Author: Jeff Trim jtrim@orion.cair.du.edu Date: 04 Apr 1989 Last modification: 04 Apr 1989 The Internet Relay Chat Program - IRC Have you ever wanted to talk with other computer users in other parts of the world? Well guess what? You can! The program is called IRC and it is networked over much of the United States, Finland, Sweden and very soon I think it's going to appear in the United Kingdom. This program is a substitution for talk(1), chat(1), vco(1) and many other multiple talk programs you might have read about. When you are talking in IRC, everything you type will instantly be transmitted around the world to other users that might be watching their terminals at the time - they can then type something and RESPOND to your messages - and vise versa. I will tell you that the program can be very addictive once you begin to make friends and contacts on IRC ;) .. and the Finnish people are as curious about Amercians as we are about them - so the topics can become very interesting sometimes. I think I have talked about everything from Politics to Living expenses in the United States - in return they have told me about life in Finnland (which is quite interesting!) - I even know a few Finnish curse words - but we won't go into those ;) The first step to beginning to getting aquinted to IRC is to throw off the fear of embarrising yourself -- the fact of the matter is that the people on the other end of the terminal are as scared as you are. The Finnish people speak VERY GOOD english, so you can feel comfortable speaking to them in english. (I will add, however, that it's also interesting to see how they communicate in Finnish - some of their words can be 25 characters long - and I am talking just one word!) When you /join a conference and they recognize that you are an english speaking person they always nicely switch immediately into english - they are very cordial about that. But be aware that finnish is their native language so they might stumble a bit on some of our english counter parts (especially english SLANG words). Also you might need to give them a second or too to make the switch into english because there might be a heated argument going on when you /join the conference and they need time to finish what they are saying. Beyond the Finnish there are users from Oregon State University, Ohio State University, MIT, Northwestern State University and we even picked up a site from NASA about a week ago. At my last count there were 22 servers running 24 hours aday all over the US/Finland - so you can loggin just about any time of day and find people talking on IRC (as a side note - the Finnish are 9 Hours ahead of us -- meaning when it's 11:00pm at night in Denver it's 8:00am THE NEXT DAY in Finland!) You should note that late afternoon in Denver is EARLY in the morning for the Finnish ;) But the US users should keep the same time schedual you have (keeping in mind Mountain Time, Central Time, Pacific Time, ...etc). WHAT DO I TALK ABOUT? That is the most common question I get so I will answer it now. Sometimes you'll notice that all conversation STOPS and you know everyone is waiting on everyone else to say something - so this is a good time to talk about News, weather or whatever -- best thing is to ask a question - like "How's the weather in finland?", "What's TV like in Finland?", "Did you know that an Oil Tanker just spilt oil all over the Alaskan sea-shore?". If things get real desperate say something like "well why don't we choose a topic?" .then you should also try to think up something, maybe a good topic over your favoite beer, Broncos mainia (I haven't explained that to the Finnish yet (I still don't get it) ;), Denver, skiing, computers, people, vacation spots, travel, cars, housing, whatever you can think of. ..but be assertive. A finally note is about IRC protocol. Try not to CUSS out the other users (meaning use your best english - keep your laungauge printable ;), and when you are going to LEAVE IRC - say "goodbye" and give the other users about 30 seconds to in turn say their goodbye's. Never just /signoff because it makes the other users think you didn't like what they were saying - so try to leave on a good note. A finally you should be aware that the program does allow <CTRL>G's (The ASCII BELL character). They are used only when absolutely necessary - and usually in PRIVATE messages only - so please restrict them to that. If you need to wake up a sleeping user (IE one that's away from his terminal for awhile) then send him a few ^G's (like 2) and wake him up in private message. Don't post ^G's in public messages. RUNNING THE PROGRAM: I have it set up currently on the 3 academic UNIXES - on EOS/TYCHE/ORION type: "irc". I am Posting the IRC User Manual in the next posting so please read that to get familiar with IRC and the various commands. if you want help in the program type "/help". If you see a topic you want to read about then type "/help <topic>", like "/help who". But anyway to run the program type: irc /************************************************************************ * IRC - Internet Relay Chat, doc/Comms * Copyright (C) 1990, Jarkko Oikarinen * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 1, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ Author: Jarkko Oikarinen Date: 3 Sep 1988 Last modification: 7 Jul 90 Internet Relay Chat Protocol 1. Introduction This document defines the protocol how IRC messages are transmitted over Internet. IRC is a teleconferencing system which can run on many different hosts. 1.1. Servers IRC consists of several servers, of which there should be only one on each host (It is not recommended to use several servers, it is possible anyway). Servers are connected with each other so that they form a tree-like net. [See Fig. 1]. This protocol defines no limit how many servers (or clients) one server can handle, it is machine and server dependent. The name of the server is the same as the name of the host where server is running. [ Server 1 ] / \ / \ [ Server 2 ] [ Server 3 ] / \ \ / \ \ [ Server 4 ] [ Server 5 ] [ Server 6 ] / | \ / \ / | \ / \ / | \____ / \ / | \ / \ [ Server 7 ] [ Server 8 ] [ Server 9 ] [ Server 10 ] [ Server 11 ] : [ etc. ] : [ Fig. 1. Format of IRC Server net ] 1.2. Clients In this paper every conference attendant is referred to as client. Each client is distinguished from others with a nickname having maximum length of eight (8) characters. The following characters may be used in a nickname: all digits ('0' - '9'), lowercase letters ('a' - 'z'), uppercase letters ('A' - 'Z'). In addition to nickname servers should have following information on clients: Real name, name of the host client is logged on, client's username on that host and name of the server to which client is connected. 1.3. Channels Channels are the way several (more that two) clients can communicate with each other. Every channel has a name with which it can be unambiguously distinguished from other channels. Channel name is an 32-bit integer number. Channels are divided into three groups: Channels with negative name are secret channels, and users on those channels are not shown to other users unless they are on same channel. Channels with name in between 1-999 are public channels, and users and their channel names are shown to everyone. Channels 1000 - are private channels, and users on these channels may be seen, but not the number of the channel. This system is not perfectly secure (nor it is meant to be like that) because channel name can always be guessed. 1.4. Services Services are used to allow servers and clients use certain databases over IRCnet. These databases are mainly used to maintain access lists for servers and clients; that is, servers can query service and get a list of other servers and clients that should be allowed to connect. There may be several (even similar) services connected to net at the same time. 2. The IRC Specification 2.1. Overview This protocol is only an interface between server and client programs. It does not perform any user interaction, messages may have quite cryptic format. Client and service programs should perform all 'user-friendly' functions. 2.2. Character codes Commands are composed of characters from the ASCII character set. When the transport service provides an 8-bit byte (octet) transmission channel, each 7-bit character is transmitted right justified in an octet with the high order bit cleared to zero. 2.3. Messages Daemons and Clients send each other messages which may or may not generate a reply. Daemons normally should generate a reply for each message, but clients should not trust on it and await forever. Messages consist of prefix, a command, and parameters. Prefix and parameters may be optional. Parameters are separated from each other with one space character. Prefix is separated from command with space. Prefix is only used messages from servers to identify the original sender of the message. Client programs should never use prefixes. Command lines must be complete with all required parameters, and may not contain more than one command. Commands, prefixes and parameters are not case sensitive. The prefix is preceded by a colon. IRC Messages are always lines of characters terminated with CR-LF (Carriage Return - Line Feed) pair, and these messages shall not exceed 512 characters in length, counting all characters, including the trailing CR-LF (thus there are 510 characters maximum allowed for the command and its parameters). There is no provision for continuation message lines.
eps@toaster.SFSU.EDU (Eric P. Scott) (01/29/91)
In article <910028.092426.sig@SCrossland> sig@europa.asd.contel.com (Sigurd P. Crossland - Contel WTP 2214N 703-818-4202) writes: >FTP tolsun.oulu.fi and access directory irc for a complete set of docs and >sources for IRC. (I have included some introductory info.) Build yourself the >client, point it towards one of the servers, such as arrakis.engin.umich.edu, We've been running irc2.6pre18 since it came out; it's much more stable than 2.5.1 was. Sites running the server (ircd) on NeXTs should apply the attached (unofficial) patch. Most of you will only be running client software, and won't need this. Note that there are several clients available. Besides the "original" in the Finnish distribution, there's also IRC II on rvw2.hhs.ri.cmu.edu, and a GNU emacs client "somewhere." There's a mailing list for irc software maintainers (mail to irclist-request@tolsun.oulu.fi) and a mostly-ignored newsgroup, alt.irc. None of this is plug-and-play; there are Makefiles and configurations to edit, and you have to be reasonably UNIX-literate to get irc working. -=EPS=- ------- *** ircd/s_bsd.c.orig Sat Dec 22 01:34:37 1990 --- ircd/s_bsd.c Sun Jan 6 19:38:18 1991 *************** *** 278,283 **** --- 278,294 ---- ReportError("Failed in connecting to %s :%s", cptr); return -2; } + /* + ** If IP-address is localhost, try with the servers sockhost + ** (as requested by EPS). + ** + ** ...if ULTRIX doesn't have inet_netof(), then just make + ** that function or #if this out for ULTRIX.. --msa + */ + + if (inet_netof(name.sin_addr) == IN_LOOPBACKNET) + check_name(cptr,me.sockhost,flags); + host = gethostbyaddr((char *)&(name.sin_addr), sizeof(struct in_addr),AF_INET); if (host != NULL) *************** *** 292,308 **** check_name(cptr, tmp, flags); } } - /* - ** If IP-address is localhost, try with the servers sockhost - ** (as requested by EPS). - ** - ** ...if ULTRIX doesn't have inet_netof(), then just make - ** that function or #if this out for ULTRIX.. --msa - */ - if (inet_netof(name.sin_addr) == IN_LOOPBACKNET) - check_name(cptr,me.sockhost,flags); - /* ** Last ditch attempt: try with numeric IP-address */ --- 303,309 ---- *************** *** 319,326 **** sizeof(cptr->sockhost)); if (cptr->confs) return 0; ! else ! return -1; } /* --- 320,328 ---- sizeof(cptr->sockhost)); if (cptr->confs) return 0; ! if (cptr->name[0] == '\0' && host) ! strncpyzt(cptr->name, host->h_name, sizeof(cptr->name)); ! return -1; } /*
sandberg@owl.caltech.edu (Steven William Sandberg) (01/29/91)
Could someone tell me where I can get a copy of irc?
sig@europa.asd.contel.com.asd.contel.com (Sigurd P. Crossland - Contel WTP 2214N 703-818-4202) (01/29/91)
Mike Matthews (matthews@lewhoosh.umd.edu) writes: >Has anyone gotten ircd running on a NeXT? That still don't work. I'm sure >other IRC sites are getting sick of lewhoosh.umd.edu going up and down and >up and down all the time... > >I've tried everything. I even made an rc.local.ircd, and bypassed THAT in an >act of desparation. Now I'm just grasping at straws. And Eric O. Scott (eps@toaster.SFSU.EDU) replies: >None of this is plug-and-play; there are Makefiles and >configurations to edit, and you have to be reasonably >UNIX-literate to get irc working. I am not what most people would consider eUnuchs literate and all I did was edit four lines in the file config.h to indicate the location of directories. After that I simply typed make, moved the compiled binaries to the locations specified earlier, and, only for the server, edited a half dozen lines in the file ircd.conf. Both client and server function perfectly and I have since linked three additional servers in our own internal IRC network. There might be a bit of confusion caused when the ircd process is first started. (Here's where I get in well over my head.) The process must continue to run after the user (not superuser) logs off, so it apparently forks a process that will continue running and the 'startup' process dies. If you attempt to connect, using a client process, or simply telnet to port 6667, you will find that the server process, is, in fact, executing. That's really all there is to it. Compile the client (irc) and run the process with the command: irc <nickname> <servername> <nickname> may be your initials or something 'cutesy' and servername may be arrakis.engin.umich.edu initially. (Once you have a connection, type /LINKS to determine the closest server and substitute that for subsequent connections.) IRC is quite flexible in that it provides for environment parameters for the common configuration items and a configuration file, if you wish to tailor the environment. They are both optional. Use is quite simple, commands are preceded with a "/" character, everything else goes out over the channel. Help is available for all commands by typing /HELP. Hope this helps a bit. See you on IRC. Take care. - Sig Sigurd P. Crossland Contel Federal Systems Principal Engineer FSS/GSY/SWE WTP-2214N Internet: sig@europa.asd.contel.com 15000 Conference Center Dr. Telephone: (703) 818-4202 Chantilly, VA 22021