Friday, December 17, 2010

An APRS Gateway

Yesterday I spent a couple of hours trying out aprsg - an APRS iGate that runs on both Linux and Windows which has been developed by Tapio, OH2GVE and Antti, OH3HMI and released under the GNU GPL.

The program has no user interface. Under Windows it displays a G icon in the system tray. All configuration is done by editing an INI file, in examples of which all the documentation is contained! Despite its relative simplicity there are a few unanswered questions about how things work, so some trial and error is necessary.

The unique feature of aprsg - as far as I know - is that it lets you specify filters to control what is gated from the internet to RF. You can gate packets addressed to specific callsigns or callsign blocks (using a mask) and this can be ANDed or ORed with area based filters (either a box or a circle centered on a point.) It was wonderful in this relative APRS desert to see local stations and objects appearing on RF and being displayed on my TH-D72 and VX-8GR. It was like being back in Prague again! This is not something you would want to do in an area where there is other APRS activity but for someone who lives out of range of any digipeater or gateway aprsg could make APRS usable and fun.

The program supports multiple RF ports and can do cross-band gating using the same rules. I didn't try this, and did not understand how to set different call-ssids to the different RF ports. It appeared to me that the gateway and everything connected to it uses the same call-ssid, though this may be my misunderstanding.

A significant limitation is that aprsg only supports KISS TNCs (and AX.25 on Linux) but does not provide any way to send a script to TNCs that need a couple of commands to get them into KISS mode. It doesn't support AGW Packet Engine, but those who don't have TNCs might be able to connect it to a TrueTTY virtual TNC for sound card operation.

Aprsg provides no support for digipeating - a pity, the possibility of filter-based digipeating would be most interesting. It also doesn't provide a local APRS-IS server for users to connect graphical APRS clients like APRSISCE/32. So you would need to connect your GUI client separately to APRS-IS using a different call-ssid to your gateway.

These limitations apart, aprsg is a potentially useful program for anyone wanting to set up an APRS internet gateway. It's quite easy to get going and has a very low resource usage.


Lynn (D) said...

I just looked through the sample configuration for aprsg and don't see anything about actually gating just messages from -IS to RF. Am I missing something? There seems to be plenty of support for gating lots of other traffic to RF, but no mention of messages in particular.

Lynn (D) - KJ4ERJ

Julian said...

No. The gating is controlled by filters which can be combinations of a buddy filter, area filter or range filter. There is nothing to restrict the gating to messages or anything else. If I can figure out how to compile it, I might try playing with the source code, but as it's in C/C++ it probably makes more sense to you than to me.

Lynn (D) said...

So if a stranger drives into range of the IGate, it may or may not gate him from RF to -IS, but will most likely NOT gate messages from -IS to RF for him unless his callsign happens to match one of the filters in place.

Sounds like a good solution for 3rd party restrictive areas, but not so good for the APRS infrastructure in areas where 3rd party traffic is allowed.

Julian said...

Yes, that's about it. I guess it also could be used in an APRS "hole" to retransmit traffic, preferably on a different frequency, so that RF users could hear and participate in what is going on in the wider area.