Friday, March 15, 2013

iGate/DiGipeater Filter

All commands to the server start with the word "filter" and followed by one or more filter specifications. For instance, to specify all packets near Dallas Texas plus all NWS bulletins, you would use the following line:
filter r/33/-97/200 t/n
 
The default filter is not to pass anything in addition to what javAPRSSrvr will pass. So a user-defined filter port (14580) will pass messages to the client and any gated station, and nothing else until a filter definition is added. Multiple filter definitions can be setup separated by spaces. If any of the filters find a match the packet is passed.

You can prevent the filter from passing certain packets by prefixing the filter parameter with a hyphen (-). This tells the filter to approve any packets that match the include filters except those that match the exclude filters. Standard port functionality such as messaging for IGates is not affected.
For instance, to get all stations within 200 km of me except stations with the prefix of CW, I would use:
filter m/200 -p/CW
 
The server-side filter uses decimal degrees for latitude and longitude. The command "filter default" resets the filter to the predefined filter for that port.

The filter command may be set as part of the login line, as an APRS message to SERVER, or as a separate comment line (#filter r/33/-97/200). The prefered method is to set the command as part of the login which is supported by most current APRS software.
Below are the available filters (4.0 updates are highlighted):

Parameter Filter Type Description
r/lat/lon/dist Range filter Pass posits and objects within dist km from lat/lon.
lat and lon are signed decimal degrees, i.e. negative for West/South
and positive for East/North.
Up to 9 range filters can be defined at
the same time to allow better coverage.
Messages addressed to stations within the range
are also passed.
p/aa/bb/cc... Prefix filter Pass traffic with fromCall that start with
aa or bb or cc...
b/call1/call2... Budlist filter Pass all traffic from exact call: call1, call2, ...
(* wild card allowed)
o/obj1/obj2... Object filter Pass all objects with the exact name of obj1, obj2, ...
(* wild card allowed) (spaces not allowed) (| => / and ~ => *)
os/obj1/obj2... Strict Object filter
Pass all objects with the exact name of obj1, obj2, ...
(* wild card allowed) (| => / and ~ => *) Objects are always 9
characters and Items are 3 to 9 characters. There can only
be one os filter and that filter
must be at the end of the line.
t/poimqstunw t/poimqstuw/call/km Type filter Pass all traffic based on packet type.
One or more types can be defined at the same time,
t/otq is a valid definition. p = Position packets
o = Objects
i = Items
m = Message
q = Query
s = Status
t = Telemetry
u = User-defined
n = NWS format messages and objects
w = Weather
Note: The weather type filter also passes positions packets
for positionless weather packets.
The second format allows putting a radius limit
around "call" (station callsign-SSID or object name)
for the requested station types.
s/pri/alt/over Symbol filter pri = symbols in primary table (| => /)
alt = symbols in alternate table (| => /)
over = overlay character (case sensitive)
For example:
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"
d/digi1/digi2... Digipeater filter The digipeater filter will pass all packets that have
been digipeated by a
particular station(s) (the station's call is in the path).
This filter allows the * wildcard.
a/latN/lonW/latS/lonE Area filter The area filter works the same as rang 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 decimal degrees.
South and west are negative.
Up to 9 area filters can be defined at
the same time.
e/call1/call1/... Entry station filter This filter passes all packets with the specified callsign-SSID(s)
immediately following the q construct. This allows filtering based on
receiving IGate, etc. Supports * wildcard.
g/call1/call1/... Group Message filter
This filter passes all message packets with the
specified callsign-SSID(s) as the addressee of the message.
Supports * wildcard.
u/unproto1/unproto2/... Unproto filter This filter passes all packets with the specified destination
callsign-SSID(s) (also known as the To call or unproto call).
Supports * wildcard.
q/con/I q Contruct filter q = q Construct command
con = list of q Construct to pass (case sensitive)
I = Pass positions from IGATES identified by qAr, qAo, or qAR.
For example:
q/C    Pass all traffic with qAC
q/rR Pass all traffic with qAr or qAR
q//I Pass all position packets from
IGATES identified in other packets by qAr or qAR
m/dist My Range filter This is the same as the range filter except that
the center is defined as the last known position
of the logged in client.
f/call/dist Friend Range filter This is the same as the range filter except that
the center is defined as the last
known position of call.
Up to 9 friend filters can be
defined at the same time.

APRS® - APRS Software and Bob Bruninga, WB4APR.