wiki:APRS4RConfigurationHowTo
Last modified 12 years ago Last modified on 07/27/07 21:01:18

APRS4R Configuration Howto

The default location for the APRS4R software's configuration files on the router is in the directory /etc/aprs4r. They have the suffix .yaml.

cd /etc/aprs4r
ls
default.log4r   default.yaml   ABCDEF-X.yaml

This allows you to manage multiple configuration files on the same system. When the ARPS4R system is started, the file /etc/default/aprs4r is used to determine both whether the system should really start or not, and which configuration file should be loaded.

#
# aprs4r
#

# START_DAEMON="false"
START_DAEMON="true"

# log4r configuration - temporaily unused
LOG="default.log4r"

# active profile
PROFILE="ABCDEF-X.yaml"

If the parameter START_DAEMON has the value true, then the APRS4R software will be started automatically at boot time. The parameter PROFILE specifies which configuration file from the directory /etc/aprs4r to load.

It is most convenient to start and stop the APRS4R system with the system's init script, /etc/init.d/S80arps4r, which takes a single argument start | stop | status. This script creates the logging directory after reboot, among other housekeeping tasks.

Configuration file organization

Since YAML www.yaml.org is already supported in Ruby (yaml4r), it was the obvious choice for the configuration file format.

The configuration file is broken into two sections. The first section describes the configuration of the various communications interfaces (Devices). These serve as the connection to the various equipment (TNCs, Modems) as well as connections to APRS-IS servers. In the second section, the various "modules" are configured, where each module has a distinct functionality: beacon, gateway, digipeater. These modules determine how to handle APRS packets that are received on the various interfaces, or how to generate new APRS packets.

A detailed explanation of these two sections can be found in the following sets of pages:

Example data

Here's an example configuration file. In the first section (devices), we configure two interfaces (rf0 und is0), where rf0 is a radio interface connected to a TNC2 and is0 is a connection to the Tier2 APRS-IS server germany.aprs2.net. The second section plugins consists of 3 modules, where the first two are BeaconPlugin that send APRS beacons and the third module forwards locally received APRS packets to the Internet.

--- !ruby/object:APRS4RConfiguration
devices:

  device0: !ruby/object:AX25SocketConfiguration
    name: rf0
    type: AX25Socket
    enable: true
    device: /dev/tts/1
    mode: kiss/tnc2/northlink
    speed: 1200
    call: MYCALL-10
    duplicatePeriod: 15
    timeout: 300

  device1: !ruby/object:ISSocketConfiguration
    name: is0
    type: ISSocket
    enable: true
    host: germany.aprs2.net
    port: 14580
    username: MYCALL-10
    filter: "# filter m/50"
    duplicatePeriod: 15
    timeout: 60

plugins:

  plugin0: !ruby/object:BeaconPluginConfiguration
    name: rf0Beacon
    type: BeaconPlugin
    enable: true
    device: rf0
    offset: 0
    period: 1800
    message: !ruby/object:APRSMessage
      destination: AP4R0
      payload: =0000.00NI00000.00E&
      source: MYCALL-10
      path: [WIDE1-1, WIDE2-2]

  plugin1: !ruby/object:BeaconPluginConfiguration
    name: is0Beacon
    type: BeaconPlugin
    enable: true
    device: is0
    offset: 0
    period: 900
    message: !ruby/object:APRSMessage
      destination: AP4R0
      payload: =0000.00NI00000.00E&
      source: MYCALL-10
      path: []

  plugin2: !ruby/object:GatewayPluginConfiguration
    name: rf0is0Gateway
    type: GatewayPlugin
    enable: true
    inDevice: rf0
    outDevice: is0