javAPRSSrvr
Home Page

Server-side Filter Commands


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.