APRS Filter users guide for port 14580

New in 3.1 Release
1) All call signs are now case sensitive
2) New Port of entry filer E
3) new Unproto filter U
4) D-filter now allow wildcard
5) New filter command "filter default"
6) T-filter now support distance from a station or object

Introduction:

The APRS-IS full feed today have a lot of traffic and require a high bandwidth, in particular
for the APRS-IS server sites, but also for some of you that connect that are only interested in
the particular traffic. To accommodate this a number of servers have special regional feeds which
filter the traffic. There are also some weather specific feeds available. But all these are setup
according to what the server operator "thinks" will be good for the users. Now we can take this one
step further.

Now will each of you be able to select what traffic you are interested in and the server will
create a unique feed for you. There is great flexibility to construct your personal feed.

How does it work?

Pete Loveall AE5PL have written the APRS-IS server software javAPRSSrvr in java which is used by a
number of servers. Pete has been kind to create some hooks into his server software so I have been
able to write a filter add-on, javAPRSFilter (also in java). These 2 applications work together to
provide this filtering.

You define the filter by doing the following:

1. Connect and logon to a filter enabled port on a server
2. Send an APRS message to the server requesting the filter you want

Filter commands

There are 14 different kinds of filters that can be used in any combination. Each filter is working
independent and is additive to the feed. This mean if the filter finds a match it will be passed to
you. The filter commands in the APRS message to the servers call is starting with the word 'filter'
(without quotes) and each filter command is delimited by a single space. A message with just
'filter?' (without quotes) will return the current filter definition.

If you send "filter default" it will revert back to the server default filter definition.

#1 Range filter
The range filter will pass all stations and objects within a distance from a set location. It will
also pass messages to stations within the filter and positions of the message sender even if they
are outside the range. Up to 9 range filters can be used at the same time to extend the areas when
you have problem to find a good circle match.

Syntax: r/lat/lon/dist [r/lat1/lon2/dist2 [[r/lat2/lon2/dist2]]

Where:    r = range command
        lat = latitude in degrees. Negative for south
        lon = longitude in degrees. Negative for west
       dist = distance in kilometers from lat/lon.

I'm sorry we don't use miles here in Sweden ;-)

Samples: r/55/-4/600 This will pass all traffic for UK
r/37/-81/1500 This will pass all east cost US traffic

From V3.0 lat and lon can be in decimals. E.g. 58.5

#2 Prefix filter
Note: This filter is kept for backwords compatibility. The Budlist filter now support this
functionality. (from V 1.4)

The prefix filter will pass traffic based on if the sender’s call starts with a specific pattern.

Syntax: p/CX/LU/PY/XQ

Where: p = prefix command
      p# = The prefix (starting) pattern

Samples: p/K This will pass all traffic from stations starting with K
p/SK/F This will pass stations starting with either SK or F
p/SM5NRK This will pass all traffic from SM5NRK and any SSID at the end

#3 Budlist filter
The budlist filter will pass traffic based on exact match of the sender’s call or call starts with a
specific pattern (from V 1.4). Also the SSID is part of the exact match.

Syntax: b/call1/p1*/call3/p2*

Where:     b = budlist command
       call# = The prefix (starting) pattern
          p# = The prefix (starting) pattern

Samples:
b/SM5NRK         This will pass all traffic from SM5NRK without any SSID
b/SM5NRK-5/SK5UM This will pass all traffic from SM5NRK-5
b/K*             This will pass all traffic from stations starting with K
b/SM5NRK/F*      This will pass all traffic from SM5NRK and stations starting with F

#4 Type filter
The type filter will pass traffic depending on the packet type. More than one type can be defined in
one single command. You can also limit this to a distance around a station or object.

Syntax: t/type
t/type/call/dist

Where: t = type command

type = is one or more of the following letters
   p = Position packets
   o = Objects
   i = Items
   m = Message
   n = NWS Weather and NWS Area Objects
   w = Weather
   t = Telemetry
   q = Query
   s = Status
   u = User-defined

call = call of a station or object
dist = distance in km from call to pass this type

Samples:
t/p            This will pass all traffic with a position
t/w            This will pass all weather traffic. For positionless weather objects the corresponding
               position packet will also be sent when it is next heard
t/mos          This will pass all messages, objects and status traffic
t/p/SM5NRK/500 Pass all position packets within 500 km from last known position of SM5NRK

Remember that the APRS message must start with the word filter and the the commands.

The above filters can be combined as explain above. Each filter will however working independent of
the others, for example:

filter r/63/16/1000 r/55/-4/600 p/F b/AE5PL t/s

The above filter will pass all traffic within Nordic (range#1) AND UK (range#2) AND stations starting
with F (prefix) AND from AE5PL (budlist) AND all status traffic (type).

#5 Symbol filter
The symbol filter will pass traffic based on the symbol in the packet.

Syntax: s/pri/alt/over

Where:    s = symbol command
        pri = symbols in primary table
        alt = symbols in alternate table
       over = overlay character (case sensitive)

Samples:
s/->   This will pass all House and Car symbols (primary table)
s//#   This will pass all Digi with or without overlay
s//#/T This will pass all Digi with overlay of capital T

#6 Digipeater filter
The digipeater filter will pass all packets that have been digipeated by a particular station(s).
Remember that a packet can many time go different routes to get to APRS-IS and might be digipeated
by other stations that is shown. These packets are filtered out by various filters/application as
duplicates. More that one digipeater can be entered and each are OR together. This filter also
support wildcard.

Syntax: d/digi1/digi2

Where:     d = digipeater command
       digi# = digipeater call

Samples:
d/SM5NRK-2       Pass all packets digipeated by SM5NRK-2
d/SM5NRK-2/SK5UM Pass all packets digipeated by SM5NRK-2 or SK5UM
d/SM*/SK*/SL*    Pass all packets that has been digipeated by a digi in Sweden

#7 Area filter
The area filter works the same as range filter but the filter is defined as a box of coordinates.
The coordinates can also been seen as upper left coordinate and lower right.
South and west are negative.
Up to 9 area filters can be defined at the same time.

Syntax: a/latN/lonW/latS/lonE

Where:    a = area command
       latN = North latitude border (-90 to 90)
       lonW = West longitude border (-180 to 180)
       latS = South latitide border (-90 to 90)
       lonE = East longitude border (-180 to 180)

Sample: a/50/-130/20/-70 This will pass all traffic in US

From V3.0 lat and lon can be in decimals. E.g. 58.5

#8 q Contruct filter
The q Construct filter will base all filtering on the q Construct used on the APRS-IS.
For more information about q Contract look here:
http://www.aprs-is.net/q.aspx

Syntax: q/con/ana

Where:   q = q Construct command
       con = list of q Construct to pass (case sensitive)
       ana = analysis based on q Construct.
         i = Pass positions from IGATES identified by qAr or qAR.

Sample:
q/C  Pass all traffic with qAC
q/rR Pass all traffic with qAr ot qAR
q//i Pass all position packets from IGATES indentified in other packets by qAr or qAR

#9 Object filter (from V1.4)
Same as BudList but acts on the object names instead of sender's call.

Syntax:o/name1/n2*/name3/n3*

See Budlist for more information

#10 My Range filter
The my range filter will pass all stations and objects within a distance from your own station.
It will use the location sent for the same call as you used when you logged onto the server.
This is useful if you have an mobile station with internet connection.
It will then always pass the local stations no matter of where you are.

Note: This will not work until a valud position has been sent from the same call-ssid you used
when you logon to the server.

Syntax: m/dist

Where:    m = my range command
       dist = distance in kilometers from lat/lon.

Samples: m/500 This will pass all traffic within 500 km from my location

#11 Friend Range filter
The friend filter works the same as My range filter, except you define which call-ssid should be
used (see more above). Up to 9 friend filters can be defined. This is a moving filter so it is
following the call-ssid last known position.

Note: This will not work until a valud position has been sent from the call-ssid defined.

Syntax: f/call/dist

Where:    f = friend range command
       call = call to be used as center of the range
       dist = distance in kilometers from lat/lon.

Samples: f/SM5NRK/500 This will pass all traffic within 500 km from SM5NRK's last position.

#12 Port of entry filter
This filter will pass packets which match the CallSSID that follow immidiate after the q-construct.
This filter support wildcard.

Syntax: e/call/call/call*

#13 Unproto filter
This filter will pass packets which match the Unproto (or destination field) in the packet.
This filter support wildcard.

Syntax: u/text/text/te*

#14 Group Message filter
This filter passes all message packets with the specified callsign-SSID(s) as the addressee of the message.
Supports * wildcard.

Sintax: g/call1/call2

#15 Exclusion filter
All the above filters also support exclusion. Be prefixing the above filters with a dash the result will be
the opposite. Any packet that match the exclusion filter will NOT pass. The exclusion filters will be
processed first so if there is a match for an exclusion then the packet is not passed no matter any other
filter definitions.

Samples:
-a/50/-130/20/-70 -b/CW* The area filter says to pass all traffic in US. The -b filter says to exclude any
                         stations that starts with CW.
-a/50/-130/20/-70 -s/>j  The area filter says to pass all traffic in US. The -s filter says to exclude any
                         stations with Car or Jeep symbols.

If you have difficulties setting up the filter for port 14580 send an e-mail with coordinates, area and type
of traffic that you need to cover.
HOME