[aprssig] Simple Network Paging Protocol to APRS Gateway

Kenneth Finnegan kennethfinnegan2007 at gmail.com
Wed Sep 17 11:21:41 CDT 2014


Let me preface this with a word of warning: this software is still
very fragile and unfinished, so what you're looking at is mostly held
together with duct tape.

A month ago, I was looking something up in /etc/services when I
noticed that port 444 is allocated for a protocol I had never heard
of: SNPP. http://en.wikipedia.org/wiki/Simple_Network_Paging_Protocol

A relatively simple protocol lost to history, but one that could
possibly be useful for talking to APRS clients. Having nothing better
to do this month (except work on my thesis), I decided it'd be a nice
way to brush up on my C daemon programming...

I present to you... the KWFSNPP gateway daemon!

Code can be found here: https://github.com/PhirePhly/kwfsnpp

You can play with it by connecting via "telnet
snpp.thelifeofkenneth.com 444" as long as I'm able to keep this kludge
running.

The use case here is for when you want to send a one-way APRS message
to someone, and you don't happen to have anything like APRSdroid or
Xastir running. Telnet into a KWFSNPP server and issue the following
commands:

PAGER W6KWF-5
MESSAGE Call Sean on W6BHZ/R
SEND
QUIT

My daemon then handles the retries and parsing the ack to make sure
the message is delivered to the target. The message does appear to be
coming from "KWFSNPP," so you need to appreciate that your message
won't include a useful From: field, just like in the good old pager
days.

Another possible use-case is sending APRS messages from short-lived
shell scripts such as scheduled cronjobs...
echo -e "PAGE W6KWF-5\nMESS Nightly backup of file server
failed!\nSEND\nQUIT" | nc snpp.thelifeofkenneth.com 444

If you try and connect and the server is down, it likely means I
thought better of exposing such an alpha piece of software to the
Internet at large, or it just died somehow...

Is this useful? Maybe...

Is this a silly project to be working on in 2014 when I should be
finishing my thesis? Absolutely!

Is this robust? Not at all, yet...

This is nowhere near finished or bomb proof. The following issues are
on the top of my list:
* Doesn't properly handle the APRS-IS server disconnecting
* Doesn't do any rate-limiting to prevent SNPP client abuse
* Doesn't try hard enough to verify valid destination addresses
* Doesn't daemonize yet. I currently have it running in a screen session
* There's no kwfsnppd.conf support yet, so the command line gets a little long
* A bunch of the options are hard-coded with no option flag support yet.
* I use the N*30 retry backoff algorithm that the OpenTracker uses,
having not yet put any thought into the ideal retry behavior for
APRS-IS connected stations.

Thoughts?

--
Kenneth Finnegan
http://blog.thelifeofkenneth.com/


More information about the aprssig mailing list