Allow synonyms for localhost
[spider.git] / sgml / filtering_en.sgml
1 <!doctype linuxdoc system>
2
3 <article>
4
5 <!-- Title information -->
6
7 <title>The DXSpider User Filtering Primer v1.0</title> 
8 <author>Compiled By W3BG - Jim Samuels (jimsam@comcast.net) With Introduction by N3RD - Dave Hawes (dave.n3rd@comcast.net)</author>
9 <date>April 2003 revision 0.2</date>
10
11 <abstract>
12 A primer and tutorial for Users and SysOps of the DXSpider DXCluster program.
13 </abstract>
14
15 <!-- Table of contents -->
16 <toc>
17
18 <!-- Begin the document -->
19
20 <sect>Introduction.
21
22 <P>
23 The PacketCluster software written in the mid-80s by Dick Newell, AK1A, has 
24 served us well.  Dick has moved on though and has not supported the software 
25 with updates etc. for the last 10 years.  Numerous PacketCluster "clones" have 
26 come and gone over the years, however there is one, called DX Spider, which 
27 provides a very similar user interface to that of AK1A, allows internet 
28 connections of users and node-to-node links, is actively supported by the 
29 author, and best of all is freeware.  FRC has started to convert several nodes 
30 to Spider.
31
32 <P>
33 One of the strengths of DX Spider is its very powerful and flexible DX spot 
34 filtering routines.  These filters are totally different from anything we 
35 learned how to do with PacketCluster, and along with their power and 
36 flexibility comes somewhat of a learning curve.  Hence the need for this 
37 primer.
38
39 <P>
40 In the following sections, you will learn that you can filter DX spots by:
41
42 <tscreen><verb>
43 Frequency of the spot
44 Mode of the spot
45 Callsign of the spot (by state, country, zone, or specific callsign)
46 Callsign of the spotter (by state, country, zone, or specific callsign)
47 Callsign of the source node of the spot (by state, country, zone, or specific callsign)
48 </verb></tscreen>
49
50 <P>
51 With a few keystrokes, you can set up a filter for the CQ WW SSB contest, for 
52 example, that says that you only want to see SSB spots on the contesting bands.
53 In the ARRL contest, it is simple to exclude spots for Ws and VEs.  For example,
54 the best all around one-line filter for users in the CQ WW SSB contest would be:
55
56 <tscreen><verb>
57 accept/spots on contesthf/ssb
58 </verb></tscreen>
59
60 This simply reads, "I want to get spots on the hf contesting bands on SSB only."
61
62 <P>
63 Jim Samuels, W3BG, has put together this primer which not only provides complete
64 details on the format for all the available filter commands, but also provides 
65 useful examples that can be simply typed in, without the need to learn the 
66 specifics.
67
68 <P>
69 I would be remiss in not thanking Charlie Carroll, K1XX, who gave a lot of 
70 encouragement and mentoring, and provided some of the material in this primer.
71
72 <P>
73 As always, your local sysop is available to help you out, if need be.  Don't 
74 hesitate to contact him for assistance.
75
76 <P>
77 73 - Dave N3RD
78
79 <sect>Foreword
80
81 <P>
82 While attempting to learn how DXSpider filters work, I found that I had to glean
83 bits and pieces of information from the DXSpider User Manual and Administrators 
84 Guide as well as various posted messages, help files and the program and 
85 data-base files themselves. Therefore, this is by no means an original work. I 
86 have used and in some cases copied from some of these sources. What I have tried
87 to accomplish is to gather this scattered information, put it in one spot 
88 (please pardon the pun) so others might benefit. I would advise those with 
89 interest to go back and read these other sources at their leisure.
90
91
92 <sect>Configuring Spot Filters
93
94 <sect1>What is a spot filter?
95
96 <P>
97 A spot filter is one rule (a one line spot filter) or multiple rules (multiple 
98 line spot filters) that a user can setup within DXSpider to control which 
99 specific spot(s) are received at the shack console.  These configurable 
100 filters/rules reside on the DXSpider node and are stored along with the user's 
101 other information. Filters can be likened to a car wash . . . . . like cars, 
102 information goes in one end dirty, gets washed and comes out the other end 
103 cleaned.
104
105 <P>
106 All spots received from other users on the cluster, or those received from other
107 nodes, start out life destined for each and every connected user's console. If 
108 spot filtering has been configured, all spots headed for that user first go into
109 the filter input, are processed and sent out the other end of these filters 
110 before being sent to the user's console. Like a car wash, each spot goes through
111 one or many stages depending on whether the user wanted a simple or a 
112 super-duper filtering job.  Along the way, the spot gets scrubbed, unwanted 
113 information removed or wanted information passed on and finally the wanted spots
114 only are spit out the other end - nice and clean with all unwanted "stuff" sent 
115 down the drain to the infamous "bit-bucket."  
116
117
118 <sect1>How can filters be used?  
119
120 <P>
121 For example, let's say our local user has never owned a microphone in his life 
122 and definitely doesn't want to see any of those useless SSB spots. Our user 
123 simply sets up a basic filter to reject any SSB spots before they reach the 
124 user's console.  Similarly, it's now the ARRL CW DX contest weekend, so not only
125 does our user not want to see SSB spots, but now doesn't want to see any UHF, 
126 VHF, DATA or any US/Canadian "DX" spots. Our user now only accepts HF CW 
127 CONTEST spots and in the same rule rejects spots for W and VE stations. In these
128 and many more situations, "filters are our friends."
129
130
131 <sect>Types of spot filters used in DXSpider 
132
133 <P>
134 Basic filter types are "accept", "reject", and "clear" where the following
135 applies ...
136
137 <tscreen><verb>
138 Reject filters - any spots that match will be dumped, all others passed on.
139 Accept filters - any spots that match are passed on, all others are dumped.
140 Clear filters  - the filter slot(s) referenced will be cleared from the filter 
141                  repository
142 </verb></tscreen>
143
144 For the most part we will use only reject and accept filters. These are the main
145 filter types. Basically, reject means dump it and accept means take it and pass 
146 it on to the user. By nature, accept filters are more powerful than reject 
147 filters. A user can generally do with a one line accept rule what it could take 
148 many lines of reject rules to accomplish. However, the flip-side of this 
149 statement is that a series of reject filters are usually easier to administer 
150 and change.
151
152 <sect1> Numbering lines and slots 
153
154 <P>
155 There are ten usable filter slots in DXSpider. Each slot holds one reject and 
156 one accept rule. Therefore, each type filter can have up to ten lines of rules 
157 contained in these ten slots. The filter rules must be numbered sequentially, 
158 that is, 0-9 lines of reject filter rules and 0-9 lines of accept filter rules 
159 to correspond to their respective slot position. If no number is used, every 
160 line is assumed to be in slot 1 and the addition of a second filter line of the 
161 same type without a number will just over-write the first that was previously 
162 written to slot 1. (Why not slot 0? I don't know. This is the way it works.)
163
164 <P>
165 <em>Important:</em> The filter rules are applied in sequence, i.e., 0-9. If a 
166 line matches, action is taken on that line. The filter sequence acts on rules 
167 in the order listed.  It acts on the reject filter in each slot before acting 
168 on the accept filter contained in that slot. If the slot is completely blank or 
169 if a reject or accept filter line is missing in that slot it skips right over 
170 to the next filter rule in the sequence. A picture of a filter set might look 
171 like this ...
172
173 <tscreen><verb>
174 Execution Sequence      Slot Number     Filter Rule     
175         1                 Slot0         reject/spot 0 <pattern> 
176         2                               accept/spot 0 <pattern> 
177         3                 Slot1         reject/spot 1 <pattern> 
178         4                               accept/spot 1 <pattern> 
179         5                 Slot2         reject/spot 2 <pattern> 
180         6                               accept/spot 2 <pattern> 
181         .                 .     
182         19                Slot9         reject/spot 9 <pattern> 
183         20                              accept/spot 9 <pattern>
184 </verb></tscreen>
185
186
187 <sect1>Reject before accept
188
189 <P>
190 This is not a good rule for life, but it makes sense for DXSpider filters. As 
191 a general rule, reject filter rules within a slot are always executed before 
192 accept filter rules.  There is a very good reason for this.  If a spot doesn't 
193 match a reject filter, the spot is passed to the next filter line in the set.  
194 However, if a spot matches an accept filter, it is sent immediately to the user.
195
196 <sect1>Using Multiple Reject Filter Rules
197
198 <P>
199 Another important concept to know is that you can do everything you want to do 
200 with multiple reject filters AND NO ACCEPT FILTERS.  By default, if a spot 
201 doesn't match any of the reject filter definitions, then the system considers 
202 you want the spot and sends it to you.  For example, the following two filters 
203 perform exactly the same thing ...
204
205 <tscreen><verb>
206 accept/spots on contesthf
207 reject/spots not on contesthf
208 </verb></tscreen>
209
210 So, why would we choose one rather than the other?  Using reject syntax allows 
211 you to add another filter line easily, without disturbing the first line.  A 
212 real example will show us how this works.  Let's say that there is a RTTY 
213 contest coming up and you don't wish to see the RTTY spots.  Simply add another 
214 reject filter like this ...
215
216 <tscreen><verb>
217 reject/spots 2 on hf/rtty
218 </verb></tscreen>
219
220 Note that we need to specify that this is the second line of reject filter 
221 definitions.  Also, the "RTTY" sub-band specification has to be associated with 
222 a range of bands; it can't be specified all by itself.  So, we just add it 
223 behind the range of bands defined by "HF".  So in our example, if the user does 
224 a show/filter, he will be told by the Spider that his current filters are ...
225
226 <tscreen><verb>
227 filter 1 reject not on contesthf
228 filter 2 reject on hf/rtty
229 </verb></tscreen>
230
231 With these filters set up, if a spot comes through on 14085 kHz, the filter 
232 works like this ...
233
234 <tscreen><verb>
235 filter1:    Is spot NOT on the HF contest bands?  No.  
236             The spot doesn't match the filter definition, so pass it to 
237             next filter.
238
239 filter2:    Is spot within the frequency range defined for RTTY?  Yes.  
240             Since the spot matches the filter definition, the spot is rejected 
241             and the user never sees it.
242 </verb></tscreen>
243
244 Had the frequency of the spot been 14025, then the spot would have not matched 
245 the filter2 definition either, would have passed through all the filters, and 
246 would have been sent to the user at the end of the filter set.  Similarly, had 
247 the spot been on 10 MHz, it would have met the definition of filter1, been 
248 rejected immediately, and the filtering process would have stopped before 
249 processing \rfilter2.
250
251 <P>
252 In addition, the filtering system has a rough time handling accept filters 
253 followed by reject filters and adds inefficiency to the processing. 
254 (Note: a reject as a "qualifier" to an accept rule in an accept filter line is 
255 okay as we will see below)
256
257
258 <sect1>A very useful command 
259  
260 <P>
261 To see all active filters in use at any time, just type the following command
262 ...
263
264 <tscreen><verb>
265 show/filter
266 </verb></tscreen>
267
268 <sect1>Case does not matter
269
270 <P>
271 In entering any filter - case does not matter. Upper, lower, or mixed case 
272 will not effect how filters work or perform.
273
274 <sect1>Qualifiers
275
276 <P>
277 Logical operands can be used in rule sets to combine multiple actions or 
278 qualify others. These are ...
279
280 <tscreen><verb>
281 and     a and b= action
282 not     a not b= action
283 or      a and not (c or b)= action
284 </verb></tscreen>
285
286 Note: as a general rule when or is used you must also use parentheses (). 
287 We will see how these can be used in examples later.
288
289 <sect1>Comma Separation
290
291 <P>
292 Any command can have multiple pattern variables if commas separate them. 
293 For example ...
294
295 <tscreen><verb>
296 reject/spot call_state nj,ny,pa,de,md
297 </verb></tscreen>
298
299 <sect>Reject filters 
300
301 <P>
302 A reject filter line means that if a spot matches, send it to the trash, dump 
303 it, do not send it down the line to the next rule or to the user, but pass-on 
304 all other spots that do not match. 
305
306 <tscreen><verb>
307 Syntax: reject/spots [0-9]  <pattern>   
308 </verb></tscreen>
309
310 Any of the following patterns may be used in this line ...
311
312 <tscreen><verb>
313 freq <range>
314 on <range>       
315 info <string>
316 call <prefixes>
317 call_dxcc <numbers>
318 call_itu <numbers>
319 call_zone <numbers>
320 call_state <state 2-letter abbreviations>
321 by <prefixes>
322 by_dxcc <numbers>
323 by_itu <numbers>
324 by_zone <numbers>
325 by_state <state 2-letter abbreviations>
326 origin <prefixes> Used primarily be SYSOPS,  not by users and not discussed.
327 channel <prefixes> Used primarily be SYSOPS,  not by users and not discussed.
328 </verb></tscreen>
329
330 <sect>Filters to reject spots based on frequency
331
332 <P>
333 <tscreen><verb>
334 Syntax: reject/spot [0-9] freq <range>  
335
336 or
337
338 reject/spot [0-9] on <range>
339 </verb></tscreen>
340
341 Important: both <em>freq</em> and <em>on</em> are exactly the same and can be 
342 used interchangeably - most persons use <em>on</em> (less typing.)
343
344 <P>
345 For range, you can specify a frequency like 7040, a range of frequencies like 
346 0/30000 ( the whole HF band) or use any of the "band" or "region" names defined 
347 in the show/bands command.
348
349 <sect1>Bands Available
350
351 <P>
352 <tscreen><verb>
353 73kHz:          71 -> 75
354 136kHz:         135 -> 138
355 160m:           1800 -> 2000
356 80m:            3500 -> 4000
357 60m:            5258 -> 5407
358 40m:            7000 -> 7400
359 30m:            10100 -> 10150
360 20m:            14000 -> 14350
361 17m:            18068 -> 18168
362 15m:            21000 -> 21450
363 12m:            24890 -> 24990
364 10m:            28000 -> 29700
365 military:       29700 -> 50000, 230000 -> 420000
366 band1:          47000 -> 49999, 52000 -> 68000
367 6m:             50000 -> 52000
368 pmrlow:         68000 -> 87500
369 4m:             70000 -> 70500
370 band2:          87500 -> 108000
371 aircraft:       108000 -> 137500
372 pmrmid:         138000 -> 165000
373 2m:             144000 -> 148000
374 pmrhigh:        165000 => 174000
375 band3:          176000 => 230000
376 220:            220000 => 222000
377 pmruhf:         425000 => 430000, 440000 => 471000
378 70cm:           430000 => 450000
379 band4:          471000 => 550000
380 band5:          550000 => 868000
381 23cm:           1240000 => 1325000
382 13cm:           2310000 => 2450000
383 9cm:            3400000 => 3475000
384 6cm:            5650000 => 5850000
385 3cm:            10000000 => 10500000
386 12mm:           24000000 => 24250000
387 6mm:            47000000 => 47200000
388 </verb></tscreen>
389
390 <sect1>Regions Available
391
392 <P>
393 <tscreen><verb>
394 all:            73khz 136khz 160m 80m 60m 40m 30m 20m 17m 15m 12m 10m 6m 4m 
395                 2m 220 70cm 23cm 9cm 6cm 3cm 12mm 6mm
396 vhfradio:       band1 band2
397 vhf:            6m 4m 2m 220
398 contesthf:      160m 80m 40m 20m 15m 10m
399 warc:           60m 30m 17m 12m
400 pmr:            pmrlow pmrmid pmrhigh pmruhf
401 spe:            10m 6m 4m 2m
402 shf:            23cm 13cm 9cm 6cm 3cm
403 vlf:            73khz 136khz
404 uhftv:          band4 band5
405 hf:             160m 80m 60m 40m 30m 20m 17m 15m 12m 10m
406 vhftv:          band1 band3
407 uhf:            70cm 23cm
408 </verb></tscreen>
409
410 <sect1>Examples
411
412 <P>
413 The following line will reject spots on 7,040 kHz and pass all others.
414
415 <tscreen><verb>
416 reject/spot 0 freq 7040
417 </verb></tscreen>
418
419 The next line will reject spots from 0 to 30,000 kHz and pass on all others.
420         
421 <tscreen><verb>
422 reject/spot 1 on 0/30000
423 </verb></tscreen>
424
425 This next will trash all spots in the frequency range 144000 -> 148000 kHz and 
426 pass on all others.
427
428 <tscreen><verb>
429 reject/spot 2 freq 2m
430 </verb></tscreen>
431
432 This rule will reject all spots on 6m, 4m, 2m, and 220  and pass on all
433 others.
434
435 <tscreen><verb>
436 reject/spot 3 on vhf
437 </verb></tscreen>
438
439 This rule will dump all spots on the 160m, 80m, 60m, 40m, 30m, 20m, 17m, 15m,
440 12m, 10m bands and all spots on 70cm and  23cm bands passing all other spots.
441
442 <tscreen><verb>
443 reject/spot 4 freq hf and freq uhf
444 </verb></tscreen>
445
446 This is a special spot to be used only by members of the Yankee Clipper
447 Contest Club during contest weekends. Hi!
448
449 <tscreen><verb>
450 reject/spot on all
451 </verb></tscreen>
452
453 <sect1>Sub-bands as part of range
454
455 <P>
456 In conjunction with range, you can use the following sub-band names,
457
458 <tscreen><verb>
459 cw, rtty, data, ssb, and sstv
460 </verb></tscreen>
461
462 by using a forward-slash [(band or region)/sub-band] as part of the range 
463 definition.  For example ...
464
465 <P>
466 This rule will reject all HF phone spots passing on all others
467
468 <tscreen><verb>
469 reject/spot 0 freq hf/ssb
470 </verb></tscreen>
471
472 This filter rule will reject all HF CW spots but will not reject DATA and RTTY
473 spots in the CW range and will pass on all other spots.
474
475 <tscreen><verb>
476 reject/spot 1 on hf/cw and not (on hf/data or on hf/rtty)
477 </verb></tscreen>
478
479 <sect1>Filters to reject spots based on the "info" data in the spot
480
481 <P>
482
483 <tscreen><verb>
484 Syntax: reject/spot [0-9] info <string>
485 </verb></tscreen>
486
487 This filter is used to key on information contained in the information section 
488 of the spot. One could use this to reject any spots containing IOTA, QSL OP or 
489 any other "key-word" used in the information string of the spot. 
490
491 <P>
492 Examples ...
493
494 <P>
495 This filter will reject spots containing IOTA information and pass on all
496 others
497
498 <tscreen><verb>
499 reject/spot 0 info IOTA
500 </verb></tscreen>
501
502 This filter will reject all general CW spots on HF, but will still permit any
503 HF CW spots that contain iota information in addition to passing all others.
504
505 <tscreen><verb>
506 reject/spot 1 on hf/cw and not info iota
507 </verb></tscreen>
508
509 This next filter will reject spots asking or containing QSL information and 
510 pass on all others
511
512 <tscreen><verb>
513 reject/spot 2 info QSL
514 </verb></tscreen>
515
516 Note: The following series of filters are based on <em>call</em> and
517 <em>by</em>.  Call always references the callsign of the spotted DX station.  
518 By always references the callsign of the spotting station.
519
520 <sect1>Filters to reject spots based on call
521
522 <P>
523 <tscreen><verb>
524 Syntax: reject/spot [0-9] call <prefixes>  
525 </verb></tscreen>
526
527 This filter is misleading in a way. It is strictly based on the spotted call 
528 sign letters or numbers entered and not based on countries or DXCC entities. 
529 One could filter on JIMSAM62 if desired.
530
531 <P>
532 Examples ...
533
534 <P>
535 This filter will reject spots for G1AAA, GJ2BBB, and GW3CCC and will pass on
536 spots for M0AAA.
537
538 <tscreen><verb>
539 reject/spot 0 call G
540 </verb></tscreen>
541
542 This next filter will reject spots for PA3AAA and pass on spots for PB4BBB
543
544 <tscreen><verb>
545 reject/spot 1 call PA
546 </verb></tscreen>
547
548 This filter will reject spots for K1AA, KC4AAA,  and KH6DDD and pass on spots
549 for W3BG and N3RD
550
551 <tscreen><verb>
552 reject/spot 2 call K
553 </verb></tscreen>
554
555 <sect1>Filters to reject spots based on call_dxcc
556
557 <P>
558 <tscreen><verb>
559 Syntax:  reject/spot [0-9] call_dxcc <numbers or prefixes>   
560 </verb></tscreen>
561
562 This filter is based on DXCC entities and uses either the country prefix or 
563 the DXCC entity number, found by using the command <em>show/prefix</em>.
564
565 <P>
566 As in ...
567
568 <tscreen><verb>
569 show/prefix w
570 W DXCC: 226 ITU: 7 CQ: 4 LL: 43 0 N 87 54 W (W, United-States-W)
571 </verb></tscreen>
572
573 <tscreen><verb>
574 show/prefix VE
575 VE DXCC: 197 ITU: 9 CQ: 5 LL: 45 18 N 66 6 W (VE, New-Brunswick-VE)
576 DXCC: 197 ITU: 9 CQ: 5 LL: 48 30 N 56 0 W (VE, Newfoundland-VE)
577 DXCC: 197 ITU: 9 CQ: 5 LL: 44 36 N 63 36 W (VE, Nova-Scotia-VE)
578 DXCC: 197 ITU: 4 CQ: 5 LL: 45 30 N 73 36 W (VE, Quebec-VE)
579 DXCC: 197 ITU: 4 CQ: 4 LL: 43 42 N 79 24 W (VE, Ontario-VE)
580 DXCC: 197 ITU: 3 CQ: 4 LL: 49 54 N 97 6 W (VE, Manitoba-VE)
581 DXCC: 197 ITU: 3 CQ: 4 LL: 50 30 N 104 36 W (VE, Saskatchewan-VE)
582 DXCC: 197 ITU: 2 CQ: 3 LL: 51 0 N 114 6 W (VE, Alberta-VE)
583 DXCC: 197 ITU: 2 CQ: 3 LL: 49 18 N 123 6 W (VE, British-Columbia-VE)
584 DXCC: 197 ITU: 75 CQ: 1 LL: 60 42 N 135 6 W (VE, Yukon-VE)
585 </verb></tscreen>
586
587 Example ...
588
589 <P>
590 This spot filter will  reject all spots for US and Canada stations and pass on
591 all others.
592
593 <tscreen><verb>
594 reject/spot 0 call_dxcc 226,197
595 </verb></tscreen>
596
597 This spot filter will  reject all spots for US and Canada stations and pass on
598 all others including the special event station, W2WTC, who I want to work the
599 next time he is on the air.
600
601 <tscreen><verb>
602 reject/spot 1 call_dxcc w,ve not call w2wtc
603 </verb></tscreen>
604
605 <sect1>Filters to reject spots based on call_itu
606
607 <P>
608 Similarly, call_itu and call_zone use ITU regions that can also be obtained 
609 using the show/prefix &lt;prefix&gt; command (see above.)
610
611 <tscreen><verb>
612 Syntax:  accept/spot [0-9] call_itu <numbers>  
613 </verb></tscreen>
614
615 Example ...
616
617 <P>
618 This spot filter will reject all spots for ITU region 7 and pass on all
619 others.
620
621 <tscreen><verb>
622 reject/spot 0  call_itu 7
623 </verb></tscreen>
624
625 <sect1>Filters to reject spots based on call_zone
626
627 <P>
628 <tscreen><verb>
629 Syntax:  reject/spot [0-9] call_zone <numbers>  
630 </verb></tscreen>
631
632 This filter is based on CQ zones and uses the CQ zone number found by using the 
633 command <em>show/prefix</em> (see above.)
634
635 <P>
636 Example ...
637
638 <P>
639 This spot filter will  reject all spots for CQ zone 5 and pass on all others.
640
641 <tscreen><verb>
642 reject/spot 0 call_zone 5
643 </verb></tscreen>
644
645 <sect1>Filters to reject spots based on call_state
646
647 <P>
648 <tscreen><verb>
649 Syntax:  reject/spot [0-9] call_state <state2-letter abbreviations>
650 </verb></tscreen>
651
652 This filter is based on the state of the call spotted, for those callsigns 
653 contained in the usdb database.  Use the command <em>show/usdb</em> to see an 
654 example of a listing in the database, like this ...
655
656 <tscreen><verb>
657 show/usdb k3ww
658 K3WW    -> Perkasie, PA
659 </verb></tscreen>
660
661 Example ...
662
663 <P>
664 This spot filter will  reject all spots for stations in the Mid-Atlantic
665 states and pass on all others.
666
667 <tscreen><verb>
668 reject/spot call_state nj,ny,pa,de,md
669 </verb></tscreen>
670
671 <sect1>Filters to reject spots based on by
672
673 <P>
674 <em>by</em> filters are similar to and function exactly as call filters except 
675 that they act on the spotting station callsign and not the spotted callsign.
676
677 <P>
678 So ...
679
680 <P>
681 This filter is similar to and functions like the call &lt;prefixes&gt;      
682 (See above) except that it rejects spots generated by the spotting callsign 
683 and passes all other spots.
684
685 <tscreen><verb>
686 Syntax:  reject/spot [0-9] by <prefixes>  
687 </verb></tscreen>
688
689 This next filter is based on DXCC entities and uses the DXCC entity number 
690 found by using the command  show/prefix &lt;prefix&gt; and it rejects spots 
691 generated within the spotting DXCC entity and passes all other spots.
692
693 <tscreen><verb>
694 Syntax:  reject/spot [0-9] by_dxcc <numbers>
695 </verb></tscreen>
696
697 This next filter is based on ITU regions and uses the ITU region number found by
698 using the command <em>show/prefix</em> (see above), except that it rejects
699 spots generated by a spotting callsign within the ITU region and passes all
700 other spots.
701
702 <tscreen><verb>
703 Syntax:  reject/spot [0-9] by_itu <numbers>
704 </verb></tscreen>
705
706 This filter is based on CQ zones and uses the CQ zone number found by using
707 the command <em>show/prefix</em> (see above), except that it rejects spots
708 generated by a spotting callsign within the CQ zone and passes all other
709 spots.
710
711 <tscreen><verb>
712 Syntax:  reject/spot [0-9] by_zone <numbers>
713 </verb></tscreen>
714
715 This filter is based on the state of the spotting station found by using the
716 command <em>show/usdb</em> and passes all other spots.
717
718 <tscreen><verb>
719 Syntax:  reject/spot [0-9] by_state <state2-letter postal codes 
720 </verb></tscreen>
721
722 <sect>Accept filters 
723
724 <P>
725 An accept filter line means that if a spot matches pass it on to the user, send 
726 it down the line to the next rule or to the user, and trash, dump, all other 
727 spots that do not match to the next filter line. 
728
729 <tscreen><verb>
730 Syntax: accept/spots [0-9]  <pattern>   
731 </verb></tscreen>
732
733 Any of the following patterns may be used in this line ...
734
735 <tscreen><verb>
736 freq <range>
737 on <range>       
738 info <string>
739 call <prefixes>
740 call_dxcc <numbers>
741 call_itu <numbers>
742 call_zone <numbers>
743 call_state <state2-letter abbreviations>
744 by <prefixes>
745 by_dxcc <numbers>
746 by_itu <numbers>
747 by_zone <numbers>
748 by_state <state2-letter abbreviations>
749 origin <prefixes>   Used primarily be SYSOPS,  not by users and not discussed.
750 channel <prefixes> Used primarily be SYSOPS,  not by users and not discussed.
751 </verb></tscreen>
752
753 Using these patterns, we can accept spots based upon ...
754
755 <tscreen><verb>
756 Frequency of the spot
757 Callsign of the spot (country or zone)
758 Callsign of the spotter (country or zone)
759 Contents of the "information field" which comes with the spot
760 </verb></tscreen>
761
762 <sect1>Filters to accept spots based on frequency
763
764 <P>
765 <tscreen><verb>
766 Syntax: accept/spot [0-9] freq <range>  
767
768 or
769
770 accept/spot [0-9] on <range>
771 </verb></tscreen>
772
773 Important: as noted before, both <em>freq</em> and <em>on</em> are exactly 
774 the same and can be used interchangeably.
775
776 <P>
777 For range, you can specify a frequency like 7040, a range of frequencies 
778 like 0/30000 ( the whole HF spectrum) or use any of the band/region names 
779 defined in the SHOW/BANDS command (see above).
780
781 <P>
782 Examples...
783
784 <P>
785 This will pass on a HF spots only from 0 to 30,000 kHz and dump all others.
786
787 <tscreen><verb>
788 accept/spot 1 on 0/30000 
789 </verb></tscreen>
790
791 This passes on all spots in the frequency range 144000 -> 148000 kHz and trash
792 all others.
793
794 <tscreen><verb>
795 accept/spot 2 freq 2m
796 </verb></tscreen>
797
798 This rule will only pass on spots on 6m, 4m, 2m, and 220 and reject all
799 others.
800
801 <tscreen><verb>
802 accept/spot 3 on vhf
803 </verb></tscreen>
804
805 This rule will pass on all spots on the 160m, 80m, 60m, 40m, 30m, 20m, 17m,
806 15m, 12m, 10m bands and all spots on 70cm and 23cm bands only. All other
807 spots are trashed.
808
809 <tscreen><verb>
810 accept/spot 4 freq hf and freq uhf
811 </verb></tscreen>
812
813 <sect1>Sub-bands as part of range
814
815 <P>
816 In conjunction with range, you can use the following sub-band names: CW, RTTY, 
817 DATA, SSB, and SSTV by using a back-slash [(band or region)/sub-band] as part 
818 of the range definition. 
819
820 <P>
821 Examples ...
822
823 <P>
824 This rule will only accept and pass on HF phone spots rejecting all others
825
826 <tscreen><verb>
827 accept/spot 0 freq hf/ssb
828 </verb></tscreen>
829
830 This filter rule will accept all HF CW spots but will not include DATA and
831 RTTY spots in the CW range. In addition all other spots will be dumped.
832
833 <tscreen><verb>
834 accept/spot 1 on hf/cw and not (on hf/data or on hf/rtty)
835 </verb></tscreen> 
836
837 <sect1>Filters to accept spots based on info
838
839 <P>
840 <tscreen><verb>
841 Syntax: accept/spot [0-9] info <string>
842 </verb></tscreen>
843
844 This filter is used to key on information contained in the information section 
845 of the spot. One could use this to accept any spots containing IOTA, QSL OP or 
846 any other "key-word" used in the information string of the spot. 
847
848 <P>
849 Examples ...
850
851 <P>
852 This filter will accept spots containing IOTA information only and reject all
853 others
854
855 <tscreen><verb>
856 accept/spot 0 info IOTA
857 </verb></tscreen>
858
859 This filter will accept only 10m SSB spots, but will still permit any spots
860 that contain iota information in addition - rejecting all other spots.
861
862 <tscreen><verb>
863 accept/spot 1 on 10m/ssb and info iota
864 </verb></tscreen>
865
866 This next filter will accept spots asking or containing QSL information and dump
867 all other spots
868
869 <tscreen><verb>
870 accept/spot 2 info QSL
871 </verb></tscreen>
872
873 Note: The following series of filters are based on <em>call</em> and 
874 <em>by</em>.  Call always references the callsign of the spotted DX station.  
875 By always references the callsign of the spotting station.
876
877 <sect1>Filters to accept spots based on call
878
879 <P>
880 <tscreen><verb>
881 Syntax: accept/spot [0-9] call <prefixes> 
882 </verb></tscreen>
883
884 This filter is misleading in a way. It is strictly based on the spotted call 
885 sign letters or numbers entered and not based on countries or DXCC entities. 
886
887 <P>
888 Examples ...
889
890 <P>
891 This filter will accept spots for G1AAA, GJ2BBB, and GW3CCC and reject all
892 others, including M0AAA.
893
894 <tscreen><verb>
895 accept/spot 0 call G
896 </verb></tscreen>
897
898 This next filter will accept spots for PA3AAA and reject spots for PB4BBB as 
899 well as all others.
900
901 <tscreen><verb>
902 accept/spot 1 call PA
903 </verb></tscreen>
904
905 This filter will accept spots for callsigns beginning with "K", i.e., K1AA,
906 KC4AAA,  KH6DDD and reject spots for W3BG and N3RD as well as all other
907 spots.
908
909 <tscreen><verb>
910 accept/spot 2 call K
911 </verb></tscreen>
912
913 <sect1>Filters to accept spots based on call_dxcc
914
915 <P>
916 <tscreen><verb>
917 Syntax:  accept/spot [0-9] call_dxcc <numbers or prefixes>
918 </verb></tscreen>
919
920 This filter is based on DXCC entities and uses either the country prefixes or 
921 the DXCC entity number found by using the command <em>show/prefix</em>. See 
922 example of <em>show/prefix</em> above.
923
924 <P>
925 Examples ...
926
927 <tscreen><verb>
928 accept/spot 0 call_dxcc 226,197  
929
930 or
931
932 accept/spot 0 call_dxcc ve,w 
933 </verb></tscreen>
934
935 (Both will work) These spot filters will accept all spots for US and Canada 
936 stations and trash all others.
937
938 <P>
939 The folowing spot filter will accept all spots for US stations and yet reject 
940 any spots for W3FM who is always being spotted by Europeans and filling up my
941 screen.
942
943 <tscreen><verb>
944 accept/spot 1 call_dxcc w not call w3fm
945 </verb></tscreen>
946
947 <sect1>Filters to accept spots based on call_itu
948
949 <P>
950 Similarly, call_itu and call_zone use ITU regions that can also be obtained 
951 using the <em>show/prefix</em> command (see above.)
952
953 <tscreen><verb>
954 Syntax:  accept/spot [0-9] call_itu <numbers>  
955 </verb></tscreen>
956
957 Example ...
958
959 <P>
960 This spot filter will  accept all spots for  ITU region 7 and reject all
961 others.
962
963 <tscreen><verb>
964 accept/spot 0  call_itu 7
965 </verb></tscreen>
966
967 <sect1>Filters to accept spots based on call_zone
968
969 <P>
970 <tscreen><verb>
971 Syntax:  accept/spot [0-9] call_zone <numbers>
972 </verb></tscreen>
973
974 This filter is based on CQ zones and uses the CQ zone number found by using 
975 the command <em>show/prefix</em> (see above.)
976
977 <P>
978 Example ...
979
980 <P>
981 This spot filter will  accept all spots for CQ zone 5 and reject all others.
982
983 <tscreen><verb>
984 accept/spot 0 call_zone 5
985 </verb></tscreen>
986
987 <sect1>Filters to accept spots based on call_state
988
989 <P>
990 <tscreen><verb>
991 Syntax:  accept/spot [0-9] call_state <state2-letter postal codes>  
992 </verb></tscreen>
993
994 This filter is based on state of the call spotted for those callsigns contained
995 in the usdb database.  
996
997 <P>
998 Example ...
999
1000 <P>
1001 This spot filter will  accept all spots of stations located in the
1002 Commonwealth of Pennsylvania and reject all others. It's the PA QSO Party
1003 Weekend.
1004
1005 <tscreen><verb>
1006 accept/spot 0  call_state pa
1007 </verb></tscreen>
1008
1009 <sect1>Filters to accept spots based on by
1010
1011 <P>
1012 <em>by</em> filters are similar to and function exactly as call filters except 
1013 that they act on the spotting station callsign and not the spotted callsign
1014
1015 <P>
1016 So ...
1017
1018 <P>
1019 This filter is similar to and functions like the  call &lt;prefixes&gt; (See above)
1020 except that it accepts spots generated by the spotting callsign and dumps all
1021 other spots.
1022
1023 <tscreen><verb>
1024 Syntax: accept/spot [0-9] by <prefixes>
1025 </verb></tscreen>
1026
1027 This filter is based on DXCC entities and uses the DXCC entity number found
1028 by using the command <em>show/prefix</em> and it accepts spots generated
1029 within the spotting DXCC entity and rejects other spots.
1030
1031 <tscreen><verb>
1032 Syntax:  accept/spot [0-9] by_dxcc <numbers>
1033 </verb></tscreen>
1034
1035 This next filter is based on ITU regions and uses the ITU region number found by
1036 using the command <em>show/prefix</em> (see above), except that it accepts
1037 spots generated by a spotting callsign within the ITU region and rejects all
1038 other spots.
1039
1040 <tscreen><verb>
1041 Syntax:  accept/spot [0-9] call_itu <numbers>
1042 </verb></tscreen>
1043
1044 This filter is based on CQ zones and uses the CQ zone number found by using
1045 the command <em>show/prefix</em> (see above), except that it accepts spots
1046 generated by a spotting callsign within the CQ zone and rejects all other
1047 spots.
1048
1049 <tscreen><verb>
1050 Syntax:  accept/spot [0-9] call_zone <numbers>
1051 </verb></tscreen>
1052
1053 This filters is based on the state location of the spotting station found
1054 by using the command <em>show/usdb</em> and accepts only those spots
1055 generated by stations from the states(s) specified rejecting all other spots.
1056
1057 <tscreen><verb>
1058 Syntax:  accept/spot [0-9] by_state <state2-letter postal codes>
1059 </verb></tscreen>
1060
1061 <sect>Clear filters 
1062
1063 <P>
1064 A clear filter line will delete the slot number specified or all slots and 
1065 consequently all filters that have been created by a user.
1066
1067 <P>
1068 <tscreen><verb>
1069 Syntax: clear/spots [0-9]        
1070
1071 or
1072
1073 clear/spots all
1074 </verb></tscreen>
1075
1076 Example ...
1077
1078 <P>
1079 This will clear any or both accept and reject spot filters in slot 2.
1080
1081 <tscreen><verb>
1082 clear/spots 2
1083 </verb></tscreen>
1084
1085 This will clear each and every user spot filter  - it will clear out all
1086 filters in all slots.
1087
1088 <tscreen><verb>
1089 clear/spots all
1090 </verb></tscreen>
1091
1092 Note - if you just want to replace a spot filter, enter the rule again (with a 
1093 line number) and it will overwrite the previous filter in that slot. If you 
1094 forget the line number, it will overwrite the filter in slot 1 by default.
1095
1096 <sect>Some Practice Examples 
1097
1098 <P>
1099 The proceeding sections have discussed the basics of DXSpider filters. The 
1100 following are some examples utilizing basic filters and some not so basic 
1101 combination filters.
1102
1103 <P>
1104 Let's say you don't want to see any of those 6m, 2m, or 220 spots.
1105
1106 <tscreen><verb>
1107 reject/spot 0 on uhf
1108 </verb></tscreen>
1109
1110 As a good stand alone contest filter ...
1111
1112 <tscreen><verb>
1113 accept/spot on contesthf/<mode> where mode is either CW, SSB, or RTTY
1114 </verb></tscreen>
1115
1116 Note: since a slot number is not included slot 1 is assumed.
1117
1118 <P>
1119 It's a CW contest weekend so you don't want to see any WARC band or SSB spots.
1120
1121 <tscreen><verb>
1122 accept/spots 0 on contesthf/cw
1123 </verb></tscreen>
1124
1125 It's the same weekend, but you also don't want to see any US or Canadian spots, 
1126 or any rtty and data spots that are included in the CW portion of the bands. 
1127 Any of the following will accomplish the same result:
1128
1129 <tscreen><verb>
1130 reject/spot 0  not on contesthf/cw
1131 reject/spot 1 on contesthf/data
1132 reject/spot 2 call_dxcc w,ve
1133
1134 or
1135
1136 accept/spot 0 on contesthf/cw and not (call_dxcc 226,197 or on contesthf/data)
1137
1138 or
1139
1140 accept/spot 0 on contesthf/cw and not (call_dxcc w,ve or on contesthf/data)
1141 </verb></tscreen>
1142
1143 The following two discussions are from the Administrator Manual and are good 
1144 "textbook" examples: 
1145
1146 <tscreen><verb>
1147 rej/spot on hf/cw
1148 acc/spot on 0/30000
1149 acc/spot 2 on 50000/1400000 and (by_zone 14,15,16 or call_zone 14,15,16)
1150 </verb></tscreen>
1151
1152 Note that accept and reject can be abbreviated. Also, the first filter has not 
1153 been specified with a number. This will automatically be assumed to be number 1.
1154 In this case, we have said to reject all HF spots in the CW section of the bands
1155 but accept all others at HF. Also accept anything in VHF and above that is 
1156 spotted in or by operators in the zones 14, 15 and 16. Each filter slot actually
1157 has a 'reject' rule slot and an 'accept' rule slot. The reject rule slot is 
1158 executed BEFORE the accept rule slot. 
1159
1160 <P>
1161 It was mentioned earlier that after a reject test that doesn't match, the 
1162 default for following tests is 'accept', the reverse is true for 'accept'. In 
1163 the example what happens is that the reject is executed first, any non hf/cw 
1164 spot is passed to the accept line, which lets through everything else on HF. 
1165 The next filter line lets through just VHF/UHF spots from EU. 
1166
1167 <P>
1168 If you set a reject filter like this ... 
1169
1170 <tscreen><verb>
1171 reject/spots on hf/cw
1172 </verb></tscreen>
1173
1174 Then you will get everything except HF CW spots. You could make this single 
1175 filter even more flexible. For example, if you are interested in IOTA and will 
1176 work it on CW even though normally you are not interested in CW, then you could 
1177 say ...
1178
1179 <tscreen><verb>
1180 reject/spots on hf/cw and not info iota
1181 </verb></tscreen>
1182
1183 But in that case you might only be interested in iota and say,
1184
1185 <tscreen><verb>
1186 accept/spots not on hf/cw or info iota
1187 </verb></tscreen>
1188
1189 which achieves exactly the same thing.  Note that since slot numbers were 
1190 not used, slot 1 is assumed.
1191
1192 <sect>Contacts
1193
1194 <P>
1195 This Primer is a work in progress. Additional features and filters are added 
1196 from time to time by Dirk Koopman, G1TLH, the developer behind DXSpider. So 
1197 periodic revisions will be made to this document. If you have any questions, 
1198 comments, or suggestions relative to this primer on spot filtering, please 
1199 contact, 
1200
1201 <tscreen><verb>
1202 Jim Samuels, W3BG jimsam@comcast.net 
1203
1204 or 
1205
1206 Dave Hawes, N3RD (W3FRC Cluster SYSOP) dave.n3rd@comcast.net
1207 </verb></tscreen>
1208
1209 </article>