Written by Ronald van Loon, July 31, 1991 (IRCNICK : rvl)

[ PART TWO : PUBLIC CONVERSATIONS, CHANNELS AND CHANNEL MODES ]

Most of the information in this file can also be obtained by issuing:

/HELP CHANNEL
/HELP MODE

and in the /HELP-files to the various commands.

Recap
=====

In part one, I talked about the basic commands used in IRC and how
you could have a private conversation with someone. In the following I
will assume you have read and understood Part One. If you don't, contact
your local IRC-operator or server-administrator. Information on how you
can find out who he/she is, can be found below.

Definitions
===========

   IRC-ADMIN - Person who has access to all files concerning ircd (the server
	       program).
   IRC-OPER  - Person who has privileges given to him by an IRC-ADMIN - 
	       someone who tries to maintain a fast reliable IRC network.

   USER      - Person who is using IRC.

More basic commands
===================

The following list of commands deal with servers and clients in general.

Unless otherwise stated, all commands take an optional argument ; this
argument specifies the server on which you want the command applied.

     -----

     /LINKS     Shows all of the servers currently connected to the irc
                network.  If servername is specifed, LINKS shows any servers
	        that match the given servername.  The servername may contain
	        wildcards.

     -----  Example :

     : /LINKS *.com

IRC: *** *.Spies.COM : [wiretap.spies.com] :<--- on the OTHER side
IRC: *** Spies.COM : <--- on YOUR side
IRC: *** world.std.com : The World @ Software Tool & Die
IRC: *** Firewall.Nielsen.Com : [138.108.101.10] :AC Nielsen, Bannockburn IL
IRC: *** mips.mitek.com : OpenConnect Systems Server, Dallas, (2.6pre19.p1)

     -----

     /ADMIN     Displays the administrative details about a server.
		Usually this will give you an e-mail address you can use to
		ask questions. 

     ----- Examples :

     : /ADMIN

IRC: ### Administrative info about fysak.fys.ruu.nl
IRC: ### Dept. of Physics and Astronomy
IRC: ### Rijks Univeristeit Utrecht, the Netherlands
IRC: ### Peter Mutsaers <muts@fys.ruu.nl>

     : /ADMIN world.std.com

IRC: -world.std.com- ### Administrative info about world.std.com
IRC: -world.std.com- ### The World @ Software Tool & Die
IRC: -world.std.com- ### Brookline, MA, USA
IRC: -world.std.com- ### Spike <spike@world.std.com>

     ------

     /MOTD      Gives the message-of-the-day for a server.

     ------ Example :

     : /MOTD world.std.com

IRC: -world.std.com- MOTD - world.std.com Message of the Day -
IRC: -world.std.com- MOTD - Be careful out there...
IRC: -world.std.com- MOTD -
IRC: -world.std.com- MOTD - ->Spike
IRC: -world.std.com- * End of /MOTD command.
    
    -------

     /USERS     Displays the list of users currently logged in on the server's
		home-machine.
 
     ------ Examples :

     : /USERS

IRC: UserID   Terminal  Host
IRC: marjo    ttyi0     prisma.cv.ruu.n
IRC: rootb    pty/ttys0 gandalf
IRC: gash     pty/ttys1 kameleon
IRC: fred     pty/ttys2 gandalf
IRC: gash     pty/ttys4 kameleon
IRC: koen     pty/ttys5 drogo
IRC: marjo    pty/ttys6 brutus
IRC: fred     ttyp1     gandalf:0.0
IRC: marjo    ttyp2     brutus:0.0

     ------ 

     /TIME      Displays the current (local) time on the servermachine.
     /DATE      /DATE and /TIME are identical.

     ------ Examples :

     : /TIME

IRC: *** prisma.cv.ruu.nl : Wednesday July 31 1991 -- 16:11 MET

     : /TIME *.au

IRC: *** munagin.ee.mu.OZ.AU : Thursday August 1 1991 -- 00:12 EST (from *.AU)

     : /TIME *.jp

IRC: *** utsun.s.u-tokyo.ac.jp : Wednesday July 31 1991 -- 23:12 JST (from
IRC:     utsun.s.u-tokyo.ac.jp)

     : /TIME *.edu

IRC: *** polaris.ctr.columbia.edu : Wednesday July 31 1991 -- 10:13 EDT (from
IRC:     polaris.ctr.columbia.edu)

     ------

     /LUSERS  Gives a brief listing of the number of users, the number
              of servers and the number of operators.
     
     ------ Example :

     : /LUSERS

IRC: *** There are 210 users on 123 servers
IRC: *** 33 users have connection to the twilight zone

     -------

Public Conversations
====================

In IRC, there are a lot of places where you can 'hang out' - those places are
called channels. You can compare conversations on a channel to a conversation
among a group of people : you see/hear everything that is said, and you can 
reply to anything that's said. What you type is received by everyone who's 
willing to listen - and everyone who is late will not hear what is said before
unless repeated by one of the ones who were there (who said 'real life'). But
I digress. 

All channels on IRC have names. There are two type of channel names, numeric
channel names (all digits) like 42, -40 and 666, and string-channel names,
beginning with either a '+' or a '#' sign (explained below) followed by some
kind of text-string, like '+C++' or '#COFFEE' or '+Motif_1.1.1'. Usually,
the name of the channel will indicate the type of conversation that's going on
in there. Don't count on it, though.

Every channel has certain characteristics, called channel modes. These will
also be explained below.

First of all, recall the /NAMES and /LIST commands from Part One of this
tutorial ; they will show you the names of existing channel.

To join in the conversation on a certain channel you use the /JOIN command.

      ------

      /JOIN <channel> Changes your current channel to the channel specified.
		      /CHANNEL and /JOIN are identical.

		      If the channel did not exist already, it will be created
		      and you will be in charge of the new channel
		      (Channeloperator).

      ------

      I will know show you the example from tutorial Part One, as a public
      conversation on a channel.


1)  : /NAMES
2)  : /JOIN +demo
3)  : Goodmorning
4)  : Pretty good, even the weather's fine
5)  : /WHOIS rvloon
6)  : I have to get back to work, I'll drop by later
7)  : /JOIN 0

    The output on my screen :

1)  Prv: *                              YourName rvloon
2)  *** YourName has joined channel +demo
2)  *** Users on +demo: @Yourname
    *** rvloon has joined channel +demo
3)  > Goodmorning
    <rvloon> Morning, how is life ?
4)  > Pretty good, even the weather's fine
5)  *** rvloon is rvloon@131.211.145.35 (Ronald van Loon) on channel +demo
5)  *** on irc via server prisma.cv.ruu.nl (The CV stand-alone IRC-server)
5)  *** Command last received: 32 :is the idle time for this user
    <rvloon> do you have time for some coffee ?
6)  > I have to get back to work, I'll drop by later
7)  *** YourName has left channel +demo

    The output on rvloon's screen :

    *** rvloon has joined channel +demo
3)  <YourName> Goodmorning
    > Morning, how is life ?
4)  <YourName> Pretty good, even the weather's fine
    > do you have time for some coffee ?
6)  <YourName> I have to get back to work, I'll drop by later
7)  *** YourName has left channel +demo

    ------

    It is also possible, when you are already on a channel, to ask someone to
    join your channel. The command is called /INVITE. 

    ------

    /INVITE <nickname> [channel] Invites another user to a channel. If no
				 channel is specified, your current channel
				 is used. In that case, you have to be on a
				 channel for this to work.

    ------ Examples :

    : /INVITE rvloon +test

IRC: *** Inviting rvloon to channel +test

    On rvloon's screen the following text will appear :

    *** rvloon invites you to channel +test

    : /INVITE rvloon

    If you are on channel +demo :

IRC: *** Inviting rvloon to channel +demo

    If you are not on any channels :

IRC: *** You have not joined any channel

    ------

    If you receive an /INVITE message, you have the following options if you
    want to join the channel you were invited to :

    ------

    /JOIN -INVITE      Join the channel to which you were last invited.

    ------
   
    Or type /JOIN <channelname>.

    Finally, there is a third flavor of the /JOIN command :

    ------

    /JOIN -NICK <nick> Join the channel that the specified nickname is on.

    ------
    
    If you issue a /JOIN command without any parameters, your current channel
    is displayed.

    You can leave a channel by :

    - issuing a /JOIN 0 (see explanation below)
    - issuing a /LEAVE <channelname>

Topics
======

Channels have topics, that indicate the current topic of conversation. You
can change the topic on a channel with the /TOPIC command.

    ------

    /TOPIC <topic for channel> Changes the topic for your current channel.

    ------ Example : 

    : /TOPIC testing

IRC: *** rvloon has changed the topic to "testing"

Types of Channels
=================

There are different types of channels. I will discuss them all and list their
various virtues.

Limbo/NULL
----------
Channel 0 is the NULL channel, or "limbo" channel. This is the channel you are
on by default. You can compare this channel to /dev/null on UNIX systems -
everything said on this channel is lost. You enter this channel if you don't
want to leave IRC, but also don't want to join in any conversation. 

Public
------

Channels between 1 and 999 (numeric) and "+"-channels are public by default -
public means that everyone can see the channel in the /NAMES and /LIST lists.
Public also means that everyone can join that particular channel.

Private
-------

Channels 1000 and up are private by default - private means that the channel
is shown as "Prv" in the /NAMES and /LIST lists. People who don't know the
name of the channel are not able to /JOIN. "+" channels can be made Private
with the /MODE command - described below.

Secret
------

Channels below 0 are secret channels - secret means that the channel will not
show up in the /NAMES and /LIST lists at all. "+" channels can be made Secret
with /MODE command - described below. People on secret channels are also not
counted in /LUSERS, and not shown in /NAMES either.

Additional channel flavors
==========================

Channels can have additional constraints, which can be set by the /MODE
command. To understand this, recall that the first person to /JOIN a channel
effectively creates it and is initially "in charge" of the channel. (Channel
operator). He can subsequently add those constraints, make other people
channeloperator at leisure.

Moderated
---------

The only people who talk on a moderated channel, are channel operators. Useful
for conferencing (the chairman is the one who will grant chanop-status for the
current speaker). Other people can only listen.

Limited
-------

The number of people allowed to /JOIN the channel is limited to a certain
number of people.

Topic Limited
-------------

The only people allowd to change the topic on a channel are chanops.

Invite only
-----------

People can only join your channel if they're /INVITEd by someone on your
channel.

Message Disabled
----------------

People cannot send messages to your channel with the /MSG command.

Most of the above modes can be combined.

Changing channel modes
======================

If you are a channeloperator, you can change the status of the channel with
the /MODE command. The syntax of /MODE is :

      /MODE <channelname> +<modechars> <parameters>

      Add constraints to channel <channelname>

      /MODE <channelname> -<modechars> <parameters>

      Remove constraints from channel <channelname>

      You have to be channeloperator on <channelname> for this to work.

      <Modechars> can be one of the following :

	  m           - make channel moderated
	  s           - make channel secret
          p           - make channel private
	  l <number>  - make channel limited, where <number> is the
			maximum number of users allowed
          t           - make channel topic limited
	  o <nick>    - Makes <nick> a channel operator
	  i           - channel is invite only
	  n           - No MSGs to the channel are allowed (Message disabled)

     ------ Example :

     : /MODE +demo +p

IRC: *** Mode change "+p " on channel +demo by rvloon

     This will make channel +demo private.

     : /MODE +demo +l 10

     This will limit the +demo channel to maximum 10 people at the same time.

[ END OF PART TWO ; PART THREE WILL DEAL WITH VARIABLE SETTINGS IN IRCII ]

