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