yabbs(1)

Name
yabbs - user interface for accessing data on a yabbs server

Syntax
yabbs [server address]

Description
The yabbs program is used to connect to a server running the yabbs protocol. The yabbs protocol allows for communication of messages, text files, talk, and other types of information between two hosts, and is designed to cover most of the uses of traditional dialup bulletin board systems.

To connect to yabbs server just run the yabbs command with the name of a machine that is running a yabbs server. If you don't give the client a server address it will use the default address specified when the program was compiled or the default yabbs server specified in your yabbsrc file (see the section on yabbsrc files below). To specify an alternate port number for the yabbs server use the syntax "yabbs <adddress>:<port#>". For instance if you knew that a yabbs server was running on port 10000 on the machine "name.of.server" you would use the syntax "yabbs name.of.server:10000". The client can also use any shortname defined in your yabbsrc file. Read the section below on yabbsrc files for more information on that.

Once on the system the program should be self explanatory. There are three basic functions provided by a yabbs server: messages, text files (g-files), and talk. Each of these can be accessed from the main menu and run independently of each other.

Yabbsrc Files
A yabbsrc file is used for specifying options to the yabbs client. The file contains commands (each on a seperate line) and comments (any line starting with the # symbol). Commands typically have one or more arguments. Every time that the yabbs server is started it looks for the yabbsrc file in your home directory ($HOME/.yabbsrc) and in a system directory (the default is /usr/local/etc/yabbsrc). Commands in your local yabbsrc file override ones found in the system yabbsrc file.

The currently supported yabbsrc commands are:

alias alias-name command
    This lets you add, remove, and list all aliases in the talk alias list. To add a alias supply both the alias name and a command. To remove a variable just support the aliasn name. To list all aliases and their commands do not supply any arguments. Aliases are used in talk to specify often used commands. The preceding "/" for talk commands should not be supplied (it is assumed to be there).

    alias johndoe msg johndoe
        Make the command "/johndoe" send a message to johndoe.

    alias johndoe
        Remove the alias created above.

    alias c channels
        Make the command "/c" list all talk channels.

ignore username
    This allows you to add or remove someone from your ignore list. If a name is supplied the user is added or removed (they are removed if they are already in the list). If the name is not supplied the current ignore list is shown. The ignore list contains the list of users who you don't want to see anything about in talk (including any messages, joining and leaving of channels, or pages).

lock var-name
    This locks a variable in the environment so that it can't be changed any longer. Sysops should lock the pager and editor variables in the .yabbsrc used for public clients to elimate possible security holes.

    lock (editor pager)
        Lock the editor and pager environment variables.

volume username
    This works just like the ignore command. If you are in talk yabbs will let you know if anyone from your notify list logs in or out of the system.

server shortname longname
    Specify a shortname for a server. The shortname is an easy to remember alias for the server, while the long name is the servers real address (in the syntax "name.of.server" or "name.of.server:port"). If the shortname is "default" this will change the server that yabbs connects to by default.

    server default yabbs.machine
        Set your default yabbs server to be on the computer "yabbs.machine".

    server secret yabbs.hidden:10000
        Set a server with the shortname hidden to be on the computer "yabbs.hidden" on port 10000.

set var-name value
    This lets you add, remove, and list all variables in the yabbs environment. To add a variable supply both the variable name (var-name) and its value. To remove a variable just support the var-name. To list all variables and their values do not supply any arguments. The list of variables that the yabbs client actually cares about is listed below in the section "Yabbs Environment Variables". NOTE: This is not the same as the unix environment or even related to it.

    set NotifyAll on
        Set the environment variable "NotifyAll" to the value "on".

    set NotifyAll
        Remove the variable NotifyAll from the environment.

    set editor pico
        Set your yabbs editor to pico.

volume username
    This works just like the ignore command. The volume list contains a list of users whose talk output you would like to see in all lower case. It is useful for users who tend to talk with the capslock key held down.

Talk Commands
Talk commands are of the form "/command arg1 arg2 ... argN". You can get a brief listing of the commands by typing "/help" in the client. Complete syntax for each command is listed below. Talk works by reading a line of text from you, then checking to see if it starts with a "/" or a ":". If it starts with a "/" it is treated as a command or alias and is treated appropriatly. If it starts with a ":" it is treated as an action, which is mentioned below. Otherwise it is assumed to be a message for the current channel.

Commands are parsed by the first word after the "/". First the command word is checked to see if it is an alias. If so the command word is replaced with the alias's command value and treated as a new command. The command is then searched for in the command list. You only need to provide as many letters for the command as are needed to find a unique match in the list. For instance "/m" will work for the "/msg" command (since there are no other commands starting with 'm'), but to get a list of channels you need to use the specify at least "/ch" because "/c" could be either "/channels" or "/clear".

You can run any talk command with a list for the first argument. This allows you to easily send message to multiple people at the same time or add a bunch of users to your talk list. Just put a list of arguments in parens for argument one. This also works in yabbsrc files.

/msg (johndoe random) hi there
    Send the message "hi there" to both johndoe and random.

/ignore (bob mary)
    Ignore the users bob and mary.

The talk commands are:

:action
    This sends an action to everyone on the current channel. For instance

    :waves
        Send the message "johndoe waves" to everyone on the current channel (assuming your name is johndoe).

/alias alias-name command
    This is just like the alias command in the yabbsrc file. Read the section on yabbsrc files for more information.

/channels
    List all talk channels and who is on each one. If the channel it private it will be marked as "*private*" (unless ShowRealChannelNames is set).

/clear
    Clears the screen if your terminal supports it.

/join channel-name
    Join or create a channel. To make a new private channel surround the channel name in *'s. If you join a channel that you are already on it makes it your current channel (the one that public messages will go to). You can send public messages to other channels with the /msg command, mentioned below. The client enforces the restriction that a user may only enter three channels at any given time.

    /join yabbs
        Join channel yabbs or make it your current channel.

    /join *priv*
        Create and join the private channel priv.

/help
    List all talk commands and a quick explanation of how to use them. This might be more up to date than the manpage.

/hide
    Hide the current channel name. This makes it private if it wasn't already.

/ignore user-name
    This is just like the ignore command in the yabbsrc file. Read the section on yabbsrc files for more information.

/leave channel-name
    Leave a channel that you have joined. If there are *'s around the channel name they are ignored.

    /leave yabbs
        Leave the yabbs channel.

/msg to message
    Send a private message to a user or a public message to another channel. To send the message to a channel put a : before the channel name. You must be on a channel to send a message to it.

    /msg johndoe hey john, hows life
        Send the message "hey john, hows life" to the user johndoe.

    /msg :yabbs hi everyone
        Send the message "hi everyone" to the channel yabbs.

/notify user-name
    This is just like the notify command in the yabbsrc file. Read the section on yabbsrc files for more information.

/page user-name
    This sends a message to another online user (in talk or elsewhere) mentioning that you would like to talk to them. Abuse of this command is very rude.

/quit
    Quit talk and go back to the main yabbs menu.

/set var-name value
    This is just like the set command in the yabbsrc file. Read the section on yabbsrc files for more information.

/show
    Make the current channel name visible again.

/volume user-name
    This is just like the volume command in the yabbsrc file. Read the section on yabbsrc files for more information.

/who
    List all users logged onto yabbs. This also lists what site they are logged on from, what time they logged on, and how long they have been idle for (in minutes). If the site name ends in "*" it means that the user is probably telnetted in and that the site name could possibly be wrong.

Yabbs Environment Variables
Yabbs environment variables are used for specifying various options to yabbs. The environment variable name is not case sensitive. The currently implmented variables are listed below.

NOTE: These are not unix environment variables. They are specified through the set command in talk or your yabbsrc file.

Editor
    The name of an editor (ie, vi) to use when entering messages or editing plan files. The default for this is taken from your unix environment variable EDITOR or is set to "internal" if EDITOR is undefined.

Pager
    The name of a pager (ie, more) to use when reading gfiles. The default for this is taken from your unix environment variable PAGER or is set to "internal" if PAGER is undefined.

NotifyAll
    Ignore the notify list and mention anyone who logs on or off of the yabbs server. The value for this variable is ignored.

NotifyOnNewMessages
    Print a message if a new message arrives while you are in talk. The value for this variable is ignored.

RealChannelNames
    Show the servers representation of private channels names instead of "*private*". Mostly used for debugging purposes. The value for this variable is ignored.

DontAskTermType
    Don't prompt the user for their terminal type on startup. The value for this variable is ignored.

BeepOnPage
    Beep when a page (talk request) is recieved. The value for this variable is ignored.

Bugs in the Yabbs Client
It would be nice to change the command character for talk.

Aliases could be more robust.

There is no way to edit a yabbs info file, just replace it.

The client sometimes crashes if the terminal type is set to dumb.

The client doesn't handle as much of the MIME protocol as it could.

Author and Administravia
The yabbs client and this manpage are part of the yabbs package, which was written by Alex Wetmore (alex@phred.org). The newest version of this client should always be available from ftp.phred.org in the directory /pub/yabbs. There is a mailing list for announcements of upgrades to the yabbs software that you can join by sending mail to yabbs-announce-request@phred.org.

Yabbs is distributed under the GNU Public License (GPL). You should have received a copy of the GPL with this package.