+Simply insert a bulletin address and state in the brackets where you wish
+that mail to go. For example, you can see here that mail sent to "UK" will
+only be sent to the UK links and not to PA4AB-14.
+
+<P>
+To force the cluster to reread the file use load/forward
+
+<P>
+NB: If a user tries to send mail to a bulletin address that does not exist
+in this file, they will get an error.
+
+<sect1>The msg command
+
+<P>
+The <em>msg</em> command is a very powerful and flexible tool for the
+sysop. It allows the sysop to alter to and from fields and make other
+changes to manage the cluster mail.
+
+Here is a full list of the various options ...
+
+<tscreen><verb>
+ MSG TO <msgno> <call> - change TO callsign to <call>
+ MSG FRom <msgno> <call> - change FROM callsign to <call>
+ MSG PRrivate <msgno> - set private flag
+ MSG NOPRrivate <msgno> - unset private flag
+ MSG RR <msgno> - set RR flag
+ MSG NORR <msgno> - unset RR flag
+ MSG KEep <msgno> - set the keep flag (message won't be deleted ever)
+ MSG NOKEep <msgno> - unset the keep flag
+ MSG SUbject <msgno> <new> - change the subject to <new>
+ MSG WAittime <msgno> - remove any waiting time for this message
+ MSG NOREad <msgno> - mark message as unread
+ MSG REad <msgno> - mark message as read
+ MSG QUeue - queue any outstanding bulletins
+ MSG QUeue 1 - queue any outstanding private messages
+</verb></tscreen>
+
+These commands are simply typed from within the cluster as the sysop user.
+
+<sect1>Message status
+
+<P>
+You can check on a message from within the cluster by using the command
+<em>stat/msg</em>. This will give you additional information on the
+message number including which nodes have received it, which node it
+was received from and when etc. Here is an example of the output of
+the command ...
+
+<tscreen><verb>
+G0VGS de GB7MBC 28-Jan-2001 1308Z >
+stat/msg 6869
+ From: GB7DJK
+ Msg Time: 26-Jan-2001 1302Z
+ Msgno: 6869
+ Origin: GB7DJK
+ Size: 8012
+ Subject: AMSAT 2line KEPS 01025.AMSAT
+ To: UK
+Got it Nodes: GB7BAA, GB7ADX
+ Private: 0
+Read Confirm: 0
+ Times read: 0
+G0VGS de GB7MBC 28-Jan-2001 1308Z >
+</verb></tscreen>
+
+<sect1>Filtering mail
+
+<P>
+This is described in the section on <em>Other filters</em> so I will not
+duplicate it here.
+
+<sect1>Distribution lists
+
+<P>
+Distribution lists are simply a list of users to send certain types of
+mail to. An example of this is mail you only wish to send to other
+sysops. In /spider/msg there is a directory called <em>distro</em>. You
+put any distibution lists in here. For example, here is a file called
+SYSOP.pl that caters for the UK sysops.
+
+<tscreen><verb>
+qw(GB7TLH GB7DJK GB7DXM GB7CDX GB7BPQ GB7DXN GB7MBC GB7MBC-6 GB7MDX
+ GB7NDX GB7SDX GB7TDX GB7UDX GB7YDX GB7ADX GB7BAA GB7DXA GB7DXH
+ GB7DXK GB7DXI GB7DXS)
+</verb></tscreen>
+
+Any mail sent to "sysop" would only be sent to the callsigns in this list.
+
+<sect1>BBS interface
+
+<P>
+Spider provides a simple BBS interface. No input is required from the sysop
+of the cluster at all. The BBS simply sets the cluster as a BBS and pushes
+any required mail to the cluster. No mail can flow from Spider to the BBS,
+the interface is one-way.
+
+<P>
+Please be careful not to flood the cluster network with unnecessary mail.
+Make sure you only send mail to the clusters that want it by using the
+Forward.pl file very carefully.
+
+<sect>Scripts
+
+<p>
+From 1.48 onwards it will become increasingly possible to control DXSpider's
+operation with scripts of various kinds.
+
+<P>
+The directory /spider/scripts is where it all happens and is used for several
+things. Firstly it contains a file called startup that can be used to call
+in any changes to the cluster from the default settings on startup. This
+script is executed immediately after all initialisation of the node is done
+but before any connections are possible. Examples of this include how many
+spots it is possible to get with the sh/dx command, whether you want
+registration/passwords to be permanently on etc. An example file is shown
+below and is included in the distribution as startup.issue.
+
+<tscreen><verb>
+#
+# startup script example
+#
+# set maximum no of spots allowed to 100
+# set/var $Spot::maxspots = 100
+#
+# Set registration on
+# set/var $main::reqreg = 1
+#
+# Set passwords on
+# set/var $main::passwdreq = 1
+#
+</verb></tscreen>
+
+<P>
+As usual, any text behind a # is treated as a comment and not read. To use
+this file, simply rename it from startup.issue to startup. In our example
+above there are three options. The first option is the amount of spots that
+a user can request with the <em>sh/dx</em> command. Normally the default is
+to give 10 spots unless the user specifies more. Without this line enabled,
+the maximum a user can request is 100 spots. Depending on your link quality
+you may wish to enable more or less by specifying the number.
+
+<P>
+The other 2 options are dealt with more fully in the security section.
+
+<P>
+Secondly, it is used to store the login scripts for users and nodes. Currently
+this can only be done by the sysop but it is envisaged that eventually users will
+be able to set their own. An example is included in the distibution but here is
+a further example.
+
+<tscreen><verb>
+#
+# G0FYD
+#
+blank +
+sh/wwv 3
+blank +
+sh/dx
+blank +
+t g0jhc You abt?
+blank +
+</verb></tscreen>
+
+The lines in between commands can simply insert a blank line or a character
+such as a + sign to make the output easier to read. Simply create this script
+with your favourite editor and save it with the callsign of the user as the
+filename. Filenames should always be in lower case.
+
+<P>
+Commands can be inserted in the same way for nodes. A node may wish a series
+of commands to be issued on login, such as a merge command for example.
+
+<P>
+Thirdly, there are 2 default scripts for users and nodes who do not have a
+specifically defined script. These are <em>user_default</em> and
+<em>node_default</em>
+
+<sect>Databases
+
+<P>
+Spider allows the creation of local or remote databases. It supports
+chained databases, allowing several different databases to be scanned
+with one simple command. Importing of databases is limited at present
+to the standard AK1A databases such as OBLAST and the DB0SDX QSL
+database but will expand with time.
+
+<sect1>Creating databases
+
+<P>
+Creating a database could not be more simple. All the commands are
+sent from the cluster prompt as the <em>sysop</em> user.
+
+To create a database you use the command <em>dbcreate</em>. It can
+be used in 3 different ways like so ..
+
+<tscreen><verb>
+dbcreate <name>
+</verb></tscreen>
+
+To simply create a database locally, you just tell the command the
+name of the database. This does not create the actual database, it
+simply defines it to say that it exists.
+
+<tscreen><verb>
+dbcreate <name> chain <name> [<name>...]
+</verb></tscreen>
+
+This creates a chained database entry. The first database will be
+scanned, then the second, the third etc...
+
+<tscreen><verb>
+dbcreate <name> remote <name>
+</verb></tscreen>
+
+This creates a remote entry. the first name field is the database
+name at the remote node, then the remote switch, then the actual
+node_call of the remote node, for example...
+
+<tscreen><verb>
+dbcreate buckmaster remote gb7dxc
+</verb></tscreen>
+
+Remote databases cannot be chained, however, the last database in a
+chain can be a remote database.
+
+<sect1>Importing databases
+
+<P>
+The only databases that Spider can currently import are the standard
+AK1A databases such as OBLAST or the DB0SDX qsl and address database.
+This will be added to with time.
+
+To import such a database, first put the file somewhere useful like /tmp
+and then issue the following command ...
+
+<tscreen><verb>
+dbimport oblast /tmp/OBLAST.FUL
+</verb></tscreen>
+
+This will update the existing local oblast database or create it if
+it does not exist.
+
+<sect1>Checking available databases
+
+<P>
+Once a database is created, you will want to check that it has been
+added. To do this use the <em>dbavail</em> command. This will
+output the available databases. For example ...
+
+<tscreen><verb>
+dbavail
+DB Name Location Chain
+qsl Local
+buck GB7ADX
+hftest GB7DXM
+G0VGS de GB7MBC 3-Feb-2001 1925Z >
+</verb></tscreen>
+
+<sect1>Looking up databases
+
+<P>
+To look for information in a defined database, simply use the <em>dbshow</em>
+command, for example ...
+
+<tscreen><verb>
+dbshow buckmaster G0YLM
+</verb></tscreen>
+
+will show the information for the callsign G0YLM from the buckmaster
+database if it exists. To make things more standard for the users
+you can add an entry in the Aliases file so that it looks like a standard
+<em>show</em> command like this ...
+
+<tscreen><verb>
+'^sh\w*/buc', 'dbshow buckmaster', 'dbshow',
+</verb></tscreen>
+
+Now you can simply use show/buckmaster or an abreviation.
+
+<sect1>Removing databases
+
+<P>
+To delete an existing database you use the <em>dbremove</em> command.
+For example ...
+
+<tscreen><verb>
+dbremove oblast
+</verb></tscreen>
+
+would remove the oblast database and its associated datafile from the
+system. There are no warnings or recovery possible from this command.
+If you remove a database it ceases to exist and would have to be created
+from scratch if you still required it.
+
+<sect>Information, files and useful programs
+
+<sect1>MOTD
+
+<P>
+One of the more important things a cluster sysop needs to do is to get
+information to his users. The simplest way to do this is to have a banner
+that is sent to the user on login. This is know as a "message of the day"
+or "motd". To set this up, simply create a file in /spider/data called motd
+and edit it to say whatever you want. It is purely a text file and will be
+sent automatically to anyone logging in to the cluster.
+
+<sect1>MOTD_NOR
+
+<P>
+This message of the day file lives in the same directory as the standard
+motd file but is only sent to non-registered users. Once registered they
+will receive the same message as any other user.
+
+<sect1>Downtime message
+
+<P>
+If for any reason the cluster is down, maybe for upgrade or maintenance but
+the machine is still running, a message can be sent to the user advising them
+of the fact. This message lives in the /spider/data directory and is called
+"offline". Simply create the file and edit it to say whatever you wish.
+This file will be sent to a user attempting to log into the cluster when
+DXSpider is not actually running.
+
+<sect1>Other text messages
+
+<P>
+You can set other text messages to be read by the user if they input the file
+name. This could be for news items or maybe information for new users.
+To set this up, make a directory under /spider called <em>packclus</em>.
+Under this directory you can create files called <em>news</em> or <em>newuser</em>
+for example. In fact you can create files with any names you like. These can
+be listed by the user with the command ....
+
+<tscreen><verb>
+show/files
+</verb></tscreen>
+
+They can be read by the user by typing the command ....
+
+<tscreen><verb>
+type news
+</verb></tscreen>
+
+If the file they want to read is called <em>news</em>. You could also set
+an alias for this in the Alias file to allow them just to type <em>news</em>
+
+<P>
+You can also store other information in this directory, either directly or
+nested under directories. One use for this would be to store DX bulletins
+such as the OPDX bulletins. These can be listed and read by the user.
+To keep things tidy, make a directory under /spider/packclus called
+<em>bulletin</em>. Now copy any OPDX or similar bulletins into it. These
+can be listed by the user in the same way as above using the <em>show/files</em>
+command with an extension for the bulletin directory you have just created,
+like this ....
+
+<tscreen><verb>
+show/files bulletin
+</verb></tscreen>
+
+<P>
+An example would look like this ....
+
+<tscreen><verb>
+sh/files
+bulletin DIR 20-Dec-1999 1715Z news 1602 14-Dec-1999 1330Z
+</verb></tscreen>
+
+You can see that in the files area (basically the packclus directory) there is a
+file called <em>news</em> and a directory called <em>bulletin</em>. You can
+also see that dates they were created. In the case of the file <em>news</em>,
+you can also see the time it was last modified, a good clue as to whether the
+file has been updated since you last read it. To read the file called
+<em>news</em> you would simply issue the command ....
+
+<tscreen><verb>
+type news
+</verb></tscreen>
+
+To look what is in the bulletin directory you issue the command ....
+
+<tscreen><verb>
+show/files bulletin
+opdx390 21381 29-Nov-1999 1621Z opdx390.1 1670 29-Nov-1999 1621Z
+opdx390.2 2193 29-Nov-1999 1621Z opdx391 25045 29-Nov-1999 1621Z
+opdx392 35969 29-Nov-1999 1621Z opdx393 15023 29-Nov-1999 1621Z
+opdx394 33429 29-Nov-1999 1621Z opdx394.1 3116 29-Nov-1999 1621Z
+opdx395 24319 29-Nov-1999 1621Z opdx396 32647 29-Nov-1999 1621Z
+opdx396.1 5537 29-Nov-1999 1621Z opdx396.2 6242 29-Nov-1999 1621Z
+opdx397 18433 29-Nov-1999 1621Z opdx398 19961 29-Nov-1999 1621Z
+opdx399 17719 29-Nov-1999 1621Z opdx400 19600 29-Nov-1999 1621Z
+opdx401 27738 29-Nov-1999 1621Z opdx402 18698 29-Nov-1999 1621Z
+opdx403 24994 29-Nov-1999 1621Z opdx404 15685 29-Nov-1999 1621Z
+opdx405 13984 29-Nov-1999 1621Z opdx405.1 4166 29-Nov-1999 1621Z
+opdx406 28934 29-Nov-1999 1621Z opdx407 24153 29-Nov-1999 1621Z
+opdx408 15081 29-Nov-1999 1621Z opdx409 23234 29-Nov-1999 1621Z
+Press Enter to continue, A to abort (16 lines) >
+</verb></tscreen>
+
+You can now read any file in this directory using the type command, like this ....
+
+<tscreen><verb>
+type bulletin/opdx391
+Ohio/Penn DX Bulletin No. 391
+The Ohio/Penn Dx PacketCluster
+DX Bulletin No. 391
+BID: $OPDX.391
+January 11, 1999
+Editor Tedd Mirgliotta, KB8NW
+Provided by BARF-80 BBS Cleveland, Ohio
+Online at 440-237-8208 28.8k-1200 Baud 8/N/1 (New Area Code!)
+Thanks to the Northern Ohio Amateur Radio Society, Northern Ohio DX
+Association, Ohio/Penn PacketCluster Network, K1XN & Golist, WB2RAJ/WB2YQH
+& The 59(9) DXReport, W3UR & The Daily DX, K3TEJ, KN4UG, W4DC, NC6J, N6HR,
+Press Enter to continue, A to abort (508 lines) >
+</verb></tscreen>
+
+The page length will of course depend on what you have it set to!
+
+<sect1>The Aliases file
+
+<P>
+You will find a file in /spider/cmd/ called Aliases. This is the file that
+controls what a user gets when issuing a command. It is also possible to
+create your own aliases for databases and files you create locally.
+
+<P>
+You should not alter the original file in /spider/cmd/ but create a new file
+with the same name in /spider/local_cmd. This means that any new Aliases files
+that is downloaded will not overwrite your self created Aliases and also that
+you do not override any new Aliases with your copy in /spider/local_cmd/. You
+must remember that any files you store in /spider/local/ or /spider/local_cmd
+override the originals if the same lines are used in both files.
+
+<P>
+The best way of dealing with all this then is to only put your own locally
+created Aliases in the copy in /spider/local_cmd. The example below is
+currently in use at GB7MBC.
+
+<tscreen><verb>
+
+#
+# Local Aliases File
+#
+
+package CmdAlias;
+
+%alias = (
+ 'n' => [
+ '^news$', 'type news', 'type',
+ ],
+ 's' => [
+ '^sh\w*/buck$', 'show/qrz', 'show',
+ '^sh\w*/hftest$', 'dbshow hftest', 'dbshow',
+ '^sh\w*/qsl$', 'dbshow qsl', 'dbshow',
+ '^sh\w*/vhf$', 'dbshow vhf', 'dbshow',
+ '^sh\w*/vhftest$', 'dbshow vhftest', 'dbshow',
+ ],
+)
+
+</verb></tscreen>
+
+<P>
+Each alphabetical section should be preceded by the initial letter and the section
+should be wrapped in square brackets as you can see. The syntax is straightforward.
+The first section on each line is the new command that will be allowed once the
+alias is included. The second section is the command it is replacing and the last
+section is the actual command that is being used.
+
+<P>
+The eagle-eyed amongst you will have noticed that in the first section, the new
+alias command has a '^' at the start and a '$' at the end. Basically these force
+a perfect match on the alias. The '^' says match the beginning exactly and the
+'$' says match the end exactly. This prevents unwanted and unintentional matches
+with similar commands.
+
+<P>
+I have 3 different types of alias in this file. At the top is an alias for 'news'.
+This is a file I have created in the /spider/packclus/ directory where I can inform
+users of new developments or points of interest. In it's initial form a user would
+have to use the command <em>type news</em>. The alias allows them to simply type
+<em>news</em> to get the info. Second is an alias for the <em>show/qrz</em>
+command so that those users used to the original <em>show/buck</em> command in
+AK1A will not get an error, and the rest of the lines are for locally created
+databases so that a user can type <em>show/hftest</em> instead of having to use
+the command <em>dbshow hftest</em> which is not as intuitive.
+
+<P>
+This file is just an example and you should edit it to your own requirements.
+Once created, simply issue the command <em>load/alias</em> at the cluster
+prompt as the sysop user and the aliases should be available.
+
+
+<sect1>Console.pl
+
+<P>
+In later versions of Spider a simple console program is provided for the sysop.
+This has a type ahead buffer with line editing facilities and colour for spots,
+announces etc. To use this program, simply use console.pl instead of client.
+
+<P>
+To edit the colours, copy /spider/perl/Console.pl to /spider/local and edit the
+file with your favourite editor.
+
+<sect1>Updating kepler data
+
+<P>
+Spider has a powerful and flexible show/satellite command. In order for
+this to be accurate, the kepler data has to be updated regularly. In
+general, this data is available as an email or via cluster mail.
+Updating it is simple. First you need to export the mail message as a
+file. You do this with the <em>export</em> command from the cluster prompt
+as the sysop. For example ...
+
+<tscreen><verb>
+export 5467 /spider/perl/keps.in
+</verb></tscreen>
+
+<P>
+would export message number 5467 as a file called keps.in in the
+/spider/perl directory.
+
+<P>
+Now login to a VT as sysop and cd /spider/perl. There is a command in
+the perl directory called <em>convkeps.pl</em>. All we need to do now is
+convert the file like so ...
+
+<tscreen><verb>
+./convkeps.pl keps.in
+</verb></tscreen>
+
+<P>
+Now go back to the cluster and issue the command ...
+
+<tscreen><verb>
+load/keps
+</verb></tscreen>
+
+<P>
+That is it! the kepler data has been updated.
+
+<sect1>The QRZ callbook
+
+<P>
+The command <em>sh/qrz</em> will only work once you have followed a few
+simple steps. First you need to get a user ID and password from qrz.com.
+Simply go to the site and create one. Secondly you need to copy the file
+/spider/perl/Internet.pm to /spider/local and alter it to match your user
+ID and password. You also at this point need to set $allow=1 to complete
+the setup. Many thanks to Fred Lloyd, the proprieter of
+<htmlurl url="http://www.qrz.com" name="qrz.com"> for allowing this access.
+
+<sect1>Connecting logging programs
+
+<P>
+There appear to be very few logging programs out there that support telnet
+especially the popular ones like LogEQF, Turbolog etc. This can make it
+difficult to connect to your own cluster!
+The way to do it is to make the logging program think it has a TNC attached
+to a com port on the logging PC and 'push' a linux login out to it.
+This is achieved very simply by the use of <em>agetty</em>.
+
+<P>
+All that is required is to add a line in /etc/inittab to have the client
+ready for a connection on the com port of your choice. Remember that in
+Linux, the com ports start at ttyS0 for com1, ttyS1 for com2 etc.
+
+<tscreen><verb>
+c4:2345:respawn:/sbin/agetty -L 9600 ttyS1
+</verb></tscreen>
+
+<P>
+Add this after the standard runlevel lines in /etc/inittab. The above
+line works on ttyS1 (com2). Now as root, issue the command <em>telinit q</em>
+and it should be ready for connection. All that is required is a 3 wire
+serial lead (tx, rx and signal ground). Tell you logging program to use
+8n1 at 9600 baud and you should see a Linux login prompt. Login as normal
+and then telnet from there to the cluster.
+
+<sect>Java Web applet
+
+<P>
+In the spider tree will be a directory <em>spider-web</em>. This is a
+neat little java web applet that can be run from a website. The applet
+must run on the same machine as the cluster. The included README file is
+shown below.
+
+<P>
+I should comment here that the applet is precompiled, that is, ready to go.
+It was compiled using JDK1.3.1. If your version is earlier than this then it
+may not work. Should that be the case you need to recompile or update your
+JDK. To recompile do the following ...
+
+<tscreen><verb>
+cd /spider/spider-web
+rm *.class
+/usr/bin/javac spiderclient.java
+</verb></tscreen>
+
+<P>
+I have used /usr/bin/javac as an example, your path to javac may be different.
+
+<verb>
+Spider-WEB v0.6b
+
+Completely based on a clx web client written in Java by dl6dbh
+(ftp://clx.muc.de/pub/clx/clx-java_10130001.tgz)
+
+The webserver has to run on the same machine as your DxSpider software!
+
+It is assumed that you have Java installed. You need JDK1.3.1 at least.
+
+Installation instructions (Performed as root):
+
+Put all the files in the spider-web directory into a newly created directory
+under the DocumentRoot of your websever for instance 'client'. In my case
+this is: /home/httpd/html/client/ although ymmv. For Suse the correct
+path should be /usr/local/httpd/htdocs/client/ for example.
+
+Move spider.cgi to the cgi-bin directory of your webserver, in my case that is
+/home/httpd/cgi-bin/ although ymmv. For Suse the correct path should be
+/usr/local/httpd/cgi-bin/ for example.
+
+Change the permissions of the files to ensure they are correct, obviously you
+will need to use the correct path the the files according to your system:
+
+chmod 755 /home/httpd/html/cgi-bin/spider.cgi
+chmod -R 755 /home/httpd/html/client/
+
+By default the spider.cgi script should pick up your hostname (As long as this
+is set correctly). If it does not or your hostname differs from the name that
+you attach to the public address that you are using, then edit spider.cgi :
+
+# Uncomment and set the hostname manually here if the above fails.
+# $HOSTNAME = "gb7mbc.spoo.org" ;
+$PORT = "8000" ;
+
+'HOSTNAME' is the hostname of your cluster.
+
+'PORT' is the portnumber that you use to connect to your DxSpider via
+telnet (see Listeners.pm)
+
+NOTE: If you can start the console but cannot connect to the cluster from it,
+then it is possible that the machine you are on cannot resolve the hostname of
+your cluster machine. If this is the case, you need to set your hostname
+manually as above.
+
+You also need to set the $NODECALL variable. This prints the name of your
+choosing (probably your cluster callsign) on the html page.
+
+You now can connect to Spider-Web via http://yourserver/cgi-bin/spider.cgi
+</verb>
+
+<sect>Security
+
+<P>
+From version 1.49 DXSpider has some additional security features. These
+are not by any means meant to be exhaustive, however they do afford some
+security against piracy. These two new features can be used independently
+of each other or in concert to tighten the security.
+
+<sect1>Registration
+
+<P>
+The basic principle of registration is simple. If a user is not registered
+by the sysop, then they have read-only access to the cluster. The only
+thing they can actually send is a talk or a message to the sysop. In
+order for them to be able to spot, send announces or talks etc the sysop
+must register them with the <em>set/register</em> command, like this ...
+
+<tscreen><verb>
+set/register g0vgs
+</verb></tscreen>
+
+The user g0vgs can now fully use the cluster. In order to enable
+registration, you can issue the command ...
+
+<tscreen><verb>
+set/var $main::reqreg = 1
+</verb></tscreen>
+
+Any users that are not registered will now see the motd_nor file rather
+than the motd file as discussed in the Information, files and useful
+programs section.
+
+<P>
+Entering this line at the prompt will only last for the time the cluster
+is running of course and would not be present on a restart. To make the
+change permanent, add the above line to /spider/scripts/startup. To
+read more on the startup file, see the section on Information, files
+and useful programs.
+
+<P>
+To unregister a user use <em>unset/register</em> and to show the list
+of registered users, use the command <em>show/register</em>.
+
+<sect1>Passwords
+
+<P>
+At the moment, passwords only affect users who login to a DXSpider
+cluster node via telnet. If a user requires a password, they can
+either set it themselves or have the sysop enter it for them by using
+the <em>set/password</em> command. Any users who already have passwords,
+such as remote sysops, will be asked for their passwords automatically
+by the cluster. Using passwords in this way means that the user has a
+choice on whether to have a password or not. To force the use of
+passwords at login, issue the command ...
+
+<tscreen><verb>
+set/var $main::passwdreq = 1
+</verb></tscreen>
+
+at the cluster prompt. This can also be added to the /spider/scripts/startup
+file as above to make the change permanent.
+
+<P>
+Of course, if you do this you will have to assign a password for each of
+your users. If you were asking them to register, it is anticipated that
+you would ask them to send you a message both to ask to be registered and
+to give you the password they wish to use.
+
+<P>
+Should a user forget their password, it can be reset by the sysop by
+first removing the existing password and then setting a new one like so ...
+
+<tscreen><verb>
+unset/password g0vgs
+set/password g0vgs new_password
+</verb></tscreen>
+
+<sect>CVS
+
+<P>
+CVS stands for "Concurrent Versions System" and the CVS for DXSpider is held
+at <htmlurl url="http://www.sourceforge.net" name="Sourceforge">. This means
+that it is possible to update your DXSpider installation to the latest
+sources by using a few simple commands.
+
+<P>
+Please be aware that if you update your system using CVS, it is possible that
+you could be running code that is very beta and not fully tested. There is
+a possibility that it could be unstable.
+
+<P>
+I am of course assuming that you have a machine with both DXSpider and
+Internet access running.
+
+<P>
+BEFORE YOU EVEN CONSIDER STARTING WITH THIS MAKE A BACKUP OF YOUR
+ENTIRE SPIDER TREE!!
+
+<P>
+Assuming you are connected to the Internet, you need to login to the
+CVS repository and then update your Spider source. There are several
+steps which are listed below ...
+
+<P>
+First login as the user <em>sysop</em>. Next you need to connect to the CVS
+repository. You do this with the command below ...
+
+<verb>
+cvs -d:pserver:anonymous@cvs.DXSpider.sourceforge.net:/cvsroot/dxspider login
+</verb>
+
+You will get a password prompt. Simply hit return here and your machine should
+return to a normal linux prompt.
+
+<P>
+What happens next depends on whether you have an existing installation that
+you want to update with the latest and greatest or whether you just want
+to see what is there and/or run it on a new machine for testing.
+
+If you are installing Spider from CVS then change directory to /home/sysop
+
+If you are wanting to update Spider then cd to /tmp
+
+<P>
+The next step will create a brand new 'spider' directory in your current
+directory.
+
+<verb>
+cvs -z3 -d:pserver:anonymous@cvs.DXSpider.sourceforge.net:/cvsroot/dxspider co spider
+</verb>
+
+This command is all on one line.
+
+<P>
+Hopefully your screen should show you downloading files. The -z3 simply compresses
+the download to improve speed.
+When this has finished, you will have exactly the same as if you had untarred a full
+tarball PLUS some extra directories and files that CVS needs to do the magic that
+it does.
+
+<P>
+Now if you are doing a new installation, that's it. Carry on as if you have
+just downloaded and untarred the lastest tarball.
+
+<P>
+If you want to upgrade your current installation then do this ...
+
+<tscreen><verb>
+tar cvfz /tmp/s.tgz spider
+cd /
+tar xvfzp /tmp/s.tgz
+</verb></tscreen>
+
+This is assuming you downloaded to the /tmp directory of course.
+
+<P>
+NOTE: the 'p' on the end of the 'xvfz' is IMPORTANT! It keeps the permissions
+correct. YOU WERE LOGGED IN AS THE USER SYSOP WEREN'T YOU?????
+
+Remember to recompile the C client (cd /spider/src; make)
+
+<P>
+At this point the files have been upgraded. You can (usually) restart the cluster
+in your own time. However, if you attempt to use any new commands or features
+expect it to be fatal! At least your cluster will have been restarted then so it
+will be too late to worry about it!
+
+<P>
+Now the magic part! From now on when you want to update, simply connect to the
+Internet and then, as the user <em>sysop</em> ...
+
+<tscreen><verb>
+cd /spider
+cvs -z3 update -d
+</verb></tscreen>
+
+and your files will be updated. As above, remember to recompile the "C" client
+if it has been updated (CVS will tell you) and restart if any of the perl scripts
+have been altered or added, again, CVS will tell you.
+
+<P>
+You will find any changes documented in the /spider/Changes file.
+
+<sect>The DXSpider command set
+
+<P>
+Below is a complete list of commands available from the cluster prompt.
+Most maintenance tasks are automatic but there are some commands that are useful
+for a sysop. These are listed below in alphabetical order. The number in
+brackets following the command name is the permissions level needed to use
+the command.
+
+<sect1>accept/announce (0)
+
+<P>
+<tt>
+<bf>accept/announce [0-9] <pattern></bf> Set an accept filter
+ line for announce
+</tt>
+
+<P>
+Create an 'accept this announce' line for a filter.
+
+An accept filter line means that if the announce matches this filter it is
+passed onto the user. See HELP FILTERS for more info. Please read this
+to understand how filters work - it will save a lot of grief later on.
+
+You can use any of the following things in this line:-
+
+<tscreen><verb>
+ info <string> eg: iota or qsl
+ by <prefixes> eg: G,M,2
+ origin <prefixes>
+ origin_dxcc <numbers> eg: 61,62 (from eg: sh/pre G)
+ origin_itu <numbers>
+ origin_zone <numbers>
+ by_dxcc <numbers>
+ by_itu <numbers>
+ by_zone <numbers>
+ channel <prefixes>
+ wx 1 filter WX announces
+ dest <prefixes> eg: 6MUK,WDX (distros)
+</verb></tscreen>
+
+some examples:-
+
+<tscreen><verb>
+ acc/ann dest 6MUK
+ acc/ann 2 by_zone 14,15,16
+ (this could be all on one line: acc/ann dest 6MUK or by_zone 14,15,16)
+</verb></tscreen>
+
+or
+
+<tscreen><verb>
+ acc/ann by G,M,2
+</verb></tscreen>
+
+This filter would only allow announces that were posted buy UK stations.
+You can use the tag 'all' to accept everything eg:
+
+<tscreen><verb>
+ acc/ann all
+</verb></tscreen>
+
+but this probably for advanced users...
+
+<sect1>accept/announce (extended for sysops) (8)
+
+<P>
+<tt>
+<bf>accept/announce <call> [input] [0-9]<pattern></bf> Announce filter sysop version
+</tt>
+
+<P>
+This version allows a sysop to set a filter for a callsign as well as the
+default for nodes and users eg:-
+
+<tscreen><verb>
+ accept/ann by G,M,2
+ accept/ann input node_default by G,M,2
+ accept/ann user_default by G,M,2
+</verb></tscreen>
+
+<sect1>accept/route (8)
+
+<P>
+<tt>
+<bf>accept/route <call> [0-9] <pattern></bf> Set an 'accept' filter line for routing
+</tt>
+
+<P>
+Create an 'accept this routing PC Protocol' line for a filter.
+
+<P>
+An accept filter line means that if a PC16/17/19/21/24/41/50 matches this filter
+it is passed thru that interface. See HELP FILTERING for more info. Please read this
+to understand how filters work - it will save a lot of grief later on.
+
+<P>
+You can use any of the following things in this line:-
+
+<tscreen><verb>
+ call <prefixes> the callsign of the thingy
+ call_dxcc <numbers> eg: 61,62 (from eg: sh/pre G)
+ call_itu <numbers>
+ call_zone <numbers>
+ origin <prefixes> really the interface it came in on
+ origin_dxcc <numbers> eg: 61,62 (from eg: sh/pre G)
+ origin_itu <numbers>
+ origin_zone <numbers>
+</verb></tscreen>
+
+<P>
+some examples:-
+
+<tscreen><verb>
+ acc/route gb7djk call_dxcc 61,38 (send only UK+EIRE nodes)
+ acc/route gb7djk call gb7djk (equiv to SET/ISOLATE)
+</verb></tscreen>
+
+<P>
+You can use the tag 'all' to accept everything eg:
+
+<tscreen><verb>
+ acc/route all
+</verb></tscreen>
+
+<sect1>accept/spots (0)
+
+<P>
+<tt>
+<bf>accept/spots [0-9] <pattern></bf> Set an accept filter
+line for spots
+</tt>
+
+<P>
+Create an 'accept this spot' line for a filter.
+
+<P>
+An accept filter line means that if the spot matches this filter it is
+passed onto the user. See HELP FILTERS for more info. Please read this
+to understand how filters work - it will save a lot of grief later on.
+
+You can use any of the following things in this line:-
+
+<tscreen><verb>
+ freq <range> eg: 0/30000 or hf or hf/cw or 6m,4m,2m
+ on <range> same as 'freq'
+ call <prefixes> eg: G,PA,HB9
+ info <string> eg: iota or qsl
+ by <prefixes>
+ call_dxcc <numbers> eg: 61,62 (from eg: sh/pre G)
+ call_itu <numbers>
+ call_zone <numbers>
+ by_dxcc <numbers>
+ by_itu <numbers>
+ by_zone <numbers>
+ origin <prefixes>
+ channel <prefixes>
+</verb></tscreen>
+
+<P>
+For frequencies, you can use any of the band names defined in
+SHOW/BANDS and you can use a subband name like: cw, rtty, data, ssb -
+thus: hf/ssb. You can also just have a simple range like: 0/30000 -
+this is more efficient than saying simply: freq HF (but don't get
+too hung up about that)
+
+some examples:-
+
+<tscreen><verb>
+ acc/spot 1 on hf/cw
+ acc/spot 2 on vhf and (by_zone 14,15,16 or call_zone 14,15,16)
+</verb></tscreen>
+
+You can use the tag 'all' to accept everything, eg:
+
+<tscreen><verb>
+ acc/spot 3 all
+</verb></tscreen>
+
+but this probably for advanced users...
+
+<sect1>accept/spots (extended for sysops) (8)
+
+<P>
+<tt>
+<bf>accept/spots <call> [input] [0-9] <pattern></bf> Spot filter sysop version
+</tt>
+
+<P>
+This version allows a sysop to set a filter for a callsign as well as the
+default for nodes and users eg:-
+
+<tscreen><verb>
+ accept/spot db0sue-7 1 by_zone 14,15,16
+ accept/spot node_default all
+ set/hops node_default 10
+
+ accept/spot user_default by G,M,2
+</verb></tscreen>
+
+<sect1>accept/wcy (0)
+
+<P>
+<tt>
+<bf>accept/wcy [0-9] <pattern></bf> set an accept WCY filter
+</tt>
+
+<P>
+It is unlikely that you will want to do this, but if you do then you can
+filter on the following fields:-
+
+<tscreen><verb>
+ by <prefixes> eg: G,M,2
+ origin <prefixes>
+ origin_dxcc <numbers> eg: 61,62 (from eg: sh/pre G)
+ origin_itu <numbers>
+ origin_zone <numbers>
+ by_dxcc <numbers>
+ by_itu <numbers>
+ by_zone <numbers>
+ channel <prefixes>
+</verb></tscreen>
+
+<P>
+There are no examples because WCY Broadcasts only come from one place and
+you either want them or not (see UNSET/WCY if you don't want them).
+
+This command is really provided for future use.
+
+See HELP FILTER for information.
+
+<sect1>accept/wcy (extended for sysops) (8)
+
+<P>
+<tt>
+<bf>accept/wcy <call> [input] [0-9] <pattern></bf>
+WCY filter sysop version
+</tt>
+
+<P>
+This version allows a sysop to set a filter for a callsign as well as the
+default for nodes and users eg:-
+
+<tscreen><verb>
+ accept/wcy node_default all
+ set/hops node_default 10
+</verb></tscreen>
+
+<sect1>accept/wwv (0)
+
+<P>
+<tt>
+<bf>accept/wwv [0-9] <pattern></bf> Set an accept WWV filter
+</tt>
+
+<P>
+It is unlikely that you will want to do this, but if you do then you can
+filter on the following fields:-
+
+<tscreen><verb>
+ by <prefixes> eg: G,M,2
+ origin <prefixes>
+ origin_dxcc <numbers> eg: 61,62 (from eg: sh/pre G)
+ origin_itu <numbers>
+ origin_zone <numbers>
+ by_dxcc <numbers>
+ by_itu <numbers>
+ by_zone <numbers>
+ channel <prefixes>
+</verb></tscreen>
+
+for example
+
+<tscreen><verb>
+ accept/wwv by_zone 4
+</verb></tscreen>
+
+is probably the only useful thing to do (which will only show WWV broadcasts
+by stations in the US).
+
+See HELP FILTER for information.
+
+<sect1>accept/wwv (extended for sysops) (8)
+
+<P>
+<tt>
+<bf>accept/wwv <call> [input] [0-9] <pattern></bf>
+WWV filter sysop version
+</tt>
+
+<P>
+This version allows a sysop to set a filter for a callsign as well as the
+default for nodes and users eg:-
+
+<tscreen><verb>
+ accept/wwv db0sue-7 1 by_zone 4
+ accept/wwv node_default all
+ set/hops node_default 10
+
+ accept/wwv user_default by W,K
+</verb></tscreen>
+
+<sect1>announce (0)
+
+<P>
+<tt>
+<bf>announce <text></bf> Send an announcement to local users
+</tt>
+
+<P>
+Send an announcement to LOCAL users only, where <text> is the text
+of the announcement you wish to broadcast. If you do not wish to receive
+announces, use the <em>set/noannounce</em> command. Any announces made by
+a sysop will override set/noannounce.
+
+<sect1>announce full (0)
+
+<P>
+<tt>
+<bf>announce full <text></bf> Send an announcement cluster wide
+</tt>
+
+<P>
+This command will send your announcement across the whole cluster
+network.
+
+
+<sect1>announce sysop (5)
+
+<P>
+<tt>
+<bf>announce sysop <text></bf>
+</tt>
+
+<P>
+Send an announcement to Sysops only
+
+<sect1>apropos (0)
+
+<P>
+<tt>
+<bf>apropos <string></bf> Search the help database
+</tt>
+
+<P>
+Search the help database for <string> (it isn't case sensitive),
+and print the names of all the commands that may be relevant.
+
+<sect1>bye (0)
+
+<P>
+<tt>
+<bf>bye</bf> Exit from the cluster
+</tt>
+
+<P>
+This will disconnect you from the cluster
+
+<sect1>catchup (5)
+
+<P>
+<tt>
+<bf>catchup <node_call> All|[<msgno> ...]</bf>
+Mark a message as sent
+</tt>
+
+<P>
+When you send messages the fact that you have forwarded it to another node
+is remembered so that it isn't sent again. When you have a new partner
+node and you add their callsign to your /spider/msg/forward.pl file, all
+outstanding non-private messages will be forwarded to them. This may well
+be ALL the non-private messages. You can prevent this by using these
+commmands:-
+
+<tscreen><verb>
+ catchup GB7DJK all
+ catchup GB7DJK 300 301 302 303 500-510
+</verb></tscreen>
+
+and to undo what you have just done:-
+
+<tscreen><verb>
+ uncatchup GB7DJK all
+ uncatchup GB7DJK 300 301 302 303 500-510
+</verb></tscreen>
+
+which will arrange for them to be forward candidates again.
+
+Order is not important.
+
+<sect1>clear/announce (8)
+
+<P>
+<tt>
+<bf>clear/announce [input] <callsign> [0-9|all]</bf> Clear an announce filter line
+</tt>
+
+<P>
+A sysop can clear an input or normal output filter for a user or the
+node_default or user_default.
+
+<sect1>clear/route (8)
+
+<P>
+<tt>
+<bf>clear/route [input] ^lt;callsign> [0-9|all]</bf> Clear a route filter line
+</tt>
+
+<P>
+This command allows you to clear (remove) a line in a route filter or to
+remove the whole filter.
+
+see CLEAR/SPOTS for a more detailed explanation.
+
+A sysop can clear an input or normal output filter for a user or the
+node_default or user_default.
+
+<sect1>clear/spots (0)
+
+<P>
+<tt>
+<bf>clear/spots [1|all]</bf> Clear a spot filter line
+</tt>
+
+<P>
+This command allows you to clear (remove) a line in a spot filter or to
+remove the whole filter.
+
+If you have a filter:-
+
+<tscreen><verb>
+ acc/spot 1 on hf/cw
+ acc/spot 2 on vhf and (by_zone 14,15,16 or call_zone 14,15,16)
+</verb></tscreen>
+
+and you say:-
+
+<tscreen><verb>
+ clear/spot 1
+</verb></tscreen>
+
+you will be left with:-
+
+<tscreen><verb>
+ acc/spot 2 on vhf and (by_zone 14,15,16 or call_zone 14,15,16)
+</verb></tscreen>
+
+If you do:
+
+<tscreen><verb>
+ clear/spot all
+</verb></tscreen>
+
+the filter will be completely removed.
+
+<sect1>clear/spots (extended for sysops) (8)
+
+<P>
+<tt>
+<bf>clear/spots [input] <callsign> [0-9|all]</bf> Clear a spot filter line
+</tt>
+
+<P>
+A sysop can clear an input or normal output filter for a user or the
+node_default or user_default.
+
+<sect1>clear/wcy (0)
+
+<P>
+<tt>
+<bf>clear/wcy [1|all]</bf> Clear a WCY filter line
+</tt>
+
+<P>
+This command allows you to clear (remove) a line in a WCY filter or to
+remove the whole filter.
+
+see CLEAR/SPOTS for a more detailed explanation.
+
+<sect1>clear/wcy (extended for sysops) (8)
+
+<P>
+<tt>
+<bf>clear/wcy [input] <callsign> [0-9|all]</bf> Clear a WCY filter line
+</tt>
+
+<P>
+A sysop can clear an input or normal output filter for a user or the
+node_default or user_default.
+
+<sect1>clear/wwv (0)
+
+<P>
+<tt>
+<bf>clear/wwv [1|all]</bf> Clear a WWV filter line
+</tt>
+
+<P>
+This command allows you to clear (remove) a line in a WWV filter or to
+remove the whole filter.
+
+see CLEAR/SPOTS for a more detailed explanation.
+
+<sect1>clear/wwv (extended for sysops) (8)
+
+<P>
+<tt>
+<bf>clear/wwv [input] <callsign> [0-9|all]</bf> Clear a WWV filter line
+</tt>
+
+<P>
+A sysop can clear an input or normal output filter for a user or the
+node_default or user_default.
+
+<sect1>connect (5)
+
+<P>
+<tt>
+<bf>connect <callsign></bf> Start a connection to another DX Cluster
+</tt>
+
+<P>
+Start a connection process that will culminate in a new connection to the
+DX cluster <callsign>. This process creates a new 'client' process which will
+use the script in /spider/connect/<callsign> to effect the 'chat' exchange
+necessary to traverse the network(s) to logon to the cluster <callsign>.
+
+<sect1>dbavail (0)
+
+<P>
+<tt>
+<bf>dbavail</bf> Show a list of all the databases in the system
+</tt>
+
+<P>
+The title says it all really, this command lists all the databases defined
+in the system. It is also aliased to SHOW/COMMAND.
+
+<sect1>dbcreate (9)
+
+<P>
+<tt>
+<bf>dbcreate <name></bf> Create a database entry<newline>
+<bf>dbcreate <name> chain <name> [<name>..]</bf> Create a
+chained database entry<newline>
+<bf>dbcreate <name> remote <node></bf> Create a remote database
+entry<newline>
+</tt>
+
+<P>
+DBCREATE allows you to define a database in the system. It doesn't actually
+create anything, just defines it.
+
+The databases that are created are simple DB_File hash databases, they are
+therefore already 'indexed'.
+
+You can define a local database with the first form of the command eg:
+
+ DBCREATE oblast
+
+You can also chain databases with the addition of the 'chain' keyword.
+This will search each database one after the other. A typical example
+is:
+
+ DBCREATE sdx_qsl chain sql_ad
+
+No checking is done to see if the any of the chained databases exist, in
+fact it is usually better to do the above statement first then do each of
+the chained databases.
+
+Databases can exist offsite. To define a database that lives on another
+node do:
+
+ DBCREATE buckmaster remote gb7dxc
+
+Remote databases cannot be chained; however, the last database in a
+a chain can be a remote database eg:
+
+ DBCREATE qsl chain gb7dxc
+
+To see what databases have been defined do:
+
+ DBAVAIL (or it will have been aliased to SHOW/COMMAND)
+
+It would be normal for you to add an entry into your local Aliases file
+to allow people to use the 'SHOW/<dbname>' style syntax. So you would
+need to add a line like:-
+
+<tscreen><verb>
+ 's' => [
+ ..
+ ..
+ '^sh\w*/buc', 'dbshow buckmaster', 'dbshow',
+ ..
+ ..
+ ],
+</verb></tscreen>
+
+to allow
+
+ SH/BUCK g1tlh
+
+to work as they may be used to.
+
+See DBIMPORT for the importing of existing AK1A format data to databases.
+See DBSHOW for generic database enquiry
+
+<sect1>dbimport (9)
+
+<P>
+<tt>
+<bf>dbimport <dbname></bf> Import AK1A data into a database
+</tt>
+
+<P>
+If you want to import or update data in bulk to a database you can use
+this command. It will either create or update entries into an existing
+database. For example:-
+
+ DBIMPORT oblast /tmp/OBLAST.FUL
+
+will import the standard OBLAST database that comes with AK1A into the
+oblast database held locally.
+
+<sect1>dbremove (9)
+
+<P>
+<tt>
+<bf>dbremove <dbname></bf> Delete a database
+</tt>
+
+<P>
+DBREMOVE will completely remove a database entry and also delete any data
+file that is associated with it.
+
+There is no warning, no comeback, no safety net.
+
+For example:
+
+ DBREMOVE oblast
+
+will remove the oblast database from the system and it will also remove
+the associated datafile.
+
+I repeat:
+
+There is no warning, no comeback, no safety net.
+
+You have been warned.
+
+<sect1>dbshow (0)
+
+<P>
+<tt>
+<bf>dbshow <dbname> <key></bf> Display an entry, if it exists,
+in a database
+</tt>
+
+<P>
+This is the generic user interface to the database to the database system.
+It is expected that the sysop will add an entry to the local Aliases file
+so that users can use the more familiar AK1A style of enquiry such as:
+
+<tscreen><verb>
+ SH/BUCK G1TLH
+</verb></tscreen>
+
+but if he hasn't and the database really does exist (use DBAVAIL or
+SHOW/COMMAND to find out) you can do the same thing with:
+
+<tscreen><verb>
+ DBSHOW buck G1TLH
+</verb></tscreen>
+
+
+<sect1>debug (9)
+
+<P>
+<tt>
+<bf>debug</bf> Set the cluster program into debug mode
+</tt>
+
+<P>
+Executing this command will only have an effect if you are running the cluster
+in debug mode i.e.
+
+<tscreen><verb>
+ perl -d cluster.pl
+</verb></tscreen>
+
+It will interrupt the cluster just after the debug command has finished.
+
+<sect1>delete/user (9)
+
+<P>
+<tt>
+<bf>delete/user <callsign></bf> Delete a user from the User Database
+</tt>
+
+<P>
+This command will completely remove a one or more users from the database.
+
+There is NO SECOND CHANCE.
+
+It goes without saying that you should use this command CAREFULLY!
+
+<sect1>demonstrate (9)
+
+<P>
+<tt>
+<bf>demonstrate <call> <command></bf> Demonstrate a command to another user
+</tt>
+
+<P>
+This command is provided so that sysops can demonstrate commands to
+other users. It runs a command as though that user had typed it in and
+then sends the output to that user, together with the command that
+caused it.
+
+<tscreen><verb>
+ DEMO g7brn sh/dx iota oc209
+ DEMO g1tlh set/here
+</verb></tscreen>
+
+Note that this command is similar to SPOOF and will have the same side
+effects. Commands are run at the privilege of the user which is being
+demonstrated to.
+
+<sect1>directory (0)
+
+<P>
+<tt>
+<bf>directory</bf> List messages<newline>
+<bf>directory all</bf> List all messages<newline>
+<bf>directory own</bf> List your own messages<newline>
+<bf>directory new</bf> List all new messages<newline>
+<bf>directory to <call></bf> List all messages to <call><newline>
+<bf>directory from <call></bf> List all messages from <call><newline>
+<bf>directory subject <string></bf> List all messages with <string>
+in subject<newline>
+<bf>directory <nn></bf> List last <nn> messages<newline>
+<bf>directory <from>-<to></bf> List messages <from> message <to> message <newline>
+</tt>
+
+<P>
+List the messages in the messages directory.
+
+If there is a 'p' one space after the message number then it is a
+personal message. If there is a '-' between the message number and the
+'p' then this indicates that the message has been read.
+
+You can use shell escape characters such as '*' and '?' in the <call>
+fields.
+
+You can combine some of the various directory commands together eg:-
+
+<tscreen><verb>
+ DIR TO G1TLH 5
+or
+ DIR SUBJECT IOTA 200-250
+</verb></tscreen>
+
+You can abbreviate all the commands to one letter and use ak1a syntax:-
+
+<tscreen><verb>
+ DIR/T G1* 10
+ DIR/S QSL 10-100 5
+</verb></tscreen>
+
+
+<sect1>directory (extended for sysops) (5)
+
+<P>
+Works just like the user command except that sysops can see ALL messages.
+
+<sect1>disconnect (8)
+
+<P>
+<tt>
+<bf>disconnect <call> [<call> ...]</bf> Disconnect a user or node
+</tt>
+
+<P>
+Disconnect any <call> connected locally
+
+<sect1>dx (0)
+
+<P>
+<tt>
+<bf>dx [by <call>] <freq> <call> <remarks></bf> Send a DX spot
+</tt>
+
+<P>
+This is how you send a DX Spot to other users. You can, in fact, now
+enter the <freq> and the <call> either way round.
+
+<tscreen><verb>
+ DX FR0G 144.600
+ DX 144.600 FR0G
+ DX 144600 FR0G
+</verb></tscreen>
+
+will all give the same result. You can add some remarks to the end
+of the command and they will be added to the spot.
+
+<tscreen><verb>
+ DX FR0G 144600 this is a test
+</verb></tscreen>
+
+You can credit someone else by saying:-
+
+<tscreen><verb>
+ DX by G1TLH FR0G 144.600 he isn't on the cluster
+</verb></tscreen>
+
+The <freq> is compared against the available bands set up in the
+cluster. See SHOW/BANDS for more information.
+
+<sect1>export (9)
+
+<P>
+<tt>
+<bf>export <msgno> <filename></bf> Export a message to a file
+</tt>
+
+<P>
+Export a message to a file. This command can only be executed on a local
+console with a fully privileged user. The file produced will be in a form
+ready to be imported back into the cluster by placing it in the import
+directory (/spider/msg/import).
+
+This command cannot overwrite an existing file. This is to provide some
+measure of security. Any files written will owned by the same user as the
+main cluster, otherwise you can put the new files anywhere the cluster can
+access. For example:-
+
+ EXPORT 2345 /tmp/a
+
+<sect1>export_users (9)
+
+<P>
+<tt>
+<bf>export_users [<filename>]</bf> Export the users database to ascii
+</tt>
+
+<P>
+Export the users database to a file in ascii format. If no filename
+is given then it will export the file to /spider/data/user_asc.
+
+If the file already exists it will be renamed to <filename>.o. In fact
+up to 5 generations of the file can be kept each one with an extra 'o' on the
+suffix.
+
+BE WARNED: this will write to any file you have write access to. No check is
+made on the filename (if any) that you specify.
+
+<sect1>filtering (0)
+
+<P>
+<tt>
+<bf>filtering</bf> Filtering things in DXSpider
+</tt>
+
+<P>
+There are a number of things you can filter in the DXSpider system. They
+all use the same general mechanism.
+
+In general terms you can create a 'reject' or an 'accept' filter which
+can have up to 10 lines in it. You do this using, for example:-
+
+ accept/spots .....
+ reject/spots .....
+
+where ..... are the specific commands for that type of filter. There
+are filters for spots, wwv, announce, wcy and (for sysops)
+connects. See each different accept or reject command reference for
+more details.
+
+There is also a command to clear out one or more lines in a filter and
+one to show you what you have set. They are:-
+
+ clear/spots 1
+ clear/spots all
+
+and
+
+ show/filter
+
+There is clear/xxxx command for each type of filter.
+
+For now we are going to use spots for the examples, but you can apply
+the principles to all types of filter.
+
+There are two main types of filter 'accept' or 'reject'; which you use
+depends entirely on how you look at the world and what is least
+writing to achieve what you want. Each filter has 10 lines (of any
+length) which are tried in order. If a line matches then the action
+you have specified is taken (ie reject means ignore it and accept
+means gimme it).
+
+The important thing to remember is that if you specify a 'reject'
+filter (all the lines in it say 'reject/spots' (for instance) then if
+a spot comes in that doesn't match any of the lines then you will get
+it BUT if you specify an 'accept' filter then any spots that don't
+match are dumped. For example if I have a one line accept filter:-
+
+ accept/spots on vhf and (by_zone 14,15,16 or call_zone 14,15,16)
+
+then automatically you will ONLY get VHF spots from or to CQ zones 14
+15 and 16. If you set a reject filter like:
+
+ reject/spots on hf/cw
+
+Then you will get everything EXCEPT HF CW spots, If you am interested in IOTA
+and will work it even on CW then you could say:-
+
+ reject/spots on hf/cw and not info iota
+
+But in that case you might only be interested in iota and say:-
+
+ accept/spots not on hf/cw or info iota
+
+which is exactly the same. You should choose one or the other until
+you are confortable with the way it works. Yes, you can mix them
+(actually you can have an accept AND a reject on the same line) but
+don't try this at home until you can analyse the results that you get
+without ringing up the sysop for help.
+
+You can arrange your filter lines into logical units, either for your
+own understanding or simply convenience. I have one set frequently:-
+
+ reject/spots 1 on hf/cw
+ reject/spots 2 on 50000/1400000 not (by_zone 14,15,16 or call_zone 14,15,16)
+
+What this does is to ignore all HF CW spots (being a class B I can't
+read any CW and couldn't possibly be interested in HF :-) and also
+rejects any spots on VHF which don't either originate or spot someone
+in Europe.
+
+This is an exmaple where you would use the line number (1 and 2 in
+this case), if you leave the digit out, the system assumes '1'. Digits
+'0'-'9' are available.
+
+You can leave the word 'and' out if you want, it is implied. You can
+use any number of brackets to make the 'expression' as you want
+it. There are things called precedence rules working here which mean
+that you will NEED brackets in a situation like line 2 because,
+without it, will assume:-
+
+ (on 50000/1400000 and by_zone 14,15,16) or call_zone 14,15,16
+
+annoying, but that is the way it is. If you use OR - use
+brackets. Whilst we are here CASE is not important. 'And BY_Zone' is
+just 'and by_zone'.
+
+If you want to alter your filter you can just redefine one or more
+lines of it or clear out one line. For example:-
+
+ reject/spots 1 on hf/ssb
+
+or
+
+ clear/spots 1
+
+To remove the filter in its entirty:-
+
+ clear/spots all
+
+There are similar CLEAR commands for the other filters:-
+
+ clear/announce
+ clear/wcy
+ clear/wwv
+
+ADVANCED USERS:-
+
+Once you are happy with the results you get, you may like to experiment.
+
+my example that filters hf/cw spots and accepts vhf/uhf spots from EU
+can be written with a mixed filter, eg:
+
+ rej/spot on hf/cw
+ acc/spot on 0/30000
+ acc/spot 2 on 50000/1400000 and (by_zone 14,15,16 or call_zone 14,15,16)
+
+each filter slot actually has a 'reject' slot and an 'accept'
+slot. The reject slot is executed BEFORE the accept slot.
+
+It was mentioned earlier that after a reject test that doesn't match,
+the default for following tests is 'accept', the reverse is true for
+'accept'. In the example what happens is that the reject is executed
+first, any non hf/cw spot is passed to the accept line, which lets
+thru everything else on HF.
+
+The next filter line lets through just VHF/UHF spots from EU.
+
+<sect1>forward/latlong (8)
+
+<P>
+<tt>
+<bf>forward/latlong <node_call></bf> Send latitude and longitude
+information to another cluster
+</tt>
+
+<P>
+This command sends all the latitude and longitude information that your
+cluster is holding against callsigns. One advantage of recieving this
+information is that more locator information is held by you. This
+means that more locators are given on the DX line assuming you have
+<em>set/dxgrid</em> enabled. This could be a LOT of information though, so
+it is not recommended on slow links.
+
+<sect1>forward/opername (1)
+
+<P>
+<tt>
+<bf>forward/opername <call></bf> Send out information on this <call>
+to all clusters
+</tt>
+
+<P>
+This command sends out any information held in the user file which can
+be broadcast in PC41 protocol packets. This information is Name, QTH, Location
+and Homenode. PC41s are only sent for the information that is available.
+
+<sect1>help (0)
+
+<P>
+<tt>
+<bf>help <cmd></bf> Get help on a command
+</tt>
+
+<P>
+All commands can be abbreviated, so SHOW/DX can be abbreviated
+to SH/DX, ANNOUNCE can be shortened to AN and so on.
+
+Look at the APROPOS <string> command which will search the help database
+for the <string> you specify and give you a list of likely commands
+to look at with HELP.
+
+<sect1>init (5)
+
+<P>
+<tt>
+<bf>init <node call></bf> Re-initialise a link to an AK1A compatible node
+</tt>
+
+<P>
+This command attempts to re-initialise a link to a (usually) AK1A node
+that has got confused, usually by a protocol loop of some kind. It may
+work - but you usually will be better off simply disconnecting it (or
+better, if it is a real AK1A node, doing an RCMD <node> DISC/F <your
+node>).
+
+Best of luck - you will need it.
+
+<sect1>kill (0)
+
+<P>
+<tt>
+<bf>kill <msgno> [<msgno> ..]</bf> Delete a message
+from the local system
+</tt>
+
+<P>
+Delete a message from the local system. You will only be able to
+delete messages that you have originated or been sent (unless you are
+the sysop).
+
+<sect1>kill (5)
+
+<P>
+<tt>
+<bf>kill <msgno> [<msgno> ...]</bf> Remove or erase a message from
+the system<newline>
+<bf>kill from <call></bf> Remove all messages from a callsign<newline>
+<bf>kill to <call></bf> Remove all messages to a callsign<newline>
+</tt>
+
+<P>
+You can get rid of any message to or originating from your callsign using
+this command. You can remove more than one message at a time.
+
+As a sysop you can kill any message on the system.
+
+<sect1>kill full (5)
+
+<P>
+<tt>
+<bf>kill full <msgno> [<msgno>]</bf> Delete a message from the
+whole cluster
+</tt>
+
+<P>
+Delete a message (usually a 'bulletin') from the whole cluster system.
+
+This uses the subject field, so any messages that have exactly the same subject
+will be deleted. Beware!
+
+<sect1>kill/expunge (6)
+
+<P>
+<tt>
+<bf>kill/expunge <msgno> [<msgno>..]</bf>Expunge a message
+</tt>
+
+<P>
+Deleting a message using the normal KILL commands only marks that message
+for deletion. The actual deletion only happens later (usually two days later).
+
+The KILL EXPUNGE command causes the message to be truly deleted more or less
+immediately.
+
+It otherwise is used in the same way as the KILL command.
+
+
+<sect1>links (0)
+
+<P>
+<tt>
+<bf>links</bf> Show which nodes are physically connected
+</tt>
+
+<P>
+This is a quick listing that shows which links are connected and
+some information about them. See WHO for a list of all connections.
+
+
+<sect1>load/aliases (9)
+
+<P>
+<tt>
+<bf>load/aliases</bf> Reload the command alias table
+</tt>
+
+<P>
+Reload the /spider/cmd/Aliases file after you have editted it. You will need to
+do this if you change this file whilst the cluster is running in order for the
+changes to take effect.
+
+<sect1>load/badmsg (9)
+
+<P>
+<tt>
+<bf>load/badmsg</bf> Reload the bad message table
+</tt>
+
+<P>
+Reload the /spider/msg/badmsg.pl file if you have changed it manually whilst
+the cluster is running. This table contains a number of perl regular
+expressions which are searched for in the fields targetted of each message.
+If any of them match then that message is immediately deleted on receipt.
+
+<sect1>load/badwords (9)
+
+<P>
+<tt>
+<bf>load/badwords</bf> Reload the bad words table
+</tt>
+
+<P>
+Reload the /spider/data/badwords file if you have changed it manually whilst
+the cluster is running. This file contains a list of words which, if found
+on certain text portions of PC protocol, will cause those protocol frames
+to be rejected. It will all put out a message if any of these words are
+used on the announce, dx and talk commands. The words can be one or
+more on a line, lines starting with '#' are ignored.
+
+<sect1>load/bands (9)
+
+<P>
+<tt>
+<bf>load/bands</bf> Reload the band limits table
+</tt>
+
+<P>
+Reload the /spider/data/bands.pl file if you have changed it manually whilst
+the cluster is running.
+
+<sect1>load/cmd_cache (9)
+
+<P>
+<tt>
+<bf>load/cmd_cache</bf> Reload the automatic command cache
+</tt>
+
+<P>
+Normally, if you change a command file in the cmd or local_cmd tree it will
+automatially be picked up by the cluster program. Sometimes it can get confused
+if you are doing a lot of moving commands about or delete a command in the
+local_cmd tree and want to use the normal one again. Execute this command to
+reset everything back to the state it was just after a cluster restart.
+
+<sect1>load/forward (9)
+
+<P>
+<tt>
+<bf>load/forward</bf> Reload the msg forwarding routing table
+</tt>
+
+Reload the /spider/msg/forward.pl file if you have changed it
+manually whilst the cluster is running.
+
+<sect1>load/messages (9)
+
+<P>
+<tt>
+<bf>load/messages</bf> Reload the system messages file
+</tt>
+
+<P>
+If you change the /spider/perl/Messages file (usually whilst fiddling/writing ne
+commands) you can have them take effect during a cluster session by executing this
+command. You need to do this if get something like :-
+
+unknown message 'xxxx' in lang 'en'
+
+<sect1>load/prefixes (9)
+
+<P>
+<tt>
+<bf>load/prefixes</bf> Reload the prefix table
+</tt>
+
+<P>
+Reload the /spider/data/prefix_data.pl file if you have changed it manually
+whilst the cluster is running.
+
+<sect1>merge (5)
+
+<P>
+<tt>
+<bf>merge <node> [<no spots>/<no wwv>]</bf> Ask for the
+latest spots and WWV
+</tt>
+
+<P>
+MERGE allows you to bring your spot and wwv database up to date. By default
+it will request the last 10 spots and 5 WWVs from the node you select. The
+node must be connected locally.
+
+You can request any number of spots or wwv and although they will be appended
+to your databases they will not duplicate any that have recently been added
+(the last 2 days for spots and last month for WWV data).
+
+<sect1>msg (9)
+
+<P>
+<tt>
+<bf>msg <cmd> <msgno> [data ...]</bf> Alter various message
+parameters
+</tt>
+
+<P>
+Alter message parameters like To, From, Subject, whether private or bulletin
+or return receipt (RR) is required or whether to keep this message from timing
+out.
+
+<tscreen><verb>
+ MSG TO <msgno> <call> - change TO callsign to <call>
+ MSG FRom <msgno> <call> - change FROM callsign to <call>
+ MSG PRrivate <msgno> - set private flag
+ MSG NOPRrivate <msgno> - unset private flag
+ MSG RR <msgno> - set RR flag
+ MSG NORR <msgno> - unset RR flag
+ MSG KEep <msgno> - set the keep flag (message won't be deleted ever)
+ MSG NOKEep <msgno> - unset the keep flag
+ MSG SUbject <msgno> <new> - change the subject to <new>
+ MSG WAittime <msgno> - remove any waitting time for this message
+ MSG NOREad <msgno> - mark message as unread
+ MSG REad <msgno> - mark message as read
+ MSG QUeue - queue any outstanding bulletins
+ MSG QUeue 1 - queue any outstanding private messages
+</verb></tscreen>
+
+You can look at the status of a message by using:-
+
+ STAT/MSG <msgno>
+
+This will display more information on the message than DIR does.
+
+<sect1>pc (8)
+
+<P>
+<tt>
+<bf>pc <call> <text></bf> Send text (eg PC Protocol) to <call>
+</tt>
+
+<P>
+Send some arbitrary text to a locally connected callsign. No processing is done on
+the text. This command allows you to send PC Protocol to unstick things if problems
+arise (messages get stuck etc). eg:-
+
+ pc gb7djk PC33^GB7TLH^GB7DJK^400^
+
+You can also use in the same way as a talk command to a connected user but
+without any processing, added of "from <blah> to <blah>" or whatever.
+
+ pc G1TLH Try doing that properly!!!
+
+<sect1>ping (1)
+
+<P>
+<tt>
+<bf>ping <node></bf> Check the link quality between nodes
+</tt>
+
+<P>
+his command allows you to send a frame to another cluster node on
+the network and get a return frame. The time it takes to do this
+is a good indication of the quality of the link. The actual time
+it takes is output to the console in seconds.
+Any visible cluster node can be PINGed.
+
+
+<sect1>rcmd (1)
+
+<P>
+<tt>
+<bf>rcmd <node call> <cmd></bf> Send a command to another DX cluster
+</tt>
+
+<P>
+This command allows you to send nearly any command to another DX Cluster
+node that is connected to the system.
+
+Whether you get any output is dependant on a) whether the other system knows
+that the node callsign of this cluster is in fact a node b) whether the
+other system is allowing RCMDs from this node and c) whether you have
+permission to send this command at all.
+
+<sect1>read (0)
+
+<P>
+<tt>
+<bf>read</bf> Read the next unread personal message addressed to you<newline>
+<bf>read <msgno></bf> Read the specified message<newline>
+</tt>
+
+<P>
+You can read any messages that are sent as 'non-personal' and also any
+message either sent by or sent to your callsign.
+
+
+<sect1>read (extended for sysops) (5)
+
+<P>
+<tt>
+<bf>read <msgno></bf> Read a message on the system
+</tt>
+
+<P>
+As a sysop you may read any message on the system
+
+<sect1>reject/announce
+
+<P>
+<tt>
+<bf>reject/announce [0-9] <pattern></bf> Set a reject filter
+for announce
+</tt>
+
+<P>
+Create an 'reject this announce' line for a filter.
+
+An reject filter line means that if the announce matches this filter it is
+passed onto the user. See HELP FILTERS for more info. Please read this
+to understand how filters work - it will save a lot of grief later on.
+
+You can use any of the following things in this line:-
+
+<tscreen><verb>
+ info <string> eg: iota or qsl
+ by <prefixes> eg: G,M,2
+ origin <prefixes>
+ origin_dxcc <numbers> eg: 61,62 (from eg: sh/pre G)
+ origin_itu <numbers>
+ origin_zone <numbers>
+ by_dxcc <numbers>
+ by_itu <numbers>
+ by_zone <numbers>
+ channel <prefixes>
+ wx 1 filter WX announces
+ dest <prefixes> eg: 6MUK,WDX (distros)
+</verb></tscreen>
+
+some examples:-
+
+<tscreen><verb>
+ rej/ann by_zone 14,15,16 and not by G,M,2
+</verb></tscreen>
+
+You can use the tag 'all' to reject everything eg:
+
+<tscreen><verb>
+ rej/ann all
+</verb></tscreen>
+
+but this probably for advanced users...
+
+<sect1>reject/announce (extended for sysops) (8)
+
+<P>
+<tt>
+<bf>reject/announce <call> [input] [0-9] <pattern></bf> Announce filter sysop version
+</tt>
+
+<P>
+This version allows a sysop to set a filter for a callsign as well as the
+default for nodes and users eg:-
+
+<tscreen><verb>
+ reject/ann by G,M,2
+ reject/ann input node_default by G,M,2
+ reject/ann user_default by G,M,2
+</verb></tscreen>
+
+<sect1>reject/route (8)
+
+<P>
+<tt>
+<bf>reject/route <call> [0-9] <pattern></bf> Set an 'reject' filter line for routing
+</tt>
+
+<P>
+Create an 'reject this routing PC Protocol' line for a filter.
+
+<P>
+An reject filter line means that if a PC16/17/19/21/24/41/50 matches this filter
+it is NOT passed thru that interface. See HELP FILTERING for more info. Please
+read this to understand how filters work - it will save a lot of grief later on.
+You can use any of the following things in this line:-
+
+<tscreen><verb>
+ call <prefixes> the callsign of the thingy
+ call_dxcc <numbers> eg: 61,62 (from eg: sh/pre G)
+ call_itu <numbers>
+ call_zone <numbers>
+ origin <prefixes> really the interface it came in on
+ origin_dxcc <numbers> eg: 61,62 (from eg: sh/pre G)
+ origin_itu <numbers>
+ origin_zone <numbers>
+</verb></tscreen>
+
+<P>
+some examples:-
+
+<tscreen><verb>
+ rej/route gb7djk call_dxcc 61,38 (everything except UK+EIRE nodes)
+</verb></tscreen>
+
+<P>
+You can use the tag 'all' to reject everything eg:
+
+<tscreen><verb>
+ rej/route all (equiv to [very] restricted mode)
+</verb></tscreen>
+
+<sect1>reject/spots (0)
+
+<P>
+<tt>
+<bf>reject/spots [0-9] <pattern></bf> Set a reject filter
+line for spots
+</tt>
+
+<P>
+Create a 'reject this spot' line for a filter.
+
+A reject filter line means that if the spot matches this filter it is
+dumped (not passed on). See HELP FILTERS for more info. Please read this
+to understand how filters work - it will save a lot of grief later on.
+
+You can use any of the following things in this line:-
+
+<tscreen><verb>
+ freq <range> eg: 0/30000 or hf or hf/cw or 6m,4m,2m
+ on <range> same as 'freq'
+ call <prefixes> eg: G,PA,HB9
+ info <string> eg: iota or qsl
+ by <prefixes>
+ call_dxcc <numbers> eg: 61,62 (from eg: sh/pre G)
+ call_itu <numbers>
+ call_zone <numbers>
+ by_dxcc <numbers>
+ by_itu <numbers>
+ by_zone <numbers>
+ origin <prefixes>
+ channel <prefixes>
+</verb></tscreen>
+
+For frequencies, you can use any of the band names defined in
+SHOW/BANDS and you can use a subband name like: cw, rtty, data, ssb -
+thus: hf/ssb. You can also just have a simple range like: 0/30000 -
+this is more efficient than saying simply: on HF (but don't get
+too hung up about that)
+
+some examples:-
+
+<tscreen><verb>
+ rej/spot 1 on hf
+ rej/spot 2 on vhf and not (by_zone 14,15,16 or call_zone 14,15,16)
+</verb></tscreen>
+
+You can use the tag 'all' to reject everything eg:
+
+<tscreen><verb>
+ rej/spot 3 all
+</verb></tscreen>
+
+but this probably for advanced users...
+
+<sect1>reject/spots (extended for sysops) (8)
+
+<P>
+<tt>
+<bf>reject/spots <call> [input] [0-9] <pattern></bf>
+ Reject spot filter sysop version
+</tt>
+
+<P>
+This version allows a sysop to set a filter for a callsign as well as the
+default for nodes and users eg:-
+
+<tscreen><verb>
+ reject/spot db0sue-7 1 by_zone 14,15,16
+ reject/spot node_default all
+ set/hops node_default 10
+
+ reject/spot user_default by G,M,2
+</verb></tscreen>
+
+<sect1>reject/wcy (0)
+
+<P>
+<tt>
+<bf>reject/wcy [0-9] <pattern></bf> Set a reject WCY filter
+</tt>
+
+<P>
+It is unlikely that you will want to do this, but if you do then you can
+filter on the following fields:-
+
+<tscreen><verb>
+ by <prefixes> eg: G,M,2
+ origin <prefixes>
+ origin_dxcc <numbers> eg: 61,62 (from eg: sh/pre G)
+ origin_itu <numbers>
+ origin_zone <numbers>
+ by_dxcc <numbers>
+ by_itu <numbers>
+ by_zone <numbers>
+ channel <prefixes>
+</verb></tscreen>
+
+There are no examples because WCY Broadcasts only come from one place and
+you either want them or not (see UNSET/WCY if you don't want them).
+
+This command is really provided for future use.
+
+See HELP FILTER for information.
+
+<sect1>reject/wcy (extended for sysops) (8)
+
+<P>
+<tt>
+<bf>reject/wcy <call> [input] [0-9] <pattern></bf>
+ WCY reject filter sysop version
+</tt>
+
+<P>
+This version allows a sysop to set a filter for a callsign as well as the
+default for nodes and users eg:-
+
+ reject/wcy gb7djk all
+
+<sect1>reject/wwv (0)
+
+<P>
+<tt>
+<bf>reject/wwv [0-9] <pattern></bf> Set a reject WWV filter
+</tt>
+
+<P>
+It is unlikely that you will want to do this, but if you do then you can
+filter on the following fields:-
+
+<tscreen><verb>
+ by <prefixes> eg: G,M,2
+ origin <prefixes>
+ origin_dxcc <numbers> eg: 61,62 (from eg: sh/pre G)
+ origin_itu <numbers>
+ origin_zone <numbers>
+ by_dxcc <numbers>
+ by_itu <numbers>
+ by_zone <numbers>
+ channel <prefixes>
+</verb></tscreen>
+
+for example
+
+<tscreen><verb>
+ reject/wwv by_zone 14,15,16
+</verb></tscreen>
+
+is probably the only useful thing to do (which will only show WWV broadcasts
+by stations in the US).
+
+See HELP FILTER for information.
+
+<sect1>reject/wwv (extended for sysops) (8)
+
+<P>
+<tt>
+<bf>reject/wwv <call> [input] [0-9] <pattern></bf>
+ WWV reject filter sysop version
+</tt>
+
+<P>This version allows a sysop to set a filter for a callsign as well as the
+default for nodes and users eg:-
+
+<tscreen><verb>
+ reject/wwv db0sue-7 1 by_zone 4
+ reject/wwv node_default all
+
+ reject/wwv user_default by W
+</verb></tscreen>
+
+<sect1>reply (0)
+
+<P>
+<tt>
+<bf>reply</bf> Reply (privately) to the last message that you have read<newline>
+<bf>reply <msgno></bf> Reply (privately) to the specified message<newline>
+<bf>reply B <msgno></bf> Reply as a Bulletin to the specified message<newline>
+<bf>reply NOPrivate <msgno></bf> Reply as a Bulletin to the specified
+message<newline>
+<bf>reply RR <msgno></bf> Reply to the specified message with read
+receipt<newline>
+</tt>
+
+<P>
+You can reply to a message and the subject will automatically have
+"Re:" inserted in front of it, if it isn't already present.
+
+You can also use all the extra qualifiers such as RR, PRIVATE,
+NOPRIVATE, B that you can use with the SEND command (see SEND
+for further details)
+
+<sect1>send (0)
+
+<P>
+<tt>
+<bf>send <call> [<call> ...]</bf> Send a message to
+one or more callsigns<newline>
+<bf>send RR <call></bf> Send a message and ask for a read receipt<newline>
+<bf>send COPY <msgno> <call></bf> Send a copy of a message
+to someone<newline>
+<bf>send PRIVATE <call></bf> Send a personal message<newline>
+<bf>send NOPRIVATE <call></bf> Send a message to all stations<newline>
+</tt>
+
+<P>
+All the SEND commands will create a message which will be sent either to
+an individual callsign or to one of the 'bulletin' addresses.
+
+SEND <call> on its own acts as though you had typed SEND PRIVATE, that is
+it will mark the message as personal and send it to the cluster node that
+that callsign is connected to.
+
+You can have more than one callsign in all of the SEND commands.
+
+You can have multiple qualifiers so that you can have for example:-
+
+<tscreen><verb>
+ SEND RR COPY 123 PRIVATE G1TLH G0RDI
+</verb></tscreen>
+
+which should send a copy of message 123 to G1TLH and G0RDI and you will
+receive a read receipt when they have read the message.
+
+SB is an alias for SEND NOPRIVATE (or send a bulletin in BBS speak)
+SP is an alias for SEND PRIVATE
+
+<sect1>set/address (0)
+
+<P>
+<tt>
+<bf>set/address <your_address></bf> Record your postal address
+</tt>
+
+<P>
+Literally, record your address details on the cluster.
+
+<sect1>set/announce (0)
+
+<P>
+<tt>
+<bf>set/announce</bf> Allow announce messages
+</tt>
+
+<P>
+Allow announce messages to arrive at your terminal.
+
+<sect1>set/arcluster (5)
+
+<P>
+<tt>
+<bf>set/arcluster <node_call> [<node_call> ...]</bf> Make
+the node_call an AR-Cluster type node
+</tt>
+
+<P>
+Set the node_call as an AR-Cluster type node
+
+<sect1>set/baddx (8)
+
+<P>
+<tt>
+<bf>set/baddx <call></bf> Stop words we do not wish to see in the callsign field
+of a dx spot being propagated
+</tt>
+
+<P>
+Setting a word as 'baddx' will prevent spots with that word in the callsign
+field of a DX spot from going any further. They will not be displayed and they
+will not be sent onto other nodes.
+
+The word must be wriiten in full, no wild cards are allowed eg:-
+
+<tscreen><verb>
+ set/baddx FORSALE VIDEO FR0G
+</verb></tscreen>
+
+To allow a word again, use the following command ...
+
+<tscreen><verb>
+ unset/baddx VIDEO
+</verb></tscreen>
+
+<sect1>set/badnode (6)
+
+<P>
+<tt>
+<bf>set/badnode <node_call></bf> Stop spots from this node_call
+being propagated
+</tt>
+
+<P>
+Setting a callsign as a 'badnode' will prevent spots from that node
+going any further. They will not be displayed and they will not be
+sent onto other nodes.
+
+The call can be a full or partial call (or a prefix), eg:-
+
+<tscreen><verb>
+ set/badnode K1TTT
+</verb></tscreen>
+
+will stop anything from K1TTT (including any SSID's)
+
+<tscreen><verb>
+ unset/badnode K1TTT
+</verb></tscreen>
+
+will allow spots from him again.
+
+Use with extreme care. This command may well be superceded by FILTERing.
+
+<sect1>set/badspotter (8)
+
+<P>
+<tt>
+<bf>set/badspotter <call></bf> Stop spots from this callsign being propagated
+</tt>
+
+<P>
+Setting a callsign as a 'badspotter' will prevent spots from this callsign
+going any further. They will not be displayed and they will not be
+sent onto other nodes.
+
+The call must be written in full, no wild cards are allowed eg:-
+
+<tscreen><verb>
+ set/badspotter VE2STN
+</verb></tscreen>
+
+will stop anything from VE2STN. If you want SSIDs as well then you must
+enter them specifically.
+
+<tscreen><verb>
+ unset/badspotter VE2STN
+</verb></tscreen>
+
+will allow spots from him again.
+
+Use with extreme care. This command may well be superceded by FILTERing.
+
+<sect1>set/badword (8)
+
+<P>
+<tt>
+<bf>set/badword <word></bf> Stop things with this word being propogated
+</tt>
+
+<P>
+Setting a word as a 'badword' will prevent things like spots,
+announces or talks with this word in the the text part from going any
+further. They will not be displayed and they will not be sent onto
+other nodes.
+
+The word must be written in full, no wild cards are allowed eg:-
+
+ set/badword annihilate annihilated annihilation
+
+will stop anything with these words in the text.
+
+ unset/badword annihilated
+
+will allow text with this word again.
+
+
+<sect1>set/beep (0)
+
+<P>
+<tt>
+<bf>set/beep</bf> Add beeps to terminal messages
+</tt>
+
+<P>
+Add a beep to DX and other terminal messages.
+
+<sect1>set/bbs (5)
+
+<P>
+<tt>
+<bf>set/bbs <call> [<call>..]</bf>Make <call> a BBS
+</tt>
+
+<sect1>set/clx (5)
+
+<P>
+<tt>
+<bf>set/clx <node_call> [<node_call> ...]</bf> Make
+the node_call a CLX type node
+</tt>
+
+<P>
+Set the node_call as a CLX type node
+
+<sect1>set/debug (9)
+
+<P>
+<tt>
+<bf>set/debug <name></bf> Add a debug level to the debug set
+</tt>
+
+<P>
+You can choose to log several different levels. The levels are
+
+chan
+state
+msg
+cron
+connect
+
+You can show what levels you are logging with the <em>show/debug</em>
+command.
+
+You can remove a debug level with unset/debug <name>
+
+<sect1>set/dx (0)
+
+<P>
+<tt>
+<bf>set/dx</bf>Allow DX messages to arrive at your terminal
+</tt>
+
+<P>
+You can stop DX messages with the <em>unset/dx</em> command
+
+<sect1>set/dxgrid (0)
+
+<P>
+<tt>
+<bf>set/dxgrid</bf>Allow grid squares on the end of DX messages
+</tt>
+
+<P>
+Some logging programs do not like the additional information at
+the end of a DX spot. If this is the case, use the <em>unset/dxgrid</em>
+command to remove the grid squares.
+
+<sect1>set/dxnet (5)
+
+<P>
+<tt>
+<bf>set/dxnet <node_call> [<node_call> ...]</bf> Make
+the node_call a DXNet type node
+</tt>
+
+<P>
+Set the node_call as a DXNet type node
+
+<sect1>set/echo (0)
+
+<P>
+<tt>
+<bf>set/echo</bf> Make the cluster echo your input
+</tt>
+
+<P>
+If you are connected via a telnet session, different implimentations
+of telnet handle echo differently depending on whether you are
+connected via port 23 or some other port. You can use this command
+to change the setting appropriately.
+
+You can remove the echo with the <em>unset/echo</em> command
+
+The setting is stored in your user profile.
+
+YOU DO NOT NEED TO USE THIS COMMAND IF YOU ARE CONNECTED VIA AX25.
+
+<sect1>set/email (0)
+
+<P>
+<tt>
+<bf>set/email <email_address></bf> Set email address(es) and forward your personals
+</tt>
+
+<P>
+If any personal messages come in for your callsign then you can use
+these commands to control whether they are forwarded onto your email
+address. To enable the forwarding do something like:-
+
+ SET/EMAIL mike.tubby@somewhere.com
+
+You can have more than one email address (each one separated by a space).
+Emails are forwarded to all the email addresses you specify.
+
+You can disable forwarding by:-
+
+ UNSET/EMAIL
+
+<sect1>set/here (0)
+
+<P>
+<tt>
+<bf>set/here</bf> Set the here flag
+</tt>
+
+<P>
+Let others on the cluster know you are here by only displaying your
+callsign. If you are away from your terminal you can use the <em>unset/here</em>
+command to let people know you are away. This simply puts brackets
+around your callsign to indicate you are not available.
+
+<sect1>set/homenode (0)
+
+<P>
+<tt>
+<bf>set/homenode <node_call></bf> Set your home cluster
+</tt>
+
+<P>
+Tell the cluster system where you normally connect to. Any Messages sent
+to you will normally find their way there should you not be connected.
+eg:-
+
+<tscreen><verb>
+ SET/HOMENODE gb7djk
+</verb></tscreen>
+
+<sect1>set/hops (8)
+
+<P>
+<tt>
+<bf>set/hops <node_call> ann|spots|wwv|wcy <n></bf>
+Set hop count
+</tt>
+
+<P>
+Set the hop count for a particular type of broadcast for a node.
+
+This command allows you to set up special hop counts for a node
+for currently: announce, spots, wwv and wcy broadcasts.
+
+<tscreen><verb>
+eg:
+ set/hops gb7djk ann 10
+ set/hops gb7mbc spots 20
+</verb></tscreen>
+
+Set SHOW/HOPS for information on what is already set. This command
+creates a filter and works in conjunction with the filter system.
+
+<sect1>set/isolate (9)
+
+<P>
+<tt>
+<bf>set/isolate <node call></bf> Isolate a node from the rest of the network
+</tt>
+
+<P>
+Connect a node to your system in such a way that you are a full protocol
+member of its network and can see all spots on it, but nothing either leaks
+out from it nor goes back into from the rest of the nodes connected to you.
+
+You can potentially connect several nodes in this way.
+
+You can see which nodes are isolated with the show/isolate (1) command.
+
+You can remove the isolation with the command unset/isolate.
+
+<sect1>set/language (0)
+
+<P>
+<tt>
+<bf>set/language <language></bf> Set the language you wish to use
+</tt>
+
+<P>
+You can select the language that you want the cluster to use. Currently
+the languages available are <em>en</em> (English) and <em>nl</em> (Dutch).
+
+<sect1>set/location (0)
+
+<P>
+<tt>
+<bf>set/location <lat and long></bf> Set your latitude and longitude
+</tt>
+
+<P>
+You can set your latitude and longitude manually or alternatively use the
+<em>set/qra</em> command which will do the conversion for you.
+
+<tscreen><verb>
+ set/location 54 04 N 2 02 E
+</verb></tscreen>
+
+
+<sect1>set/sys_location (9)
+
+<P>
+<tt>
+<bf>set/sys_location <lat & long></bf> Set your cluster latitude and longitude
+</tt>
+
+<P>
+In order to get accurate headings and such like you must tell the system
+what your latitude and longitude is. If you have not yet done a SET/QRA
+then this command will set your QRA locator for you. For example:-
+
+<tscreen><verb>
+ SET/LOCATION 52 22 N 0 57 E
+</verb></tscreen>
+
+<sect1>set/logininfo (0)
+
+<P>
+<tt>
+<bf>set/logininfo</bf> Show logins and logouts of nodes and users
+</tt>
+
+<P>
+Show users and nodes when they log in and out of the local cluster. You
+can stop these messages by using the <em>unset/logininfo</em> command.
+
+
+<sect1>set/lockout (9)
+
+<P>
+<tt>
+<bf>set/lockout <call></bf> Stop a callsign connecting to the cluster
+</tt>
+
+<P>
+You can show who is locked out with the <em>show/lockout</em> command.
+To allow the user to connect again, use the <em>unset/lockout</em> command.
+
+<sect1>set/name (0)
+
+<P>
+<tt>
+<bf>set/name <your_name></bf> Set your name
+</tt>
+
+<P>
+Tell the cluster what your name is, eg:-
+
+<tscreen><verb>
+ set/name Dirk
+</verb></tscreen>
+
+<sect1>set/node (9)
+
+<P>
+<tt>
+<bf>set/node <call> [<call> ...]</bf> Make the callsign an AK1A cluster
+</tt>
+
+<P>
+Tell the system that the call(s) are to be treated as AK1A cluster and
+fed PC Protocol rather normal user commands.
+
+From version 1.41 you can also set the following types of cluster
+
+<tscreen><verb>
+ set/spider
+ set/dxnet
+ set/clx
+ set/arcluster
+</verb></tscreen>
+
+To see what your nodes are set to, use the <em>show/nodes</em> command.
+
+<sect1>set/obscount (9)
+
+<P>
+<tt>
+<bf>set/obscount <count> <node call></bf> Set the 'pump-up'
+obsolescence counter
+</tt>
+
+<P>
+From version 1.35 onwards neighbouring nodes are pinged at regular intervals (see
+SET/PINGINTERVAL), usually 300 seconds or 5 minutes. There is a 'pump-up'
+counter which is decremented on every outgoing ping and then reset to
+the 'obscount' value on every incoming ping. The default value of this
+parameter is 2.
+
+What this means is that a neighbouring node will be pinged twice at
+(default) 300 second intervals and if no reply has been heard just before
+what would be the third attempt, that node is disconnected.
+
+If a ping is heard then the obscount is reset to the full value. Using
+default values, if a node has not responded to a ping within 15 minutes,
+it is disconnected.
+
+<sect1>set/page (0)
+
+<P>
+<tt>
+<bf>set/page <n></bf> Set the number of lines per page
+</tt>
+
+<P>
+Tell the system how many lines you wish on a page when the number of lines
+of output from a command is more than this. The default is 20. Setting it
+explicitly to 0 will disable paging.
+
+<tscreen><verb>
+ SET/PAGE 30
+ SET/PAGE 0
+</verb></tscreen>
+
+The setting is stored in your user profile.
+
+<sect1>set/password (0)
+
+<P>
+<tt>
+<bf>set/password</bf> Set your own password
+</tt>
+
+<P>
+This command only works for a 'telnet' user (currently). It will
+only work if you have a password already set. This initial password
+can only be set by the sysop.
+
+When you execute this command it will ask you for your old password,
+then ask you to type in your new password twice (to make sure you
+get it right). You may or may not see the data echoed on the screen
+as you type, depending on the type of telnet client you have.
+
+<sect1>set/password (9)
+
+<P>
+<tt>
+<bf>set/password <callsign> <string></bf> Set a users password
+</tt>
+
+<P>
+The password for a user can only be set by a full sysop. The string
+can contain any characters.
+
+The way this field is used depends on context. If it is being used in
+the SYSOP command context then you are offered 5 random numbers and you
+have to supply the corresponding letters. This is now mainly for ax25
+connections.
+
+If it is being used on incoming telnet connections then, if a password
+is set or the:
+
+ set/var $main::passwdreq = 1
+
+command is executed in the startup script, then a password prompt is
+given after the normal 'login: ' prompt.
+
+The command "unset/password" is provided to allow a sysop to remove a
+users password completely in case a user forgets or loses their password.
+
+<sect1>set/pinginterval (9)
+
+<P>
+<tt><bf>set/pinginterval <time> <node call></bf> Set the ping time
+to neighbouring nodes
+</tt>
+
+<P>
+As from version 1.35 all neighbouring nodes are pinged at regular intervals
+in order to determine the rolling quality of the link and, in future, to
+affect routing decisions. The default interval is 300 secs or 5 minutes.
+
+You can use this command to set a different interval. Please don't.
+
+But if you do the value you enter is treated as minutes up 60 and seconds
+for numbers greater than that.
+
+This is used also to help determine when a link is down at the far end
+(as certain cluster software doesn't always notice), see SET/OBSCOUNT
+for more information.