W9WIN Repeater Network Banner

APRSFilter Users Guide (1/5/04) v2.0 jav

Introduction:

The APRS-IS full feed today contains a lot of traffic and requires 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 has 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. Status on the APRS-IS servers can be found here:
http://ahubswe.net/aprs_stat.asp

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


#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 3
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 (no decimals). Negative for south
lon = longitude in degrees (no decimals). 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


#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/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/AD6NH This will pass all traffic from AD6NH 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/AD6NH This will pass all traffic from AD6NH
without any SSID
b/AD6NH-14/KG6AIJ This will pass all traffic from AD6NH-14
and all traffic from KG6AIJ
b/K* This will pass all traffic from stations
starting with K
b/AD6NH/F* This will pass all traffic from AD6NH 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.

Syntax: t/type

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

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


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

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


#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. Lat/lon are integer (no decimal) degress. South and west are
negative. Up to 3 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


#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.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 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 3 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/AD6NH/500 This will pass all traffic within 500 km from
AD6NH's last position.

Where to connect?

This is up to each server operator if/when they will provide this type of
service. The following Tier 2 servers, using javAPRSSrvr, have this
port enabled. See http://www.aprs2.net for more information.

socal.aprs2.net:14580
arizona.aprs2.net:14580
newengland.aprs2.net:14580
midwest.aprs2.net:14580
indiana.aprs2.net:14580
uk.aprs2.net:14580

javAPRSSFilter is Copyright (c) 2003 - Roger Bille SM5NRK


Weather Servers:
KB9QJM-11 Cloverdale, IN
KB9QJM-12 Atlanta, IN
DIGI / IGATE Server:
KB9QJM-10 Cloverdale, IN
 
Callsign Lookup: