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

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> www server root directory (-D /usr/www/)
d dupe filter time in seconds, not below 27s! (default 60s)
E Erase axudp frames with ctrl-chars in calls else show "^" (off)
e 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 direct heard keep time minutes (Min) (-H 1440)
h Anzeige der Hilfeseite
I indirect heard keep time minutes (Min) (-I 30)
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 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 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 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> 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