Udpgate4
Über udpgate4
Beschreibung
udpgate4 ist ein äußerst flexibles und leistungsfähiges APRS Gateway/iGate mit Funktionen, die sonst eigentlich kaum wo anders zu finden sind. Die Grundfunktion ist der Empfang von APRS-Paketen per AXUDP und der Weiterleitung zu einem weiterführenden APRS-Gateway im Internet oder Hamnet. Außerdem empfängt es Daten aus dem APRS-IS Netwzerk und kann diese lokal auswerten und auch weiterreichen, z.B. zur Aussendung über einen lokalen APRS-Digipeater (udpbox). Hervorzuheben ist das sehr interesante Webinterface, in welchem man viele Informationen einsehen kann.
Features Webinterface
- MH-Liste der direkt und indirekt (via) gehörten APRS Stationen
- Alle- ein und ausgehenden Telnetverbindungen zu und von anderen Gateways
- Übersicht der zuletzt über HF und APRS-IS gehörten APRS-Nachrichten
Wenn der Rechner des Gateways öffentlich erreichbar ist (z.B. über Hamnet, Internet), kann jeder User dieses Webinterface aufrufen und sich informieren. Das webinterface ist zudem durch den Sysop über eine CSS Datei nach belieben anpassbar.
Weitere Features
- Beliebige Anzahl AXUDP Eingangskanäle, die im Webinterface auch unterschiedlich dargestellt werden (z.B. Kennzeichnung 2m, 70cm, LoRa etc. möglich).
- Eingangskanäle können alle AXUDP fähigen Geräte und Tools sein, z.B. KISS/SMACK TNCs (udpflex), Soundmodems (afskmodem; auch per SDR-Stick), Wettersonden (sondemod) und ADSB (adsb2aprs) Dekoder usw.
- Redundante ausgehende Gatewayverbindung zu belibigem Tier2 oder sonstigem APRS Gateway. Falls eines ausfällt, wird automatisch zu anderen Verbunden.
- Verbindung zu Geräten und Programmen mit KISS/SMACK Schnittstelle möglich mit udpflex.
- Leistungsstarker Digipeater mit udpbox
Übersicht der Parameter
Eine detaillierte Erläuterung der Parameter findet man weiter unten.
udpgate4 -h -0 send no Data (only Messages and ack) to User with no Filter -C <time> connected (tcp) remember position minutes (Min) (-C 1440) -c delete frames with no valid source call in APRS-IS stream -D <path> www server root directory (-D /usr/www/) -d <time> dupe filter time in seconds, not below 27s! (default 60s) -E Erase axudp frames with ctrl-chars in calls else show "^" (off) -e <time> wait before (re)connect to (next) gateway in seconds, (30s) -F <lines>:<file> write direct heard file (call,sym,port,s,cnt,km,data,path) -f <filters> backstream filter text sent to out connected server -f m/50 if blanks dont pass parameter settings use , (-f m/30,-d/CW) -g <url>:<port>[#<filters>] connect to APRS-IS gateway, repeat -g for a list with favorites first and all urls will be tried to connect if the active connect is not the first in list, urls before will be polled and if gets connected, data transfer is switched to this link and the old gets disconnected if no filter setting, global -f filter is used -g www.db0anf.de:14580#m/50 -g 127.0.0.1:3000 ipv6 if enabled by kernel -g [::1]:14580#m/200 -g :<filename> read gateway urls from file url:port#filter,filter,... -H <time> direct heard keep time minutes (Min) (-H 1440) -h this -I <time> indirect heard keep time minutes (Min) (-I 30) -i <word> keyword in rf-frame-comment to enable multipath, * for all frames -j <time>[:<count>] maximum time/count to (re)send messages (s) (-j 21600:12) count=0: message passed thru to direct heard as ports tx limits allow) -k <time> 0 always connect to gateway else connect on demand and hold (0) (seconds) after last User gone or valid UDP Data arrived -L <number> max messages stored else delete oldest (-L 1000) -L 0 and -x set and net-to-rf enabled all msg to heard gatet -l <level>:<file> logfile -l 6:/tmp/log.txt level: 1 logins, 2 +sent frames, 6 +fitered frames, 7 +dups -M same as -R but tnc text format -m <maxconnects> max inbound connects -m 20 (default 50) -N send no stored messages to net except query answers -n <min>:<file> netbeacon minutes:filename -n 10:netbeacon.txt \\z ddhhmm, \\h hhmmss, \\:filename: insert file, \\v insert Version, \\\ insert \\ beacon file like: !8959.00N/17959.00E&igate mars beacon file used by udpgate itself to find out own position -O make MH entry for same calls but different port -o <seconds> ping-pong: time to stop data forwarding after last ping use double time of igate ping intervall -P <time[:time]> purge unacked (:acked) messages after seconds (-P 86400:300) -p <password> login passwort for aprs-is servers -p 12345 to hide password in commandline use file mode -p pass.txt -Q <n> send netbeacon with qAS if qAI dont pass some servers 0=never, 1=always else every n beacons send 1 with qAI -q <time> minimum quiet time after rf tx seconds (-q 10) -R <ip>:<dport>/<lport>[+<byte/s>[:<radius>]][#<portname>] udp rf port (monitor frame format) for local (t)rx <dport>/<lport> "/" only from this ip, dport=0 no tx +byte/s enable inet to rf for services like WLNK, WHO-IS :radius enable all inet to rf gate (from km around digi) messages to NOT direct heard users are gated at any radius >0 if no <ip> given then '127.0.0.1' is used #portname max 10 char like '144800' repeat -M for each radio port with a tx or different portname -r <filename> write a dated 1 day logfile with date+time+data lines -S <call> server call of this server -s MYCALL-10, no check if valid call -s <call> server call of this server -s MYCALL-10 -T <seconds> kill link to server if unack tcp bytes are longer in tx queue avoids delayed trackpoints (default 15s, off 0, max 60) -t <localport> local igate tcp port for in connects -t 14580 -U <time[:time]> purge unsent(:sent) unack messages after seconds (-P 600:60) -u <maxlines> raw frame listing by click to frame counter in Heard list (20) (0 off) -V <path> Via Path for net to rf frames, "-1" for SSID on destination call -v show frames and analytics on stdout -W <filesize> limit www server file size in 1024byte, (-W 1000) -w <port> port of www server -w 14501 -x <call> via <call> send messages to rf (-x OE0AAA-10) tx off: -x - default is server call -Y [num][,num]... bad digis fingerprints to insert GHOST* in otherwise false direct heard path udpgate -v -R 127.0.0.1:9200:9201 -s MYCALL-10 -l 7:aprs.log -n 10:beacon.txt -t 14580 -g www.server.org:14580#m/30 -p 12345
Webinterface
Das Webinterface kann in einem beliebigen Browser aufgerufen werden unter Angabe der URL bzw. der IP-Adresse des Rechners, auf dem udpgate4 läuft, gefolgt von dem Port. Der Port wird beim Aufruf von udpgate4 mit dem Parameter -w definiert.
HEARD
Die wichtigste Seite ist die MH-Liste der zuletzt gehörten Rufzeichen.
- Rufzeichen+SSID des Gateways
- Eigene Positionskoordinaten
- Eigener WW-Locator (10-stellig)
- udpgate Programmversion
- Kumulierte Anzahl der Aufrufe des Webinterface seit letztem Start
- Aktuelle Laufzeit des Gateways
- Wechseln zur Ansicht CONNECTS (Ein- und ausgehende Verbindungen)
- Wechseln zur Ansicht HEARD (MH-Liste)
- Wechseln zur Ansicht MSGRELAY (APRS-Messages)
- Wechselt zur info.html (liegt im www-Ordner und kann individuell gestaltet werden. Kann zur Stationsbeschreibung genutzt werden).
- Hier kann eingestellt werden, in welchen Zeitabständen (in Minuten) die Seite sich von alleine aktualisiert
- Chronologische Übersicht der zuletzt direkt gehörten Stationen
- Chronologische Übersicht der zuletzt indirekt gehörten Stationen. Indirekt bedeutet, dass die aussendende Station nicht direkt empfangen wurde, sondern ihr Signal durch einen Digipeater wiederholt wurde. Dazu zählen auch 3rd Party Aussendungen aus dem APRS-IS Netzwerk, wenn diese durch ein iGate über HF abgestrahlt werden.
Die Zeitspanne der MH-Listen lässt sich beim Aufruf von udpgate4 über die Parameter -H und -I definieren.
Die Anzahl der Spalten kann variieren, je nach verwendeter Empfangshardware. Bei Benutzung eines Soundmodems können weiterführende Informationen wie z.B. gehörtes TX-Delay und Signalqualität bestimmt werden. Dies ist nicht möglich bei Verwendung externer Controller, wie z.B. TNCs.
Spaltenbedeutung
- Call = Rufzeichen der gehörten Station. Durch klicken auf das Rufzeichen wird eine externe Seite aufgerufen, welche eine Auflistung der letzten ausgesendeten Pakete dieser Station zeigt, z.B. auf findu.com oder aprs.fi (dies kann eingestellt werden in der Datei serverlink.txt im www Ordner.
- Icon = Im Paket Gesendetes APRS-Symbol
- Port = Portname, der beim Aufruf von udpgate4 (Parameter -R) angegeben wurde
- Last Heard = Zeit seit dem letzten Hören
- Txd = Gemessenes TX-Delay der Station. Orangene und rote Kennzeichnung deutet auf ein zu hoch eingestelltes TX-Delay der empfangene Station hin. Zu hohes TX-Delay führt zu verlängerer Sendezeit und dadurch in dichten Gebieten zur unnötiger Frequenzauslastung. Zudem ist es eine sinnlose Energieverschwendung, da das TX-Delay keinerlei Informationen überträgt und nur die Frequenz belegt.
- Lev = Empfangspegel in ???
- q% = Signalqualität. Sollte im 90% Bereich liegen, ansonsten passt etwas an der Hardware der sendenden Station nicht
- Pack = Anzahl der korrekt empfangenen Pakete der Station in der vorgegebenen Zeitspanne. Durch klicken auf die Zahl kann eine Liste der 20 letzten Pakete abgerufen werden.
- Junk = Anzahl ausgesendeter üngültiger oder "unnützer" Pakete. Diese enthalten meist keine Positionsangaben (z.B. Telemetrie, Baken usw.). Durch klicken auf die Zahl kann eine Liste der 20 letzten Pakete abgerufen werden.
- QRB km = Entfernung zur gehörten Station
- Data = Übertragene daten. z.B. Geschwindigkeit, Temepratur etc.
- Path = To-Call und APRS-Pfad der Aussendung
CONNECTS
- AXUDP Ein- und Ausgangskanäle mit Quell-IP und Port
- Aufteilung RX oder TX Port; Portname
- Ausgehende Verbindung zu einem APRS-Server
- Gesetzte Filter der ausgehenden Server-Verbindung
- Eingehende Telnetverbindungen, z.B. von Usern oder anderen Programmen oder Gateways
- Beschreibung der eingehenden Telnetverbindung mit Filterangabe
MESSAGES
- Direkt gehörte APRS Nachrichten, welche vom eigenen Digi über HF digipeatet und an APRS-IS weitergegeben wurden.
- Über andere Digis gehörte APRS Nachrichten, welche vom eigenen Digi über HF digipeatet wurden.
- Von APRS-IS kommend gehörte APRS Nachrichten, welche vom eigenen Digi über HF digipeatet wurden.
Beispielkonfigurationen
Beispielkonfiguration eines APRS RX only iGate mit einem Eingangskanal
udpgate4 -s MYCALL-2 -R 127.0.0.1:0:9101 -n 30:/home/pi/dxlAPRS/aprs/netbeacon.txt -g rotate.aprs2.net:14580 -p 12345 -t 14580 -w 14501 -D /home/pi/dxlAPRS/aprs/www/
- -s = iGate Rufzeichen MYCALL-2.
- -R = Ein AXUDP Einganskanal auf Port 9101 (listen port). Da es nur ein RX only iGate ist, bleibt der destination port auf 0.
- -n = Netzbake alle 30 Minuten aus netbeacon.txt.
- -g = Ausgehende Verbindung mit dem Server rotate.aprs2.net auf Port 14580.
- -p = Eigener APRS Passcode 12345.
- -t = Eigener Telnet Port 14580.
- -w = Port des Webinterfaces 14501.
- -D = Pfad zum WWW Ordner für das Webinterface.
Beispielkonfiguration eines Digis mit einem Eingangskanal
udpgate4 -s MYCALL-10 -R 127.0.0.1:9002:9101+10:20#144800 -H 10080 -I 1440 -n 30:/home/pi/dxlAPRS/aprs/netbeacon.txt -g rotate.aprs2.net:14580#m/100,-t/t -p 12345 -t 14580 -w 14501 -v -D /home/pi/dxlAPRS/aprs/www/ -0
- -s = Rufzeichen des iGates (erscheint auch auf APRS-Karten unter diesem Namen)
- -R = Input/Output iGate zu HF inkl. Begrenzung der übertragenden Byte/s „+XY“, des Radius der APRS-IS Aussendungen in km „:20“ und die Bezeichnung des HF Ports „#144800“ (steht dann so auch im Webinterface).
- -H und -I = Zeitraum für die MH-Listen auf dem Webinterface des iGates (direkt gehört und via Liste)
- -n = Sende eine Bake in das APRS-IS Netzwerk im angegebenen Minutentakt aus der angegebenen Datei netbeacon.txt (Bitte genaue Formatierung und Koordinatenformat beachten!)
- -g = Ausgehende Verbindung zum APRS Gateway adresse:port#Filter (Informationen zu APRS-IS Filtern z.B. hier: [1])
- -p = APRS Passcode passend zum Rufzeichen
- -t = Das eigene Gateway kann selbst (auch per Telnet) auf diesem Port connected werden (z.B. für lokale Anwendungen wie SVXLink usw.)
- -w = Port für das Webinterface des Gateways
- -v = Zeige erweiterte Informationen an (nicht notwendig beim standalone Betrieb)
- -D = Pfad zum Webinterface-Ordner (enthält unter anderem info.html und eine beliebig anpassbare CSS Datei fürs Webinterface)
- -0 = Die „Null“ sorgt dafür, dass bei Telnet Connects auf Port 14580 (-t ) die Angabe von weiteren Filtern notwendig ist (spart unnötigen Traffic)
Detaillierte Erläuterung der Parameter
0 | Sende Keine Daten an User über Telnet außer APRS-Nachrichten und ACK |
C | connected (tcp) remember position minutes (Min) (-C 1440) |
c | Lösche Pakete ohne gültiges Quellrufzeichen im eingehenden APRS-IS Datenstrom |
D <path> | Dateipfad zum root des Webservers (-D /usr/www/). Der Ordner enthält folgende Dateien und Ordner: style.css: Damit kann das Aussehen des Webinterfaces beeinflusst werden info.html: Hier kann man Informationen über den Digi im HTML Format einfügen. Diese wird angezeigt wenn man im Webinterface auf den "INFO" Button klickt. calllink.txt: Enthält den Link zum Aufruf weiterer Informationen über ein Rufzeichen, wenn man auf dieses in der MH-Liste klickt. Es wird die erste Zeile in der Datei verwendet. Weitere Beispiele sind vorhanden. Standard ist findu.com. favicon.txt: Dieses Symbol wird im Browser für die Webseite angezeigt (Webseitensymbol). serverlink.txt: Wird im Webinterface auf der "CONNECTS"-Seite ein Server angeklickt, wird dessen Statusseite aufgerufen. Der Link dazu kann in dieser Datei bei Bedarf angepasst werden. /icon: Dieser Ordner enthält alle APRS Symbolgrafiken im GIF Format, welche im Webinterface angezeigt werden. |
d | Dublettenfilter; Zeit in Sekunden, jedoch nicht weniger als 27 Sekunden! (Standard 60 Sekunden) |
E | Erase axudp frames with ctrl-chars in calls else show "^" (off) |
e | Wartezeit für die (Wieder)Verbindung zum (nächsten) Gateway in Sekunden (Standard 30 Sekunden) |
F <lines>:<file> | write direct heard file (call,sym,port,s,cnt,km,data,path) |
f <filters> | backstream filter text sent to out connected server -f m/50 if blanks dont pass parameter settings use , (-f m/30,-d/CW) |
g <url>:<port>[#<filters>] | Verbinde mit einem APRS-IS Gateway Wiederhole -g für eine Liste mit den Favoriten zuerst und alle URLs werden versucht der Reihe nach zu connecten Wenn die aktive Verbindung nicht die erste in der Liste ist, werden die vorherigen URLs gepollt. Sobald die Verbindung zum vorhergehenden Gateway (wieder) erfolgreich aufgebaut wurde, wird der Datentransfer zu dieser Verbindung gewechselt und die alte Verbindung wird getrennt. Wird kein Filter angegeben, wird der globale -f Filter des verbundenen Gateways genutzt. |
g :<filename> | Lese die Gateway URLs aus der angegebene Datei. Zeilenformat: url:port#filter,filter,.... Beispiel: -g :igates.txt . Siehe auch igates.txt. |
H | Begrenzt die Liste der direkt gehörten Stationen auf -H Minuten (Standard 1440 Minuten = 1 Tag) |
h | Anzeige der Hilfeseite |
I | Begrenzt die Liste der indirekt gehörten Stationen auf -I Minuten (Standard 30 Minuten) |
i <word> | keyword in rf-frame-comment to enable multipath, * for all frames |
j | maximum time/count to (re)send messages (s) (-j 21600:12) count=0: message passed thru to direct heard as ports tx limits allow |
k | 0 = Verbinde immer mit dem Gateway, ansonsten verbinde nur bei Bedarf und halte die Verbindung |
L <number> | max messages stored else delete oldest (-L 1000) -L 0 and -x set and net-to-rf enabled all msg to heard gatet |
l <level>:<file> logfile | level: 1 logins, 2 +sent frames, 6 +fitered frames, 7 +dups |
M | Identisch zu -R , jedoch im "TNC Text Format ???" |
m <maxconnects> | Maximale Anzahl eingehender Telnet Verbindungen (Standard 50 Connects) |
N | send no stored messages to net except query answers |
n <min>:<file> | Netzbake Minuten:Dateiname. Sendet eine Bake ins APRS-Netzwerk (nicht über HF!). Siehe auch netbeacon.txt Die Zeit zwischen den Aussendungen sollte 30 Minuten nicht unterschreiten. Auf den APRS-Karten bleiben die Symbole in der Regel mindestens eine Stunde sichtbar. udpgate4 verwendet die Bakendatei auch zur Bestimmung der eigenen Position. |
O | make MH entry for same calls but different port |
o <seconds> | ping-pong: time to stop data forwarding after last ping. use double time of igate ping intervall. |
P <time[:time]> | purge unacked (:acked) messages after seconds (-P 86400:300) |
p <password> | Login Passwort (Passcode) für APRS-IS Server, z.B. -p 12345. Zum Verstecken des Passworts in der Kommandozeile kann auch auf eine Datei verwiesen werden, welche das Passwort enthält, z.B. -p passwort.txt |
Q <n> | send netbeacon with qAS if qAI dont pass some servers. 0=never, 1=always else every n beacons send 1 with qAI |
q | minimum quiet time after rf tx seconds (-q 10) |
R <ip>:<dport>/<lport>[+<byte/s>[:<radius>]][#<portname>] | udp rf port (monitor frame format) for local (t)rx <dport>/<lport> "/" only from this ip, dport=0 no tx +byte/s enable inet to rf for services like WLNK, WHO-IS :radius enable all inet to rf gate (from km around digi) messages to NOT direct heard users are gated at any radius >0 if no <ip> given then '127.0.0.1' is used #portname max 10 char like '144800' repeat -M/-R for each radio port with a tx or different portname. |
r <filename> | write a dated 1 day logfile with date+time+data lines |
S <call> | Rufzeichen des eigenen APRS-Servers, ohne Prüfung auf Gültigkeit des Rufzeichens |
s <call> | Rufzeichen des eigenen APRS-Servers, jedoch mit Prüfung auf Gültigkeit des Rufzeichens (Amateurfunkrufzeichen) |
T <seconds> | kill link to server if unack tcp bytes are longer in tx queue. avoids delayed trackpoints (default 15s, off 0, max 60). |
t <localport> | Lokaler TCP Port für eingehende Verbindungen. Der Standard ist Port 14580 bei APRS-Servern. |
U <time[:time]> | purge unsent(:sent) unack messages after seconds (-P 600:60) |
u <maxlines> | raw frame listing by click to frame counter in Heard list (20) (0 off) |
V <path> | Via Pfad für APRS-IS zu HF Aussendungen, "-1" for SSID on destination call. Damit sollte vorichtig umgegangen werden. Eine falsche Konfiguration kann hier zum ungewollten Zumüllen der APRS Frequenzen führen. HF Aussendungen aus dem APRS-IS Netzwerk sollten grundsätzlich nur lokal erfolgen, ohne "via"-Pfad. Nur wenn es zwingend notwendig ist, diese Pakete über einen anderen Digi weiterverbreiten zu lassen, sollte man einen APRS-Pfad hinzufügen. Empfehlung ist KEINEN APRS-Pfad auszusenden! |
v | Zeige Pakete und weitere Informationen in der Bildschirmausgabe. |
W <filesize> | limit www server file size in 1024byte, (-W 1000) |
w <port> | Port des Webservers, z.B. -w 14501. Auf diesem Port kann der Webserver über einen Webbrowser erreich werden. |
x <call> | via <call> send messages to rf (-x OE0AAA-10) tx off: -x -. default is server call |
Y [num][,num]... | bad digis fingerprints to insert GHOST* in otherwise false direct heard path |