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