Udpgate4

Aus DXL-Wiki
Zur Navigation springen Zur Suche springen

Ü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.

200px|thumb|left|MHeard Liste

Udpgate4-webinterface.png – für ein Vollbild

CONNECTS

MESSAGES

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
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