add filtering documentation from Jim and start removing old docs
[spider.git] / sgml / filtering_en.sgml
diff --git a/sgml/filtering_en.sgml b/sgml/filtering_en.sgml
new file mode 100644 (file)
index 0000000..8759d5a
--- /dev/null
@@ -0,0 +1,1209 @@
+<!doctype linuxdoc system>\r
+\r
+<article>\r
+\r
+<!-- Title information -->\r
+\r
+<title>The DXSpider User Filtering Primer v1.0</title> \r
+<author>Compiled By W3BG - Jim Samuels (jimsam@comcast.net) With Introduction by N3RD - Dave Hawes (dave.n3rd@comcast.net)</author>\r
+<date>March 2003 revision 0.1</date>\r
+\r
+<abstract>\r
+A primer and tutorial for Users and SysOps of the DXSpider DXCluster program.\r
+</abstract>\r
+\r
+<!-- Table of contents -->\r
+<toc>\r
+\r
+<!-- Begin the document -->\r
+\r
+<sect>Introduction.\r
+\r
+<P>\r
+The PacketCluster software written in the mid-80s by Dick Newell, AK1A, has \r
+served us well.  Dick has moved on though and has not supported the software \r
+with updates etc for the last 10 years.  Numerous PacketCluster "clones" have \r
+come and gone over the years, however there is one, called DX Spider, which \r
+provides a very similar user interface to that of AK1A, allows internet \r
+connections of users and node-to-node links, is actively supported by the \r
+author, and best of all is freeware.  FRC has started to convert several nodes \r
+to Spider.\r
+\r
+<P>\r
+One of the strengths of DX Spider is its very powerful and flexible DX spot \r
+filtering routines.  These filters are totally different from anything we \r
+learned how to do with PacketCluster, and along with their power and \r
+flexibility comes somewhat of a learning curve.  Hence the need for this \r
+primer.\r
+\r
+<P>\r
+In the following sections, you will learn that you can filter DX spots by:\r
+\r
+<tscreen><verb>\r
+Frequency of the spot\r
+Mode of the spot\r
+Callsign of the spot (by state, country, zone, or specific callsign)\r
+Callsign of the spotter (by state, country, zone, or specific callsign)\r
+Callsign of the source node of the spot (by state, country, zone, or specific callsign)\r
+</verb></tscreen>\r
+\r
+<P>\r
+With a few keystrokes, you can set up a filter for the CQ WW SSB contest, for \r
+example, that says that you only want to see SSB spots on the contesting bands.\r
+In the ARRL contest, it is simple to exclude spots for Ws and VEs.  For example,\r
+the best all around one-line filter for users in the CQ WW SSB contest would be:\r
+\r
+<tscreen><verb>\r
+accept/spots on contesthf/ssb\r
+</verb></tscreen>\r
+\r
+This simply reads, "I want to get spots on the hf contesting bands on SSB only."\r
+\r
+<P>\r
+Jim Samuels, W3BG, has put together this primer which not only provides complete\r
+details on the format for all the available filter commands, but also provides \r
+useful examples that can be simply typed in, without the need to learn the \r
+specifics.\r
+\r
+<P>\r
+I would be remiss in not thanking Charlie Carroll, K1XX, who gave a lot of \r
+encouragement and mentoring, and provided some of the material in this primer.\r
+\r
+<P>\r
+As always, your local sysop is available to help you out, if need be.  Don't \r
+hesitate to contact him for assistance.\r
+\r
+<P>\r
+73 - Dave N3RD\r
+\r
+<sect>Foreword\r
+\r
+<P>\r
+While attempting to learn how DXSpider filters work, I found that I had to glean\r
+bits and pieces of information from the DXSpider User Manual and Administrators \r
+Guide as well as various posted messages, help files and the program and \r
+data-base files themselves. Therefore, this is by no means an original work. I \r
+have used and in some cases copied from some of these sources. What I have tried\r
+to accomplish is to gather this scattered information, put it in one spot \r
+(please pardon the pun) so others might benefit. I would advise those with \r
+interest to go back and read these other sources at their leisure.\r
+\r
+\r
+<sect>Configuring Spot Filters\r
+\r
+<sect1>What is a spot filter?\r
+\r
+<P>\r
+A spot filter is one rule (a one line spot filter) or multiple rules (multiple \r
+line spot filters) that a user can setup with-in DXSpider to control which \r
+specific spot(s) are received at the shack console.  These configurable \r
+filters/rules reside on the DXSpider node and are stored along with the user's \r
+other information. Filters can be likened to a car wash . . . . . like cars; \r
+information goes in one end dirty, gets washed and comes out the other end \r
+cleaned.\r
+\r
+<P>\r
+All spots received from other users on the cluster, or those received from other\r
+nodes, start out life destined for each and every connected user's console. If \r
+spot filtering has been configured, all spots headed for that user first go into\r
+the filter input, are processed and sent out the other end of these filters \r
+before being sent to the user's console. Like a car wash, each spot goes through\r
+one or many stages depending on whether the user wanted a simple or a \r
+super-duper filtering job.  Along the way, the spot gets scrubbed, unwanted \r
+information removed or wanted information passed on and finally the wanted spots\r
+only are spit out the other end - nice and clean with all unwanted "stuff" sent \r
+down the drain to the infamous "bit-bucket."  \r
+\r
+\r
+<sect1>How can filters be used?  \r
+\r
+<P>\r
+For example, let's say our local user has never owned a microphone in this life \r
+and definitely doesn't want to see any of those useless SSB spots. Our user \r
+simply sets up a basic filter to reject any SSB spots before they reach the \r
+user's console.  Similarly, it's now the ARRL CW DX contest weekend, so not only\r
+does our user not want to see SSB spots, but now doesn't want to see any UHF, \r
+VHF, DATA or any US/Canadian "DX" spots. Our user now only accepts HF CW \r
+CONTEST spots and in the same rule rejects spots for W and VE stations. In these\r
+and many more situations, "filters are our friends."\r
+\r
+\r
+<sect>Types of spot filters used in DXSpider \r
+\r
+<P>\r
+Basic filter types are "accept", "reject", and "clear" where the following\r
+applies ...\r
+\r
+<tscreen><verb>\r
+Reject filters - any spots that match will be dumped, all others passed on.\r
+Accept filters - any spots that match are passed on, all others are dumped.\r
+Clear filters  - the filter slot(s) referenced will be cleared from the filter \r
+                 repository\r
+</verb></tscreen>\r
+\r
+For the most part we will use only reject and accept filters. These are the main\r
+filter types. Basically, reject means dump it and accept means take it and pass \r
+it on to the user. By nature, accept filters are more powerful than reject \r
+filters. A user can generally do with a one line accept rule what it could take \r
+many lines of reject rules to accomplish. However, the flip-side of this \r
+statement is that a series of reject filters are usually easier to administer \r
+and change.\r
+\r
+<sect1> Numbering lines and slots \r
+\r
+<P>\r
+There are ten usable filter slots in DXSpider. Each slot holds one reject and \r
+one accept rule. Therefore, each type filter can have up to ten lines of rules \r
+contained in these ten slots. The filter rules must be numbered sequentially, \r
+that is, 0-9 lines of reject filter rules and 0-9 lines of accept filter rules \r
+to correspond to their respective slot position. If no number is used, every \r
+line is assumed to be in slot 1 and the addition of a second filter line of the \r
+same type without a number will just over-write the first that was previously \r
+written to slot 1. (Why not slot 0? I don't know. This is the way it works.)\r
+\r
+<P>\r
+<em>Important:</em> The filter rules are applied in sequence, i.e., 0-9. If a \r
+line matches, action is taken on that line. The filter sequence acts on rules \r
+in the order listed.  It acts on the reject filter in each slot before acting \r
+on the accept filter contained in that slot. If the slot is completely blank or \r
+if a reject or accept filter line is missing in that slot it skips right over \r
+to the next filter rule in the sequence. A picture of a filter set might look \r
+like this ...\r
+\r
+<tscreen><verb>\r
+Execution Sequence     Slot Number     Filter Rule     \r
+       1                 Slot0         reject/spot 0 <pattern> \r
+       2                               accept/spot 0 <pattern> \r
+       3                 Slot1         reject/spot 1 <pattern> \r
+       4                               accept/spot 1 <pattern> \r
+       5                 Slot2         reject/spot 2 <pattern> \r
+       6                               accept/spot 2 <pattern> \r
+       .                 .     \r
+       19                Slot9         reject/spot 9 <pattern> \r
+       20                              accept/spot 9 <pattern>\r
+</verb></tscreen>\r
+\r
+\r
+<sect1>Reject before accept\r
+\r
+<P>\r
+This is not a good rule for life, but it makes sense for DXSpider filters. As \r
+a general rule, reject filter rules within a slot are always executed before \r
+accept filter rules.  There is a very good reason for this.  If a spot doesn't \r
+match a reject filter, the spot is passed to the next filter line in the set.  \r
+However, if a spot matches an accept filter, it is sent immediately to the user.\r
+\r
+<sect1>Using Multiple Reject Filter Rules\r
+\r
+<P>\r
+Another important concept to know is that you can do everything you want to do \r
+with multiple reject filters AND NO ACCEPT FILTERS.  By default, if a spot \r
+doesn't match any of the reject filter definitions, then the system considers \r
+you want the spots and sends it to you.  For example, the following two filters \r
+perform exactly the same thing ...\r
+\r
+<tscreen><verb>\r
+accept/spots on contesthf\r
+reject/spots not on contesthf\r
+</verb></tscreen>\r
+\r
+So, why would we choose one rather than the other?  Using reject syntax allows \r
+you to add another filter line easily, without disturbing the first line.  A \r
+real example will show us how this works.  Let's say that there is a RTTY \r
+contest coming up and you don't wish to see the RTTY spots.  Simply add another \r
+reject filter like this ...\r
+\r
+<tscreen><verb>\r
+reject/spots 2 on hf/rtty\r
+</verb></tscreen>\r
+\r
+Note that we need to specify that this is the second line of reject filter \r
+definitions.  Also, the "RTTY" sub-band specification has to be associated with \r
+a range of bands; it can't be specified all by itself.  So, we just add it \r
+behind the range of bands defined by "HF".  So in our example, if the user does \r
+a show/filter, he will be told by the Spider that his current filters are ...\r
+\r
+<tscreen><verb>\r
+filter 1 reject not on contesthf\r
+filter 2 reject on hf/rtty\r
+</verb></tscreen>\r
+\r
+With these filters set up, if a spot comes through on 14085 kHz, the filter \r
+works like this ...\r
+\r
+<tscreen><verb>\r
+filter1:    Is spot NOT on the HF contest bands?  No.  \r
+            The spot doesn't match the filter definition, so pass it to \r
+            next filter.\r
+\r
+filter2:    Is spot within the freq. Range defined for RTTY?  Yes.  \r
+            Since the spot matches the filter definition, the spot is rejected \r
+            and the users never see it.\r
+</verb></tscreen>\r
+\r
+Had the frequency of the spot been 14025, then the spot would have not matched \r
+the filter2 definition either, would have passed through all the filters, and \r
+would have been sent to the user at the end of the filter set.  Also, had the \r
+spot been on 10 MHz, it would have met the definition of filter1, been rejected \r
+immediately, and the filtering process would have stopped before processing \r
+filter2.\r
+\r
+<P>\r
+In addition, the filtering system has a rough time handling accept filters \r
+followed by reject filters and adds inefficiency to the processing. \r
+(Note: a reject as a "qualifier" to an accept rule in an accept filter line is \r
+okay as we will see below)\r
+\r
+\r
+<sect1>A very useful command \r
\r
+<P>\r
+To see all active filters in use at any time, just type the following command\r
+...\r
+\r
+<tscreen><verb>\r
+show/filter\r
+</verb></tscreen>\r
+\r
+<sect1>Case does not matter\r
+\r
+<P>\r
+In entering any filter - case does not matter. Upper, lower, or mixed case \r
+will not effect how filters work or perform.\r
+\r
+<sect1>Qualifiers\r
+\r
+<P>\r
+Logical operands can be used in rule sets to combine multiple actions or \r
+qualify others. These are ...\r
+\r
+<tscreen><verb>\r
+and    a and b= action\r
+not    a not b= action\r
+or     a and not (c or b)= action\r
+</verb></tscreen>\r
+\r
+Note: as a general rule when or is used you must also use parentheses (). \r
+We will see how these can be used in examples later.\r
+\r
+<sect1>Comma Separation\r
+\r
+<P>\r
+Any command can have multiple pattern variables if commas separate them. \r
+For example ...\r
+\r
+<tscreen><verb>\r
+reject/spot call_state nj,ny,pa,de,md\r
+</verb></tscreen>\r
+\r
+<sect>Reject filters \r
+\r
+<P>\r
+A reject filter line means that if a spot matches, send it to the trash, dump \r
+it, do not send it down the line to the next rule or to the user, but pass-on \r
+all other spots that do not match. \r
+\r
+<tscreen><verb>\r
+Syntax:        reject/spots [0-9]  <pattern>   \r
+</verb></tscreen>\r
+\r
+Any of the following patterns may be used in this line ...\r
+\r
+<tscreen><verb>\r
+freq <range>\r
+on <range>       \r
+info <string>\r
+call <prefixes>\r
+call_dxcc <numbers>\r
+call_itu <numbers>\r
+call_zone <numbers>\r
+call_state <state 2-letter abbreviations>\r
+by <prefixes>\r
+by_dxcc <numbers>\r
+by_itu <numbers>\r
+by_zone <numbers>\r
+by_state <state 2-letter abbreviations>\r
+origin <prefixes> Used primarily be SYSOPS,  not by users and not discussed.\r
+channel <prefixes> Used primarily be SYSOPS,  not by users and not discussed.\r
+</verb></tscreen>\r
+\r
+<sect>Filters to reject spots based on frequency\r
+\r
+<P>\r
+<tscreen><verb>\r
+Syntax:        reject/spot [0-9] freq <range>  \r
+\r
+or\r
+\r
+reject/spot [0-9] on <range>\r
+</verb></tscreen>\r
+\r
+Important: both <em>freq</em> and <em>on</em> are exactly the same and can be \r
+used interchangeably - most persons use <em>on</em> (less typing.)\r
+\r
+<P>\r
+For range, you can specify a frequency like 7040, a range of frequencies like \r
+0/30000 ( the whole HF band) or use any of the "band" or "region" names defined \r
+in the show/bands command.\r
+\r
+<sect1>Bands Available\r
+\r
+<P>\r
+<tscreen><verb>\r
+73kHz:                 71 -> 75\r
+136kHz:                135 -> 138\r
+160m:          1800 -> 2000\r
+80m:           3500 -> 4000\r
+60m:           5258 -> 5407\r
+40m:           7000 -> 7400\r
+30m:           10100 -> 10150\r
+20m:           14000 -> 14350\r
+17m:           18068 -> 18168\r
+15m:           21000 -> 21450\r
+12m:           24890 -> 24990\r
+10m:           28000 -> 29700\r
+military:      29700 -> 50000, 230000 -> 420000\r
+band1:                 47000 -> 49999, 52000 -> 68000\r
+6m:            50000 -> 52000\r
+pmrlow:        68000 -> 87500\r
+4m:            70000 -> 70500\r
+band2:                 87500 -> 108000\r
+aircraft:      108000 -> 137500\r
+pmrmid:        138000 -> 165000\r
+2m:            144000 -> 148000\r
+pmrhigh:       165000 => 174000\r
+band3:                 176000 => 230000\r
+220:           220000 => 222000\r
+pmruhf:        425000 => 430000, 440000 => 471000\r
+70cm:          430000 => 450000\r
+band4:                 471000 => 550000\r
+band5:                 550000 => 868000\r
+23cm:          1240000 => 1325000\r
+13cm:          2310000 => 2450000\r
+9cm:           3400000 => 3475000\r
+6cm:           5650000 => 5850000\r
+3cm:           10000000 => 10500000\r
+12mm:          24000000 => 24250000\r
+6mm:           47000000 => 47200000\r
+</verb></tscreen>\r
+\r
+<sect1>Regions Available\r
+\r
+<P>\r
+<tscreen><verb>\r
+all:           73khz 136khz 160m 80m 60m 40m 30m 20m 17m 15m 12m 10m 6m 4m \r
+                2m 220 70cm 23cm 9cm 6cm 3cm 12mm 6mm\r
+vhfradio:      band1 band2\r
+vhf:           6m 4m 2m 220\r
+contesthf:     160m 80m 40m 20m 15m 10m\r
+warc:          60m 30m 17m 12m\r
+pmr:           pmrlow pmrmid pmrhigh pmruhf\r
+spe:           10m 6m 4m 2m\r
+shf:           23cm 13cm 9cm 6cm 3cm\r
+vlf:           73khz 136khz\r
+uhftv:         band4 band5\r
+hf:            160m 80m 60m 40m 30m 20m 17m 15m 12m 10m\r
+vhftv:         band1 band3\r
+uhf:           70cm 23cm\r
+</verb></tscreen>\r
+\r
+<sect1>Examples\r
+\r
+<P>\r
+The following line will reject spots on 7,040 kHz and pass all others.\r
+\r
+<tscreen><verb>\r
+reject/spot 0 freq 7040\r
+</verb></tscreen>\r
+\r
+The next line will reject spots from 0 to 30,000 kHz and pass on all others.\r
+       \r
+<tscreen><verb>\r
+reject/spot 1 on 0/30000\r
+</verb></tscreen>\r
+\r
+This next will trash all spots in the frequency range 144000 -> 148000 kHz and \r
+pass on all others.\r
+\r
+<tscreen><verb>\r
+reject/spot 2 freq 2m\r
+</verb></tscreen>\r
+\r
+This rule will reject all spots on 6m, 4m, 2m, and 220  and pass on all\r
+others.\r
+\r
+<tscreen><verb>\r
+reject/spot 3 on vhf\r
+</verb></tscreen>\r
+\r
+This rule will dump all spots on the 160m, 80m, 60m, 40m, 30m, 20m, 17m, 15m,\r
+12m, 10m bands and all spots on 70cm and  23cm bands passing all other spots.\r
+\r
+<tscreen><verb>\r
+reject/spot 4 freq hf and freq uhf\r
+</verb></tscreen>\r
+\r
+This is a special spot to be used only by members of the Yankee Clipper\r
+Contest Club during contest weekends. Hi!\r
+\r
+<tscreen><verb>\r
+reject/spot on all\r
+</verb></tscreen>\r
+\r
+<sect1>Sub-bands as part of range\r
+\r
+<P>\r
+In conjunction with range, you can use the following sub-band names,\r
+\r
+<tscreen><verb>\r
+cw, rtty, data, ssb, and sstv\r
+</verb></tscreen>\r
+\r
+by using a forward-slash [(band or region)/sub-band] as part of the range \r
+definition.  For example ...\r
+\r
+<P>\r
+This rule will reject all HF phone spots passing on all others\r
+\r
+<tscreen><verb>\r
+reject/spot 0 freq hf/ssb\r
+</verb></tscreen>\r
+\r
+This filter rule will reject all HF CW spots but will not reject DATA and RTTY\r
+spots in the CW range and will pass on all other spots.\r
+\r
+<tscreen><verb>\r
+reject/spot 1 on hf/cw and not (on hf/data or on hf/rtty)\r
+</verb></tscreen>\r
+\r
+<sect1>Filters to reject spots based on the "info" data in the spot\r
+\r
+<P>\r
+\r
+<tscreen><verb>\r
+Syntax:        reject/spot [0-9] info <string>\r
+</verb></tscreen>\r
+\r
+This filter is used to key on information contained in the information section \r
+of the spot. One could use this to reject any spots containing IOTA, QSL OP or \r
+any other "key-word" used in the information string of the spot. \r
+\r
+<P>\r
+Examples ...\r
+\r
+<P>\r
+This filter will reject spots containing IOTA information and pass on all\r
+others\r
+\r
+<tscreen><verb>\r
+reject/spot 0 info IOTA\r
+</verb></tscreen>\r
+\r
+This filter will reject all general CW spots on HF, but will still permit any\r
+HF CW spots that contain iota information in addition to passing all others.\r
+\r
+<tscreen><verb>\r
+reject/spot 1 on hf/cw and not info iota\r
+</verb></tscreen>\r
+\r
+This next filter will reject spots asking or containing QSL information and \r
+pass on all others\r
+\r
+<tscreen><verb>\r
+reject/spot 2 info QSL\r
+</verb></tscreen>\r
+\r
+Note: The following series of filters are based on <em>call</em> and\r
+<em>by</em>.  Call always references the call sign of the spotted DX station.  \r
+By always references the call sign of the spotting station.\r
+\r
+<sect1>Filters to reject spots based on call\r
+\r
+<P>\r
+<tscreen><verb>\r
+Syntax:        reject/spot [0-9] call <prefixes>  \r
+</verb></tscreen>\r
+\r
+This filter is misleading in a way. It is strictly based on the spotted call \r
+sign letters or numbers entered and not based on countries or DXCC entities. \r
+One could filter on JIMSAM62 if desired.\r
+\r
+<P>\r
+Examples ...\r
+\r
+<P>\r
+This filter will reject spots for G1AAA, GJ2BBB, and GW3CCC and will pass on\r
+spots for M0AAA.\r
+\r
+<tscreen><verb>\r
+reject/spot 0 call G\r
+</verb></tscreen>\r
+\r
+This next filter will reject spots for PA3AAA and pass on spots for PB4BBB\r
+\r
+<tscreen><verb>\r
+reject/spot 1 call PA\r
+</verb></tscreen>\r
+\r
+This filter will reject spots for K1AA, KC4AAA,  and KH6DDD and pass on spots\r
+for W3BG and N3RD\r
+\r
+<tscreen><verb>\r
+reject/spot 2 call K\r
+</verb></tscreen>\r
+\r
+<sect1>Filters to reject spots based on call_dxcc\r
+\r
+<P>\r
+<tscreen><verb>\r
+Syntax:  reject/spot [0-9] call_dxcc <numbers or prefixes>   \r
+</verb></tscreen>\r
+\r
+This filter is based on DXCC entities and uses either the country prefix or \r
+the DXCC entity number, found by using the command <em>show/prefix</em>.\r
+\r
+<P>\r
+As in ...\r
+\r
+<tscreen><verb>\r
+show/prefix w\r
+W DXCC: 226 ITU: 7 CQ: 4 LL: 43 0 N 87 54 W (W, United-States-W)\r
+</verb></tscreen>\r
+\r
+<tscreen><verb>\r
+show/prefix VE\r
+VE DXCC: 197 ITU: 9 CQ: 5 LL: 45 18 N 66 6 W (VE, New-Brunswick-VE)\r
+DXCC: 197 ITU: 9 CQ: 5 LL: 48 30 N 56 0 W (VE, Newfoundland-VE)\r
+DXCC: 197 ITU: 9 CQ: 5 LL: 44 36 N 63 36 W (VE, Nova-Scotia-VE)\r
+DXCC: 197 ITU: 4 CQ: 5 LL: 45 30 N 73 36 W (VE, Quebec-VE)\r
+DXCC: 197 ITU: 4 CQ: 4 LL: 43 42 N 79 24 W (VE, Ontario-VE)\r
+DXCC: 197 ITU: 3 CQ: 4 LL: 49 54 N 97 6 W (VE, Manitoba-VE)\r
+DXCC: 197 ITU: 3 CQ: 4 LL: 50 30 N 104 36 W (VE, Saskatchewan-VE)\r
+DXCC: 197 ITU: 2 CQ: 3 LL: 51 0 N 114 6 W (VE, Alberta-VE)\r
+DXCC: 197 ITU: 2 CQ: 3 LL: 49 18 N 123 6 W (VE, British-Columbia-VE)\r
+DXCC: 197 ITU: 75 CQ: 1 LL: 60 42 N 135 6 W (VE, Yukon-VE)\r
+</verb></tscreen>\r
+\r
+Example ...\r
+\r
+<P>\r
+This spot filter will  reject all spots for US and Canada stations and pass on\r
+all others.\r
+\r
+<tscreen><verb>\r
+reject/spot 0 call_dxcc 226,197\r
+</verb></tscreen>\r
+\r
+This spot filter will  reject all spots for US and Canada stations and pass on\r
+all others including the special event station, W2WTC, who I want to work the\r
+next time he is on the air.\r
+\r
+<tscreen><verb>\r
+reject/spot 1 call_dxcc w,ve not call w2wtc\r
+</verb></tscreen>\r
+\r
+<sect1>Filters to reject spots based on call_itu\r
+\r
+<P>\r
+Similarly, call_itu and call_zone use ITU regions that can also be obtained \r
+using the show/prefix &lt;prefix&gt; command (see above.)\r
+\r
+<tscreen><verb>\r
+Syntax:  accept/spot [0-9] call_itu <numbers>  \r
+</verb></tscreen>\r
+\r
+Example ...\r
+\r
+<P>\r
+This spot filter will reject all spots for ITU region 7 and pass on all\r
+others.\r
+\r
+<tscreen><verb>\r
+reject/spot 0  call_itu 7\r
+</verb></tscreen>\r
+\r
+<sect1>Filters to reject spots based on call_zone\r
+\r
+<P>\r
+<tscreen><verb>\r
+Syntax:  reject/spot [0-9] call_zone <numbers>  \r
+</verb></tscreen>\r
+\r
+This filter is based on CQ zones and uses the CQ zone number found by using the \r
+command <em>show/prefix</em> (see above.)\r
+\r
+<P>\r
+Example ...\r
+\r
+<P>\r
+This spot filter will  reject all spots for CQ zone 5 and pass on all others.\r
+\r
+<tscreen><verb>\r
+reject/spot 0 call_zone 5\r
+</verb></tscreen>\r
+\r
+<sect1>Filters to reject spots based on call_state\r
+\r
+<P>\r
+<tscreen><verb>\r
+Syntax:  reject/spot [0-9] call_state <state2-letter abbreviations>\r
+</verb></tscreen>\r
+\r
+This filter is based on the state of the call spotted, for those call signs \r
+contained in the usdb database.  Use the command <em>show/usdb</em> to see an \r
+example of a listing in the database, like this ...\r
+\r
+<tscreen><verb>\r
+show/usdb k3ww\r
+K3WW    -> Perkasie, PA\r
+</verb></tscreen>\r
+\r
+Example ...\r
+\r
+<P>\r
+This spot filter will  reject all spots for stations in the Mid-Atlantic\r
+states and pass on all others.\r
+\r
+<tscreen><verb>\r
+reject/spot call_state nj,ny,pa,de,md\r
+</verb></tscreen>\r
+\r
+<sect1>Filters to reject spots based on by\r
+\r
+<P>\r
+<em>by</em> filters are similar to and function exactly as call filters except \r
+that they act on the spotting station call sign and not the spotted call sign.\r
+\r
+<P>\r
+So ...\r
+\r
+<P>\r
+This filter is similar to and functions like the call &lt;prefixes&gt;      \r
+(See above) except that it rejects spots generated by the spotting call sign \r
+and passes all other spots.\r
+\r
+<tscreen><verb>\r
+Syntax:  reject/spot [0-9] by <prefixes>  \r
+</verb></tscreen>\r
+\r
+This next filter is based on DXCC entities and uses the DXCC entity number \r
+found by using the command  show/prefix &lt;prefix&gt; and it rejects spots \r
+generated within the spotting DXCC entity and passes all other spots.\r
+\r
+<tscreen><verb>\r
+Syntax:  reject/spot [0-9] by_dxcc <numbers>\r
+</verb></tscreen>\r
+\r
+This next filter is based on ITU regions and uses the ITU region number found by\r
+using the command <em>show/prefix</em> (see above), except that it rejects\r
+spots generated by a spotting call sign within the ITU region and passes all\r
+other spots.\r
+\r
+<tscreen><verb>\r
+Syntax:  reject/spot [0-9] by_itu <numbers>\r
+</verb></tscreen>\r
+\r
+This filter is based on CQ zones and uses the CQ zone number found by using\r
+the command <em>show/prefix</em> (see above), except that it rejects spots\r
+generated by a spotting call sign within the CQ zone and passes all other\r
+spots.\r
+\r
+<tscreen><verb>\r
+Syntax:  reject/spot [0-9] by_zone <numbers>\r
+</verb></tscreen>\r
+\r
+This filter is based on the state of the spotting station found by using the\r
+command <em>show/usdb</em> and passes all other spots.\r
+\r
+<tscreen><verb>\r
+Syntax:  reject/spot [0-9] by_state <state2-letter postal codes \r
+</verb></tscreen>\r
+\r
+<sect>Accept filters \r
+\r
+<P>\r
+An accept filter line means that if a spot matches pass it on to the user, send \r
+it down the line to the next rule or to the user, and trash, dump, all other \r
+spots that do not match to the next filter line. \r
+\r
+<tscreen><verb>\r
+Syntax:        accept/spots [0-9]  <pattern>   \r
+</verb></tscreen>\r
+\r
+Any of the following patterns may be used in this line ...\r
+\r
+<tscreen><verb>\r
+freq <range>\r
+on <range>       \r
+info <string>\r
+call <prefixes>\r
+call_dxcc <numbers>\r
+call_itu <numbers>\r
+call_zone <numbers>\r
+call_state <state2-letter abbreviations>\r
+by <prefixes>\r
+by_dxcc <numbers>\r
+by_itu <numbers>\r
+by_zone <numbers>\r
+by_state <state2-letter abbreviations>\r
+origin <prefixes>   Used primarily be SYSOPS,  not by users and not discussed.\r
+channel <prefixes> Used primarily be SYSOPS,  not by users and not discussed.\r
+</verb></tscreen>\r
+\r
+Using these patterns, we can accept spots based upon ...\r
+\r
+<tscreen><verb>\r
+Frequency of the spot\r
+Call sign of the spot (country or zone)\r
+Call sign of the spotter (country or zone)\r
+Contents of the "information field" which comes with the spot\r
+</verb></tscreen>\r
+\r
+<sect1>Filters to accept spots based on frequency\r
+\r
+<P>\r
+<tscreen><verb>\r
+Syntax:        accept/spot [0-9] freq <range>  \r
+\r
+or\r
+\r
+accept/spot [0-9] on <range>\r
+</verb></tscreen>\r
+\r
+Important: as noted before, both <em>freq</em> and <em>on</em> are exactly \r
+the same and can be used interchangeably.\r
+\r
+<P>\r
+For range, you can specify a frequency like 7040, a range of frequencies \r
+like 0/30000 ( the whole HF spectrum) or use any of the band/region names \r
+defined in the SHOW/BANDS command (see above).\r
+\r
+<P>\r
+Examples...\r
+\r
+<P>\r
+This will pass on a HF spots only from 0 to 30,000 kHz and dump all others.\r
+\r
+<tscreen><verb>\r
+accept/spot 1 on 0/30000 \r
+</verb></tscreen>\r
+\r
+This passes on all spots in the frequency range 144000 -> 148000 kHz and trash\r
+all others.\r
+\r
+<tscreen><verb>\r
+accept/spot 2 freq 2m\r
+</verb></tscreen>\r
+\r
+This rule will only pass on spots on 6m, 4m, 2m, and 220 and reject all\r
+others.\r
+\r
+<tscreen><verb>\r
+accept/spot 3 on vhf\r
+</verb></tscreen>\r
+\r
+This rule will pass on all spots on the 160m, 80m, 60m, 40m, 30m, 20m, 17m,\r
+15m, 12m, 10m bands and all spots on 70cm and 23cm bands only. All other\r
+spots are trashed.\r
+\r
+<tscreen><verb>\r
+accept/spot 4 freq hf and freq uhf\r
+</verb></tscreen>\r
+\r
+<sect1>Sub-bands as part of range\r
+\r
+<P>\r
+In conjunction with range, you can use the following sub-band names: CW, RTTY, \r
+DATA, SSB, and SSTV by using a back-slash [(band or region)/sub-band] as part \r
+of the range definition. \r
+\r
+<P>\r
+Examples ...\r
+\r
+<P>\r
+This rule will only accept and pass on HF phone spots rejecting all others\r
+\r
+<tscreen><verb>\r
+accept/spot 0 freq hf/ssb\r
+</verb></tscreen>\r
+\r
+This filter rule will accept all HF CW spots but will not include DATA and\r
+RTTY spots in the CW range. In addition all other spots will be dumped.\r
+\r
+<tscreen><verb>\r
+accept/spot 1 on hf/cw and not (on hf/data or on hf/rtty)\r
+</verb></tscreen> \r
+\r
+<sect1>Filters to accept spots based on info\r
+\r
+<P>\r
+<tscreen><verb>\r
+Syntax:        accept/spot [0-9] info <string>\r
+</verb></tscreen>\r
+\r
+This filter is used to key on information contained in the information section \r
+of the spot. One could use this to accept any spots containing IOTA, QSL OP or \r
+any other "key-word" used in the information string of the spot. \r
+\r
+<P>\r
+Examples ...\r
+\r
+<P>\r
+This filter will accept spots containing IOTA information only and reject all\r
+others\r
+\r
+<tscreen><verb>\r
+accept/spot 0 info IOTA\r
+</verb></tscreen>\r
+\r
+This filter will accept only 10m SSB spots, but will still permit any spots\r
+that contain iota information in addition - rejecting all other spots.\r
+\r
+<tscreen><verb>\r
+accept/spot 1 on 10m/ssb and info iota\r
+</verb></tscreen>\r
+\r
+This next filter will accept spots asking or containing QSL information and dump\r
+all other spots\r
+\r
+<tscreen><verb>\r
+accept/spot 2 info QSL\r
+</verb></tscreen>\r
+\r
+Note: The following series of filters are based on <em>call</em> and \r
+<em>by</em>.  Call always references the call sign of the spotted DX station.  \r
+By always references the call sign of the spotting station.\r
+\r
+<sect1>Filters to accept spots based on call\r
+\r
+<P>\r
+<tscreen><verb>\r
+Syntax:        accept/spot [0-9] call <prefixes> \r
+</verb></tscreen>\r
+\r
+This filter is misleading in a way. It is strictly based on the spotted call \r
+sign letters or numbers entered and not based on countries or DXCC entities. \r
+\r
+<P>\r
+Examples ...\r
+\r
+<P>\r
+This filter will accept spots for G1AAA, GJ2BBB, and GW3CCC and reject all\r
+others, including M0AAA.\r
+\r
+<tscreen><verb>\r
+accept/spot 0 call G\r
+</verb></tscreen>\r
+\r
+This next filter will accept spots for PA3AAA and reject spots for PB4BBB as \r
+well as all others.\r
+\r
+<tscreen><verb>\r
+accept/spot 1 call PA\r
+</verb></tscreen>\r
+\r
+This filter will accept spots for call signs beginning with "K", i.e., K1AA,\r
+KC4AAA,  KH6DDD and reject spots for W3BG and N3RD as well as all other\r
+spots.\r
+\r
+<tscreen><verb>\r
+accept/spot 2 call K\r
+</verb></tscreen>\r
+\r
+<sect1>Filters to accept spots based on call_dxcc\r
+\r
+<P>\r
+<tscreen><verb>\r
+Syntax:  accept/spot [0-9] call_dxcc <numbers or prefixes>\r
+</verb></tscreen>\r
+\r
+This filter is based on DXCC entities and uses either the country prefixes or \r
+the DXCC entity number found by using the command <em>show/prefix</em>. See \r
+example of <em>show/prefix</em> above.\r
+\r
+<P>\r
+Examples ...\r
+\r
+<tscreen><verb>\r
+accept/spot 0 call_dxcc 226,197  \r
+\r
+or\r
+\r
+accept/spot 0 call_dxcc ve,w \r
+</verb></tscreen>\r
+\r
+(Both will work) These spot filters will accept all spots for US and Canada \r
+stations and trash all others.\r
+\r
+<P>\r
+The folowing spot filter will accept all spots for US stations and yet reject \r
+any spots for W3FM who is always being spotted by Europeans and filling up my\r
+screen.\r
+\r
+<tscreen><verb>\r
+accept/spot 1 call_dxcc w not call w3fm\r
+</verb></tscreen>\r
+\r
+<sect1>Filters to accept spots based on call_itu\r
+\r
+<P>\r
+Similarly, call_itu and call_zone use ITU regions that can also be obtained \r
+using the <em>show/prefix</em> command (see above.)\r
+\r
+<tscreen><verb>\r
+Syntax:  accept/spot [0-9] call_itu <numbers>  \r
+</verb></tscreen>\r
+\r
+Example ...\r
+\r
+<P>\r
+This spot filter will  accept all spots for  ITU region 7 and reject all\r
+others.\r
+\r
+<tscreen><verb>\r
+accept/spot 0  call_itu 7\r
+</verb></tscreen>\r
+\r
+<sect1>Filters to accept spots based on call_zone\r
+\r
+<P>\r
+<tscreen><verb>\r
+Syntax:  accept/spot [0-9] call_zone <numbers>\r
+</verb></tscreen>\r
+\r
+This filter is based on CQ zones and uses the CQ zone number found by using \r
+the command <em>show/prefix</em> (see above.)\r
+\r
+<P>\r
+Example ...\r
+\r
+<P>\r
+This spot filter will  accept all spots for CQ zone 5 and reject all others.\r
+\r
+<tscreen><verb>\r
+accept/spot 0 call_zone 5\r
+</verb></tscreen>\r
+\r
+<sect1>Filters to accept spots based on call_state\r
+\r
+<P>\r
+<tscreen><verb>\r
+Syntax:  accept/spot [0-9] call_state <state2-letter postal codes>  \r
+</verb></tscreen>\r
+\r
+This filter is based on state of the call spotted for those call signs contained\r
+in the usdb database.  \r
+\r
+<P>\r
+Example ...\r
+\r
+<P>\r
+This spot filter will  accept all spots of stations located in the\r
+Commonwealth of Pennsylvania and reject all others. It's the PA QSO Party\r
+Weekend.\r
+\r
+<tscreen><verb>\r
+accept/spot 0  call_state pa\r
+</verb></tscreen>\r
+\r
+<sect1>Filters to accept spots based on by\r
+\r
+<P>\r
+<em>by</em> filters are similar to and function exactly as call filters except \r
+that they act on the spotting station call sign and not the spotted call sign\r
+\r
+<P>\r
+So ...\r
+\r
+<P>\r
+This filter is similar to and functions like the  call &lt;prefixes&gt; (See above)\r
+except that it accepts spots generated by the spotting call sign and dumps all\r
+other spots.\r
+\r
+<tscreen><verb>\r
+Syntax:        accept/spot [0-9] by <prefixes>\r
+</verb></tscreen>\r
+\r
+This filter is based on DXCC entities and uses the DXCC entity number found\r
+by using the command <em>show/prefix</em> and it accepts spots generated\r
+within the spotting DXCC entity and rejects other spots.\r
+\r
+<tscreen><verb>\r
+Syntax:  accept/spot [0-9] by_dxcc <numbers>\r
+</verb></tscreen>\r
+\r
+This next filter is based on ITU regions and uses the ITU region number found by\r
+using the command <em>show/prefix</em> (see above), except that it accepts\r
+spots generated by a spotting call sign within the ITU region and rejects all\r
+other spots.\r
+\r
+<tscreen><verb>\r
+Syntax:  accept/spot [0-9] call_itu <numbers>\r
+</verb></tscreen>\r
+\r
+This filter is based on CQ zones and uses the CQ zone number found by using\r
+the command <em>show/prefix</em> (see above), except that it accepts spots\r
+generated by a spotting call sign within the CQ zone and rejects all other\r
+spots.\r
+\r
+<tscreen><verb>\r
+Syntax:  accept/spot [0-9] call_zone <numbers>\r
+</verb></tscreen>\r
+\r
+This filters is based on the state location of the spotting station found\r
+by using the command <em>show/usdb</em> and accepts only those spots\r
+generated by stations from the states(s) specified rejecting all other spots.\r
+\r
+<tscreen><verb>\r
+Syntax:  accept/spot [0-9] by_state <state2-letter postal codes>\r
+</verb></tscreen>\r
+\r
+<sect>Clear filters \r
+\r
+<P>\r
+A clear filter line will delete the slot number specified or all slots and \r
+consequently all filters that have been created by a user.\r
+\r
+<P>\r
+<tscreen><verb>\r
+Syntax:        clear/spots [0-9]        \r
+\r
+or\r
+\r
+clear/spots all\r
+</verb></tscreen>\r
+\r
+Example ...\r
+\r
+<P>\r
+This will clear any or both accept and reject spot filters in slot 2.\r
+\r
+<tscreen><verb>\r
+clear/spots 2\r
+</verb></tscreen>\r
+\r
+This will clear each and every user spot filter  - it will clear out all\r
+filters in all slots.\r
+\r
+<tscreen><verb>\r
+clear/spots all\r
+</verb></tscreen>\r
+\r
+Note - if you just want to replace a spot filter, enter the rule again (with a \r
+line number) and it will overwrite the previous filter in that slot. If you \r
+forget the line number, it will overwrite the filter in slot 1 by default.\r
+\r
+<sect>Some Practice Examples \r
+\r
+<P>\r
+The proceeding sections have discussed the basics of DXSpider filters. The \r
+following are some examples utilizing basic filters and some not so basic \r
+combination filters.\r
+\r
+<P>\r
+Lets say you only want to see any of those 6m, 2m, or 220 spots.\r
+\r
+<tscreen><verb>\r
+reject/spot 0 on uhf\r
+</verb></tscreen>\r
+\r
+As a good stand alone contest filter ...\r
+\r
+<tscreen><verb>\r
+accept/spot on contesthf/<mode> where mode is either CW, SSB, or RTTY\r
+</verb></tscreen>\r
+\r
+Note: since a slot number is not included slot 1 is assumed.\r
+\r
+<P>\r
+It's a CW contest weekend so you don't want to see any WARC band or SSB spots.\r
+\r
+<tscreen><verb>\r
+accept/spots 0 on contesthf/cw\r
+</verb></tscreen>\r
+\r
+It's the same weekend, but you also don't want to see any US or Canadian spots, \r
+or any rtty and data spots that are included in the CW portion of the bands. \r
+Any of the following will accomplish the same result:\r
+\r
+<tscreen><verb>\r
+reject/spot 0  not on contesthf/cw\r
+reject/spot 1 on contesthf/data\r
+reject/spot 2 call_dxcc w,ve\r
+\r
+or\r
+\r
+accept/spot 0 on contesthf/cw and not (call_dxcc 226,197 or on contesthf/data)\r
+\r
+or\r
+\r
+accept/spot 0 on contesthf/cw and not (call_dxcc w,ve or on contesthf/data)\r
+</verb></tscreen>\r
+\r
+The following two discussions are from the Administrator Manual and are good \r
+"textbook" examples: \r
+\r
+<tscreen><verb>\r
+rej/spot on hf/cw\r
+acc/spot on 0/30000\r
+acc/spot 2 on 50000/1400000 and (by_zone 14,15,16 or call_zone 14,15,16)\r
+</verb></tscreen>\r
+\r
+Note that accept and reject can be abbreviated. Also, the first filter has not \r
+been specified with a number. This will automatically be assumed to be number 1.\r
+In this case, we have said to reject all HF spots in the CW section of the bands\r
+but accept all others at HF. Also accept anything in VHF and above that is \r
+spotted in or by operators in the zones 14, 15 and 16. Each filter slot actually\r
+has a 'reject' rule slot and an 'accept' rule slot. The reject rule slot is \r
+executed BEFORE the accept rule slot. \r
+\r
+<P>\r
+It was mentioned earlier that after a reject test that doesn't match, the \r
+default for following tests is 'accept', the reverse is true for 'accept'. In \r
+the example what happens is that the reject is executed first, any non hf/cw \r
+spot is passed to the accept line, which lets through everything else on HF. \r
+The next filter line lets through just VHF/UHF spots from EU. \r
+\r
+<P>\r
+If you set a reject filter like this ... \r
+\r
+<tscreen><verb>\r
+reject/spots on hf/cw\r
+</verb></tscreen>\r
+\r
+Then you will get everything except HF CW spots. You could make this single \r
+filter even more flexible. For example, if you are interested in IOTA and will \r
+work it on CW even though normally you are not interested in CW, then you could \r
+say ...\r
+\r
+<tscreen><verb>\r
+reject/spots on hf/cw and not info iota\r
+</verb></tscreen>\r
+\r
+But in that case you might only be interested in iota and say,\r
+\r
+<tscreen><verb>\r
+accept/spots not on hf/cw or info iota\r
+</verb></tscreen>\r
+\r
+which achieves exactly the same thing.  Note that since slot numbers were \r
+not used, slot 1 is assumed.\r
+\r
+<sect>Contacts\r
+\r
+<P>\r
+This Primer is a work in progress. Additional features and filters are added \r
+from time to time by Dirk Koopman, G1TLH, the developer behind DXSpider. So \r
+periodic revisions will be made to this document. If you have any questions, \r
+comments, or suggestions relative to this primer on spot filtering, please \r
+contact, \r
+\r
+<tscreen><verb>\r
+Jim Samuels, W3BG jimsam@comcast.net \r
+\r
+or \r
+\r
+Dave Hawes, N3RD (W3FRC Cluster SYSOP) dave.n3rd@comcast.net\r
+</verb></tscreen>\r
+\r
+</article>\r