uSmartDigi for Amateur Radio Packet Filtering Rules Version 2.83b and later. Rich Painter, ab0vo (c) Copyright 2004 - 2009 Painter Engineering, Inc. File format Action Command Args... Where Action and Command can be any case combination. Abbreviations exist for both Actions and Commands. Specify them to the extent that they are not ambiguous. Text following the args is ignored and can serve as comments. Action, Command may be preceeded or followed by any amount of white space. All Latitudes and Longitudes are specified in any of 3 formats (see below). White space is any combination of spaces and tabs. White lines are ignored. Lines may start with white space. Call signs and digipath components can be entered in any case. Comments start with the characters [#/;] and are ignored. Basic operation For every packet that is APRS the ordered list of rules are checked. If a packet matches a rule then the action (Drop or Pass) is taken. If a packet does not match any rule then it is implicitly Pass by default unless changed with the Implicit Command. Actions: drop do not repeat the packets that match this rule pass repeat the packets that match this rule Commands: implicit This has no arguments. This changes the implicit rule to that of Drop or Pass. Only one of these can be in the rule file. source Specify a source call sign (complete or partial) with optional trailing * as a wild-card matching operator. The argument can be a single * to match everything. Format {action} source call_sign[*] destination Specify a destination string with optional trailing * as a wild-card matching operator. The argument can be a single * to match everything. Valid APRS destination strings can be found in the APRS Spec v1.0.1 page 13. Format {action} destination dst_string[*] digi Specify a digipath component (complete or partial) with optional trailing * as a wild-card matching operator. This is typically a call sign but may be any string tHat might appear in the digipath. Format {action} digi Match_Index Match_String Where Match_Index is 0 or * to match any of the digis 1 to 8 to match a specific digi in this position Match_String is * to match any digi xxx* wild-card match xxx anything xxx-n to match the digi xxx AND ssid n circle Specify a circular zone of a specific radius in statute miles centered on a specified latitude and longitide. The rule applies INSIDE the circle. Format {action} circle radius Latitude_center, Longitude_center Where the Latitude argument MUST be followed by a comma. compass Specify a compass direction centered on a specified latitude and longitide. Format {action} compass direction Latitude_center, Longitude_center Where the Latitude argument MUST be followed by a comma and the Direction identifier is one of the following: ID Direction N everything N S everything S E everything E W everything W NE everything in NE quadrant SE everything in SE quadrant SW everything in SW quadrant NW everything in NW quadrant rectangle Specify a rectangle using two (2) latitude-longitude pairs that form the Upper Left (NW) and Lower Right (SE) corners of a rectangle. Format {action} rectangle NW_Latitude, NW_Longitude, SE_Latitude, SE_Longitude Where the Latitude argument MUST be followed by a comma. sector Specify a pie-slice shaped region using two (2) angles referenced from North, an Inner range and optional Outer range centered at the repeater's location. Ranges are in statute miles. The action applies to ranges greater than Inner Range to the Outer range or infinity if Outer range is not specified. Format {action} sector Angle1, Angle2, Inner_range [Outer_range] Where the Angle1 and Angle2 arguments MUST be followed by a comma and use the Colon, Dotted or DMC formsts. These Angles must be positive, measured clockwise from North resulting in a range of [0..360]. Command Examples drop dest TLM* ; drops all telemetry packets pass source ab0vo* ; passes all ab0vo packets, including ab0vo-1 ; and the like This two-rule sequence creates a donut where no repeats happen: pass circle 2.5 n39d31m, w104.669d // hole drop cir 50.5 n39d31m, w104.669d // torus drop compass W 39:31:00, w104.669d # drops everything W of # this Lat-Lon drop rect 40d0m.5c, -104d30m, 39d, -103d /* drop within /* this Lat-Lon box drop sect 32d, 60d, 5 // drops all packets 5 miles or // greater from the repeater // from 32 deg from North to 60 deg // from North drop digi * ab0vo* # drop all packets with ab0vo anything, anywhere in the path drop digi 2 wide* # drop if wide anything is in path position 2 drop digi * wide5-5 # drop if wide5-5 is anywhere in the path Colon, Dotted and DMC formats for Angles, Latitudes and Longitudes Colon format The Colon format is a fixed-position, colon-separated notation with optional numerical values. Two colons are always required for this format! No imbedded white space is allowed! [s][DD]:[s][MM]:[s][SS][.F*] for Latitudes [s][DDD]:[s][MM]:[s][SS][.F*] for Longitudes Where: s optional negative sign (-) representing South Latitudes or West Longitudes (only 1 allowed) DD optional 2 decimal digits representing Latitude in Degrees DDD optional 3 decimal digits representing Longitude Degrees MM optional 2 decimal digits representing Latitude or Longitude Minutes SS optional 2 decimal digits representing Latitude or Longitude whole Seconds .F* optional decimal point and 0 or more decimal digits representing Fractional seconds. Examples: 45:22:33 -103:00:00 -38:33:29.222 45:18: -::.5 :30: Dotted format The Dotted format is a fixed-position, period-separated notation with optional numerical values. Two periods are always required for this format! No imbedded white space is allowed! [s][DD].[s][MM].[F*] for Latitudes [s][DDD].[s][MM].[F*] for Longitudes Where: s optional negative sign (-) representing South Latitudes or West Longitudes (only 1 allowed) DD optional 2 decimal digits representing Latitude in Degrees DDD optional 3 decimal digits representing Longitude Degrees MM optional 2 decimal digits representing Latitude or Longitude Minutes F* optional decimal point and 0 or more decimal digits representing Fractional Latitude or Longitude Minutes. Examples: 45.22.64 -103.00. -38.33.379 .. -..33 DMC format The DMC format allows a wide range of means to specify any Latitude or Longitude. Extensive error checks are made to ensure that the resulting specification does not exceed legal ranges nor conflicting directions are used. DMC stands for Degrees, Minutes and seConds. S cannot be used for the seconds identifier because that is reserved for the S direction. The following angle identifiers MUST follow the numeric real number (integer and decimal). D, d Degrees M, m Minutes C, c seConds The direction identifiers may be used before or after any one of the angle specifiers and are: N, n North S, s South E, e East W, w West Direction identifiers are optional. Without them, or a negative angle specifier (see below), Latitudes are North and Longitudes are East. An alternative method for specifying direction identifiers is to use a negative sign (-) with ONE and only one of the degrees, minutes or seconds parts. It is usually placed on the degree component but it could instead be on the minutes or seconds. Negative sign can only be found ONCE and cannot be used in conjunction with the direction identifiers! Any legal combination of degrees, minutes and seconds can be used, including fractions for any or all parts. They can be used in ANY order but usually are ordered degrees, minutes and seconds. No imbedded white space is allowed! Examples: N 39d23.7m33.9c # a North latitude 39d23.7m33.9C # the same thing 39.404415D # the same thing (approx.) n39.395d33.9c # the same thing (approx.) -42.5d # South latitude or West longitude N39d1m41.1c # author's latitude W104d40m8.4c # author's longitude W40m8.4c104d # author's longitude