WA8LMF Home Page | Main Ham Radio Page | Main Links Page | Updated  05 September 09

javAPRS Filter Users Guide V 3.1
   by Roger Bille, SM5NRK

NOTE: This is the JavAPRS Filter Guide from F5VAG's website, with some minor additions,
redone with HTML formatting to make it more readable and easily searched. 

A small program to automate the construction of the command lines below, APRS Filter Wizard,
is downloadable from: http://www.apritch.myby.co.uk/addon_misc.htm#filterwiz .  This
freeware program  prompts you to fill in the blanks to construct a command line you can
then copy/paste into your APRS programs "Extra log-in text" field.

 

Introduction:

The APRS Internet System full feed today has a lot of traffic (a continuous
50-100K/second) and and can require a high bandwidth connection to an APRS-IS
server.  Also for some of you are only interested in particular traffic. To accommodate
this a number of the servers have special regional feeds which filter the traffic. There
are also some weather specific feeds available.  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 each of you can 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.

New in 3.1 Release

  1. All call signs are now case sensitive !
  2. New Port of Entry (Igate) filter e
  3. New Unproto (Destination Address) filter u
  4. d-filter (digipeaters) now allows wildcards
  5. New filter command "filter default"
  6. t-filter now supports distance from a station or object


How does it work?
Pete Loveall AE5PL have written the APRS-IS server software javAPRSSrvr in
Java which is used by most APRS 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. Status on the APRS-IS servers can be found here:
http://ahubswe.net/aprs_stat.asp

 

You define your own custom filter by doing the following:

1. Connect and logon to the filter-enabled port 14580 on an APRS server.
2. Send an APRS message to the server requesting the filter(s) you want.

[ Most modern APRS programs can be set do this automatically as part of the server log-on setup. ]

 

Filter commands

There are 13 different kinds of filters that can be used in any combination.
Each filter works independently and is additive to the feed. This means if
the filter finds a match it will be passed to you. The filter commands in
the APRS message to the server's call is started 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. (Normally this is to send nothing.)
 

Filters can also remove items from the data stream if preceded with a
 " - " (hyphen).     See "EXCLUDE Items" below.

You can filter by:

RANGE  |  CALL SIGN PREFIX  |  BUDLIST (List of specific callsigns)
 PACKET TYPE   |  APRS SYMBOL  |  DIGIPEATER  |  Lat/Long Boxed AREA
APRS-IS Q-construct  |  OBJECT NAME  |  Range from MYSELF  |
Range from a FRIEND  |  IGATE Entry Point | Unproto Address |

EXCLUDE Items

[ These links jump to places farther down on this page. ]


 

#1   r/   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 the UK
r/37/-81/1500      This will pass all traffic in the eastern half of the US.

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

#2   p/   Prefix filter

Note: This filter is kept for backwards 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/p1/p2/p3...

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   b/   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
and from SK5UM
b/K*      This will pass all traffic from stations
starting with K
b/SM5NRK/F*      This will pass all traffic from SM5NRK and
all stations starting with F

#4    t/   Type filter

The type filter will pass traffic depending on the packet type. More than
one type can be defined in one single command.

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

Where: t = type command
type is one or more of the following letters

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
then 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   s/   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; i.e. positions in
both primary and secondary symbol table are specified.
s//#/T      This will pass all Digi with overlay of capital T

The APRS symbol chart to show the letters that correspond to particular
symbols is here:   APRS Symbol Chart 

#6   d/   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.

Syntax: d/digi1/digi2...

Where: s = 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 have been digipeated
                                 by a digi in Sweden

#7   a/   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 onward,  lat and lon can be in decimals. E.g. 58.5

#8   q/   q Construct 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.htm

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 or qAR
q//i      Pass all position packets from IGATES indentified
in other packets by qAr or qAR

#9  o/   Object filter

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   m/   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 can be useful if you have an mobile station
with internet connection, or a stationary station with an Internet-only (no radio
and TNC) It will then always pass the local stations around you, no matter where
you are.

Note: This will not work until a valid 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   f/   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 follows the call-ssid last known position.


Note: This will not work until a valid 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   e/   Port (Igate) of Entry Filter

This filter will pass packets which match the Call & SSID that follow immediately after the q-construct; i.e. the call of the igate that took the packet off RF and inserted it into the Internet system. This filter supports wildcards.

Syntax: e/call/call/call*...

#13   u/   Unproto Address  Filter

This filter will pass packets which match the Unproto (or destination field) in
the packet. This filter supports wildcards. This filter would be useful to extract packets from "altnets" using non-standard destination addresses for an organized activity, while ignoring "normal" packets heard by the same digipeaters and igates.

Syntax: u/text/text/te*...

 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 matches 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.

The exclusion filter is especially valuable to prevent APRS maps from being flooded
with the thousands of non-RF non-ham CWO (Citizens Weather Observer) stations that
share the APRS Internet system with licensed amateurs.

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.

 

Support

I do monitor the aprssig and UI-View mailing lists so please post any questions there.

73 de sm5nrk/Roger
 

Notes by F5VAG:

Download raw version of filter.text

How to put the filter text in UI-View