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 and associtated posits to the client and
any gated station (and TCPIP packets from gated stations), 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.
In essence, a server-side filter is a "subscription" to see the specified data in addition to the default APRS messaging support.
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.
Include filters subscribe you to see additional data and exclude filters block the specified packets from those subscriptions. Standard port operation such as APRS messaging support is unaffected. Filters only affect data going to the client; packets from the client or gated by the client are not filtered.
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 preferred 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.
|