Add information on updating kepler data to manual
[spider.git] / sgml / adminmanual.sgml
1 <!doctype linuxdoc system>
2
3 <article>
4
5 <!-- Title information -->
6
7 <title>The DXSpider Installation and Administration Manual 
8 <author>Ian Maude, G0VGS, (ianmaude@btinternet.com)
9 <date>Version 1.30 January 2001
10 <abstract>
11 A reference for SysOps of the DXSpider DXCluster program.
12 </abstract>
13
14 <!-- Table of contents -->
15 <toc>
16
17 <!-- Begin the document -->
18
19 <sect>Installation (Original version by Iain Phillips, G0RDI)
20
21 <P>
22 Last modified: 26 January 2001 by Ian Maude, G0VGS
23
24 <sect1>Introduction
25
26 <P>
27 This section describes the installation of DX Spider v1.35 on a 
28 <htmlurl url="http://www.redhat.com" name="RedHat"> Linux Distribution.  
29 I do not intend to try and cover the installation of Linux or the setup 
30 of the AX25 utilities.  If you need help on this then read Iains original 
31 HOWTO on the <htmlurl url="http://www.dxcluster.org" name="DXSpider"> 
32 website.
33
34 <P>
35 I am assuming a general knowledge of Linux and its commands.  You should 
36 know how to use <em>tar</em> and how to edit files using your favourite editor.
37
38 <P>
39 The crucial ingredient for all of this is 
40 <htmlurl url="http://www.perl.org" name="Perl 5.004">.  Now I know Perl 5.005 
41 is out and this will almost certainly work with it, but 
42 <htmlurl url="http://www.redhat.com" name="RedHat 5.1"> comes with 5.004. 
43 <em>Be Warned</em>, earlier versions of 
44 <htmlurl url="http://www.redhat.com" name="RedHat"> <bf>do not</bf> come 
45 with 5.004 as standard, you need to 
46 <htmlurl url="ftp://upgrade.redhat.com" name="upgrade">
47
48 <P>In addition to the standard Red Hat distribution you will require the 
49 following <htmlurl url="http://www.cpan.org/CPAN.html" name="CPAN"> modules: -
50
51 <P>
52 <itemize>
53
54 <item>          MD5-1.7.tar.gz
55 <item>          Data-Dumper-2.10.tar.gz
56 <item>          FreezeThaw-0.3.tar.gz
57 <item>          MLDBM-2.00.tar.gz
58 <item>          TimeDate-1.08.tar.gz
59 <item>          IO-1.20.tar.gz
60 <item>          Net-Telnet-3.02.tar.gz
61 <item>          Curses-1.05.tar.gz
62 <item>          Time-HiRes-01.20.tar.gz
63
64 </itemize>
65
66 <P>
67
68 <em>Do</em> get the latest versions of these packages and install them 
69 but use the above list as the earliest versions usable.
70
71 <sect1>Preparation
72
73 <P>
74 I will assume that you have already downloaded the latest tarball of 
75 the DXSpider software and are ready to install it. I am assuming version 
76 1.35 for this section but of course you would use the latest version.
77
78 <P>
79 Login as root and create a user to run the cluster under.  <bf><it>UNDER 
80 NO CIRCUMSTANCES USE ROOT AS THIS USER!</it></bf>.  I am going to use 
81 the name <em>sysop</em>.  You can call it anything you wish.  Depending 
82 on your security requirements you may wish to use an existing user, 
83 however this is your own choice.
84
85 <P>
86 <tscreen><verb>
87 # adduser -m sysop
88 </verb></tscreen>
89
90 <P>
91 Now set a password for the user ...
92
93 <tscreen><verb>
94 # passwd sysop
95 # New UNIX password:
96 # Retype new UNIX password:
97 passwd: all authentication tokens updated successfully
98 </verb></tscreen>
99
100 <sect1>Installing the software
101
102 <P>
103 Now to unpack the DX Spider distribution, set symbolic links and group 
104 permissions.  Copy the tarball to /home/sysop and do the following.
105
106 <tscreen><verb>
107 # cd ~sysop
108 # tar xvfz spider-1.35.tar.gz
109 # ln -s ~sysop/spider /spider
110 # groupadd -g 251 spider       (or another number)
111 </verb></tscreen>
112
113 If you do not have the command <em>groupadd</em> available to you simply 
114 add a line in /etc/group by hand.
115
116 <tscreen><verb>
117 # vi /etc/group                (or your favorite editor)
118 </verb></tscreen>
119
120 You also need to add some others to the group, including your own callsign 
121 (this will be used as an alias) and root.  The finished line in /etc/group 
122 should look something like this
123
124 <tt>
125 spider:x:251:sysop,g0vgs,root
126 </tt>
127
128 <P>
129 The next step is to set the permissions on the Spider directory tree and files ....
130
131 <tscreen><verb>
132 # chown -R sysop.spider spider
133 # find . -type d -exec chmod 2775 {} \;
134 # find . -type f -exec chmod 775 {} \;
135 </verb></tscreen>
136
137 <P>
138 This last step allows various users of the group <em>spider</em> to have 
139 write access to all the directories.  This is not really needed just yet 
140 but will be useful when web interfaces start to appear.
141
142 <P>
143 Finally, you need to fix the permissions on the ax25_call and netrom_call 
144 programs.  Check where they are with the <em>locate</em> command and alter 
145 the permissions with the <em>chmod</em> command like this ..
146
147 <tscreen><verb>
148 # chown root ax25_call netrom_call
149 # chmod 4775 ax25_call netrom_call
150 </verb></tscreen>
151
152 <sect1>Setting callsigns etc
153
154 <P>
155 Now login to your machine as the user you created earlier.  In my case that 
156 user is called <em>sysop</em>.  Once logged in, issue the following commands ....
157
158 <tscreen><verb>
159 $ cd /spider
160 $ mkdir local
161 $ mkdir local_cmd
162 $ cp perl/DXVars.pm.issue local/DXVars.pm
163 $ cd local
164 $ vi DXVars.pm (or your favourite editor)
165 </verb></tscreen>
166
167 <P>
168 Using the distributed DXVars.pm as a a template, set your cluster callsign, 
169 sysop callsign and other user info to suit your own environment. Note that 
170 this a perl file which will be parsed and executed as part of the cluster. If 
171 you get it wrong then perl will complain when you start the cluster process.  
172 It is important only to alter the text of any section.  Some of the lines look 
173 a little odd.  Take this line for example ....
174
175 <tt>
176 $myemail = "ianmaude\@btinternet.com";
177 </tt>
178
179 <P>
180 There appears to be an extra slash in there.  However this has to be there 
181 for the file to work so leave it in.
182                 
183 <P><bf>PLEASE USE CAPITAL LETTERS FOR CALLSIGNS</bf>
184                 
185 <P>
186 DON'T alter the DXVars.pm (or any other file) in /spider/perl, they are 
187 overwritten with every release. Any files or commands you place in /spider/local 
188 or /spider/local_cmd will automagically be used in preference to the ones in 
189 /spider/perl EVEN while the cluster is running!
190
191 <P>
192 Save the new file and change directory to ../perl ....
193
194 <tscreen><verb>
195 $ cd ../perl
196 </verb></tscreen>
197
198 <P>
199 Now type the following command which creates the basic user file with you as 
200 the sysop.
201
202 <tscreen><verb>
203 $ create_sysop.pl
204 </verb></tscreen>
205
206 <sect1>Starting up for the first time
207
208 <P>
209 We can now bring spider up for the first time and see if all is well or not!  
210 It should look something like this ...
211
212 <tscreen><verb>
213 $ cluster.pl
214 DXSpider DX Cluster Version 1.35
215 Copyright (c) 1998 Dirk Koopman G1TLH
216 loading prefixes ...
217 loading band data ...
218 loading user file system ...
219 starting listener ...
220 reading existing message headers
221 reading cron jobs
222 orft we jolly well go ...
223 </verb></tscreen>
224
225 <P>
226 If all is well then login on another term or console as <em>sysop</em> and 
227 cd to /spider/perl.  Now issue the following command ...
228
229 <tscreen><verb>
230 $ client.pl
231 </verb></tscreen>
232
233 <P>
234 This should log you into the cluster as the sysop under the alias callsign we 
235 set earlier.  In this case the callsign is G0VGS.  The cluster callsign is set 
236 in the DXVars.pm file in /spider/local.  In this case we will assume that this 
237 was set as GB7MBC.  You should therefore see this when you login ....
238
239 <tscreen><verb>
240 G0VGS de GB7MBC 19-Nov-1999 2150Z >
241 </verb></tscreen>
242
243 If you do, congratulations!  If not, look over the instructions again, you 
244 have probably missed something out.  You can shut spider down again with the 
245 command ....
246
247 <tscreen><verb>
248 shutdown
249 </verb></tscreen>
250
251 <P>
252 and both the cluster and the client should return to Linux prompts.
253
254 <sect>The Client program
255
256 <P>
257 In earlier versions of Spider, all the processes were Perl scripts.  This 
258 was fine but with a lot of users your computer memory would soon be used up.  
259 To combat this a new client was written in "C".  This client only works for
260 <em>incoming</em> connects at the moment.  Before you can use it though it 
261 has to be "made".  CD to /spider/src and type <em>make</em>.  You 
262 should see the output on your screen and hopefully now have a small C program 
263 called <em>client</em>.  Leave it in this directory.
264
265 <sect>Configuration
266
267 <sect1>Allowing ax25 connects from users
268
269 <P>
270 As stated previously, the aim of this document is not to tell you how to 
271 configure Linux or the ax25 utilities.  However, you do need to add a line 
272 in your ax25d.conf to allow connections to DXSpider for your users.  For
273 each interface that you wish to allow connections on, use the following format ...
274
275 <tscreen><verb>
276 default  * * * * * *  - sysop /spider/src/client client %u ax25
277 </verb></tscreen>
278
279 <sect1>Allowing telnet connects from users
280
281 <P>
282 Allowing telnet connections is quite simple.  Firstly you need to add a line 
283 in /etc/services to allow connections to a port number, like this ....
284
285 <tscreen><verb>
286 spdlogin   8000/tcp     # spider anonymous login port
287 </verb></tscreen>
288
289 Then add a line in /etc/inetd.conf like this ....
290
291 <tscreen><verb>
292 spdlogin stream tcp nowait root /usr/sbin/tcpd /spider/src/client login telnet
293 </verb></tscreen>
294
295 <P>
296 This needs to be added above the standard services such as ftp, telnet etc.  
297 Once this is done, you need to restart inetd like this ....
298
299 <tscreen><verb>
300 killall -HUP inetd
301 </verb></tscreen>
302
303
304 <P>Now login as <em>sysop</em> and cd spider/perl. You can test that spider 
305 is accepting telnet logins by issuing the following command ....
306
307 <tscreen><verb>
308 client.pl login telnet
309 </verb></tscreen>
310
311 You should get a login prompt and on issuing a callsign, you will be given 
312 access to the cluster.  Note, you will not get a password login.  There seems 
313 no good reason for a password prompt to be given so it is not asked for.
314
315 <P>
316 Assuming all is well, then try a telnet from your linux console ....
317
318 <tscreen><verb>
319 telnet localhost 8000
320 </verb></tscreen>
321
322 <P>
323 You should now get the login prompt and be able to login as before.
324
325 <sect1>Setting up node connects
326
327 <P>
328 In order to allow cluster node connections, spider needs to know that the 
329 connecting callsign is a cluster node.  This is the case whether the connect 
330 is incoming or outgoing.  In spider this is a simple task and can be done in 
331 runtime.
332
333 <P>
334 Later versions of Spider can distinguish different software and treat them
335 differently.  For example, the WCY beacon cannot be handles by AK1A type
336 nodes as AK1A does not know what to do with PC73.  There are 4 different
337 types of node at present and although they may not have any major
338 differences at the moment, it allows for compatibility.  The 4 types are ...
339
340 <tscreen><verb>
341 set/node        (AK1A type)
342 set/spider
343 set/dxnet
344 set/clx
345 </verb></tscreen>
346
347 <P>
348 For now, we will assume that the cluster we are going to connect to is an
349 AK1A type node.
350
351 <P>
352 Start up the cluster as you did before and login as the sysop with client.pl.
353 The cluster node I am wanting to make a connection to is GB7BAA but you would
354 obviously use whatever callsign you required.  At the prompt type ...
355
356 <tscreen><verb>
357 set/node gb7baa
358 </verb></tscreen>
359
360 <P>
361 The case does not matter as long as you have a version of DXSpider later than 
362 1.33.  Earlier versions required the callsign to be in upper case.
363
364 <P>
365 That is now set, it is as simple as that.  To prove it, login on yet another 
366 console as sysop and issue the command ...
367
368 <tscreen><verb>
369 client.pl gb7baa (using the callsign you set as a node)
370 </verb></tscreen>
371
372 <P>
373 You should get an initialisation string from DXSpider like this ...
374
375 <tscreen><verb>
376 client.pl gb7baa
377 PC38^GB7MBC^~
378 </verb></tscreen>
379
380 If the callsign you just set up as a cluster node is for an incoming connect, 
381 this is all that needs to be done.  If the connection is to be outgoing then 
382 a connection script needs to be written.
383
384 <sect1>Connection scripts
385
386 <P>
387 Because DXSpider operates under Linux, connections can be made using just about 
388 any protocol;  AX25, NETRom, tcp/ip, ROSE etc are all possible examples.  
389 Connect scripts live in the /spider/connect directory and are simple ascii files.  
390 Writing a script for connections is therefore relatively simple.  
391
392 <P>
393 The connect scripts consist of lines which start with the following keywords 
394 or symbols:-
395
396 <verb>
397         
398 #               All lines starting with a # are ignored, as are completely 
399                 blank lines.
400
401 timeout         timeout followed by a number is the number of seconds to wait for a 
402                 command to complete. If there is no timeout specified in the script 
403                 then the default is 60 seconds.
404
405 abort           abort is a regular expression containing one or more strings to look 
406                 for to abort a connection. This is a perl regular expression and is 
407                 executed ignoring case.
408
409 connect         connect followed by ax25 or telnet and some type dependent 
410                 information. In the case of a telnet connection, there can be up to 
411                 two parameters.
412                 The first is the ip address or hostname of the computer you wish to 
413                 connect to and the second is the port number you want to use (this 
414                 can be left out if it is a normal telnet session).
415                 In the case of an ax25 session then this would normally be a call to
416                 ax25_call or netrom_call as in the example above. It is your
417                 responsibility to get your node and other ax25 parameters to work 
418                 before going down this route!
419
420 '               ' is the delimiting character for a word or phrase of an expect/send 
421                 line in a chat type script. The words/phrases normally come in pairs,
422                 either can be empty. Each line reads input from the connection until 
423                 it sees the string (or perl regular expression) contained in the
424                 left hand string. If the left hand string is empty then it doesn't 
425                 read or wait for anything. The comparison is done ignoring case.
426                 When the left hand string has found what it is looking for (if it is)
427                 then the right hand string is sent to the connection.
428                 This process is repeated for every line of chat script. 
429
430 client          client starts the connection, put the arguments you would want here 
431                 if you were starting the client program manually. You only need this 
432                 if the script has a different name to the callsign you are trying to 
433                 connect to (i.e. you have a script called other which actually 
434                 connects to GB7DJK-1 [instead of a script called gb7djk-1]).
435 </verb>
436
437
438 There are many possible ways to configure the script but here are two examples, 
439 one for a NETRom/AX25 connect and one for tcp/ip.  
440
441 <tscreen><verb>
442 timeout 60
443 abort (Busy|Sorry|Fail)
444 # don't forget to chmod 4775 netrom_call!
445 connect ax25 /usr/sbin/netrom_call bbs gb7djk g1tlh
446 'Connect' '' 
447 'Connect' 'c np7'
448 'Connect' 'c gb7dxm'
449 # you can leave this out if you call the script 'gb7dxm'
450 client gb7dxm ax25
451 </verb></tscreen>
452
453 <P>
454
455 <tscreen><verb>
456 timeout 15
457 connect telnet dirkl.tobit.co.uk
458 'login' 'gb7djk'
459 'word' 'gb7djk'
460 # tell GB7DJK-1 that it is connected to GB7DJK
461 # you can leave this out if you call this script 'gb7djk'
462 client gb7djk telnet
463 </verb></tscreen>
464
465 <P>
466 Both these examples assume that everything is set up properly at the other end.  
467 You will find other examples in the /spider/examples directory.
468
469 <sect1>Starting the connection
470
471 <P>
472 You start the connection, from within a sysop enabled cluster login, by typing 
473 in the word <em>connect</em> followed by a script name like this ....
474
475 <tscreen><verb>
476 G0VGS de GB7MBC 13-Dec-1998 2041Z >connect gb7djk-1
477 connection to GB7DJK-1 started
478 G0VGS de GB7MBC 13-Dec-1998 2043Z >
479 </verb></tscreen>
480
481 This will start a connection using the script called <em>gb7djk-1</em>.  You can
482 follow the connection by watching the term or console from where you started
483 <em>cluster.pl</em>.  You should see something like this ...
484
485 <tscreen><verb>
486 <- D G1TLH connect gb7djk-1
487 -> D G1TLH connection to GB7DJK-1 started
488 -> D G1TLH G1TLH de GB7DJK 13-Dec-1998 2046Z >
489 timeout set to 15
490 CONNECT sort: telnet command: dirkl.tobit.co.uk
491 CHAT "login" -> "gb7djk"
492 received "
493 Red Hat Linux release 5.1 (Manhattan)
494 Kernel 2.0.35 on an i586
495 "
496 received "login: "
497 sent "gb7djk"
498 CHAT "word" -> "gb7djk"
499 received "gb7djk"
500 received "Password: "
501 sent "gb7djk"
502 Connected to GB7DJK-1, starting normal protocol
503 <- O GB7DJK-1 telnet
504 -> B GB7DJK-1 0
505 GB7DJK-1 channel func  state 0 -> init
506 <- D GB7DJK-1 
507 <- D GB7DJK-1 Last login: Sun Dec 13 17:59:56 from dirk1
508 <- D GB7DJK-1 PC38^GB7DJK-1^~
509 <- D GB7DJK-1 PC18^ 1 nodes, 0 local / 1 total users  Max users 0  Uptime 
510 0 00:00^5447^~
511     etc
512
513 </verb></tscreen>
514
515 <P>
516 With later versions of Spider there is a set/login command for users.  This 
517 tells them when a user or node logs in or out.  If you do not add a line to 
518 your scripts after the final line (or before the client line which should always 
519 be last if needed) then the login/logout information will be sent to users
520 <it>before</it> the login actually completes.  This means if a node is 
521 unreachable, it will continue sending logins and logouts to users even though it 
522 is not actually connecting.  To avoid this use the following line ...
523
524 <tscreen><verb>
525 'connect' ''
526 </verb></tscreen>
527
528 <P>
529 In a script, this might look like ...
530
531 <tscreen><verb>
532 timeout 35 
533 abort (Busy|Sorry|Fail)
534 connect telnet mary 3000
535 'ogin:' 'gb7mbc'
536 '>' 'telnet 44.131.93.96 7305'
537 'connect' ''
538 </verb></tscreen>
539
540 <sect1>Telnet echo
541
542 <P>
543 Cluster links in particular suffer greatly from the presence of telnet echo.  
544 This is caused by the telnet negotiation itself and can create at worst severe 
545 loops.  At best it creates unnecessary bandwidth and large logfiles!  There are
546 things that can be done to limit this problem but will not always work dependent 
547 on the route taken to connect.
548
549 <P>
550 Telnet echo itself should only be a problem if the connection is being made to 
551 the telnet port (23).  This port uses special rules that include echo negotiation.
552 If the connection is to a different port, such as 8000, this negotiation does 
553 not happen and therefore no echo should be present.
554
555 <P>
556 Sometimes it is not possible to make a direct connection to another node and this 
557 can cause problems.  There is a way of trying to suppress the telnet echo but 
558 this will not always work, unfortunately it is difficult to be more specific.  
559 Here is an example of what I mean ...
560
561 <tscreen><verb>
562 timeout 35
563 abort (Busy|Sorry|Fail)
564 connect telnet mary.lancs.ac.uk
565 'ogin:' 'gb7mbc'
566 'word:' 'mypasswd'
567 '\$' 'stty -echo raw'
568 '\$' 'telnet 44.131.93.96'
569 'connect' ''
570 </verb></tscreen>
571
572 So, the first connection is made by Spider.  This is fine as Spider uses the
573 Net_Telnet script from within perl.  This actually uses TCP rather than TELNET 
574 so no negotiation will be done on the first connection.  Once connected to
575 mary.lancs.ac.uk, the command is sent to suppress echo.  Now a telnet is made 
576 to a cluster node that is accepting connections on port 23.  The problem with 
577 this link is that the negotiation is made by the remote machine, therefore you 
578 have no control over it.  The chances are that this link will create echo and 
579 there will be no way you can stop it.
580
581
582 <sect>Automating things
583
584 <P>
585 Ok, you should now have DXSpider running nicely and allowing connects by cluster
586 nodes or users.  However, it has to be shutdown and restarted manually and if
587 connection scripts fail they have to be started again manually too, not much use 
588 if you are not at the console!  So, in this section we will automate both.  
589 Firstly starting the cluster.
590
591 <sect1>Autostarting the cluster
592
593 <P>
594 This is not only a way to start the cluster automatically, it also works as a
595 watchdog, checking the sanity of DXSpider and respawning it should it crash for 
596 any reason.  Before doing the following, shutdown the cluster as you did earlier.
597
598 <P>
599 Login as root and bring up the /etc/inittab file in your favourite editor.  Add 
600 the following lines to the file near the end ...
601
602 <tscreen><verb>
603 ##Start DXSpider on bootup and respawn it should it crash
604 DX:3:respawn:/bin/su -c "/usr/bin/perl -w /spider/perl/cluster.pl" sysop >/dev/tty7
605 </verb></tscreen>
606
607 <P>
608 This will automatically start DXSpider on tty7 (ALT-F7) on bootup and restart 
609 it should it crash for any reason.
610
611 <P>
612 As root type the command <em>telinit q</em>.  DXSpider should start up 
613 immediately.  You will see the output on tty7 and if you login as <em>sysop</em> 
614 you should find everything running nicely.
615
616 <P>
617 So far so good, now to automate script connections...
618
619 <sect1>The crontab file
620
621 <P>
622 Login as <em>sysop</em> and create a file in /spider/local_cmd called crontab.  
623 Edit it with your favourite editor and add a line like this (I have included 
624 a comment)
625
626 <tscreen><verb>
627 # check every 10 minutes to see if gb7xxx is connected and if not
628 # start a connect job going
629
630 0,10,20,30,40,50 * * * * start_connect('gb7xxx') if !connected('gb7xxx')
631 </verb></tscreen>
632
633 <P>
634 The callsign involved will be the callsign of the cluster node you are 
635 going to connect to.  This will now check every 10 minutes to see if 
636 gb7xxx is connected, if it is then nothing will be done.  If it is not, 
637 then a connect attempt will be started.
638
639 <P>
640 There are probably lots of other things you could use this crontab file for.  
641 If you want to know more about it, look at the
642 <htmlurl url="http://www.dxcluster.org/cron.html" name="DXSpider"> website 
643 at the cron page where it is explained more fully.
644
645 <sect>Hop control
646
647 <P>
648 Starting with version 1.13 there is simple hop control available on a per
649 node basis. Also it is possible to isolate a network completely so that you 
650 get all the benefits of being on that network, but can't pass on information
651 from it to any other networks you may be connected to (or vice versa).
652
653 <sect1>Basic hop control
654
655 <P>
656 In /spider/data you will find a file called hop_table.pl.  This is the file 
657 that controls your hop count settings.  It has a set of default hops on the 
658 various PC frames and also a set for each node you want to alter the hops for.  
659 You may be happy with the default settings of course, but this powerful tool 
660 can help to protect and improve the network.  The file will look something 
661 like this ...
662
663 <tscreen><verb>
664
665 # hop table construction
666
667
668 package DXProt;
669
670 # default hopcount to use
671 $def_hopcount = 5;
672
673 # some variable hop counts based on message type
674 %hopcount = 
675 (
676  11 => 10,
677  16 => 10,
678  17 => 10,
679  19 => 10,
680  21 => 10,
681 );
682
683
684 # the per node hop control thingy
685
686
687 %nodehops = 
688
689  GB7ADX => {            11 => 8,
690                         12 => 8,
691                         16 => 8,
692                         17 => 8,
693                         19 => 8,
694                         21 => 8,
695                    },
696
697  GB7UDX => {            11 => 8,
698                         12 => 8,
699                         16 => 8,
700                         17 => 8,
701                         19 => 8,
702                         21 => 8,
703                    },
704  GB7BAA => {
705                         11 => 5,
706                         12 => 8,
707                         16 => 8,
708                         17 => 8,
709                         19 => 8,
710                         21 => 8,
711                    },
712 };
713 </verb></tscreen>
714
715 <P>
716 Each set of hops is contained within a pair of curly braces and contains a 
717 series of PC frame types.  PC11 for example is a DX spot. The figures here 
718 are not exhaustive but should give you a good idea of how the file works.
719
720 <P>
721 You can alter this file at any time, including whilst the cluster is running.  
722 If you alter the file during runtime, the command <em>load/hops</em> will 
723 bring your changes into effect.
724
725 <sect1>Isolating networks
726
727 <P>
728 It is possible to isolate networks from each other on a "gateway" node using the
729  <em>set/isolate &lt;node_call&gt;</em> command.
730         
731 <P>
732 The effect of this is to partition an isolated network completely from another 
733 nodes connected to your node. Your node will appear on and otherwise behave 
734 normally on every network to which you are connected, but data from an isolated 
735 network will not cross onto any other network or vice versa. However all the 
736 spot, announce and WWV traffic and personal messages will still be handled 
737 locally (because you are a real node on all connected networks), that is locally
738 connected users will appear on all networks and will be able to access and 
739 receive information from all networks transparently.  All routed messages will 
740 be sent as normal, so if a user on one network knows that you are a gateway for 
741 another network, he can still still send a talk/announce etc message via your 
742 node and it will be routed across.
743
744 <P>
745 The only limitation currently is that non-private messages cannot be passed down 
746 isolated links regardless of whether they are generated locally. This will change 
747 when the bulletin routing facility is added.
748
749 <P>
750 If you use isolate on a node connection you will continue to receive all 
751 information from the isolated partner, however you will not pass any information 
752 back to the isolated node.  There are times when you would like to forward only 
753 spots across a link (maybe during a contest for example).  To do this, isolate 
754 the node in the normal way and put in a filter in the /spider/filter/spots 
755 directory to override the isolate.  This filter can be very simple and consists 
756 of just one line ....
757
758 <tscreen><verb>
759 $in = [
760         [ 1, 0, 'd', 0, 3]      # The last figure (3) is the hop count
761 ];
762 </verb></tscreen>
763
764 <P>
765 There is a lot more on filtering in the next section.
766
767 <sect>Filtering (Old Style upto v1.44)
768
769 <P>
770 Filters can be set for spots, announcements and WWV.  You will find the 
771 directories for these under /spider/filter.  You will find some examples in 
772 the directories with the suffix <em>.issue</em>.  There are two types of 
773 filter, one for incoming information and one for outgoing information. 
774 Outgoing filters are in the form <em>CALLSIGN.pl</em> and incoming filters 
775 are in the form <em>in_CALLSIGN.pl</em>.  Filters can be set for both nodes 
776 and users.
777
778 <P>
779 All filters work in basically the same way.  There are several elements 
780 delimited by commas.  There can be many lines in the filter and they are 
781 read from the top by the program.  When writing a filter you need to think 
782 carefully about just what you want to achieve.  You are either going to write 
783 a filter to <em>accept</em> or to <em>reject</em>.  Think of a filter as 
784 having 2 main elements.  For a reject filter, you would have a line or multiple 
785 lines rejecting the things you do not wish to receive and then a default line
786 accepting everything else that is not included in the filter.  Likewise, for an
787 accept filter, you would have a line or multiple lines accepting the things you 
788 wish to receive and a default line rejecting everthing else.
789
790 <P>
791 In the example below, a user requires a filter that would only return SSB spots
792 posted in Europe on the HF bands.  This is achieved by first rejecting the CW 
793 section of each HF band and rejecting all of VHF, UHF etc based on frequency.
794 Secondly, a filter rule is set based on CQ zones to only accept spots posted in
795 Europe.  Lastly, a default filter rule is set to reject anything outside the filter.
796
797 <tscreen><verb>
798 $in = [
799         [ 0, 0, 'r', # reject all CW spots
800                 [
801                 1800.0, 1850.0,
802                 3500.0, 3600.0,
803                 7000.0, 7040.0,
804                 14000.0, 14100.0,
805                 18068.0, 18110.0,
806                 21000.0, 21150.0,
807                 24890.0, 24930.0,
808                 28000.0, 28180.0,
809                 30000.0, 49000000000.0,
810                 ] ,1 ],
811         [ 1, 11, 'n', [ 14, 15, 16, 20, 33, ], 15 ], #accept EU
812         [ 0, 0, 'd', 0, 1 ], # 1 = want, 'd' = everything else
813 ];
814 </verb></tscreen>
815
816 <P>
817 The actual elements of each filter are described more fully in the following
818 sections.
819
820 <sect1>Spots
821
822 <P>
823 The elements of the Spot filter are ....
824
825 <tscreen><verb>
826 [action, field_no, sort, possible_values, hops]
827 </verb></tscreen>
828
829 <P>
830 There are 3 elements here to look at.  Firstly, the action element.  This is 
831 very simple and only 2 possible states exist, accept (1) or drop (0).
832
833 <P>
834 The second element is the field_no.  There are 13 possiblities to choose from 
835 here ....
836
837 <tscreen><verb>
838       0 = frequency
839       1 = call
840       2 = date in unix format
841       3 = comment
842       4 = spotter
843       5 = spotted dxcc country
844       6 = spotter's dxcc country
845       7 = origin
846       8 = spotted itu
847       9 = spotted cq
848       10 = spotter's itu
849       11 = spotter's cq
850       12 = callsign of the channel on which the spot has appeared
851 </verb></tscreen>
852
853 <P>
854 The third element tells us what to expect in the fourth element.  There are 
855 4 possibilities ....
856
857 <tscreen><verb>
858      n - numeric list of numbers e.g. [ 1,2,3 ]
859      r - ranges of pairs of numbers e.g. between 2 and 4 or 10 to 17 - [ 2,4, 10,17 ]
860      a - an alphanumeric regex
861      d - the default rule
862 </verb></tscreen>
863
864 <P>
865 The fifth element is simply the hops to set in this filter.  This would only 
866 be used if the filter was for a node of course and overrides the hop count in
867 hop_table.pl.
868
869 <P>
870 So, let's look at an example spot filter.  It does not matter in the example 
871 who the filter is to be used for.  So, what do we need in the filter?  We need 
872 to filter the spots the user/node requires and also set a default rule for 
873 anything else outside the filter.  Below is a simple filter that stops spots 
874 arriving from outside Europe.
875
876 <tscreen><verb>$in = [
877   [ 0, 4, 'a', '^(K|N|A|W|VE|VA|J)'],  # 0 = drop, 'a' = alphanumeric
878   [ 1, 0, 'd', 0, 1 ],                 # 1 = want, 'd' = everything else
879                      ];
880 </verb></tscreen>
881
882 <P>
883 So the filter is wrapped in between a pair of square brackets.  This tells 
884 Spider to look in between these limits.  Then each line is contained within 
885 its own square brackets and ends with a comma. Lets look carefully at the first 
886 line.  The first element is 0 (drop).  Therefore anything we put on this line 
887 will not be accepted.  The next element is 4.  This means we are filtering by 
888 the spotter.  The third element is the letter "a" which tells the program to 
889 expect an alphanumeric expression in the fourth element.  The fourth element 
890 is a list of letters separated by the pipe symbol.
891
892 <P>
893 What this line does is tell the program to drop any spots posted by anyone in 
894 the USA, Canada or Japan.
895
896 <P>
897 The second line is the default rule for anything else.  The "d" tells us this 
898 and the line simply reads... accept anything else.
899
900 <P>
901 You can add as many lines as you need to complete the filter but if there are 
902 several lines of the same type it is neater to enclose them all as one line.  
903 An example of this is where specific bands are set.  We could write this like 
904 this ....
905
906 <tscreen><verb>
907 [ 0,0,'r',[1800.0, 2000.0], 1],
908 [ 0,0,'r',[10100.0, 10150.0], 1],
909 [ 0,0,'r',[14000.0, 14350.0], 1],
910 [ 0,0,'r',[18000.0, 18200.0], 1],
911 </verb></tscreen>
912
913 <P>
914 But the line below achieves the same thing and is more efficient ....
915
916 <tscreen><verb>
917   [ 0, 0, 'r',
918     [  
919       1800.0, 2000.0,         # top band 
920       10100.0, 10150.0,       # WARC  
921       14000.0, 14350.0,       # 20m
922       18000.0, 18200.0,       # WARC
923     [ ,1 ],
924 </verb></tscreen>
925
926
927 <sect1>Announcements
928
929 <P>
930 <tscreen><verb>
931
932 # This is an example announce or filter allowing only West EU announces
933
934 # The element list is:-
935 # 0 - callsign of announcer
936 # 1 - destination * = all, <callsign> = routed to the node
937 # 2 - text
938 # 3 - * - sysop, <some text> - special list eg 6MUK, ' ', normal announce
939 # 4 - origin
940 # 5 - 0 - announce, 1 - wx
941 # 6 - channel callsign (the interface from which this spot came)
942
943 $in = [
944         [ 1, 0, 'a', '^(P[ABCDE]|DK0WCY|G|M|2|EI|F|ON)' ],
945         [ 0, 0, 'd', 0 ]
946 ];
947 </verb></tscreen>
948
949 In this example, only the prefixes listed will be allowed.  It is possible to 
950 be quite specific.  The Dutch prefix "P" is followed by several secondary 
951 identifiers which are allowed.  So, in the example, "PA" or "PE" would be ok 
952 but not "PG".  It is even possible to allow information from a single callsign.  
953 In the example this is DK0WCY, to allow the posting of his Aurora Beacon.
954
955 <sect1>WWV
956
957 <P>
958 <tscreen><verb>
959
960 # This is an example WWV filter
961
962 # The element list is:-
963 # 0 - nominal unix date of spot (ie the day + hour:13)
964 # 1 - the hour
965 # 2 - SFI
966 # 3 - K
967 # 4 - I
968 # 5 - text
969 # 6 - spotter
970 # 7 - origin
971 # 8 - incoming interface callsign
972
973 # this one doesn't filter, it just sets the hop count to 6 and is
974 # used mainly just to override any isolation from WWV coming from
975 # the internet.
976
977 $in = [
978         [ 1, 0, 'd', 0, 6 ]
979 ];
980
981 </verb></tscreen>
982
983 <P>
984 It should be noted that the filter will start to be used only once a user/node 
985 has logged out and back in again.
986 <P>
987 I am not going to spend any more time on these filters now as they will become 
988 more "comprehensive" in the near future.
989
990 <sect>Filtering (New Style v1.45 and later)
991
992 <sect1>General filter rules
993
994 <P>
995 Upto v1.44 it was not possible for the user to set their own filters.  From 
996 v1.45 though that has all changed.  It is now possible to set filters for just 
997 about anything you wish.  If you have just updated from an older version of 
998 DXSpider you will need to update your new filters.  You do not need to do 
999 anything with your old filters, they will be renamed as you update.
1000
1001 <P>
1002 There are 3 basic commands involved in setting and manipulating filters.  These 
1003 are <em>accept</em>, <em>reject</em> and <em>clear</em>.  First we will look
1004 generally at filtering. There are a number of things you can filter in the 
1005 DXSpider system. They all use the same general mechanism.
1006
1007 <P>
1008 In general terms you can create a 'reject' or an 'accept' filter which can have 
1009 up to 10 lines in it. You do this using, for example ... 
1010
1011 <tscreen><verb> 
1012 accept/spots .....
1013 reject/spots .....
1014 </verb></tscreen>
1015
1016 where ..... are the specific commands for that type of filter. There are filters 
1017 for spots, wwv, announce, wcy and (for sysops) connects. See each different 
1018 accept or reject command reference for more details.
1019
1020 There is also a command to clear out one or more lines in a filter. They are ...
1021
1022 <tscreen><verb>
1023 clear/spots 1
1024 clear/spots all
1025 </verb></tscreen>
1026
1027 There is clear/xxxx command for each type of filter.
1028
1029 <P>
1030 and you can check that your filters have worked by the command ... 
1031
1032 <tscreen><verb>  
1033 show/filter
1034 </verb></tscreen>
1035
1036 <P>
1037 For now we are going to use spots for the examples, but you can apply the same
1038 principles to all types of filter.
1039
1040 <sect1>Types of filter
1041
1042 <P>
1043 There are two main types of filter, <em>accept</em> or <em>reject</em>.  You 
1044 can use either to achieve the result you want dependent on your own preference 
1045 and which is more simple to do.  It is pointless writing 8 lines of reject 
1046 filters when 1 accept filter would do the same thing!  Each filter has 10 
1047 lines (of any length) which are tried in order.  If a line matches then the 
1048 action you have specified is taken (ie reject means ignore it and accept 
1049 means take it)
1050
1051 <P>
1052 If you specify reject filters, then any lines that arrive that match the filter 
1053 will be dumped but all else will be accepted.  If you use an accept filter, 
1054 then ONLY the lines in the filter will be accepted and all else will be dumped.
1055 For example if you have a single line <em>accept</em> filter ...
1056
1057 <tscreen><verb>
1058 accept/spots on vhf and (by_zone 14,15,16 or call_zone 14,15,16)
1059 </verb></tscreen>
1060
1061 then you will <em>ONLY</em> get VHF spots <em>from</em> or <em>to</em> CQ zones 
1062 14, 15 and 16.
1063
1064 <P>
1065 If you set a reject filter like this ...
1066
1067 <tscreen><verb>
1068 reject/spots on hf/cw
1069 </verb></tscreen>
1070
1071 Then you will get everything <em>EXCEPT</em> HF CW spots.  You could make this 
1072 single filter even more flexible.  For example, if you are interested in IOTA 
1073 and will work it even on CW even though normally you are not interested in 
1074 CW, then you could say ...
1075
1076 <tscreen><verb>
1077 reject/spots on hf/cw and not info iota
1078 </verb></tscreen>
1079
1080 But in that case you might only be interested in iota and say:-
1081
1082 <tscreen><verb>
1083 accept/spots not on hf/cw or info iota
1084 </verb></tscreen>
1085
1086 which achieves exactly the same thing. You should choose one or the other 
1087 until you are comfortable with the way it works. You can mix them if you 
1088 wish (actually you can have an accept AND a reject on the same line) but 
1089 don't attempt this until you are sure you know what you are doing!
1090
1091 <P>
1092 You can arrange your filter lines into logical units, either for your own
1093 understanding or simply convenience. Here is an example ...
1094
1095 <tscreen><verb>
1096 reject/spots 1 on hf/cw
1097 reject/spots 2 on 50000/1400000 not (by_zone 14,15,16 or call_zone 14,15,16)  
1098 </verb></tscreen>
1099
1100 What this does is to ignore all HF CW spots and also rejects any spots on VHF 
1101 which don't either originate or spot someone in Europe. 
1102
1103 <P>
1104 This is an example where you would use a line number (1 and 2 in this case), if 
1105 you leave the digit out, the system assumes '1'. Digits '0'-'9' are available.  
1106 This make it easier to see just what filters you have set.  It also makes it 
1107 more simple to remove individual filters, during a contest for example.
1108
1109 <P>
1110 You will notice in the above example that the second line has brackets.  Look 
1111 at the line logically.  You can see there are 2 separate sections to it.  We 
1112 are saying reject spots that are VHF or above <em>APART</em> from those in 
1113 zones 14, 15 and 16 (either spotted there or originated there).  If you did 
1114 not have the brackets to separate the 2 sections, then Spider would read it 
1115 logically from the front and see a different expression entirely ...
1116
1117 <tscreen><verb>
1118 (on 50000/1400000 and by_zone 14,15,16) or call_zone 14,15,16 
1119 </verb></tscreen>
1120
1121 The simple way to remember this is, if you use OR - use brackets. Whilst we are 
1122 here CASE is not important. 'And BY_Zone' is just the same as 'and by_zone'.
1123
1124 As mentioned earlier, setting several filters can be more flexible than 
1125 simply setting one complex one.  Doing it in this way means that if you want 
1126 to alter your filter you can just redefine or remove one or more lines of it or 
1127 one line. For example ...
1128
1129 <tscreen><verb>
1130 reject/spots 1 on hf/ssb
1131 </verb></tscreen>
1132
1133 would redefine our earlier example, or 
1134
1135 <tscreen><verb>
1136 clear/spots 1
1137 </verb></tscreen>
1138
1139 To remove all the filter lines in the spot filter ...
1140
1141 <tscreen><verb>
1142 clear/spots all
1143 </verb></tscreen>
1144
1145 <sect1>Filter options
1146
1147 <P>
1148 You can filter in several different ways.  The options are listed in the
1149 various helpfiles for accept, reject and filter.
1150
1151 <sect1>Default filters
1152
1153 <P>
1154 Sometimes all that is needed is a general rule for node connects.  This can
1155 be done with a node_default filter.  This rule will always be followed, even
1156 if the link is isolated, unless another filter is set specifically.  Default
1157 rules can be set for nodes and users.  They can be set for spots, announces,
1158 WWV and WCY.  They can also be used for hops.  An example might look like 
1159 this ...
1160
1161 <tscreen><verb>
1162 accept/spot node_default by_zone 14,15,16,20,33
1163 set/hops node_default spot 50
1164 </verb></tscreen>
1165
1166 This filter is for spots only, you could set others for announce, WWV and WCY.
1167 This filter would work for ALL nodes unless a specific filter is written to 
1168 override it for a particular node.  You can also set a user_default should
1169 you require.  It is important to note that default filters should be
1170 considered to be "connected".  By this I mean that should you override the
1171 default filter for spots, you need to add a rule for the hops for spots also.
1172
1173 <sect1>Advanced filtering
1174
1175 <P>
1176 Once you are happy with the results you get, you may like to experiment. 
1177
1178 <P>
1179 The previous example that filters hf/cw spots and accepts vhf/uhf spots from EU 
1180 can be written with a mixed filter, for example ... 
1181
1182 <tscreen><verb>
1183 rej/spot on hf/cw
1184 acc/spot on 0/30000
1185 acc/spot 2 on 50000/1400000 and (by_zone 14,15,16 or call_zone 14,15,16)
1186 </verb></tscreen>
1187
1188 Note that the first filter has not been specified with a number.  This will 
1189 automatically be assumed to be number 1.  In this case, we have said <em>reject all
1190 HF spots in the CW section of the bands but accept all others at HF.  Also
1191 accept anything in VHF and above spotted in or by operators in the zones
1192 14, 15 and 16</em>.  Each filter slot actually has a 'reject' slot and 
1193 an 'accept' slot. The reject slot is executed BEFORE the accept slot.
1194
1195 <P>
1196 It was mentioned earlier that after a reject test that doesn't match, the default 
1197 for following tests is 'accept', the reverse is true for 'accept'. In the example 
1198 what happens is that the reject is executed first, any non hf/cw spot is passed 
1199 to the accept line, which lets through everything else on HF.  The next filter line 
1200 lets through just VHF/UHF spots from EU.
1201
1202
1203 <sect>Other filters
1204
1205 <sect1>Filtering Mail
1206
1207 <P>
1208 In the /spider/msg directory you will find a file called badmsg.pl.issue.  Rename
1209 this to badmsg.pl and edit the file.  The original looks something like this ....
1210
1211 <tscreen><verb>
1212
1213 # the list of regexes for messages that we won't store having
1214 # received them (bear in mind that we must receive them fully before
1215 # we can bin them)
1216
1217
1218 # The format of each line is as follows
1219
1220 #     type      source             pattern 
1221 #     P/B/F     T/F/O/S            regex  
1222
1223 # type: P - private, B - bulletin (msg), F - file (ak1a bull)
1224 # source: T - to field, F - from field,  O - origin, S - subject 
1225 # pattern: a perl regex on the field requested
1226
1227 # Currently only type B and P msgs are affected by this code.
1228
1229 # The list is read from the top down, the first pattern that matches
1230 # causes the action to be taken.
1231
1232 # The pattern can be undef or 0 in which case it will always be selected
1233 # for the action specified
1234
1235
1236
1237 package DXMsg;
1238
1239 @badmsg = (
1240 'B',    'T',    'SALE', 
1241 'B',    'T',    'WANTED',
1242 'B',    'S',    'WANTED',
1243 'B',    'S',    'SALE', 
1244 'B',    'S',    'WTB',
1245 'B',    'S',    'WTS',
1246 'B',    'T',    'FS',
1247 );
1248 </verb></tscreen>
1249
1250 <P>
1251 I think this is fairly self explanatory.  It is simply a list of subject 
1252 headers that we do not want to pass on to either the users of the cluster or 
1253 the other cluster nodes that we are linked to.  This is usually because of 
1254 rules and regulations pertaining to items for sale etc in a particular country.
1255
1256 <sect1>Filtering DX callouts (Depricated)
1257
1258 <P>
1259 <bf><it>From version 1.47, this method is replaced by the command set/baddx</it></bf>
1260
1261 <P>
1262 In the same way as mail, there are some types of spot we do not wish to pass on 
1263 to users or linked cluster nodes.  In the /spider/data directory you will find 
1264 a file called baddx.pl.issue.  Rename this to baddx.pl and edit the file.  The
1265 original looks like this ....
1266
1267 <tscreen><verb>
1268
1269 # the list of dx spot addresses that we don't store and don't pass on
1270
1271
1272 package DXProt;
1273
1274 @baddx = qw 
1275
1276  FROG 
1277  SALE
1278  FORSALE
1279  WANTED
1280  P1RATE
1281  PIRATE
1282  TEST
1283  DXTEST
1284  NIL
1285  NOCALL 
1286 );
1287 </verb></tscreen>
1288
1289 <P>
1290 Again, this is simply a list of names we do not want to see in the spotted 
1291 field of a DX callout.
1292
1293
1294 <sect1>Filtering words from text fields in Announce, Talk and DX spots
1295
1296 <P>
1297 Create a file in /spider/data called <em>badwords</em>.  The format is quite
1298 simple.  Lines beginning with # are ignored so comments can be added.  An
1299 example file is below ...
1300
1301 <tscreen><verb>
1302 # Below is a list of words we do not wish to see on the cluster
1303 grunge grunged grunging
1304 splodge splodger splodging
1305 grince
1306 fluffle
1307 </verb></tscreen>
1308
1309 Multiple words can be used on the same line as shown.  Obviously these
1310 are just examples :-)
1311
1312 <P>
1313 You can reload the file from the cluster prompt as sysop with load/badwords.
1314
1315 <sect>Information, files and useful programs
1316
1317 <sect1>MOTD
1318
1319 <P>
1320 One of the more important things a cluster sysop needs to do is to get 
1321 information to his users.  The simplest way to do this is to have a banner 
1322 that is sent to the user on login.  This is know as a "message of the day" 
1323 or "motd".  To set this up, simply create a file in /spider/data called motd 
1324 and edit it to say whatever you want.  It is purely a text file and will be 
1325 sent automatically to anyone logging in to the cluster.
1326
1327 <sect1>Downtime message
1328
1329 <P>
1330 If for any reason the cluster is down, maybe for upgrade or maintenance but 
1331 the machine is still running, a message can be sent to the user advising them 
1332 of the fact.  This message lives in the /spider/data directory and is called
1333 "offline".  Simply create the file and edit it to say whatever you wish.  
1334 This file will be sent to a user attempting to log into the cluster when
1335 DXSpider is not actually running.
1336
1337 <sect1>Other text messages
1338
1339 <P>
1340 You can set other text messages to be read by the user if they input the file 
1341 name.  This could be for news items or maybe information for new users.  
1342 To set this up, make a directory under /spider called <em>packclus</em>.  
1343 Under this directory you can create files called <em>news</em> or <em>newuser</em>
1344 for example.  In fact you can create files with any names you like.  These can 
1345 be listed by the user with the command ....
1346
1347 <tscreen><verb>
1348 show/files
1349 </verb></tscreen>
1350
1351 They can be read by the user by typing the command ....
1352
1353 <tscreen><verb>
1354 type news
1355 </verb></tscreen>
1356
1357 If the file they want to read is called <em>news</em>.  You could also set 
1358 an alias for this in the Alias file to allow them just to type <em>news</em>
1359
1360 <P>
1361 You can also store other information in this directory, either directly or 
1362 nested under directories.  One use for this would be to store DX bulletins 
1363 such as the OPDX bulletins.  These can be listed and read by the user.  
1364 To keep things tidy, make a directory under /spider/packclus called
1365 <em>bulletins</em>.  Now copy any OPDX or similar bulletins into it.  These 
1366 can be listed by the user in the same way as above using the <em>show/files</em>
1367 command with an extension for the bulletins directory you have just created, 
1368 like this ....
1369
1370 <tscreen><verb>
1371 show/files bulletins
1372 </verb></tscreen>
1373
1374 <P>
1375 An example would look like this ....
1376
1377 <tscreen><verb>
1378 sh/files
1379 bulletins      DIR 20-Dec-1999 1715Z news          1602 14-Dec-1999 1330Z
1380 </verb></tscreen>
1381
1382 You can see that in the files area (basically the packclus directory) there is a 
1383 file called <em>news</em> and a directory called <em>bulletins</em>.  You can 
1384 also see that dates they were created.  In the case of the file <em>news</em>, 
1385 you can also see the time it was last modified, a good clue as to whether the 
1386 file has been updated since you last read it.  To read the file called 
1387 <em>news</em> you would simply issue the command ....
1388
1389 <tscreen><verb>
1390 type news
1391 </verb></tscreen>
1392
1393 To look what is in the bulletins directory you issue the command ....
1394
1395 <tscreen><verb>
1396 show/files bulletins
1397 opdx390      21381 29-Nov-1999 1621Z opdx390.1     1670 29-Nov-1999 1621Z
1398 opdx390.2     2193 29-Nov-1999 1621Z opdx391      25045 29-Nov-1999 1621Z  
1399 opdx392      35969 29-Nov-1999 1621Z opdx393      15023 29-Nov-1999 1621Z  
1400 opdx394      33429 29-Nov-1999 1621Z opdx394.1     3116 29-Nov-1999 1621Z  
1401 opdx395      24319 29-Nov-1999 1621Z opdx396      32647 29-Nov-1999 1621Z
1402 opdx396.1     5537 29-Nov-1999 1621Z opdx396.2     6242 29-Nov-1999 1621Z
1403 opdx397      18433 29-Nov-1999 1621Z opdx398      19961 29-Nov-1999 1621Z  
1404 opdx399      17719 29-Nov-1999 1621Z opdx400      19600 29-Nov-1999 1621Z
1405 opdx401      27738 29-Nov-1999 1621Z opdx402      18698 29-Nov-1999 1621Z
1406 opdx403      24994 29-Nov-1999 1621Z opdx404      15685 29-Nov-1999 1621Z
1407 opdx405      13984 29-Nov-1999 1621Z opdx405.1     4166 29-Nov-1999 1621Z
1408 opdx406      28934 29-Nov-1999 1621Z opdx407      24153 29-Nov-1999 1621Z
1409 opdx408      15081 29-Nov-1999 1621Z opdx409      23234 29-Nov-1999 1621Z
1410 Press Enter to continue, A to abort (16 lines) >
1411 </verb></tscreen>
1412
1413 You can now read any file in this directory using the type command, like this ....
1414
1415 <tscreen><verb>
1416 type bulletins/opdx391
1417 Ohio/Penn DX Bulletin No. 391
1418 The Ohio/Penn Dx PacketCluster
1419 DX Bulletin No. 391
1420 BID: $OPDX.391
1421 January 11, 1999
1422 Editor Tedd Mirgliotta, KB8NW
1423 Provided by BARF-80 BBS Cleveland, Ohio
1424 Online at 440-237-8208 28.8k-1200 Baud 8/N/1 (New Area Code!)
1425 Thanks to the Northern Ohio Amateur Radio Society, Northern Ohio DX
1426 Association, Ohio/Penn PacketCluster Network, K1XN & Golist, WB2RAJ/WB2YQH
1427 & The 59(9) DXReport, W3UR & The Daily DX, K3TEJ, KN4UG, W4DC, NC6J, N6HR,
1428 Press Enter to continue, A to abort (508 lines) >
1429 </verb></tscreen>
1430
1431 The page length will of course depend on what you have it set to!
1432
1433 <sect1>The Aliases file
1434
1435 <P>
1436 You will find a file in /spider/cmd/ called Aliases.  First, copy this file to
1437 /spider/local_cmd/Aliases and edit this file.  You will see something like this ...
1438
1439 <tscreen><verb>
1440
1441 #!/usr/bin/perl
1442
1443 # provide some standard aliases for commands for terminally
1444 # helpless ak1a user (helpless in the sense that they never
1445 # read nor understand help files)
1446
1447 # This file is automagically reloaded if its modification time is 
1448 # later than the one stored in CmdAlias.pm
1449
1450 # PLEASE make this file consistant with reality! (the patterns MUST
1451 # match the filenames!)
1452
1453 # Don't alter this file, copy it into the local_cmd tree and modify it.
1454 # This file will be replaced everytime I issue a new release.
1455
1456 # You only need to put aliases in here for commands that don't work as
1457 # you desire naturally, e.g sh/dx on its own just works as you expect
1458 # so you need not add it as an alias.
1459
1460
1461
1462 package CmdAlias;
1463
1464 %alias = (
1465     '?' => [
1466           '^\?', 'apropos', 'apropos',
1467         ],
1468     'a' => [
1469           '^ann.*/full', 'announce full', 'announce', 
1470           '^ann.*/sysop', 'announce sysop', 'announce',
1471           '^ann.*/(.*)$', 'announce $1', 'announce',
1472         ],
1473         'b' => [
1474         ],
1475         'c' => [
1476         ],
1477         'd' => [
1478           '^del', 'kill', 'kill',
1479           '^del\w*/fu', 'kill full', 'kill',
1480           '^di\w*/a\w*', 'directory all', 'directory',
1481           '^di\w*/b\w*', 'directory bulletins', 'directory',
1482           '^di\w*/n\w*', 'directory new', 'directory',
1483           '^di\w*/o\w*', 'directory own', 'directory',
1484           '^di\w*/s\w*', 'directory subject', 'directory',
1485           '^di\w*/t\w*', 'directory to', 'directory',
1486           '^di\w*/f\w*', 'directory from', 'directory',
1487           '^di\w*/(\d+)', 'directory $1', 'directory',
1488         ],
1489         'e' => [
1490         ],
1491         'f' => [
1492         ],
1493         'g' => [
1494         ],
1495         'h' => [
1496         ],
1497         'i' => [
1498         ],
1499         'j' => [
1500         ],
1501         'k' => [
1502         ],
1503         'l' => [
1504           '^l$', 'directory', 'directory',
1505           '^ll$', 'directory', 'directory',
1506           '^ll/(\d+)', 'directory $1', 'directory',
1507         ],
1508         'm' => [
1509         ],
1510         'n' => [
1511           '^news', 'type news', 'type',
1512         ],
1513         'o' => [
1514         ],
1515         'p' => [
1516         ],
1517         'q' => [
1518           '^q', 'bye', 'bye',
1519         ],
1520         'r' => [        
1521           '^r$', 'read', 'read',
1522           '^rcmd/(\S+)', 'rcmd $1', 'rcmd',
1523         ],
1524         's' => [
1525           '^s/p$', 'send', 'send',
1526           '^sb$', 'send noprivate', 'send',
1527           '^set/home$', 'set/homenode', 'set/homenode',
1528           '^set/nobe', 'unset/beep', 'unset/beep',
1529           '^set/nohe', 'unset/here', 'unset/here',
1530           '^set/noan', 'unset/announce', 'unset/announce',
1531           '^set/nodx', 'unset/dx', 'unset/dx',
1532           '^set/nota', 'unset/talk', 'unset/talk',
1533           '^set/noww', 'unset/wwv', 'unset/wwv',
1534           '^set/nowx', 'unset/wx', 'unset/wx',
1535           '^sh$', 'show', 'show',
1536           '^sh\w*/buck', 'dbshow buck', 'dbshow',
1537           '^sh\w*/bu', 'show/files bulletins', 'show/files',
1538           '^sh\w*/c/n', 'show/configuration nodes', 'show/configuration',
1539           '^sh\w*/c$', 'show/configuration', 'show/configuration',
1540           '^sh\w*/com', 'dbavail', 'dbavail',
1541           '^sh\w*/dx/(\d+)-(\d+)', 'show/dx $1-$2', 'show/dx',
1542           '^sh\w*/dx/(\d+)', 'show/dx $1', 'show/dx',
1543           '^sh\w*/dx/d(\d+)', 'show/dx from $1', 'show/dx',
1544           '^sh\w*/email', 'dbshow email', 'dbshow',
1545           '^sh\w*/hftest', 'dbshow hftest', 'dbshow',
1546           '^sh\w*/vhftest', 'dbshow vhftest', 'dbshow',
1547           '^sh\w*/qsl', 'dbshow qsl', 'dbshow',
1548           '^sh\w*/tnc', 'who', 'who',
1549           '^sh\w*/up', 'show/cluster', 'show/cluster',
1550           '^sh\w*/w\w*/(\d+)-(\d+)', 'show/wwv $1-$2', 'show/wwv',
1551           '^sh\w*/w\w*/(\d+)', 'show/wwv $1', 'show/wwv',
1552           '^sp$', 'send', 'send',
1553         
1554     ],
1555         't' => [
1556           '^ta$', 'talk', 'talk',
1557           '^t$', 'talk', 'talk',
1558         ],
1559         'u' => [
1560         ],
1561         'v' => [
1562         ],
1563         'w' => [
1564           '^wx/full', 'wx full', 'wx',
1565           '^wx/sysop', 'wx sysop', 'wx',
1566         ],
1567         'x' => [
1568         ],
1569         'y' => [
1570         ],
1571         'z' => [
1572         ],
1573 )
1574 </verb></tscreen>
1575
1576 You can create aliases for commands at will.  Beware though, these may not 
1577 always turn out as you think.  Care is needed and you need to test the 
1578 results once you have set an alias.
1579
1580 <sect1>Forward.pl
1581
1582 <P>
1583 DXSpider receives all and any mail sent to it without any alterations needed
1584 in files.  Because personal and bulletin mail are treated differently, there
1585 is no need for a list of accepted bulletin addresses.  It is necessary, however,
1586 to tell the program which links accept which bulletins.  For example, it is
1587 pointless sending bulletins addresses to "UK" to any links other than UK
1588 ones.  The file that does this is called forward.pl and lives in /spider/msg.
1589 At default, like other spider files it is named forward.pl.issue.  Rename it
1590 to forward.pl and edit the file to match your requirements.
1591 The format is below ...
1592
1593 <tscreen><verb>
1594 #
1595 # this is an example message forwarding file for the system
1596 #
1597 # The format of each line is as follows
1598 #
1599 #     type    to/from/at pattern action  destinations
1600 #     P/B/F     T/F/A     regex   I/F    [ call [, call ...] ]
1601 #
1602 # type: P - private, B - bulletin (msg), F - file (ak1a bull)
1603 # to/from/at: T - to field, F - from field, A - home bbs, O - origin 
1604 # pattern: a perl regex on the field requested
1605 # action: I - ignore, F - forward
1606 # destinations: a reference to an array containing node callsigns
1607 #
1608 # if it is non-private and isn't in here then it won't get forwarded 
1609 #
1610 # Currently only type B msgs are affected by this code.
1611
1612 # The list is read from the top down, the first pattern that matches
1613 # causes the action to be taken.
1614 #
1615 # The pattern can be undef or 0 in which case it will always be selected
1616 # for the action specified
1617 #
1618 # If the BBS list is undef or 0 and the action is 'F' (and it matches the
1619 # pattern) then it will always be forwarded to every node that doesn't have 
1620 # it (I strongly recommend you don't use this unless you REALLY mean it, if
1621 # you allow a new link with this on EVERY bull will be forwarded immediately
1622 # on first connection)
1623 #
1624
1625 package DXMsg;
1626
1627 @forward = (
1628 'B',    'T',    'LOCAL',        'F',    [ qw(GB7MBC) ],
1629 'B',    'T',    'ALL',          'F',    [ qw(GB7BAA GB7ADX PA4AB-14) ],
1630 'B',    'T',    'UK',           'F',    [ qw(GB7BAA GB7ADX) ],
1631 'B',    'T',    'QSL',          'F',    [ qw(GB7BAA GB7ADX PA4AB-14) ],
1632 'B',    'T',    'QSLINF',       'F',    [ qw(GB7BAA GB7ADX PA4AB-14) ],
1633 'B',    'T',    'DX',           'F',    [ qw(GB7BAA GB7ADX PA4AB-14) ],
1634 'B',    'T',    'DXINFO',       'F',    [ qw(GB7BAA GB7ADX PA4AB-14) ],
1635 'B',    'T',    'DXNEWS',       'F',    [ qw(GB7BAA GB7ADX PA4AB-14) ],
1636 'B',    'T',    'DXQSL',        'F',    [ qw(GB7BAA GB7ADX PA4AB-14) ],
1637 'B',    'T',    'SYSOP',        'F',    [ qw(GB7BAA GB7ADX) ],
1638 'B',    'T',    '50MHZ',        'F',    [ qw(GB7BAA GB7ADX PA4AB-14) ],
1639 );
1640 </verb></tscreen>
1641
1642 Simply insert a bulletin address and state in the brackets where you wish
1643 that mail to go.  For example, you can see here that mail sent to "UK" will
1644 only be sent to the UK links and not to PA4AB-14.
1645
1646 <P>
1647 To force the cluster to reread the file use load/forward
1648
1649 <sect1>Distribution lists
1650
1651 <P>
1652 Distribution lists are simply a list of users to send certain types of
1653 mail to.  An example of this is mail you only wish to send to other
1654 sysops.  In /spider/msg there is a directory called <em>distro</em>.  You
1655 put any distibution lists in here.  For example, here is a file called
1656 SYSOP.pl that caters for the UK sysops.
1657
1658 <tscreen><verb>
1659 qw(GB7TLH GB7DJK GB7DXM GB7CDX GB7BPQ GB7DXN GB7MBC GB7MBC-6 GB7MDX
1660    GB7NDX GB7SDX GB7TDX GB7UDX GB7YDX GB7ADX GB7BAA GB7DXA GB7DXH 
1661    GB7DXK GB7DXI GB7DXS)
1662 </verb></tscreen>
1663
1664 Any mail sent to "sysop" would only be sent to the callsigns in this list.
1665  
1666 <sect1>Console.pl
1667
1668 <P>
1669 In later versions of Spider a simple console program is provided for the sysop.  
1670 This has a type ahead buffer with line editing facilities and colour for spots,
1671 announces etc.  To use this program, simply use console.pl instead of client.pl.
1672
1673 <P>
1674 To edit the colours, copy /spider/perl/Console.pl to /spider/local and edit the 
1675 file with your favourite editor.
1676
1677 <sect1>BBS interface
1678
1679 <P>
1680 Spider provides a simple BBS interface.  No input is required from the sysop
1681 of the cluster at all.  The BBS simply sets the cluster as a BBS and pushes
1682 any required mail to the cluster.  No mail can flow from Spider to the BBS,
1683 the interface is one-way.
1684
1685 <P>
1686 Please be careful not to flood the cluster network with unnecessary mail.
1687 Make sure you only send mail to the clusters that want it by using the
1688 Forward.pl file very carefully.
1689
1690 <sect1>Updating kepler data
1691
1692 <P>
1693 Spider has a powerful and flexible show/satellite command.  In order for
1694 this to be accurate, the kepler data has to be updated regularly.  In
1695 general, this data is available as an email or via cluster mail.
1696 Updating it is simple.  First you need to export the mail message as a
1697 file.  You do this with the <em>export</em> command from the cluster prompt
1698 as the sysop.  For example ...
1699
1700 <tscreen><verb>
1701 export 5467 /spider/perl/keps.in
1702 </verb></tscreen>
1703
1704 would export message number 5467 as a file called keps.in in the
1705 /spider/perl directory.
1706
1707 Now login to a VT as sysop and cd /spider/perl.  There is a command in
1708 the perl directory called <em>convkeps.pl</em>.  All we need to do now is
1709 convert the file like so ...
1710
1711 <tscreen><verb>
1712 ./convkeps.pl keps.in
1713 </verb></tscreen>
1714
1715 Now go back to the cluster and issue the command ...
1716
1717 <tscreen><verb>
1718 load/keps
1719 </verb></tscreen>
1720
1721 That is it!  the kepler data has been updated.
1722
1723
1724 <sect>CVS
1725
1726 <P>
1727 CVS stands for "Concurrent Versions System" and the CVS for DXSpider is held
1728 at <htmlurl url="http://www.sourceforge.net" name="Sourceforge">.  This means
1729 that it is possible to update your DXSpider installation to the latest
1730 sources by using a few simple commands.
1731
1732 <P>
1733 THIS IS NOT FOR THE FAINT HEARTED!!!  ONLY DO THIS IF YOU HAVE A TEST
1734 INSTALLATION OR ARE WILLING TO HAVE YOUR CLUSTER CRASH ON YOU!!!
1735 THIS MUST BE CONSIDERED AT LEAST BETA TESTING AND MAYBE EVEN ALPHA!!
1736 YOU HAVE BEEN WARNED!!!
1737
1738 <P>
1739 DID I MENTION..... ONLY DO THIS IF YOU ARE WILLING TO ACCEPT THE
1740 CONSEQUENCES!!!
1741
1742 <P>
1743 I am of course assuming that you have a machine with both DXSpider and
1744 Internet access running.
1745
1746 <P>
1747 BEFORE YOU EVEN CONSIDER STARTING WITH THIS MAKE A BACKUP OF YOUR
1748 ENTIRE SPIDER TREE!!
1749
1750 <P>
1751 Assuming you are connected to the Internet, you need to login to the
1752 CVS repository and then update your Spider source.  There are several
1753 steps which are listed below ...
1754
1755 <P>
1756 First login as the user <em>sysop</em>.  Next you need to connect to the CVS
1757 repository.  You do this with the command below ...
1758
1759 <verb>
1760 cvs -d:pserver:anonymous@cvs.DXSpider.sourceforge.net:/cvsroot/dxspider login 
1761 </verb>
1762
1763 You will get a password prompt.  Simply hit return here and your machine should
1764 return to a normal linux prompt.
1765
1766 <P>
1767 What happens next depends on whether you have an existing installation that 
1768 you want to update with the latest and greatest or whether you just want
1769 to see what is there and/or run it on a new machine for testing.
1770 Either way you will want to change directory to a new place, if you want to
1771 update an existing installation then I suggest /tmp, otherwise choose a
1772 suitable place according to the normal installation instructions.
1773
1774 <P>
1775 The next step will create a brand new 'spider' directory in your current
1776 directory.
1777
1778 <verb>
1779 cvs -z3 -d:pserver:anonymous@cvs.DXSpider.sourceforge.net:/cvsroot/dxspider co spider
1780 </verb>
1781
1782 This command is all on one line.
1783
1784 <P>
1785 Hopefully your screen should show you downloading files.  The -z3 simply compresses
1786 the download to improve speed.
1787 When this has finished, you will have exactly the same as if you had untarred a full 
1788 tarball PLUS some extra directories and files that CVS needs to do the magic that 
1789 it does.
1790
1791 <P>
1792 Now if you are doing a new installation, that's it.  Carry on as if you have
1793 just downloaded and untarred the lastest tarball.
1794
1795 <P>
1796 If you want to upgrade your current installation then do this ...
1797
1798 <tscreen><verb>
1799 tar cvfz /tmp/s.tgz spider
1800 cd /
1801 tar xvfzp /tmp/s.tgz
1802 </verb></tscreen>
1803
1804 This is assuming you downloaded to the /tmp directory of course.
1805
1806 <P>
1807 NOTE:  the 'p' on the end of the 'xvfz' is IMPORTANT!   It keeps the permissions
1808 correct.  YOU WERE LOGGED IN AS THE USER SYSOP WEREN'T YOU?????
1809
1810 Remember to recompile the C client (cd /spider/src; make)
1811
1812 <P>
1813 At this point the files have been upgraded.  You can (usually) restrt the cluster
1814 in your own time.  However, if you attempt to use any new commands or features
1815 expect it to be fatal!  At least your cluster will have been restarted then so it
1816 will be too late to worry about it!
1817
1818 <P>
1819 Now the magic part!  From now on when you want to update, simply connect to the 
1820 Internet and then, as the user <em>sysop</em> ...
1821
1822 <tscreen><verb>
1823 cd /spider
1824 cvs -z3 update -d
1825 </verb></tscreen>
1826
1827 and your files will be updated.  As above, remember to recompile the "C" client 
1828 if it has been updated (CVS will tell you) and restart if any of the perl scripts
1829 have been altered or added, again, CVS will tell you.
1830
1831 <P>
1832 You will find any changes documented in the /spider/Changes file.
1833
1834 <sect>The DXSpider command set
1835
1836 <P>
1837 Below is a complete list of commands available from the cluster prompt.
1838 Most maintenance tasks are automatic but there are some commands that are useful 
1839 for a sysop.  These are listed below in alphabetical order.  The number in 
1840 brackets following the command name is the permissions level needed to use 
1841 the command.
1842
1843 <sect1>accept/announce (0)
1844
1845 <P>
1846 <tt>
1847 <bf>accept/announce &lsqb;0-9&rsqb; &lt;pattern&gt;</bf> Set an accept filter
1848  line for announce
1849 </tt>
1850
1851 <P>
1852 Create an 'accept this announce' line for a filter. 
1853
1854 An accept filter line means that if the announce matches this filter it is
1855 passed onto the user. See HELP FILTERS for more info. Please read this
1856 to understand how filters work - it will save a lot of grief later on.
1857
1858 You can use any of the following things in this line:-
1859
1860 <tscreen><verb>
1861   info <string>            eg: iota or qsl
1862   by <prefixes>            eg: G,M,2         
1863   origin <prefixes>
1864   origin_dxcc <numbers>    eg: 61,62 (from eg: sh/pre G)
1865   origin_itu <numbers>
1866   origin_zone <numbers>
1867   by_dxcc <numbers>
1868   by_itu <numbers>
1869   by_zone <numbers>
1870   channel <prefixes>
1871   wx 1                     filter WX announces
1872   dest <prefixes>          eg: 6MUK,WDX      (distros)
1873 </verb></tscreen>
1874
1875 some examples:-
1876
1877 <tscreen><verb>
1878   acc/ann dest 6MUK
1879   acc/ann 2 by_zone 14,15,16
1880   (this could be all on one line: acc/ann dest 6MUK or by_zone 14,15,16)
1881 </verb></tscreen>
1882
1883 or
1884
1885 <tscreen><verb>
1886   acc/ann by G,M,2 
1887 </verb></tscreen>
1888
1889 This filter would only allow announces that were posted buy UK stations.  
1890 You can use the tag 'all' to accept everything eg:
1891
1892 <tscreen><verb>
1893   acc/ann all
1894 </verb></tscreen>
1895
1896 but this probably for advanced users...
1897
1898 <sect1>accept/announce (extended for sysops) (8)
1899
1900 <P>
1901 <tt>
1902 <bf>accept/announce &lt;call&gt; &lsqb;input&rsqb; &lsqb;0-9&rsqb;&lt;pattern&gt;</bf> Announce filter sysop version
1903 </tt>
1904
1905 <P>
1906 This version allows a sysop to set a filter for a callsign as well as the
1907 default for nodes and users eg:-
1908
1909 <tscreen><verb>
1910   accept/ann by G,M,2
1911   accept/ann input node_default by G,M,2
1912   accept/ann user_default by G,M,2
1913 </verb></tscreen>
1914
1915 <sect1>accept/spots (0)
1916
1917 <P>
1918 <tt>
1919 <bf>accept/announce &lsqb;0-9&rsqb; &lt;pattern&gt;</bf> Set an accept filter 
1920 line for spots
1921 </tt>
1922
1923 <P>
1924 Create an 'accept this spot' line for a filter.
1925
1926 <P>
1927 An accept filter line means that if the spot matches this filter it is
1928 passed onto the user. See HELP FILTERS for more info. Please read this
1929 to understand how filters work - it will save a lot of grief later on.
1930
1931 You can use any of the following things in this line:-
1932
1933 <tscreen><verb>
1934   freq <range>           eg: 0/30000 or hf or hf/cw or 6m,4m,2m
1935   on <range>             same as 'freq'
1936   call <prefixes>        eg: G,PA,HB9
1937   info <string>          eg: iota or qsl
1938   by <prefixes>            
1939   call_dxcc <numbers>    eg: 61,62 (from eg: sh/pre G)
1940   call_itu <numbers>
1941   call_zone <numbers>
1942   by_dxcc <numbers>
1943   by_itu <numbers>
1944   by_zone <numbers>
1945   origin <prefixes>
1946   channel <prefixes>
1947 </verb></tscreen>
1948
1949 <P>
1950 For frequencies, you can use any of the band names defined in
1951 SHOW/BANDS and you can use a subband name like: cw, rtty, data, ssb -
1952 thus: hf/ssb. You can also just have a simple range like: 0/30000 -
1953 this is more efficient than saying simply: freq HF (but don't get
1954 too hung up about that)
1955
1956 some examples:-
1957
1958 <tscreen><verb>
1959   acc/spot 1 on hf/cw
1960   acc/spot 2 on vhf and (by_zone 14,15,16 or call_zone 14,15,16)
1961 </verb></tscreen>
1962
1963 You can use the tag 'all' to accept everything, eg:
1964
1965 <tscreen><verb>
1966   acc/spot 3 all
1967 </verb></tscreen>
1968
1969 but this probably for advanced users...
1970
1971 <sect1>accept/spots (extended for sysops) (8)
1972
1973 <P>
1974 <tt>
1975 <bf>accept/spots &lt;call&gt; &lsqb;input&rsqb; &lsqb;0-9&rsqb; &lt;pattern&gt;</bf> Spot filter sysop version
1976 </tt>
1977
1978 <P>
1979 This version allows a sysop to set a filter for a callsign as well as the
1980 default for nodes and users eg:-
1981
1982 <tscreen><verb>
1983   accept/spot db0sue-7 1 by_zone 14,15,16
1984   accept/spot node_default all
1985   set/hops node_default 10
1986
1987   accept/spot user_default by G,M,2
1988 </verb></tscreen>
1989
1990 <sect1>accept/wcy (0)
1991
1992 <P>
1993 <tt>
1994 <bf>accept/wcy &lsqb;0-9&rsqb; &lt;pattern&gt;</bf> set an accept WCY filter
1995 </tt>
1996
1997 <P>
1998 It is unlikely that you will want to do this, but if you do then you can
1999 filter on the following fields:-
2000
2001 <tscreen><verb>
2002   by <prefixes>            eg: G,M,2         
2003   origin <prefixes>
2004   origin_dxcc <numbers>    eg: 61,62 (from eg: sh/pre G)
2005   origin_itu <numbers>
2006   origin_zone <numbers>
2007   by_dxcc <numbers>
2008   by_itu <numbers>
2009   by_zone <numbers>
2010   channel <prefixes>
2011 </verb></tscreen>
2012
2013 <P>
2014 There are no examples because WCY Broadcasts only come from one place and
2015 you either want them or not (see UNSET/WCY if you don't want them).
2016
2017 This command is really provided for future use.
2018
2019 See HELP FILTER for information.
2020
2021 <sect1>accept/wcy (extended for sysops) (8)
2022
2023 <P>
2024 <tt>
2025 <bf>accept/wcy &lt;call&gt; &lsqb;input&rsqb; &lsqb;0-9&rsqb; &lt;pattern&gt;</bf>
2026 WCY filter sysop version
2027 </tt>
2028
2029 <P>
2030 This version allows a sysop to set a filter for a callsign as well as the
2031 default for nodes and users eg:-
2032
2033 <tscreen><verb>
2034   accept/wcy node_default all
2035   set/hops node_default 10
2036 </verb></tscreen>
2037
2038 <sect1>accept/wwv (0)
2039
2040 <P>
2041 <tt>
2042 <bf>accept/wwv &lsqb;0-9&rsqb; &lt;pattern&gt;</bf> Set an accept WWV filter
2043 </tt>
2044
2045 <P>
2046 It is unlikely that you will want to do this, but if you do then you can
2047 filter on the following fields:-
2048
2049 <tscreen><verb>
2050   by <prefixes>            eg: G,M,2         
2051   origin <prefixes>
2052   origin_dxcc <numbers>    eg: 61,62 (from eg: sh/pre G)
2053   origin_itu <numbers>
2054   origin_zone <numbers>
2055   by_dxcc <numbers>
2056   by_itu <numbers>
2057   by_zone <numbers>
2058   channel <prefixes>
2059 </verb></tscreen>
2060
2061 for example 
2062
2063 <tscreen><verb>
2064   accept/wwv by_zone 4
2065 </verb></tscreen>
2066
2067 is probably the only useful thing to do (which will only show WWV broadcasts
2068 by stations in the US).
2069
2070 See HELP FILTER for information.
2071
2072 <sect1>accept/wwv (extended for sysops) (8)
2073
2074 <P>
2075 <tt>
2076 <bf>accept/wwv &lt;call&gt; &lsqb;input&rsqb; &lsqb;0-9&rsqb; &lt;pattern&gt;</bf>
2077 WWV filter sysop version
2078 </tt>
2079
2080 <P>
2081 This version allows a sysop to set a filter for a callsign as well as the
2082 default for nodes and users eg:-
2083
2084 <tscreen><verb>
2085   accept/wwv db0sue-7 1 by_zone 4
2086   accept/wwv node_default all
2087   set/hops node_default 10
2088
2089   accept/wwv user_default by W,K
2090 </verb></tscreen>
2091
2092 <sect1>announce (0)
2093
2094 <P>
2095 <tt>
2096 <bf>announce &lt;text&gt;</bf> Send an announcement to local users
2097 </tt>
2098
2099 <P>
2100 Send an announcement to LOCAL users only, where &lt;text&gt; is the text 
2101 of the announcement you wish to broadcast
2102
2103 <sect1>announce full (0)
2104
2105 <P>
2106 <tt>
2107 <bf>announce full &lt;text&gt;</bf> Send an announcement cluster wide
2108 </tt>
2109
2110 <P>
2111 This command will send your announcement across the whole cluster
2112 network.
2113
2114
2115 <sect1>announce sysop (5)
2116
2117 <P>
2118 <tt>
2119 <bf>announce sysop &lt;text&gt;</bf>
2120 </tt>
2121
2122 <P>
2123 Send an announcement to Sysops only
2124
2125 <sect1>apropos (0)
2126
2127 <P>
2128 <tt>
2129 <bf>apropos &lt;string&gt;</bf> Search the help database
2130 </tt>
2131
2132 <P>
2133 Search the help database for &lt;string&gt; (it isn't case sensitive), 
2134 and print the names of all the commands that may be relevant.
2135
2136 <sect1>bye (0)
2137
2138 <P>
2139 <tt>
2140 <bf>bye</bf> Exit from the cluster
2141 </tt>
2142
2143 <P>
2144 This will disconnect you from the cluster
2145
2146 <sect1>catchup (5)
2147
2148 <P>
2149 <tt>
2150 <bf>catchup &lt;node_call&gt; All&verbar;&lsqb;&lt;msgno&gt; ...&rsqb;</bf> 
2151 Mark a message as sent
2152 </tt>
2153
2154 <P>
2155 When you send messages the fact that you have forwarded it to another node 
2156 is remembered so that it isn't sent again. When you have a new partner
2157 node and you add their callsign to your /spider/msg/forward.pl file, all
2158 outstanding non-private messages will be forwarded to them. This may well
2159 be ALL the non-private messages. You can prevent this by using these 
2160 commmands:-
2161
2162 <tscreen><verb>
2163   catchup GB7DJK all
2164   catchup GB7DJK 300 301 302 303 500-510
2165 </verb></tscreen>
2166         
2167 and to undo what you have just done:-
2168   
2169 <tscreen><verb>
2170   uncatchup GB7DJK all
2171   uncatchup GB7DJK 300 301 302 303 500-510
2172 </verb></tscreen>
2173
2174 which will arrange for them to be forward candidates again.
2175
2176 Order is not important.
2177
2178 <sect1>clear/spots (0)
2179
2180 <P>
2181 <tt>
2182 <bf>clear/spots &lsqb;1&verbar;all&rsqb;</bf> Clear a spot filter line
2183 </tt>
2184
2185 <P>
2186 This command allows you to clear (remove) a line in a spot filter or to 
2187 remove the whole filter.
2188
2189 If you have a filter:-
2190
2191 <tscreen><verb>
2192   acc/spot 1 on hf/cw
2193   acc/spot 2 on vhf and (by_zone 14,15,16 or call_zone 14,15,16)
2194 </verb></tscreen>
2195
2196 and you say:-
2197
2198 <tscreen><verb>
2199   clear/spot 1
2200 </verb></tscreen>
2201
2202 you will be left with:-
2203
2204 <tscreen><verb>
2205   acc/spot 2 on vhf and (by_zone 14,15,16 or call_zone 14,15,16)
2206 </verb></tscreen>
2207
2208 If you do:
2209
2210 <tscreen><verb>
2211   clear/spot all
2212 </verb></tscreen>
2213
2214 the filter will be completely removed.
2215
2216
2217 <sect1>connect (5) 
2218
2219 <P>
2220 <tt>
2221 <bf>connect &lt;callsign&gt;</bf> Start a connection to another DX Cluster
2222 </tt>
2223
2224 <P>
2225 Start a connection process that will culminate in a new connection to the
2226 DX cluster &lt;callsign&gt;. This process creates a new 'client' process which will
2227 use the script in /spider/connect/&lt;callsign&gt; to effect the 'chat' exchange
2228 necessary to traverse the network(s) to logon to the cluster &lt;callsign&gt;.
2229
2230 <sect1>dbavail (0)
2231
2232 <P>
2233 <tt>
2234 <bf>dbavail</bf> Show a list of all the databases in the system
2235 </tt>
2236
2237 <P>
2238 The title says it all really, this command lists all the databases defined
2239 in the system. It is also aliased to SHOW/COMMAND.
2240
2241 <sect1>dbcreate (9)
2242
2243 <P>
2244 <tt>
2245 <bf>dbcreate &lt;name&gt;</bf> Create a database entry<newline>
2246 <bf>dbcreate &lt;name&gt; chain &lt;name&gt; [&lt;name&gt;..]</bf> Create a 
2247 chained database entry<newline>
2248 <bf>dbcreate &lt;name&gt; remote &lt;node&gt;</bf> Create a remote database
2249 entry<newline>
2250 </tt>
2251
2252 <P>
2253 DBCREATE allows you to define a database in the system. It doesn't actually
2254 create anything, just defines it.
2255
2256 The databases that are created are simple DB_File hash databases, they are 
2257 therefore already 'indexed'.
2258
2259 You can define a local database with the first form of the command eg:
2260
2261   DBCREATE oblast
2262
2263 You can also chain databases with the addition of the 'chain' keyword. 
2264 This will search each database one after the other. A typical example 
2265 is:
2266
2267   DBCREATE sdx_qsl chain sql_ad
2268
2269 No checking is done to see if the any of the chained databases exist, in
2270 fact it is usually better to do the above statement first then do each of
2271 the chained databases.
2272
2273 Databases can exist offsite. To define a database that lives on another 
2274 node do:
2275
2276   DBCREATE buckmaster remote gb7dxc
2277
2278 Remote databases cannot be chained; however, the last database in a 
2279 a chain can be a remote database eg:
2280
2281   DBCREATE qsl chain gb7dxc
2282
2283 To see what databases have been defined do:
2284
2285   DBAVAIL (or it will have been aliased to SHOW/COMMAND)
2286
2287 It would be normal for you to add an entry into your local Aliases file
2288 to allow people to use the 'SHOW/&lt;dbname&gt;' style syntax. So you would
2289 need to add a line like:-
2290
2291 <tscreen><verb>
2292   's' => [
2293     ..
2294     ..
2295     '^sh\w*/buc', 'dbshow buckmaster', 'dbshow',
2296     ..
2297     ..
2298    ],
2299 </verb></tscreen>
2300
2301 to allow 
2302
2303   SH/BUCK g1tlh
2304
2305 to work as they may be used to.
2306
2307 See DBIMPORT for the importing of existing AK1A format data to databases.
2308 See DBSHOW for generic database enquiry
2309
2310 <sect1>dbimport (9)
2311
2312 <P>
2313 <tt>
2314 <bf>dbimport &lt;dbname&gt;</bf> Import AK1A data into a database
2315 </tt>
2316
2317 <P>
2318 If you want to import or update data in bulk to a database you can use
2319 this command. It will either create or update entries into an existing
2320 database. For example:-
2321
2322   DBIMPORT oblast /tmp/OBLAST.FUL
2323
2324 will import the standard OBLAST database that comes with AK1A into the
2325 oblast database held locally.
2326
2327 <sect1>dbremove (9)
2328
2329 <P>
2330 <tt>
2331 <bf>dbremove &lt;dbname&gt;</bf> Delete a database
2332 </tt>
2333
2334 <P>
2335 DBREMOVE will completely remove a database entry and also delete any data
2336 file that is associated with it. 
2337
2338 There is no warning, no comeback, no safety net. 
2339
2340 For example:
2341
2342   DBREMOVE oblast 
2343
2344 will remove the oblast database from the system and it will also remove
2345 the associated datafile.
2346
2347 I repeat:
2348
2349 There is no warning, no comeback, no safety net.
2350
2351 You have been warned.
2352
2353 <sect1>dbshow (0)
2354
2355 <P>
2356 <tt>
2357 <bf>dbshow &lt;dbname&gt; &lt;key&gt;</bf> Display an entry, if it exists, 
2358 in a database
2359 </tt>
2360
2361 <P>
2362 This is the generic user interface to the database to the database system.
2363 It is expected that the sysop will add an entry to the local Aliases file
2364 so that users can use the more familiar AK1A style of enquiry such as:
2365
2366 <tscreen><verb>
2367   SH/BUCK G1TLH
2368 </verb></tscreen>
2369
2370 but if he hasn't and the database really does exist (use DBAVAIL or
2371 SHOW/COMMAND to find out) you can do the same thing with:
2372
2373 <tscreen><verb>
2374   DBSHOW buck G1TLH
2375 </verb></tscreen>
2376
2377
2378 <sect1>debug (9)
2379
2380 <P>
2381 <tt>
2382 <bf>debug</bf> Set the cluster program into debug mode
2383 </tt>
2384
2385 <P>
2386 Executing this command will only have an effect if you are running the cluster
2387 in debug mode i.e.
2388
2389 <tscreen><verb>
2390         perl -d cluster.pl
2391 </verb></tscreen>
2392
2393 It will interrupt the cluster just after the debug command has finished.
2394
2395 <sect1>directory (0)
2396
2397 <P>
2398 <tt>
2399 <bf>directory</bf> List messages<newline> 
2400 <bf>directory all</bf> List all messages<newline>
2401 <bf>directory own</bf> List your own messages<newline>
2402 <bf>directory new</bf> List all new messages<newline>
2403 <bf>directory to &lt;call&gt;</bf> List all messages to &lt;call&gt;<newline>
2404 <bf>directory from &lt;call&gt;</bf> List all messages from &lt;call&gt;<newline>
2405 <bf>directory subject &lt;string&gt;</bf> List all messages with &lt;string&gt; 
2406 in subject<newline>
2407 <bf>directory &lt;nn&gt;</bf> List last &lt;nn&gt; messages<newline>
2408 <bf>directory &lt;from&gt;-&lt;to&gt;</bf> List messages &lt;from&gt; message &lt;to&gt; message <newline>
2409 </tt>
2410
2411 <P>
2412 List the messages in the messages directory.
2413
2414 If there is a 'p' one space after the message number then it is a 
2415 personal message. If there is a '-' between the message number and the
2416 'p' then this indicates that the message has been read.
2417
2418 You can use shell escape characters such as '*' and '?' in the &lt;call&gt;
2419 fields.
2420
2421 You can combine some of the various directory commands together eg:-
2422
2423 <tscreen><verb>
2424    DIR TO G1TLH 5
2425 or 
2426    DIR SUBJECT IOTA 200-250
2427 </verb></tscreen>
2428
2429 You can abbreviate all the commands to one letter and use ak1a syntax:-
2430
2431 <tscreen><verb>
2432    DIR/T G1* 10
2433    DIR/S QSL 10-100 5
2434 </verb></tscreen>
2435
2436
2437 <sect1>directory (extended for sysops) (5)
2438
2439 <P>
2440 Works just like the user command except that sysops can see ALL messages.
2441
2442 <sect1>disconnect (8)
2443
2444 <P>
2445 <tt>
2446 <bf>disconnect &lt;call&gt; [&lt;call&gt; ...]</bf> Disconnect a user or node
2447 </tt>
2448
2449 <P>
2450 Disconnect any &lt;call&gt; connected locally
2451
2452 <sect1>dx (0)
2453
2454 <P>
2455 <tt>
2456 <bf>dx &lsqb;by &lt;call&gt;&rsqb; &lt;freq&gt; &lt;call&gt; &lt;remarks&gt;</bf> Send a DX spot
2457 </tt>
2458
2459 <P>
2460 This is how you send a DX Spot to other users. You can, in fact, now
2461 enter the &lt;freq&gt; and the &lt;call&gt; either way round. 
2462
2463 <tscreen><verb>
2464    DX FR0G 144.600
2465    DX 144.600 FR0G
2466    DX 144600 FR0G 
2467 </verb></tscreen>
2468
2469 will all give the same result. You can add some remarks to the end
2470 of the command and they will be added to the spot.
2471
2472 <tscreen><verb>
2473    DX FR0G 144600 this is a test
2474 </verb></tscreen>
2475
2476 You can credit someone else by saying:-
2477
2478 <tscreen><verb>
2479    DX by G1TLH FR0G 144.600 he isn't on the cluster
2480 </verb></tscreen>
2481
2482 The &lt;freq&gt; is compared against the available bands set up in the 
2483 cluster.  See SHOW/BANDS for more information.
2484
2485 <sect1>export (9)
2486
2487 <P>
2488 <tt>
2489 <bf>export &lt;msgno&gt; &lt;filename&gt;</bf> Export a message to a file
2490 </tt>
2491
2492 <P>
2493 Export a message to a file. This command can only be executed on a local
2494 console with a fully privileged user. The file produced will be in a form
2495 ready to be imported back into the cluster by placing it in the import 
2496 directory (/spider/msg/import).
2497
2498 This command cannot overwrite an existing file. This is to provide some 
2499 measure of security. Any files written will owned by the same user as the 
2500 main cluster, otherwise you can put the new files anywhere the cluster can
2501 access. For example:-
2502
2503   EXPORT 2345 /tmp/a
2504
2505 <sect1>export_users (9)
2506
2507 <P>
2508 <tt>
2509 <bf>export_users &lsqb;&lt;filename&gt;&rsqb;</bf> Export the users database to ascii
2510 </tt>
2511
2512 <P>
2513 Export the users database to a file in ascii format. If no filename
2514 is given then it will export the file to /spider/data/user_asc.
2515
2516 If the file already exists it will be renamed to &lt;filename&gt;.o. In fact
2517 up to 5 generations of the file can be kept each one with an extra 'o' on the
2518 suffix. 
2519
2520 BE WARNED: this will write to any file you have write access to. No check is
2521 made on the filename (if any) that you specify.
2522
2523 <sect1>forward/latlong (8)
2524
2525 <P>
2526 <tt>
2527 <bf>forward/latlong &lt;node_call&gt;</bf> Send latitude and longitude 
2528 information to another cluster
2529 </tt>
2530
2531 <P>
2532 This command sends all the latitude and longitude information that your
2533 cluster is holding against callsigns.  One advantage of recieving this
2534 information is that more locator information is held by you.  This
2535 means that more locators are given on the DX line assuming you have
2536 <em>set/dxgrid</em> enabled.  This could be a LOT of information though, so
2537 it is not recommended on slow links.
2538
2539 <sect1>forward/opername (1)
2540
2541 <P>
2542 <tt>
2543 <bf>forward/opername &lt;call&gt;</bf> Send out information on this &lt;call&gt; 
2544 to all clusters
2545 </tt>
2546
2547 <P>
2548 This command sends out any information held in the user file which can 
2549 be broadcast in PC41 protocol packets. This information is Name, QTH, Location
2550 and Homenode. PC41s are only sent for the information that is available.
2551
2552 <sect1>help (0)
2553
2554 <P>
2555 <tt>
2556 <bf>help &lt;cmd&gt;</bf> Get help on a command
2557 </tt>
2558
2559 <P>
2560 All commands can be abbreviated, so SHOW/DX can be abbreviated
2561 to SH/DX, ANNOUNCE can be shortened to AN and so on.
2562
2563 Look at the APROPOS &lt;string&gt; command which will search the help database
2564 for the &lt;string&gt; you specify and give you a list of likely commands
2565 to look at with HELP.
2566
2567 <sect1>init (5)
2568
2569 <P>
2570 <tt>
2571 <bf>init &lt;node call&gt;</bf> Re-initialise a link to an AK1A compatible node
2572 </tt>
2573
2574 <P>
2575 This command attempts to re-initialise a link to a (usually) AK1A node
2576 that has got confused, usually by a protocol loop of some kind. It may
2577 work - but you usually will be better off simply disconnecting it (or
2578 better, if it is a real AK1A node, doing an RCMD &lt;node&gt; DISC/F &lt;your
2579 node&gt;).
2580
2581 Best of luck - you will need it.
2582
2583 <sect1>kill (0)
2584
2585 <P>
2586 <tt>
2587 <bf>kill &lt;msgno&gt; &lsqb;&lt;msgno&gt; ..&rsqb;</bf> Delete a message 
2588 from the local system
2589 </tt>
2590
2591 <P>
2592 Delete a message from the local system. You will only be able to
2593 delete messages that you have originated or been sent (unless you are
2594 the sysop).
2595
2596 <sect1>kill (5)
2597
2598 <P>
2599 <tt>
2600 <bf>kill &lt;msgno&gt [&lt;msgno&gt; ...]</bf> Remove or erase a message from 
2601 the system<newline>
2602 <bf>kill from &lt;call&gt;</bf> Remove all messages from a callsign<newline>
2603 <bf>kill to &lt;call&gt;</bf> Remove all messages to a callsign<newline>
2604 </tt>
2605
2606 <P>
2607 You can get rid of any message to or originating from your callsign using 
2608 this command. You can remove more than one message at a time.
2609
2610 As a sysop you can kill any message on the system.
2611
2612 <sect1>kill full (5)
2613
2614 <P>
2615 <tt>
2616 <bf>kill full &lt;msgno&gt; &lsqb;&lt;msgno&gt;&rsqb;</bf> Delete a message from the 
2617 whole cluster
2618 </tt>
2619
2620 <P>
2621 Delete a message (usually a 'bulletin') from the whole cluster system. 
2622
2623 This uses the subject field, so any messages that have exactly the same subject
2624 will be deleted. Beware!
2625
2626 <sect1>links (0)
2627
2628 <P>
2629 <tt>
2630 <bf>links</bf> Show which nodes are physically connected
2631 </tt>
2632
2633 <P>
2634 This is a quick listing that shows which links are connected and
2635 some information about them. See WHO for a list of all connections.
2636
2637
2638 <sect1>load/aliases (9)
2639
2640 <P>
2641 <tt>
2642 <bf>load/aliases</bf> Reload the command alias table
2643 </tt>
2644
2645 <P>
2646 Reload the /spider/cmd/Aliases file after you have editted it. You will need to
2647 do this if you change this file whilst the cluster is running in order for the
2648 changes to take effect.
2649
2650
2651 <sect1>load/baddx (9)
2652
2653 <P>
2654 <tt>
2655 <bf>load/baddx</bf> Reload the bad DX table
2656 </tt>
2657
2658 <P>
2659 Reload the /spider/data/baddx.pl file if you have changed it manually whilst
2660 the cluster is running. This table contains the DX Calls that, if spotted, 
2661 will not be passed on. FR0G and TEST are classic examples.
2662
2663 <sect1>load/badmsg (9)
2664
2665 <P>
2666 <tt>
2667 <bf>load/badmsg</bf> Reload the bad message table
2668 </tt>
2669
2670 <P>
2671 Reload the /spider/msg/badmsg.pl file if you have changed it manually whilst
2672 the cluster is running. This table contains a number of perl regular 
2673 expressions which are searched for in the fields targetted of each message. 
2674 If any of them match then that message is immediately deleted on receipt. 
2675
2676 <sect1>load/badwords (9)
2677
2678 <P>
2679 <tt>
2680 <bf>load/badwords</bf> Reload the badwords file
2681 </tt>
2682
2683 <P>
2684 Reload the /spider/data/badwords file if you have changed it manually whilst
2685 the cluster is running. This file contains a list of words which, if found
2686 on certain text portions of PC protocol, will cause those protocol frames
2687 to be rejected. It will all put out a message if any of these words are
2688 used on the announce, dx and talk commands. The words can be one or 
2689 more on a line, lines starting with '#' are ignored.
2690
2691 <sect1>load/bands (9)
2692
2693 <P>
2694 <tt>
2695 <bf>load/bands</bf> Reload the band limits table
2696 </tt>
2697
2698 <P>
2699 Reload the /spider/data/bands.pl file if you have changed it manually whilst
2700 the cluster is running. 
2701
2702 <sect1>load/cmd_cache (9)
2703
2704 <P>
2705 <tt>
2706 <bf>load/cmd_cache</bf> Reload the automatic command cache
2707 </tt>
2708
2709 <P>
2710 Normally, if you change a command file in the cmd or local_cmd tree it will
2711 automatially be picked up by the cluster program. Sometimes it can get confused
2712 if you are doing a lot of moving commands about or delete a command in the 
2713 local_cmd tree and want to use the normal one again. Execute this command to
2714 reset everything back to the state it was just after a cluster restart.
2715
2716 <sect1>load/forward (9)
2717
2718 <P>
2719 <tt>
2720 <bf>load/forward</bf> Reload the msg forwarding routing table
2721 </tt>
2722
2723 Reload the /spider/msg/forward.pl file if you have changed it
2724 manually whilst the cluster is running.
2725
2726 <sect1>load/messages (9)
2727
2728 <P>
2729 <tt>
2730 <bf>load/messages</bf> Reload the system messages file
2731 </tt>
2732
2733 <P>
2734 If you change the /spider/perl/Messages file (usually whilst fiddling/writing ne
2735 commands) you can have them take effect during a cluster session by executing this
2736 command. You need to do this if get something like :-
2737
2738 unknown message 'xxxx' in lang 'en'
2739
2740 <sect1>load/prefixes (9)
2741
2742 <P>
2743 <tt>
2744 <bf>load/prefixes</bf> Reload the prefix table
2745 </tt>
2746
2747 <P>
2748 Reload the /spider/data/prefix_data.pl file if you have changed it manually 
2749 whilst the cluster is running. 
2750
2751 <sect1>merge (5)
2752
2753 <P>
2754 <tt>
2755 <bf>merge &lt;node&gt; [&lt;no spots&gt;/&lt;no wwv&gt;]</bf> Ask for the 
2756 latest spots and WWV
2757 </tt>
2758
2759 <P>
2760 MERGE allows you to bring your spot and wwv database up to date. By default
2761 it will request the last 10 spots and 5 WWVs from the node you select. The 
2762 node must be connected locally.
2763
2764 You can request any number of spots or wwv and although they will be appended
2765 to your databases they will not duplicate any that have recently been added 
2766 (the last 2 days for spots and last month for WWV data).
2767
2768 <sect1>msg (9)
2769
2770 <P>
2771 <tt>
2772 <bf>msg &lt;cmd&gt; &lt;msgno&gt; [data ...]</bf> Alter various message 
2773 parameters
2774 </tt>
2775
2776 <P>
2777 Alter message parameters like To, From, Subject, whether private or bulletin
2778 or return receipt (RR) is required or whether to keep this message from timing
2779 out.
2780
2781 <tscreen><verb>
2782   MSG TO <msgno> <call>     - change TO callsign to <call>
2783   MSG FRom <msgno> <call>   - change FROM callsign to <call>
2784   MSG PRrivate <msgno>      - set private flag
2785   MSG NOPRrivate <msgno>    - unset private flag
2786   MSG RR <msgno>            - set RR flag
2787   MSG NORR <msgno>          - unset RR flag
2788   MSG KEep <msgno>          - set the keep flag (message won't be deleted ever)
2789   MSG NOKEep <msgno>        - unset the keep flag
2790   MSG SUbject <msgno> <new> - change the subject to <new>
2791   MSG WAittime <msgno>      - remove any waitting time for this message
2792   MSG NOREad <msgno>        - mark message as unread
2793   MSG REad <msgno>          - mark message as read
2794   MSG QUeue                 - queue any outstanding bulletins
2795   MSG QUeue 1               - queue any outstanding private messages
2796 </verb></tscreen>
2797
2798 You can look at the status of a message by using:-
2799
2800   STAT/MSG &lt;msgno&gt;      
2801
2802 This will display more information on the message than DIR does.
2803
2804 <sect1>pc (8)
2805
2806 <P>
2807 <tt>
2808 <bf>pc &lt;call&gt; &lt;text&gt;</bf> Send text (eg PC Protocol) to &lt;call&gt;
2809 </tt>
2810
2811 <P>
2812 Send some arbitrary text to a locally connected callsign. No processing is done on
2813 the text. This command allows you to send PC Protocol to unstick things if problems
2814 arise (messages get stuck etc). eg:-
2815
2816    pc gb7djk PC33^GB7TLH^GB7DJK^400^
2817
2818 You can also use in the same way as a talk command to a connected user but
2819 without any processing, added of "from &lt;blah&gt; to &lt;blah&gt;" or whatever.
2820
2821    pc G1TLH Try doing that properly!!!
2822
2823 <sect1>ping (1)
2824
2825 <P>
2826 <tt>
2827 <bf>ping &lt;node&gt;</bf> Check the link quality between nodes
2828 </tt>
2829
2830 <P>
2831 his command allows you to send a frame to another cluster node on
2832 the network and get a return frame.  The time it takes to do this
2833 is a good indication of the quality of the link.  The actual time
2834 it takes is output to the console in seconds.
2835 Any visible cluster node can be PINGed.
2836
2837
2838 <sect1>rcmd (1)
2839
2840 <P>
2841 <tt>
2842 <bf>rcmd &lt;node call&gt; &lt;cmd&gt;</bf> Send a command to another DX cluster
2843 </tt>
2844
2845 <P>
2846 This command allows you to send nearly any command to another DX Cluster
2847 node that is connected to the system. 
2848
2849 Whether you get any output is dependant on a) whether the other system knows
2850 that the node callsign of this cluster is in fact a node b) whether the
2851 other system is allowing RCMDs from this node and c) whether you have
2852 permission to send this command at all.
2853
2854 <sect1>read (0)
2855
2856 <P>
2857 <tt>
2858 <bf>read</bf> Read the next unread personal message addressed to you<newline>
2859 <bf>read &lt;msgno&gt;</bf> Read the specified message<newline>
2860 </tt>
2861
2862 <P>
2863 You can read any messages that are sent as 'non-personal' and also any
2864 message either sent by or sent to your callsign.
2865
2866
2867 <sect1>read (extended for sysops) (5) 
2868
2869 <P>
2870 <tt>
2871 <bf>read &lt;msgno&gt;</bf> Read a message on the system
2872 </tt>
2873
2874 <P>
2875 As a sysop you may read any message on the system
2876
2877 <sect1>reject/announce
2878
2879 <P>
2880 <tt>
2881 <bf>reject/announce &lsqb;0-9&rsqb; &lt;pattern&gt;</bf> Set a reject filter
2882 for announce
2883 </tt>
2884
2885 <P>
2886 Create an 'reject this announce' line for a filter. 
2887
2888 An reject filter line means that if the announce matches this filter it is
2889 passed onto the user. See HELP FILTERS for more info. Please read this
2890 to understand how filters work - it will save a lot of grief later on.
2891
2892 You can use any of the following things in this line:-
2893
2894 <tscreen><verb>
2895   info <string>            eg: iota or qsl
2896   by <prefixes>            eg: G,M,2         
2897   origin <prefixes>
2898   origin_dxcc <numbers>    eg: 61,62 (from eg: sh/pre G)
2899   origin_itu <numbers>
2900   origin_zone <numbers>
2901   by_dxcc <numbers>
2902   by_itu <numbers>
2903   by_zone <numbers>
2904   channel <prefixes>
2905   wx 1                     filter WX announces
2906   dest <prefixes>          eg: 6MUK,WDX      (distros)
2907 </verb></tscreen>
2908
2909 some examples:-
2910
2911 <tscreen><verb>
2912   rej/ann by_zone 14,15,16 and not by G,M,2
2913 </verb></tscreen>
2914  
2915 You can use the tag 'all' to reject everything eg:
2916
2917 <tscreen><verb>
2918   rej/ann all
2919 </verb></tscreen>
2920
2921 but this probably for advanced users...
2922
2923 <sect1>reject/announce (extended for sysops) (8)
2924
2925 <P>
2926 <tt>
2927 <bf>reject/announce &lt;call&gt; &lsqb;input&rsqb; &lsqb;0-9&rsqb; &lt;pattern&gt;</bf> Announce filter sysop version
2928 </tt>
2929
2930 <P>
2931 This version allows a sysop to set a filter for a callsign as well as the
2932 default for nodes and users eg:-
2933
2934 <tscreen><verb>
2935   reject/ann by G,M,2
2936   reject/ann input node_default by G,M,2
2937   reject/ann user_default by G,M,2
2938 </verb></tscreen>
2939
2940 <sect1>reject/spots (0)
2941
2942 <P>
2943 <tt>
2944 <bf>reject/spots &lsqb;0-9&rsqb; &lt;pattern&gt;</bf> Set a reject filter 
2945 line for spots
2946 </tt>
2947
2948 <P>
2949 Create a 'reject this spot' line for a filter. 
2950
2951 A reject filter line means that if the spot matches this filter it is
2952 dumped (not passed on). See HELP FILTERS for more info. Please read this
2953 to understand how filters work - it will save a lot of grief later on.
2954
2955 You can use any of the following things in this line:-
2956
2957 <tscreen><verb>
2958   freq <range>           eg: 0/30000 or hf or hf/cw or 6m,4m,2m
2959   on <range>             same as 'freq'
2960   call <prefixes>        eg: G,PA,HB9
2961   info <string>          eg: iota or qsl
2962   by <prefixes>            
2963   call_dxcc <numbers>    eg: 61,62 (from eg: sh/pre G)
2964   call_itu <numbers>
2965   call_zone <numbers>
2966   by_dxcc <numbers>
2967   by_itu <numbers>
2968   by_zone <numbers>
2969   origin <prefixes>
2970   channel <prefixes>
2971 </verb></tscreen>
2972
2973 For frequencies, you can use any of the band names defined in
2974 SHOW/BANDS and you can use a subband name like: cw, rtty, data, ssb -
2975 thus: hf/ssb. You can also just have a simple range like: 0/30000 -
2976 this is more efficient than saying simply: on HF (but don't get
2977 too hung up about that)
2978
2979 some examples:-
2980
2981 <tscreen><verb>
2982   rej/spot 1 on hf
2983   rej/spot 2 on vhf and not (by_zone 14,15,16 or call_zone 14,15,16)
2984 </verb></tscreen>
2985
2986 You can use the tag 'all' to reject everything eg:
2987
2988 <tscreen><verb>
2989   rej/spot 3 all
2990 </verb></tscreen>
2991
2992 but this probably for advanced users...
2993
2994 <sect1>reject/spots (extended for sysops) (8)
2995
2996 <P>
2997 <tt>
2998 <bf>reject/spots &lt;call&gt; &lsqb;input&rsqb; &lsqb;0-9&rsqb; &lt;pattern&gt;</bf>
2999  Reject spot filter sysop version 
3000 </tt>
3001
3002 <P>
3003 This version allows a sysop to set a filter for a callsign as well as the
3004 default for nodes and users eg:-
3005
3006 <tscreen><verb>
3007   reject/spot db0sue-7 1 by_zone 14,15,16
3008   reject/spot node_default all
3009   set/hops node_default 10
3010
3011   reject/spot user_default by G,M,2
3012 </verb></tscreen>
3013
3014 <sect1>reject/wcy (0)
3015
3016 <P>
3017 <tt>
3018 <bf>reject/wcy &lsqb;0-9&rsqb; &lt;pattern&gt;</bf> Set a reject WCY filter
3019 </tt>
3020
3021 <P>
3022 It is unlikely that you will want to do this, but if you do then you can
3023 filter on the following fields:-
3024
3025 <tscreen><verb>
3026   by <prefixes>            eg: G,M,2         
3027   origin <prefixes>
3028   origin_dxcc <numbers>    eg: 61,62 (from eg: sh/pre G)
3029   origin_itu <numbers>
3030   origin_zone <numbers>
3031   by_dxcc <numbers>
3032   by_itu <numbers>
3033   by_zone <numbers>
3034   channel <prefixes>
3035 </verb></tscreen>
3036
3037 There are no examples because WCY Broadcasts only come from one place and
3038 you either want them or not (see UNSET/WCY if you don't want them).
3039
3040 This command is really provided for future use.
3041
3042 See HELP FILTER for information.
3043
3044 <sect1>reject/wcy (extended for sysops) (8)
3045
3046 <P>
3047 <tt>
3048 <bf>reject/wcy &lt;call&gt; &lsqb;input&rsqb; &lsqb;0-9&rsqb; &lt;pattern&gt;</bf>
3049  WCY reject filter sysop version
3050 </tt>
3051
3052 <P>
3053 This version allows a sysop to set a filter for a callsign as well as the
3054 default for nodes and users eg:-
3055
3056   reject/wcy gb7djk all
3057
3058 <sect1>reject/wwv (0)
3059
3060 <P>
3061 <tt>
3062 <bf>reject/wwv &lsqb;0-9&rsqb; &lt;pattern&gt;</bf> Set a reject WWV filter
3063 </tt>
3064
3065 <P>
3066 It is unlikely that you will want to do this, but if you do then you can
3067 filter on the following fields:-
3068
3069 <tscreen><verb>
3070   by <prefixes>            eg: G,M,2         
3071   origin <prefixes>
3072   origin_dxcc <numbers>    eg: 61,62 (from eg: sh/pre G)
3073   origin_itu <numbers>
3074   origin_zone <numbers>
3075   by_dxcc <numbers>
3076   by_itu <numbers>
3077   by_zone <numbers>
3078   channel <prefixes>
3079 </verb></tscreen>
3080
3081 for example 
3082
3083 <tscreen><verb>
3084   reject/wwv by_zone 14,15,16
3085 </verb></tscreen>
3086
3087 is probably the only useful thing to do (which will only show WWV broadcasts
3088 by stations in the US).
3089
3090 See HELP FILTER for information.
3091
3092 <sect1>reject/wwv (extended for sysops) (8)
3093
3094 <P>
3095 <tt>
3096 <bf>reject/wwv &lt;call&gt; &lsqb;input&rsqb; &lsqb;0-9&rsqb; &lt;pattern&gt;</bf>
3097  WWV reject filter sysop version
3098 </tt>
3099
3100 <P>This version allows a sysop to set a filter for a callsign as well as the
3101 default for nodes and users eg:-
3102
3103 <tscreen><verb>
3104   reject/wwv db0sue-7 1 by_zone 4
3105   reject/wwv node_default all
3106
3107   reject/wwv user_default by W
3108 </verb></tscreen>
3109
3110 <sect1>reply (0)
3111
3112 <P>
3113 <tt>
3114 <bf>reply</bf> Reply (privately) to the last message that you have read<newline>
3115 <bf>reply &lt;msgno&gt;</bf> Reply (privately) to the specified message<newline>
3116 <bf>reply B &lt;msgno&gt;</bf> Reply as a Bulletin to the specified message<newline>
3117 <bf>reply NOPrivate &lt;msgno&gt;</bf> Reply as a Bulletin to the specified
3118 message<newline>
3119 <bf>reply RR &lt;msgno&gt;</bf> Reply to the specified message with read 
3120 receipt<newline>
3121 </tt>
3122
3123 <P>
3124 You can reply to a message and the subject will automatically have
3125 "Re:" inserted in front of it, if it isn't already present.
3126
3127 You can also use all the extra qualifiers such as RR, PRIVATE, 
3128 NOPRIVATE, B that you can use with the SEND command (see SEND
3129 for further details)
3130
3131 <sect1>send (0)
3132
3133 <P>
3134 <tt>
3135 <bf>send &lt;call&gt; &lsqb;&lt;call&gt; ...&rsqb;</bf> Send a message to 
3136 one or more callsigns<newline>
3137 <bf>send RR &lt;call&gt;</bf> Send a message and ask for a read receipt<newline>
3138 <bf>send COPY &lt;msgno&gt; &lt;call&gt;</bf> Send a copy of a  message 
3139 to someone<newline>
3140 <bf>send PRIVATE &lt;call&gt;</bf> Send a personal message<newline>
3141 <bf>send NOPRIVATE &lt;call&gt;</bf> Send a message to all stations<newline>
3142 </tt>
3143
3144 <P>
3145 All the SEND commands will create a message which will be sent either to
3146 an individual callsign or to one of the 'bulletin' addresses. 
3147
3148 SEND &lt;call&gt; on its own acts as though you had typed SEND PRIVATE, that is
3149 it will mark the message as personal and send it to the cluster node that
3150 that callsign is connected to.
3151
3152 You can have more than one callsign in all of the SEND commands.
3153
3154 You can have multiple qualifiers so that you can have for example:-
3155
3156 <tscreen><verb>
3157   SEND RR COPY 123 PRIVATE G1TLH G0RDI
3158 </verb></tscreen>
3159
3160 which should send a copy of message 123 to G1TLH and G0RDI and you will
3161 receive a read receipt when they have read the message.
3162
3163 SB is an alias for SEND NOPRIVATE (or send a bulletin in BBS speak)
3164 SP is an alias for SEND PRIVATE
3165
3166 <sect1>set/address (0)
3167
3168 <P>
3169 <tt>
3170 <bf>set/address &lt;your_address&gt;</bf> Record your postal address
3171 </tt>
3172
3173 <P>
3174 Literally, record your address details on the cluster.
3175
3176 <sect1>set/announce (0)
3177
3178 <P>
3179 <tt>
3180 <bf>set/announce</bf> Allow announce messages
3181 </tt>
3182
3183 <P>
3184 Allow announce messages to arrive at your terminal.
3185
3186 <sect1>set/arcluster (5)
3187
3188 <P>
3189 <tt>
3190 <bf>set/arcluster &lt;node_call&gt; &lsqb;&lt;node_call&gt; ...&rsqb;</bf> Make
3191 the node_call an AR-Cluster type node
3192 </tt>
3193
3194 <P>
3195 Set the node_call as an AR-Cluster type node
3196
3197 <sect1>set/baddx (8)
3198
3199 <P>
3200 <tt>
3201 <bf>set/baddx &lt;call&gt;</bf> Stop words we do not wish to see in the callsign field
3202 of a dx spot being propagated
3203 </tt>
3204
3205 <P>
3206 Setting a word as 'baddx' will prevent spots with that word in the callsign 
3207 field of a DX spot from going any further. They will not be displayed and they 
3208 will not be sent onto other nodes.
3209
3210 The word must be wriiten in full, no wild cards are allowed eg:-
3211
3212 <tscreen><verb>
3213   set/baddx FORSALE VIDEO FR0G 
3214 </verb></tscreen>
3215
3216 To allow a word again, use the following command ...
3217
3218 <tscreen><verb>
3219   unset/baddx VIDEO
3220 </verb></tscreen>
3221
3222 <sect1>set/badnode (6)
3223
3224 <P>
3225 <tt>
3226 <bf>set/badnode &lt;node_call&gt;</bf> Stop spots from this node_call
3227 being propagated
3228 </tt>
3229
3230 <P>
3231 Setting a callsign as a 'badnode' will prevent spots from that node 
3232 going any further. They will not be displayed and they will not be 
3233 sent onto other nodes.
3234
3235 The call can be a full or partial call (or a prefix), eg:-
3236
3237 <tscreen><verb>
3238   set/badnode K1TTT 
3239 </verb></tscreen>
3240
3241 will stop anything from K1TTT (including any SSID's)
3242
3243 <tscreen><verb>
3244   unset/badnode K1TTT
3245 </verb></tscreen>
3246
3247 will allow spots from him again.
3248
3249 Use with extreme care. This command may well be superceded by FILTERing.
3250
3251 <sect1>set/badspotter (8)
3252
3253 <P>
3254 <tt>
3255 <bf>set/badspotter &lt;call&gt;</bf> Stop spots from this callsign being propagated
3256 </tt>
3257
3258 <P>
3259 Setting a callsign as a 'badspotter' will prevent spots from this callsign 
3260 going any further. They will not be displayed and they will not be 
3261 sent onto other nodes.
3262
3263 The call must be written in full, no wild cards are allowed eg:-
3264
3265 <tscreen><verb>
3266   set/badspotter VE2STN 
3267 </verb></tscreen>
3268
3269 will stop anything from VE2STN. If you want SSIDs as well then you must
3270 enter them specifically.
3271
3272 <tscreen><verb>
3273   unset/badspotter VE2STN
3274 </verb></tscreen>
3275
3276 will allow spots from him again.
3277
3278 Use with extreme care. This command may well be superceded by FILTERing.
3279
3280 <sect1>set/beep (0)
3281
3282 <P>
3283 <tt>
3284 <bf>set/beep</bf> Add beeps to terminal messages
3285 </tt>
3286
3287 <P>
3288 Add a beep to DX and other terminal messages.
3289
3290 <sect1>set/clx (5)
3291
3292 <P>
3293 <tt>
3294 <bf>set/clx &lt;node_call&gt; &lsqb;&lt;node_call&gt; ...&rsqb;</bf> Make
3295 the node_call a CLX type node
3296 </tt>
3297
3298 <P>
3299 Set the node_call as a CLX type node
3300
3301 <sect1>set/debug (9)
3302
3303 <P>
3304 <tt>
3305 <bf>set/debug &lt;name&gt;</bf> Add a debug level to the debug set
3306 </tt>
3307
3308 <P>
3309 You can remove this level with unset/debug &lt;name&gt;
3310
3311 <sect1>set/dx (0)
3312
3313 <P>
3314 <tt>
3315 <bf>set/dx</bf>Allow DX messages to arrive at your terminal
3316 </tt>
3317
3318 <P>
3319 You can stop DX messages with the <em>unset/dx</em> command
3320
3321 <sect1>set/dxgrid (0)
3322
3323 <P>
3324 <tt>
3325 <bf>set/dxgrid</bf>Allow grid squares on the end of DX messages
3326 </tt>
3327
3328 <P>
3329 Some logging programs do not like the additional information at
3330 the end of a DX spot.  If this is the case, use the <em>unset/dxgrid</em>
3331 command to remove the grid squares.
3332
3333 <sect1>set/dxnet (5)
3334
3335 <P>
3336 <tt>
3337 <bf>set/dxnet &lt;node_call&gt; &lsqb;&lt;node_call&gt; ...&rsqb;</bf> Make
3338 the node_call a DXNet type node
3339 </tt>
3340
3341 <P>
3342 Set the node_call as a DXNet type node
3343
3344 <sect1>set/echo (0)
3345
3346 <P>
3347 <tt>
3348 <bf>set/echo</bf> Make the cluster echo your input
3349 </tt>
3350
3351 <P>
3352 If you are connected via a telnet session, different implimentations
3353 of telnet handle echo differently depending on whether you are 
3354 connected via port 23 or some other port. You can use this command
3355 to change the setting appropriately. 
3356
3357 You can remove the echo with the <em>unset/echo</em> command
3358
3359 The setting is stored in your user profile.
3360
3361 YOU DO NOT NEED TO USE THIS COMMAND IF YOU ARE CONNECTED VIA AX25.
3362
3363 <sect1>set/here (0)
3364
3365 <P>
3366 <tt>
3367 <bf>set/here</bf> Set the here flag
3368 </tt>
3369
3370 <P>
3371 Let others on the cluster know you are here by only displaying your
3372 callsign.  If you are away from your terminal you can use the <em>unset/here</em>
3373 command to let people know you are away.  This simply puts brackets
3374 around your callsign to indicate you are not available.
3375
3376 <sect1>set/homenode (0)
3377
3378 <P>
3379 <tt>
3380 <bf>set/homenode &lt;node_call&gt;</bf> Set your home cluster
3381 </tt>
3382
3383 <P>
3384 Tell the cluster system where you normally connect to. Any Messages sent
3385 to you will normally find their way there should you not be connected.
3386 eg:-
3387
3388 <tscreen><verb>
3389   SET/HOMENODE gb7djk
3390 </verb></tscreen>
3391
3392 <sect1>set/hops (8)
3393
3394 <P>
3395 <tt>
3396 <bf>set/hops &lt;node_call&gt; ann&verbar;spots&verbar;wwv&verbar;wcy &lt;n&gt;</bf>
3397 Set hop count
3398 </tt>
3399
3400 <P>
3401 Set the hop count for a particular type of broadcast for a node.
3402
3403 This command allows you to set up special hop counts for a node 
3404 for currently: announce, spots, wwv and wcy broadcasts.
3405
3406 <tscreen><verb>
3407 eg:
3408   set/hops gb7djk ann 10
3409   set/hops gb7mbc spots 20
3410 </verb></tscreen>
3411
3412 Set SHOW/HOPS for information on what is already set. This command
3413 creates a filter and works in conjunction with the filter system. 
3414
3415 <sect1>set/isolate (9)
3416
3417 <P>
3418 <tt>
3419 <bf>set/isolate &lt;node call&gt;</bf> Isolate a node from the rest of the network
3420 </tt>
3421
3422 <P>
3423 Connect a node to your system in such a way that you are a full protocol
3424 member of its network and can see all spots on it, but nothing either leaks
3425 out from it nor goes back into from the rest of the nodes connected to you.
3426
3427 You can potentially connect several nodes in this way.
3428
3429 You can see which nodes are isolated with the show/isolate (1) command.
3430
3431 You can remove the isolation with the command unset/isolate.
3432
3433 <sect1>set/language (0)
3434
3435 <P>
3436 <tt>
3437 <bf>set/language &lt;language&gt;</bf> Set the language you wish to use
3438 </tt>
3439
3440 <P>
3441 You can select the language that you want the cluster to use. Currently
3442 the languages available are <em>en</em> (English) and <em>nl</em> (Dutch).
3443
3444 <sect1>set/location (0)
3445
3446 <P>
3447 <tt>
3448 <bf>set/location &lt;lat and long&gt;</bf> Set your latitude and longitude
3449 </tt>
3450
3451 <P>
3452 You can set your latitude and longitude manually or alternatively use the
3453 <em>set/qra</em> command which will do the conversion for you.
3454
3455 <tscreen><verb>
3456   set/location 54 04 N 2 02 E
3457 </verb></tscreen>
3458
3459
3460 <sect1>set/sys_location (9)
3461
3462 <P>
3463 <tt>
3464 <bf>set/sys_location &lt;lat & long&gt;</bf> Set your cluster latitude and longitude
3465 </tt>
3466
3467 <P>
3468 In order to get accurate headings and such like you must tell the system
3469 what your latitude and longitude is. If you have not yet done a SET/QRA
3470 then this command will set your QRA locator for you. For example:-
3471
3472 <tscreen><verb>
3473   SET/LOCATION 52 22 N 0 57 E
3474 </verb></tscreen>
3475
3476 <sect1>set/logininfo (0)
3477
3478 <P>
3479 <tt>
3480 <bf>set/logininfo</bf> Show logins and logouts of nodes and users
3481 </tt>
3482
3483 <P>
3484 Show users and nodes when they log in and out of the local cluster.  You
3485 can stop these messages by using the <em>unset/logininfo</em> command.
3486
3487
3488 <sect1>set/lockout (9)
3489
3490 <P>
3491 <tt>
3492 <bf>set/lockout &lt;call&gt;</bf> Stop a callsign connecting to the cluster
3493 </tt>
3494
3495 <P>
3496 You can show who is locked out with the <em>show/lockout</em> command.
3497 To allow the user to connect again, use the <em>unset/lockout</em> command.
3498
3499 <sect1>set/name (0)
3500
3501 <P>
3502 <tt>
3503 <bf>set/name &lt;your_name&gt;</bf> Set your name
3504 </tt>
3505
3506 <P>
3507 Tell the cluster what your name is, eg:-
3508
3509 <tscreen><verb>
3510   set/name Dirk
3511 </verb></tscreen>
3512
3513 <sect1>set/node (9)
3514
3515 <P>
3516 <tt>
3517 <bf>set/node &lt;call&gt; [&lt;call&gt; ...]</bf> Make the callsign an AK1A cluster
3518 </tt>
3519
3520 <P>
3521 Tell the system that the call(s) are to be treated as AK1A cluster and
3522 fed PC Protocol rather normal user commands.
3523
3524 From version 1.41 you can also set the following types of cluster
3525
3526 <tscreen><verb>
3527   set/spider
3528   set/dxnet
3529   set/clx
3530   set/arcluster
3531 </verb></tscreen>
3532
3533 To see what your nodes are set to, use the <em>show/nodes</em> command.
3534
3535 <sect1>set/obscount (9)
3536
3537 <P>
3538 <tt>
3539 <bf>set/obscount &lt;count&gt; &lt;node call&gt;</bf> Set the 'pump-up' 
3540 obsolescence counter
3541 </tt>
3542
3543 <P>
3544 From version 1.35 onwards neighbouring nodes are pinged at regular intervals (see
3545 SET/PINGINTERVAL), usually 300 seconds or 5 minutes. There is a 'pump-up'
3546 counter which is decremented on every outgoing ping and then reset to
3547 the 'obscount' value on every incoming ping. The default value of this
3548 parameter is 2. 
3549
3550 What this means is that a neighbouring node will be pinged twice at 
3551 (default) 300 second intervals and if no reply has been heard just before
3552 what would be the third attempt, that node is disconnected.
3553
3554 If a ping is heard then the obscount is reset to the full value. Using
3555 default values, if a node has not responded to a ping within 15 minutes,
3556 it is disconnected.
3557
3558 <sect1>set/page (0)
3559
3560 <P>
3561 <tt>
3562 <bf>set/page &lt;n&gt;</bf> Set the number of lines per page
3563 </tt>
3564
3565 <P>
3566 Tell the system how many lines you wish on a page when the number of lines
3567 of output from a command is more than this. The default is 20. Setting it
3568 explicitly to 0 will disable paging. 
3569
3570 <tscreen><verb>
3571   SET/PAGE 30
3572   SET/PAGE 0
3573 </verb></tscreen>
3574
3575 The setting is stored in your user profile.
3576
3577
3578 <sect1>set/password (9)
3579
3580 <P>
3581 <tt>
3582 <bf>set/password &lt;callsign&gt; &lt;string&gt;</bf> Set a users password
3583 </tt>
3584
3585 <P>
3586 The password for a user can only be set by a full sysop. The string
3587 can contain any characters but any spaces are removed (you can type in
3588 spaces - but they won't appear in the password). You can see the
3589 result with STAT/USER.  The password is the usual 30 character baycom
3590 type password.
3591
3592 <sect1>set/pinginterval (9)
3593
3594 <P>
3595 <tt>
3596 <bf>set/pinginterval &lt;time&gt; &lt;node call&gt;</bf> Set the ping time 
3597 to neighbouring nodes
3598 </tt>
3599
3600 <P>
3601 As from version 1.35 all neighbouring nodes are pinged at regular intervals
3602 in order to determine the rolling quality of the link and, in future, to
3603 affect routing decisions. The default interval is 300 secs or 5 minutes.
3604
3605 You can use this command to set a different interval. Please don't. 
3606
3607 But if you do the value you enter is treated as minutes up 60 and seconds
3608 for numbers greater than that.
3609
3610 This is used also to help determine when a link is down at the far end
3611 (as certain cluster software doesn't always notice), see SET/OBSCOUNT
3612 for more information.
3613
3614 <sect1>set/privilege (9)
3615
3616 <P>
3617 <tt>
3618 <bf>set/privilege &lt;n&gt; &lt;call&gt; [&lt;call&gt; ...]</bf> Set the 
3619 privilege level on a call
3620 </tt>
3621
3622 <P>
3623 Set the privilege level on a callsign. The privilege levels that pertain
3624 to commands are as default:-
3625
3626 <tscreen><verb>
3627   0 - normal user
3628   1 - allow remote nodes normal user RCMDs
3629   5 - various privileged commands (including shutdown, but not disc-
3630       connect), the normal level for another node.
3631   8 - more privileged commands (including disconnect)
3632   9 - local sysop privilege. DO NOT SET ANY REMOTE USER OR NODE TO THIS
3633       LEVEL.
3634 </verb></tscreen>
3635
3636 If you are a sysop and you come in as a normal user on a remote connection
3637 your privilege will automatically be set to 0.
3638
3639 <sect1>set/spider (5)
3640
3641 <P>
3642 <tt>
3643 <bf>set/spider &lt;node_call&gt; &lsqb;&lt;node_call&gt; ...&rsqb;</bf> Make
3644 the node_call a DXSpider type node
3645 </tt>
3646
3647 <P>
3648 Set the node_call as a DXSpider type node
3649
3650 <sect1>set/sys_qra (9)
3651
3652 <P>
3653 <tt>
3654 <bf>set/sys_qra &lt;locator&gt;</bf> Set your cluster QRA locator
3655 </tt>
3656
3657 <sect1>set/qra (0)
3658
3659 <P>
3660 <tt>
3661 <bf>set/qra &lt;locator&gt;</bf> Set your QRA locator
3662 </tt>
3663
3664 <P>
3665 Tell the system what your QRA (or Maidenhead) locator is. If you have not
3666 done a SET/LOCATION then your latitude and longitude will be set roughly
3667 correctly (assuming your locator is correct ;-). For example:-
3668
3669 <tscreen><verb>
3670   SET/QRA JO02LQ
3671 </verb></tscreen>
3672
3673 <sect1>set/qth (0)
3674
3675 <P>
3676 <tt>
3677 <bf>set/qth &lt;your QTH&gt;</bf> Set your QTH
3678 </tt>
3679
3680 <P>
3681 Tell the system where your are.  For example:-
3682
3683 <tscreen><verb>
3684   set/qth East Dereham, Norfolk
3685 </verb></tscreen>
3686
3687 <sect1>set/talk (0)
3688
3689 <P>
3690 <tt>
3691 <bf>set/talk</bf> Allow talk messages to be seen at your console
3692 </tt>
3693
3694 <P>
3695 Allow talk messages to arrive at your console.  You can switch off
3696 talks with the <em>unset/talk</em> command.
3697
3698 <sect1>set/wcy (0)
3699
3700 <P>
3701 <tt>
3702 <bf>set/wcy</bf> Allow WCY messages to be seen at your console
3703 </tt>
3704
3705 <P>
3706 Allow WCY information to be seen at your console.  You can switch off
3707 WCY messages with the <em>unset/wcy</em> command.
3708
3709 <sect1>set/wwv (0)
3710
3711 <P>
3712 <tt>
3713 <bf>set/wwv</bf> Allow WWV messages to be seen at your console
3714 </tt>
3715
3716 <P>
3717 Allow WWV information to be seen at your console.  You can switch off
3718 WWV messages with the <em>unset/wwv</em> command.
3719
3720 <sect1>set/wx (0)
3721
3722 <P>
3723 <tt>
3724 <bf>set/wx</bf> Allow WX messages to be seen at your console
3725 </tt>
3726
3727 <P>
3728 Allow WX information to be seen at your console.  You can switch off
3729 WX messages with the <em>unset/wx</em> command.
3730
3731 <sect1>show/baddx (1)
3732
3733 <P>
3734 <tt>
3735 <bf>show/baddx</bf>Show all the bad dx calls in the system
3736 </tt>
3737
3738 <P>
3739 Display all the bad dx callsigns in the system, see SET/BADDX
3740 for more information.
3741
3742 <sect1>show/badnode (6)
3743
3744 <P>
3745 <tt>
3746 <bf>show/badnode</bf> Show all the bad nodes in the system
3747 </tt>
3748
3749 <P>
3750 Display all the bad node callsigns in the system, see SET/BADNODE
3751 for more information.
3752
3753 <sect1>show/badspotter (1)
3754
3755 <P>
3756 <tt>
3757 <bf>show/badspotter</bf>Show all the bad spotters in the system
3758 </tt>
3759
3760 <P>
3761 Display all the bad spotter's callsigns in the system, see SET/BADSPOTTER
3762 for more information.
3763
3764 <sect1>show/date (0)
3765
3766 <P>
3767 <tt>
3768 <bf>show/date &lsqb;&lt;prefix&gt;&verbar;&lt;callsign&gt;&rsqb;</bf> Show
3769 the local time
3770 </tt>
3771
3772 <P>
3773 This is very nearly the same as SHOW/TIME, the only difference the format
3774 of the date string if no arguments are given.
3775
3776 If no prefixes or callsigns are given then this command returns the local
3777 time and UTC as the computer has it right now. If you give some prefixes
3778 then it will show UTC and UTC + the local offset (not including DST) at
3779 the prefixes or callsigns that you specify.
3780
3781 <sect1>show/dx (0)
3782
3783 <P>
3784 <tt>
3785 <bf>show/dx &lsqb;options&rsqb;</bf> interrogate the spot database
3786 </tt>
3787
3788 <P>
3789 If you just type SHOW/DX you will get the last so many spots
3790 (sysop configurable, but usually 10).
3791    
3792 In addition you can add any number of these options in very nearly
3793 any order to the basic SHOW/DX command, they are:-
3794
3795 <tscreen><verb>   
3796 on &lt;band&gt;       - eg 160m 20m 2m 23cm 6mm
3797 on &lt;region&gt;     - eg hf vhf uhf shf      (see SHOW/BANDS)
3798    
3799 &lt;number&gt;        - the number of spots you want
3800 &lt;from&gt;-&lt;to&gt     - &lt;from&gt; spot no &lt;to&gt; spot no in 
3801                   the selected list
3802    
3803 &lt;prefix&gt;        - for a spotted callsign beginning with &lt;prefix&gt;
3804 *&lt;suffix&gt;       - for a spotted callsign ending in &lt;suffix&gt;
3805 *&lt;string&gt;*      - for a spotted callsign containing &lt;string&gt;
3806    
3807 day &lt;number&gt;    - starting &lt;number&gt; days ago
3808 day &lt;from&gt;-&lt;to&gt; - &lt;from&gt; days &lt;to&gt; days ago
3809    
3810 info &lt;text&gt;     - any spots containing &lt;text&gt; in the info or remarks
3811    
3812 by &lt;call&gt;       - any spots spotted by &lt;call&gt; (spotter &lt;call&gt; 
3813                         is the same).
3814
3815 qsl             - this automatically looks for any qsl info on the call
3816                   held in the spot database.
3817
3818 iota &lsqb;&lt;iota&gt;&rsqb;   - If the iota island number is missing it will 
3819                   look for the string iota and anything which looks like 
3820                   an iota island number. If you specify then it will look 
3821                   for that island.
3822
3823 qra &lsqb;&lt;locator&gt;&rsqb; - this will look for the specific locator if 
3824                   you specify one or else anything that looks like a locator.
3825 </verb></tscreen>
3826    
3827 e.g. 
3828
3829 <tscreen><verb>   
3830    SH/DX 9m0
3831    SH/DX on 20m info iota
3832    SH/DX 9a on vhf day 30
3833    SH/DX rf1p qsl
3834    SH/DX iota 
3835    SH/DX iota eu-064
3836    SH/DX qra jn86
3837 </verb></tscreen>
3838
3839 <sect1>show/dxcc (0)
3840
3841 <P>
3842 <tt>
3843 <bf>show/dxcc &lt;prefix&gt;</bf> Interrogate the spot database by country
3844 </tt>
3845
3846 <P>
3847 This command takes the &lt;prefix&gt; (which can be a full or partial 
3848 callsign if desired), looks up which internal country number it is
3849 and then displays all the spots as per SH/DX for that country.
3850    
3851 The options for SHOW/DX also apply to this command.   
3852 e.g. 
3853
3854 <tscreen><verb>   
3855    SH/DXCC G
3856    SH/DXCC W on 20m info iota
3857 </verb></tscreen>
3858
3859 <sect1>show/files (0)
3860
3861 <P>
3862 <tt>
3863 <bf>show/files &lsqb;&lt;filearea&gt; &lsqb;&lt;string&gt;&rsqb;&rsqb;</bf> List
3864 the contents of a filearea
3865 </tt>
3866
3867 <P>
3868 SHOW/FILES on its own will show you a list of the various fileareas
3869 available on the system. To see the contents of a particular file
3870 area type:-
3871
3872 <tscreen><verb>
3873    SH/FILES &lt;filearea&gt;
3874 </verb></tscreen>
3875
3876 where &lt;filearea&gt; is the name of the filearea you want to see the 
3877 contents of.
3878
3879 You can also use shell globbing characters like '*' and '?' in a
3880 string to see a selection of files in a filearea eg:-
3881
3882 <tscreen><verb>
3883    SH/FILES bulletins arld*
3884 </verb></tscreen>
3885
3886 See also TYPE - to see the contents of a file.
3887
3888 <sect1>show/filter (0)
3889
3890 <P>
3891 <tt>
3892 <bf>show/filter</bf> Show the filters you have set
3893 </tt>
3894
3895 <P>
3896 Show the contents of all the filters that are set by you. This command 
3897 displays all the filters set - for all the various categories.
3898
3899 <sect1>show/filter (extended for sysops) (5)
3900
3901 <P>
3902 <tt>
3903 <bf>show/filter &lt;callsign&gt;</bf> Show the filters set by &lt;callsign&gt;
3904 </tt>
3905
3906 <P>
3907 A sysop can look at any filters that have been set.
3908
3909 <sect1>show/hops (8)
3910
3911 <P>
3912 <tt>
3913 <bf>show/hops &lt;node_call&gt; &lsqb;ann&verbar;spots&verbar;wcy&verbar;wwv&verbar;&rsqb;</bf> Show the hop 
3914 counts for a node
3915 </tt>
3916
3917 <P>
3918 This command shows the hop counts set up for a node. You can specify
3919 which category you want to see. If you leave the category out then 
3920 all the categories will be listed.
3921
3922 <sect1>show/isolate (1)
3923
3924 <P>
3925 <tt>
3926 <bf>show/isolate</bf> Show a list of isolated nodes
3927 </tt>
3928
3929 <P>
3930 Show which nodes are currently set to be isolated.
3931
3932 <sect1>show/lockout (9)
3933
3934 <P>
3935 <tt>
3936 <bf>show/lockout</bf> Show a list of excluded callsigns
3937 </tt>
3938
3939 <P>
3940 Show a list of callsigns that have been excluded (locked out) of the
3941 cluster locally with the <em>set/lockout</em> command
3942
3943 <sect1>show/moon (0)
3944
3945 <P>
3946 <tt>
3947 <bf>show/moon &lsqb;&lt;prefix&gt;&verbar;&lt;callsign&gt;&rsqb;</bf> Show moon
3948 rise and set times
3949 </tt>
3950
3951 <P>
3952 Show the Moon rise and set times for a (list of) prefixes or callsigns, 
3953 together with the azimuth and elevation of the sun currently at those
3954 locations.
3955
3956 If you don't specify any prefixes or callsigns, it will show the times for
3957 your QTH (assuming you have set it with either SET/LOCATION or SET/QRA),
3958 together with the current azimuth and elevation.
3959
3960 In addition, it will show the gain or loss dB relative to the nominal 
3961 distance of 385,000Km due to the ellipsoidal nature of the orbit.
3962
3963 If all else fails it will show the Moonrise and set times for the node
3964 that you are connected to. 
3965
3966 For example:-
3967
3968 <tscreen><verb>
3969   SH/MOON
3970   SH/MOON G1TLH W5UN
3971 </verb></tscreen>
3972
3973 <sect1>show/muf (0)
3974
3975 <P>
3976 <tt>
3977 <bf>show/muf &lt;prefix&gt; &lsqb;&lt;hours&gt;&rsqb;&lsqb;long&rsqb;</bf> Show
3978 the likely propagation to &lt;prefix&gt;
3979 </tt>
3980
3981 <P>
3982 This command allow you to estimate the likelihood of you contacting
3983 a station with the prefix you have specified. The output assumes a modest
3984 power of 20dBW and receiver sensitivity of -123dBm (about 0.15muV/10dB SINAD)
3985
3986 The result predicts the most likely operating frequencies and signal
3987 levels for high frequency (shortwave) radio propagation paths on
3988 specified days of the year and hours of the day. It is most useful for
3989 paths between 250 km and 6000 km, but can be used with reduced accuracy
3990 for paths shorter or longer than this.
3991
3992 The command uses a routine MINIMUF 3.5 developed by the U.S. Navy and
3993 used to predict the MUF given the predicted flux, day of the year,
3994 hour of the day and geographic coordinates of the transmitter and
3995 receiver. This routine is reasonably accurate for the purposes here,
3996 with a claimed RMS error of 3.8 MHz, but much smaller and less complex
3997 than the programs used by major shortwave broadcasting organizations,
3998 such as the Voice of America.
3999
4000 The command will display some header information detailing its
4001 assumptions, together with the locations, latitude and longitudes and
4002 bearings. It will then show UTC (UT), local time at the other end
4003 (LT), calculate the MUFs, Sun zenith angle at the midpoint of the path
4004 (Zen) and the likely signal strengths. Then for each frequency for which
4005 the system thinks there is a likelihood of a circuit it prints a value.
4006
4007 The value is currently a likely S meter reading based on the conventional
4008 6dB / S point scale. If the value has a '+' appended it means that it is
4009 1/2 an S point stronger. If the value is preceeded by an 'm' it means that
4010 there is likely to be much fading and by an 's' that the signal is likely
4011 to be noisy.  
4012
4013 By default SHOW/MUF will show the next two hours worth of data. You
4014 can specify anything up to 24 hours worth of data by appending the no of
4015 hours required after the prefix. For example:-
4016
4017 <tscreen><verb>
4018   SH/MUF W
4019 </verb></tscreen>
4020
4021 produces:
4022
4023 <tscreen><verb>
4024   RxSens: -123 dBM SFI: 159   R: 193   Month: 10   Day: 21
4025   Power :   20 dBW    Distance:  6283 km    Delay: 22.4 ms
4026   Location                       Lat / Long           Azim
4027   East Dereham, Norfolk          52 41 N 0 57 E         47
4028   United-States-W                43 0 N 87 54 W        299
4029   UT LT  MUF Zen  1.8  3.5  7.0 10.1 14.0 18.1 21.0 24.9 28.0 50.0
4030   18 23 11.5 -35  mS0+ mS2   S3
4031   19  0 11.2 -41  mS0+ mS2   S3
4032 </verb></tscreen>
4033
4034 indicating that you will have weak, fading circuits on top band and 
4035 80m but usable signals on 40m (about S3).
4036
4037 inputing:-
4038
4039 <tscreen><verb>
4040   SH/MUF W 24
4041 </verb></tscreen>
4042
4043 will get you the above display, but with the next 24 hours worth of
4044 propagation data.
4045
4046 <tscreen><verb>
4047   SH/MUF W L 24
4048   SH/MUF W 24 Long
4049 </verb></tscreen>
4050
4051 Gives you an estimate of the long path propagation characterics. It
4052 should be noted that the figures will probably not be very useful, nor
4053 terrible accurate, but it is included for completeness.
4054
4055 <sect1>show/node (1)
4056
4057 <P>
4058 <tt>
4059 <bf>show/node &lsqb;&lt;node_call&gt; ...&rsqb;</bf> Show the type and version
4060 number of nodes
4061 </tt>
4062
4063 <P>
4064 Show the type and version (if connected) of the nodes specified on the
4065 command line. If no callsigns are specified then a sorted list of all
4066 the non-user callsigns known to the system will be displayed.
4067
4068 <sect1>show/prefix (0)
4069
4070 <P>
4071 <tt>
4072 <bf>show/prefix &lt;callsign&gt;</bf> Interrogate the prefix database
4073 </tt>
4074
4075 <P>
4076 This command takes the &lt;callsign&gt; (which can be a full or partial 
4077 callsign or a prefix), looks up which internal country number 
4078 it is and then displays all the relevant prefixes for that country
4079 together with the internal country no, the CQ and ITU regions. 
4080
4081 See also SHOW/DXCC
4082
4083
4084 <sect1>show/program (5)
4085
4086 <P>
4087 <tt>
4088 <bf>show/program</bf> Show the locations of all the included program modules
4089 </tt>
4090
4091 <P>
4092 Show the name and location where every program module was load from. This
4093 is useful for checking where you think you have loaded a .pm file from.
4094
4095 <sect1>show/qra (0)
4096
4097 <P>
4098 <tt>
4099 <bf>show/qra &lt;locator&gt &lsqb;&lt;locator&gt;&rsqb;</bf> Show the distance
4100 between locators<newline>
4101 <bf>show/qra &lt;lat&gt; &lt;long&gt;</bf> Convert latitude and longitude to 
4102 a locator
4103 </tt>
4104
4105 <P>
4106 This is a multipurpose command that allows you either to calculate the
4107 distance and bearing between two locators or (if only one locator is
4108 given on the command line) the distance and beraing from your station
4109 to the locator. For example:-
4110
4111 <tscreen><verb>
4112 SH/QRA IO92QL 
4113 SH/QRA JN06 IN73
4114 </verb></tscreen>
4115
4116 The first example will show the distance and bearing to the locator from
4117 yourself, the second example will calculate the distance and bearing from
4118 the first locator to the second. You can use 4 or 6 character locators.
4119
4120 It is also possible to convert a latitude and longitude to a locator by 
4121 using this command with a latitude and longitude as an argument, for
4122 example:-
4123
4124 <tscreen><verb>
4125 SH/QRA 52 41 N 0 58 E
4126 </verb></tscreen>
4127
4128 <sect1>show/qrz (0)
4129
4130 <P>
4131 <tt>
4132 <bf>show/qrz &lt;callsign&gt;</bf> Show any callbook details on a callsign
4133 </tt>
4134
4135 <P>
4136 This command queries the QRZ callbook server on the internet
4137 and returns any information available for that callsign. This service
4138 is provided for users of this software by http://www.qrz.com 
4139
4140 <sect1>show/route (0)
4141
4142 <P>
4143 <tt>
4144 <bf>show/route &lt;callsign&gt;</bf> Show the route to &lt;callsign&gt;
4145 </tt>
4146
4147 <P>
4148 This command allows you to see to which node the callsigns specified are
4149 connected. It is a sort of inverse sh/config.
4150
4151 <tscreen><verb>
4152   sh/route n2tly
4153 </verb></tscreen>
4154
4155 <sect1>show/satellite (0)
4156
4157 <P>
4158 <tt>
4159 <bf>show/satellite &lt;name&gt; &lsqb;&lt;hours&gt; &lt;interval&gt;&rsqb;</bf>
4160 Show satellite tracking data
4161 </tt>
4162
4163 <P>
4164 Show the tracking data from your location to the satellite of your choice
4165 from now on for the next few hours.
4166
4167 If you use this command without a satellite name it will display a list
4168 of all the satellites known currently to the system. 
4169
4170 If you give a name then you can obtain tracking data of all the passes
4171 that start and finish 5 degrees below the horizon. As default it will
4172 give information for the next three hours for every five minute period.
4173
4174 You can alter the number of hours and the step size, within certain 
4175 limits. 
4176
4177 Each pass in a period is separated with a row of '-----' characters
4178
4179 So for example:-
4180
4181 <tscreen><verb>
4182 SH/SAT AO-10 
4183 SH/SAT FENGYUN1 12 2
4184 </verb></tscreen>
4185
4186 <sect1>show/sun (0)
4187
4188 <P>
4189 <tt>
4190 <bf>show/sun &lsqb;&lt;prefix&gt;&verbar;&lt;callsign&gt;&rsqb;</bf> Show
4191 sun rise and set times
4192 </tt>
4193
4194 <P>
4195 Show the sun rise and set times for a (list of) prefixes or callsigns, 
4196 together with the azimuth and elevation of the sun currently at those
4197 locations.
4198
4199 If you don't specify any prefixes or callsigns, it will show the times for
4200 your QTH (assuming you have set it with either SET/LOCATION or SET/QRA),
4201 together with the current azimuth and elevation.
4202
4203 If all else fails it will show the sunrise and set times for the node
4204 that you are connected to. 
4205
4206 For example:-
4207
4208 <tscreen><verb>
4209   SH/SUN
4210   SH/SUN G1TLH K9CW ZS
4211 </verb></tscreen>
4212
4213 <sect1>show/time (0)
4214
4215 <P>
4216 <tt>
4217 <bf>show/time &lsqb;&lt;prefix&gt;&verbar;&lt;callsign&gt;&rsqb;</bf> Show
4218 the local time
4219 </tt>
4220
4221 <P>
4222 If no prefixes or callsigns are given then this command returns the local
4223 time and UTC as the computer has it right now. If you give some prefixes
4224 then it will show UTC and UTC + the local offset (not including DST) at
4225 the prefixes or callsigns that you specify.
4226
4227 <sect1>show/wcy (0)
4228
4229 <P>
4230 <tt>
4231 <bf>show/wcy</bf> Show the last 10 WCY broadcasts<newline>
4232 <bf>show/wcy &lt;n&gt;</bf> Show the last &lt;n&gt; WCY broadcasts
4233 </tt>
4234
4235 <P>
4236 Display the most recent WCY information that has been received by the system
4237
4238 <sect1>show/wwv (0)
4239
4240 <P>
4241 <tt>
4242 <bf>show/wwv</bf> Show the last 10 WWV broadcasts<newline>
4243 <bf>show/wwv &lt;n&gt;</bf> Show the last &lt;n&gt; WWV broadcasts
4244 </tt>
4245
4246 <P>
4247 Display the most recent WWV information that has been received by the system
4248
4249
4250 <sect1>shutdown (5)
4251
4252 <P>
4253 <tt>
4254 <bf>shutdown</bf> Shutdown the cluster
4255 </tt>
4256
4257 <P>
4258 Shutdown the cluster and disconnect all the users.  If you have Spider
4259 set to respawn in /etc/inittab it will of course restart.
4260
4261 <sect1>spoof (9)
4262
4263 <P>
4264 <tt>
4265 <bf>spoof &lt;callsign&gt; &lt;command&gt;</bf> Run commands as another user
4266 </tt>
4267
4268 <P>
4269 This is a very simple yet powerful command for the sysop.  It allows you to
4270 issue commands as if you were a different user.  This is very useful for the
4271 kind of things that users seem to always get wrong.. like home_node for
4272 example.
4273
4274 <sect1>stat/db (5)
4275
4276 <P>
4277 <tt>
4278 <bf>stat/db &lt;dbname&gt;</bf> Show the status of a database
4279 </tt>
4280
4281 <P>
4282 Show the internal status of a database descriptor.
4283
4284 Depending on your privilege level you will see more or less information. 
4285 This command is unlikely to be of much use to anyone other than a sysop.
4286
4287 <sect1>stat/channel (5)
4288
4289 <P>
4290 <tt>
4291 <bf>stat/channel &lt;callsign&gt;</bf> Show the status of a channel on the cluster
4292 </tt>
4293
4294 <P>
4295 Show the internal status of the channel object either for the channel that 
4296 you are on or else for the callsign that you asked for.
4297
4298 Only the fields that are defined (in perl term) will be displayed.
4299
4300 <sect1>stat/msg (5)
4301
4302 <P>
4303 <tt>
4304 <bf>stat/msg &lt;msgno&gt;</bf> Show the status of a message
4305 </tt>
4306
4307 <P>
4308 This command shows the internal status of a message and includes information
4309 such as to whom it has been forwarded, its size, origin etc etc.
4310
4311 <sect1>stat/user (5)
4312
4313 <P>
4314 <tt>
4315 <bf>stat/user &lt;callsign&gt;</bf> Show the full status of a user
4316 </tt>
4317
4318 <P>
4319 Shows the full contents of a user record including all the secret flags
4320 and stuff.
4321
4322 Only the fields that are defined (in perl term) will be displayed.
4323
4324 <sect1>sysop (0)
4325
4326 <P>
4327 <tt>
4328 <bf>sysop</bf> Regain your privileges if you login remotely
4329 </tt>
4330
4331 <P>
4332 The system automatically reduces your privilege level to that of a
4333 normal user if you login in remotely. This command allows you to
4334 regain your normal privilege level. It uses the normal system: five
4335 numbers are returned that are indexes into the character array that is
4336 your assigned password (see SET/PASSWORD). The indexes start from
4337 zero.
4338
4339 You are expected to return a string which contains the characters
4340 required in the correct order. You may intersperse those characters
4341 with others to obscure your reply for any watchers. For example (and
4342 these values are for explanation :-):
4343
4344 <tscreen><verb>
4345   password = 012345678901234567890123456789
4346   > sysop
4347   22 10 15 17 3
4348 </verb></tscreen>
4349
4350 you type:-
4351
4352 <tscreen><verb>
4353  aa2bbbb0ccc5ddd7xxx3n
4354  or 2 0 5 7 3
4355  or 20573
4356 </verb></tscreen>
4357
4358 They will all match. If there is no password you will still be offered
4359 numbers but nothing will happen when you input a string. Any match is
4360 case sensitive.
4361
4362 <sect1>talk (0)
4363
4364 <P>
4365 <tt>
4366 <bf>talk &lt;callsign&gt;</bf> Enter talk mode with &lt;callsign&gt;<newline>
4367 <bf>talk &lt;callsign&gt; &lt;text&gt;</bf> Send a text message to &lt;callsign&gt;<newline>
4368 <bf>talk &lt;callsign&gt; &gt; &lt;node_call&gt; &lsqb;&lt;text&gt;&rsqb;</bf>
4369 Send a text message to &lt;callsign&gt; via &lt;node_call&gt;
4370 </tt>
4371
4372 <P>
4373 Send a short message to any other station that is visible on the cluster
4374 system. You can send it to anyone you can see with a SHOW/CONFIGURATION 
4375 command, they don't have to be connected locally.
4376
4377 The second form of TALK is used when other cluster nodes are connected
4378 with restricted information. This usually means that they don't send 
4379 the user information usually associated with logging on and off the cluster.
4380
4381 If you know that G3JNB is likely to be present on GB7TLH, but you can only
4382 see GB7TLH in the SH/C list but with no users, then you would use the
4383 second form of the talk message.
4384
4385 If you want to have a ragchew with someone you can leave the text message
4386 out and the system will go into 'Talk' mode. What this means is that a
4387 short message is sent to the recipient telling them that you are in a 'Talking' 
4388 frame of mind and then you just type - everything you send will go to the 
4389 station that you asked for. 
4390
4391 All the usual announcements, spots and so on will still come out on your
4392 terminal.
4393
4394 If you want to do something (such as send a spot) you precede the normal 
4395 command with a '/' character, eg:-
4396
4397 <tscreen><verb>
4398    /DX 14001 G1TLH What's a B class licensee doing on 20m CW?
4399    /HELP talk
4400 </verb></tscreen>
4401
4402 To leave talk mode type:
4403    
4404 <tscreen><verb>
4405    /EX
4406 </verb></tscreen>
4407
4408 <sect1>type (0)
4409
4410 <P>
4411 <tt>
4412 <bf>type &lt;filearea&gt;/&lt;name&gt;</bf> Look at a file in one of the fileareas
4413 </tt>
4414
4415 <P>
4416 Type out the contents of a file in a filearea. So, for example, in 
4417 filearea 'bulletins' you want to look at file 'arld051' you would 
4418 enter:-
4419
4420 <tscreen><verb>
4421    TYPE bulletins/arld051
4422 </verb></tscreen>
4423
4424 See also SHOW/FILES to see what fileareas are available and a 
4425 list of content.
4426
4427 <sect1>who (0)
4428
4429 <P>
4430 <tt>
4431 <bf>who</bf> Show who is physically connected locally
4432 </tt>
4433
4434 <P>
4435 This is a quick listing that shows which callsigns are connected and
4436 what sort of connection they have
4437
4438 <sect1>wx (0)
4439
4440 <P>
4441 <tt>
4442 <bf>wx &lt;text&gt;</bf> Send a weather message to local users<newline>
4443 <bf>wx full &lt;text&gt; </bf> Send a weather message to all cluster users
4444 </tt>
4445
4446 <P>
4447 Weather messages can sometimes be useful if you are experiencing an extreme
4448 that may indicate enhanced conditions
4449
4450 <sect1>wx (enhanced for sysops) (5)
4451
4452 <P>
4453 <tt>
4454 <bf>wx sysop &lt;text&gt;</bf> Send a weather message to other clusters only
4455 </tt>
4456
4457 <P>
4458 Send a weather message only to other cluster nodes and not to general users.
4459
4460
4461
4462 </article>