Kart- og sporingstjeneste.
APRS.no er drevet i regi av NRRL for radioamatører og frivillig redningstjeneste.
Polaric APRSD is a server program which communicates APRS data with a TNC or APRS-IS or both. It can present and manipulate the information through a simple HTTP service. The daemon can also be set up as an igate (internet gateway) and can run as a standalone program (without the web app component). It can also exchange authenticated messages to propagate updates to other instances over radio or internet.
The configuration files to be edited manually are located in /etc/polaric-aprsd/
The most important one is server.ini
. We describe the options in detail below.
This file is the main setup, and it may be adapted to the individual installation. It is a Java «properties» file consisting of name-value pairs. Comment lines start with '#'. The tables below shows all properties which may be set in this file along with the default value and an explanation.
Some of the properties can also be set in another file: /var/lib/polaric/config.xml. This is meant to be used by the web interface and should normally not be edited by hand. The property values here will override the values defined in server.ini. This means that if the web-interface for configuration is used, the values defined in server.ini are then just default values. Properties that is set by the web interface is written in blue italic fonts here. The properties set in the web interface are usually sufficient for getting the server running. The other properties are meant for advanced users.
timezone | Time zone. In Norway we use “Europe/Oslo” | |
default.mycall | NOCALL | Default callsign/identifier. Can be overridden for specific parts of the server: inetchannel.user, igate.mycall, objects.mycall, message.mycal and remotectl.mycall |
httpserver.port | 8081 | HTTP server listens on this port. (you normally don't want to change this) |
httpserver.alloworigin | .* | What origin-URLs that are accepted for CORS access (regular expression). [From v. 2.1] |
trusted.origin | .* | Origin URLs that are allowed to open websockets (regular expression) [from v. 2.0] |
server.maxload | 200 | Max number of HTTP server threads |
map.icon.default | sym.gif | Icon to be used when a mapping for a symbol is not defined. Mappings between symbols and icons are defined in the file 'symbols'. |
user.admin | admin | Super user. Regular expression. |
user.update | Users that are given the right to update information (regular expression). | |
aprs.expiretime | 60 | Time (of inactivity) before an APRS station record expires. In minutes. |
map.trail.maxAge | 15 | Length of trail (in minutes) |
map.trail.maxPause | 10 | After this time with inactivity (minutes) the trail is removed. |
map.trail.maxAge.extended | 30 | Length of trail when speed is low. |
map.trail.maxPause.extended | 20 | |
objects.forceupdate | false | If an object (sent by the same sender) exists somewhere else, replace it. Note that Polaric APRSD do not take over objects sent by other stations (since it operates on APRS-IS). |
sarurl.on | false | Activate support for SAR URLs. |
sarurl.protocol | https | Protocol to use for SAR URLs (usually HTTPS). |
plugins | Comma separated list of plugins (Java class names of plugins). | |
serverstats.on | false | Logging of server statistics info |
aprsd.log.level | 1 | Log level. What to write to log (0=DEBUG, 1=INFO, 2=WARN, 3=ERROR) [from v.2.0] |
Polaric APRSD can be given a position and it can be set up to send APRS position reports. Positions can be seen and set through the webapp and a default position can be set in the configuration file.
It can do real GPS tracking with smart beaconing. A GPS can also be used to adjust the computer clock. The tracker has a time-resolution of 10 seconds when it comes to APRS reporting. This means that it decides every 10 seconds if a packet should be sent. The time resolution is also 10 seconds when updating the webapp-display. Internally, however, resolution can be somewhat finer (GPS is read typically every 5 seconds) and note that time parameters are given in seconds and these do not need to be a multiple of 10.
ownposition.pos | Default position (UTM format) of this station | |
ownposition.mycall | default.mycall | Callsign to be used when reporting own position |
ownposition.symbol | /. | APRS symbol to be used when reporting own position |
ownposition.tx.on | false | Set to true to activate position reporting |
ownposition.tx.allowrf | false | Set to true to send position report on RF as well |
ownposition.tx.rfpath | WIDE1-1 | Digipeater path to use when transmitting position reports on RF |
ownposition.tx.comment | Comment to add to position reports | |
ownposition.tx.maxpause | 600 | Max time (in seconds) between each position report |
ownposition.tx.minpause | 180 | Min time (in seconds) beween each position report. When position is changing. When used with GPS tracking, it is the shortest possible interval when moving fast and not changing direction more than turnlimit. |
ownposition.tx.mindist | 150 | Distance (in meters) between position reports when speed is low (<1km/h). Valid when GPS tracking is active. |
ownposition.tx.turnlimit | 30 | Max turn (change in direction - in degrees) before position reporting is triggered. Valid when GPS tracking is active. |
ownposition.gps.on | false | Set to true to activate automatic GPS tracking with smart beaconing, etc, much like with the Polaric Tracker. If a GPS is connected to a serial or USB port, and it has a fix on position, this will override the static position setting. We recommend shorter maxpause (180) and minpause (30) settings than default when using GPS for mobile tracking |
ownposition.gps.port | /dev/ttyS1 | Serial port for GPS device |
ownposition.gps.baud | 4800 | Baudrate for GPS device |
ownposition.gps.retry | 0 | How many times to retry connecting to a GPS before giving up. 0=forever. |
ownposition.gps.retry.time | 30 | Maximum time between retries in minutes. It starts with short intervals between retries which are increased until it reaches the maximum time specified here. |
ownposition.gps.adjustclock | false | If set to true, the timestamp from GPS will be used to adjust the system clock of the computer. Works on Debian Linux installation. |
Polaric APRSD kan connect to an APRS-IS server of choice. You can configure host, port, username, passcode and you can set filters (compatible with javaprssrvr). It is also possible to use Polaric APRSD as an igate (gateway between internet and RF). When activating the igate, you should obviously activate both the TNC channel (see below) and the internet channel.
igate.on | false | Set to true to activate igate. |
igate.mycall | default.mycall | What the igate identifies as, when connecting to APRS-IS |
igate.rfgate.allow | true | Set to false to disable reverse igating (from internet to RF). |
igate.rfgate.objects | false | Activate igating of objects to RF |
igate.log.on | false | If set to true, a separate log file (igate.log) will be created for igate operations |
objects.rfgate.allow | false | Allow object reports (defined on this server) to be transmitted on the RF port. Objects are in all cases presented on the map and on APRS-IS. |
objects.rfgate.path | Digipeater path to use when sending object-reports on RF. Also used when igating objects. | |
objects.rfgate.range | 0 | Range (in kilometers) in which objects are transmitted or igated to RF. Note that this is used only when our own position is known - see ownposition |
objects.transmit.period | 360 | How often to repeat object reports (in minutes). 0 means never. |
objects.forceupdate | false | If an object (sent by the same sender) exists somewhere else, replace it. Note that Polaric APRSD do not take over objects sent by other stations (since it operates on APRS-IS). |
Polaric APRSD implements the APRS messaging protocol and supports igating of messages. Polaric APRSD use messaging internally for remote control, i.e. different instances of the server can be linked such that local changes to icons or station/object aliases are automatically propagated to the other servers. Servers are linked in a hierarchy, i.e. a server can specify a parent server. A parent may have several “children”. Messages are authenticated, i.e. messages have a message-authentication field, which in essence is a MD5 hash of the message plus a secret shared key. See more info about the remote control protocol.
message.mycall | default.mycall | Sender address (callsign) for messages. |
message.auth.key | NOKEY | Secret key for authentication of messages. |
message.alwaysRf | Callsigns (regular expression) to which messages are always transmitted on RF (even if not heard). Also used by igate. Se also message.rfpath. | |
message.rfpath | WIDE1-1 | Default digipeater path to be used when a direct path isn't known. Also used by igate. |
remotectl.on | false | Activate remote control, ie. local changes of aliases or icons of one server may propagate to other server instances through authenticated APRS messages. To use this, remember that all involved servers must set a shared secret key: message.auth.key |
remotectl.mycall | default.mycall | Sender address (callsign) for remote control messages. |
remotectl.connect | Mycall of parent server to connect to (servers can connect to each other in a hierarchical structure). | |
remotectl.log.on | false | If set to true a separate log file (remotectl.log) is created for info about remotectl operation |
Polaric APRSD can set up a number of channels for position data (mainly APRS).
channels | Comma separated list of data channels | |
channel.default.inet | Default internet (APRS/IS) channel. | |
channel.default.rf | Default RF channel. | |
channel.<name>.on | false | Set to true to activate a channel. <name> is name of the channel as defined in channels |
channel .<name>.type | APRSIS | Type of channel. Aprsd currerntly supports APRSIS, TNC2, KISS and TCPKISS. Plugins may add types. |
channel .<name>.backup | Name of another channel to be used if this channel fails to connect. Only APRSIS and TCPKISS | |
channel.logpackets | Print incoming packets to log file (APRS channels) | |
channel.<name>.mycall | default.mycall | Callsign to be used by TNC. |
channel.<name>.host | localhost | Host name or IP address (for internet based channels). |
channel.<name>.port | 14580 | Port number (for internet based channels). |
channel.<name>.port | /dev/ttyS0 | Serial port device (for serial channels). |
channel.<name>.baud | 9600 | Speed of serial port. |
channel.<name>.restrict | false | Restrict visibility of items coming from this channel to logged in users. |
channel.<name>.tag | Tag to put on items coming from this channel. | |
channel.<name>.pass | -1 | Passcode to be used with APRS/IS channels. |
channel.<name>.filter | Filter expression to be used with APRS/IS channels. | |
channel.<name>.rfilter | Regular expression to be used to match with APRS packets in order to filter incoming packets. Matched packets are not delivered. | |
channel.<name>.user | default.mycall | Callsign to use when logging on to APRS/IS channels |
channel.<name>.retry | 0 | How many times to retry connecting to TNC or server before giving up. 0=forever. |
channel.<name>.retry.time | 30 | Maximum time between retries in minutes. It starts with short intervals between retries which are increased until it reaches the maximum time specified here. |
channel.<name>.pathcommand | UNPROTO | Command to set the to-address and digipeater path on TNC2. |
channel.<name>.nobreak | false | If set to true, use CTRL-C instead of BREAK to return TNC to command mode. |
Config files which defines properties put here will be automatically run after server.ini. Useful for plugins.
Commands to be sent to TNC when starting. Lines starting with # are comments.
An APRS symbol may correspond to an icon (graphic symbol) to be placed on the map. In Polaric Server we may use slightly bigger icons than most other APRS programs. The size is 22×22 pixels. Icons are placed in the subdirectory '/usr/share/polaric/icons'. The file '/etc/polaric-aprsd/symbols' defines a mapping between APRS symbols (two characters: symbol table and symbol code) and a corresponding icon file. Note that we in this file can use regular expressions to match symbols.
This is optional and can be used to define simple, static geographical objects to be placed on the map. Note that these are not APRS objects and are therefore local to the server instance. For each object, define the position (UTM), what map-scales in which to display the object, a URL (or '-' if no URL), an icon (I recommend to use smaller icons placed in the directory 'icons/signs') and a short text.
A simple setup of colours combinations to be used for trails.
This is a script where we set up filters on what to show on the map and how to show it. Filters can be based on tags and other attributes of point objects, etc.. See documentation on the filter script language here.