WA8LMF Home Page | Main Ham Radio Page | Main Links Page | Updated 05 September 09 |
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.
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.
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. ] |
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)
EXCLUDE
Items |
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
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
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
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).
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
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
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
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
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
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.
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.
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*...
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*...
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.
I do monitor the aprssig and UI-View mailing lists so
please post any questions there.
73 de sm5nrk/Roger