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