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