NOSaprs 1.15b6
APRS Server & Internet
Gateway for TNOS and JNOS
Designed & Coded by Maiko
Langelaar, VE4KLM
during the period of April 2001
to July 2003
Saturday, July 12, 2003

Table of Contents
Title page 1
Table of contents (this page) 2
What is NOSaprs 3
Why did I write this software 3
Some of the features 3
General overview (how does it
work) 4
What does NOSaprs hear 4
Most of the NOSaprs commands
(very detailed descriptions) 5
Starting the services 16
Setting the unproto path (very
important) 16
Understanding routing - by
message recipient 16
Understanding routing - by
which interface station was last heard on 16
How RF users can opt out of the
internet gateway 17
Email Server – RF users can
send email via APRS 17
The APRS Message Center (a
simple messaging client) 17
Tracking
APRS stations – the APRS heard table 18
Status
information – using the tcp/ip finger utility 18
Status information – via port
14501 and a web browser 19
How to setup the NOS
configuration file - autoexec.nos 20
Miscellaneous stuff and other
notes 22
What is NOSaprs
NOSaprs
is an APRS internet gateway (igate) and server integrated into NOS itself.
Those that are already running JNOS or TNOS internet gateways can easily start
to support their local APRS community by simply getting a NOS binary that
contains the NOSaprs services, and then adding a few extra lines to the
autoexec.nos file. Use an existing RF port (zoo channel), add another port and
radio for 144.390, add multiple RF ports on different frequencies, use a 9600
baud port, use AXIP or AXUDP to get APRS data from other internet gateways
around the world, do whatever you think is possible with your NOS setup.
Why did I write this
First
of all, this software is in no way meant to compete with other APRS software
that is out there. There is some very impressive software available that is
dedicated to APRS, in particular UI-View, which impresses the heck out of me. I
wrote this specifically for the NOS community - the NOS die-hards if I may –
allowing them to participate in the APRS world wide experience without the need
to setup extra and possibly separate systems that may or may not easily fit
into their existing configuration.
If you
try this software, and in the end you don’t like it, or you don’t want to use
it, that’s perfectly fine by me, at least by then I hope you will have gained
some insite and good experiences with APRS in general.
Some of the Features
·
Intercepts most APRS data heard
on any NOS ax25 interfaces, and forwards the data to the APRS internet
system, which in turn allows the data to appear on the maps of APRS client
software throughout the world, as well on internet APRS databases like the
popular www.findu.com site.
·
Allows APRS users on any
NOS ax25 interface, to exchange messages with other APRS users on remote APRS
networks only reachable through the APRS internet system, using the 3rd
party messaging system.
·
Powerfull callsign filters –
currently there are five (5) filters available for a variety of operations.
·
Tracks APRS users heard on all
NOS ax25 interfaces. The system can track callsign, DTI, which ax25 interface
the frame was heard on, and the unproto (digi) path of the frame if any digis
were used. This information is available using finger aprsstat@machine or by web browser using http://machine:14501.
·
When forwarding APRS data to
the APRS internet system, a Point of Entry (POE) callsign is inserted into the
source path header, allowing other systems to identify your machine as the one
which injected the APRS packets into the APRS internet system. This can be
disabled by the sysop if desired.
·
Intercepts MIC-E packets and
forwards them to the APRS internet system (extra options available).
·
Supports routing by message
recipient, allowing APRS users on conventional packet networks to participate
in the APRS scheme of things. Users several nodes away can now join in on the
APRS fun without the need for WIDE, or RELAY, or APRS digipeaters.
·
APRS Email Server. Email can be
handled locally by NOS itself, instead of being sent out to the APRS internet
system for processing. Any APRS user can send internet email, simply by sending
an APRS message to the recipient callsign, ‘EMAIL’ (extra options available)
·
APRS users can opt out of the
IGATE by specifying RFONLY or NOGATE in the unproto path, that way their
packets are not forwarded to the APRS internet system.
·
APRS message center – messaging
client - allowing the NOS sysop, and the general PBBS user, to do message
passing with any other APRS user, either on a remote APRS network only
reachable through the APRS internet system, or through one of the NOS ax25
interfaces for local message passing. This was designed to have a somewhat convers
type of look and feel - some restrictions apply.
·
An HTML based status page,
similar in concept to what aprsd provides, using tpc port 14501. A sample
screen shot of this HTML based page, is shown on the opening page of this
documentation. A text based version is also available using the tcp/ip ‘finger’
utility. See the ‘Tracks APRS users’ feature mentioned earlier on this page.
Users can click on callsigns on this page, and get a direct link to mapping
information from sites like the popular www.findu.com site.
·
Flexible broadcast options.
NOSaprs has separate broadcast parameters for the internet side and the RF
side. Each side has it’s own set of parameters, in which you can configure the
broadcast interval, status text, and position information. If you don’t want
broadcasts at all, they can be shutoff if desired.
·
Responds to ?PING? or ?APRST
requests from APRS internet system and from the RF side. You can also send a
message to NOSaprs, which is logged to a file (ie, /nos/spool/aprs/aprs.txt).
All messages to and from NOSaprs logon callsign are logged (including sysop and
PBBS message center traffic).
·
Accept's connections from other
programs like UI-View, WINaprs, and other NOSaprs stations so that they can
forward APRS data to us and not get the firehose of data sent back to them.This
is also ideal for those systems that have very low speed (or low bandwidth)
connections, and simply want to advertise their position and other information
to the world and not hear back from the world.
·
Experimental WIDE and WIDEn-N
digipeater built in (can be switched on or off on the fly).
·
Can broadcast to RF, specific
position and status packets received from the APRS internet system, not just
APRS messages anymore. All broadcasts use the 3rd party identifier
to stay legal.
·
Other features are added as
time permits.
General Overview (how does it
work)
The
NOSaprs software has the minimum functionality required to be an APRS internet
gateway (igate), so it should be configured to connect to tcp port 1314 (the
message port) of any aprsd or java aprs server that is part of the APRS
internet system. At startup time, NOSaprs will go through a list of servers,
connecting to the first one it can. Once connected, it will continuously
receive messages from the server, and route those messages out a preconfigured
NOS ax25 interface. There are callsign filters available so that the sysop can
control which messages are allowed to go out, and which are not. APRS frames
received on any NOS ax25 interface are sent to the APRS internet system,
using the same connection we receive messages on. Keep in mind that NOSaprs
only connects to 1 host server at any time, unlike other APRS servers that can
be configured for multiple connections to different host servers, for the sake
of redundancy, etc. NOSaprs can also take positional and status information
from the APRS internet system and broadcast them out the preconfigured NOS ax25
interface. There are callsign filters available to control this aspect as well.
I
strongly recommend you go over the NOSaprs commands further on in this
document, to get the best understanding for how this stuff works. The commands
are quite well documented, and I have gone into some fairly heavy detail,
including extra information on the mechanics of how all this stuff is supposed
to work. If I have missed anything, or something does not look right, please
let me know so I can correct it.
What does NOSaprs hear
NOSaprs
will hear any APRS packets that have a destination call of ‘BEACON’, ‘ID’,
‘EMAIL’, or any callsign starting with the letters ‘AP’, or any callsign that
matches the APRS MIC-E callsign requirement. The number of digipeaters in the
packet header, or whether any of the digipeaters were used to repeat the
packets, is of no importance. NOSaprs will hear it all, and process it
accordingly. I have fairly strong validation rules in place, so not everything
heard is sent to the APRS internet system. For example, 3rd party
packets heard on any of the NOS ax25 ports, are NOT forwarded to the internet
system, since they’re not supposed to be.
Most of the NOSaprs commands
Most of the NOS commands related to NOSaprs start
with the word ‘aprs’ and are as follows.
1.0 aprs <subcommand>
The
current subcommands can be obtained by entering the command, ‘aprs’, at the NOS
prompt :
Net> aprs
valid subcommands:
bc flags calls client contact
hsize interface
internal listen
locator log logon server email
mice status
Net>
Next we will summarize the
above commands, from left to right, top to bottom …
1.0.1
aprs bc …
NOSaprs
broadcasts it’s own status and position information at regular intervals. There
are two groups of broadcasts, one to RF, the other to the APRS internet system
- they are independent of each other. Use these commands to configure the
content of these broadcasts, and whether you want them active or not.
Net> aprs bc
Usage: aprs bc [ver|rfver] [on|off]
aprs bc [stat|pos|rfstat|rfpos]
[data]
aprs bc
[timer|rftimer] [minutes]
Net>
1.0.1.1 aprs bc [stat | pos |
rfstat | rfpos] [status or position text]
This
command lets you set the text of the status and position information that you
want broadcast by the NOSaprs server. There are four possible options here :
stat - status text to be
broadcast to the APRS internet system side.
pos - position text to
be broadcast to the APRS internet system side.
rfstat - status text to be sent out the default ax25 interface side.
rfpos - position text to
be sent out the default ax25 interface side.
If you want the same text broadcast to both the
APRS internet system side and RF, then you only need to define the stat
and pos options. If the rfstat and rfpos options are not defined,
they will default to the values set for the stat and pos options.
For example :
aprs bc stat "IGATE - 441.050 Mhz -
ve4klm@ve4umr.ampr.org"
aprs bc pos
"4953.22NI09718.35W&"
I now
use ‘=’ as the dti (Data Type Identifier) for the position broadcasts (since
NOSaprs is capable of messaging), so make sure you do not change the format of
the above information. Only change the numerical coordinates - degrees, not
decimal - to suit your own position. By default, the status text above will
have the NOSaprs version prepended to it when it is broadcast, so in actually
fact the broadcast will look like the following :
NOSaprs 1.15b6 IGATE - 441.050 Mhz - ve4klm@ve4umr.ampr.org
You can
switch this suffix off using the command, ‘aprs bc ver | rfver’, described a
bit further on.
1.0.1.2
aprs bc [timer | rftimer]
[interval in minutes]
This
command lets you set the interval of the status and position broadcasts. The RF
broadcast has it’s own timer, as does the APRS internet system broadcasts. If
you don’t want a particular broadcast, then either set the interval to the
value of zero, or don’t define the timer(s) in the autoexec.nos file. By
default, the timers are off.
1.0.1.3
aprs bc [ver | rfver] [on |
off]
This
command simply flags whether you want the NOSaprs version information prepended
to the status broadcast(s) or not. The RF broadcast has it’s own flag setting,
as does the APRS internet system broadcast. By default, the version is included
in the status broadcast.
1.0.2
aprs flags …
NOSaprs uses flags for some of
it’s configuration. You can enter the command, ‘aprs flags’ at the NOS prompt,
and it will show you the current settings (the ones below are the default
flags) :
Net> aprs flags
-debug -badpackets -monitor +poe +dtiheard +bconlyifhrd -digi
Net>
Flags are set using the
command, ‘aprs flags +option’ , and unset using the command, ‘aprs flags
–option’.
Next we will describe each of
the availabe options in detail.
1.0.2.1
debug
If you
run into problems and are lucky enough to be able to reproduce the problems,
then you can enable the debug option, which will write additional debug or
trace information to the NOSaprs log file.
1.0.2.2
badpackets
If you
want to track parsing errors, or want to know about APRS frames that had errors
in them or did not meet some requirement of the general APRS specification,
then you can enable the badpacket option, which will write error messages to
the NOSaprs log for any packets that have formating issues.
1.0.2.3
monitor
If you
want to monitor the exact data you are receiving from the internet side, you
can eable the monitor option. This is simply an extension to the debug
facilities. Be careful with this option, as the information is currently dumped
to the NOSaprs log file. If the internet traffic is high, the log file will
fill up really fast.
1.0.2.4
poe
This
option is used to enable or disable the injection of the Point of Entry (POE)
callsign into the source path header when forwarding packets to the APRS
internet system. By default, the POE is turned on. It can be switched off of
course, but there really is no reason to do so. The injection of the POE
callsign allows one to trace which APRS igate was responsible for sending the
APRS packet to the APRS internet system.
1.0.2.5
dtiheard
Allows
the sysop to enable or disable tracking of the DTI (Data Type Identifier)
character in the APRS heard table (not the same as the ax25 heard table). The
APRS heard table can get quite big if we get the same station using a whole
bunch of different DTI values (meaning an assortment of different type of APRS
packets). Quite frankly, there is no point tracking the DTI for general use. I
use it to get an idea of the type of traffic on frequency, and some of you may
want to do the same. If this flag is enabled, then the 14501 pages will show
the DTI information. If this flag is not set, the you will not see the DTI
information displayed on the 14501 page.
1.0.2.6
bconlyifhrd
The
purpose of this flag is to minimize the amount of RF traffic generated by the
APRS internet gateway. I mean, what is the point of broadcasting a 3rd
party message from the APRS internet system to RF if the station for which the
message is intended was never heard within range of the NOSaprs server. Some
people will have different views and preferences of course, that’s why this
flag was added. By default, this flag is set, and it only applies to APRS
messaging.
If this
flag is not set, then of course NOSaprs will send the message out the interface
on which the message recipient (station) was last heard. If the station was not
heard, then the message is sent out the default aprs interface, which is
configured with the command, ‘aprs interface’, discussed further on.
Note : this flag does not
affect the callsign filters in any way. All it does is limit RF transmissions !
1.0.2.7
digi
NOSaprs
has a very experimental built-in APRS digipeater. It can digipeat WIDE and
WIDEn-N packets, and will track for duplicates, so there should be none
of this endless bouncing back and forth of packets between NOS and other
digipeaters on frequency. This option should only be used if you have no other
APRS digipeater in your area, and you want to provide an interim or emergency
digipeater. I’m willing to work on this some more, but only if people express
an actual interest in it.
By
default this flag is unset. I recommend you leave it that way if you are in a
well established APRS arena.
1.0.3
aprs calls …
NOSaprs has a series of
callsign and ‘callsign pattern’ filters to deal with different areas of
functionality.
Net> aprs calls
Usage: aprs calls [fwdtorf|bantorf|ignorerf|postorf|stattorf]
*[callsign &| patt
ern list]
Net>
These
are very powerful commands, so be very carefull on how you implement them. You
can run these command on the fly for all the available filters, so subsequent
instances of any command will simply delete the existing filter, and create a
new one to replace it. Also, note that the wildcard feature detailed in the
fwdtorf section applies to all of the available filters (very powerful indeed).
There are currently five (5) filters
available to the sysop. Next we will go over each of them in detail …
1.0.3.1
fwdtorf
This
filter is specific to APRS messaging and broadcasting of 3rd party
messages. It allows the sysop to configure which messages from the APRS
internet system are allowed to go out the RF interface. The filter looks at the
recipient callsign of the message to determine if it goes out RF or not. The
best way to show this is by example, for instance take a look at the following
:
aprs calls fwdtorf ve va k*6 k*4k