Udpbox
Über udpbox
udpbox ist ein leistungsfähiger und äußerst individuell konfigurierbarer APRS Digipeater mit allerhand Filtermöglichkeiten. Input und Output von udpbox sind im AXUDP Format. udpbox kann auch dazu genutzt werden eine AXUDP Quelle zu vervielfältigen, also an einem Port eingehende AXUDP Pakete an mehrere andere Ports identisch weiterzuleiten.
Übersicht der Parameter
udpbox -h -a <paths> user message ack path eg. WIDE2-2 or - for no path -b <s>:<file> enable beacon every s(econds) path and text from <file> cycles thru lines in file, empty lines = no tx (size max 32kb) \\z ddhhmm, \\h hhmmss, \\:filename: insert file, \\[filename] insert file and delete after, \\(filename) if exists insert and delete,\\\ is \\, \\rm delete beacon file file may be modified any time eg. by telemetry program -c <ip>:<port> send text monitor udp frame with cr lf -D output decoded Data to stdout -d <call> digipeater enable (and dupe filter) call -d - dupe filter without data modification -e echo last (filtert) output -f <filterparm> 'p<x>,<x>...' pass UI frames with first char (-f p58,110) 'd<x>,<x>...' pass UI frames with not first char (-f d32,65-79) Messages to itself are treated as Telemetry (-f d84) -h this -k <deg>/<deg>/<km> distance filter, center/radius -k 48.2/13.5/100 -k 0/0/20000 remove all (not user msg) with no position data -L <ip>:<port>:<netname> read monitor rflink header with netname -l <ip>:<port> send raw axudp frame and pass thru axudp2 header -M <ip>:<port> read text monitor udp frame ip=255.255.255.255:0 read text monitor from stdin ip=255.255.255.255:1 read text monitor from stdin and terminate -m <ip>:<port> send text monitor udp frame 0 terminated -p <n>,<...> -p 7,8 igate friendly digi relaying all direct heared -p 5,6,7,8,9 first hop digi, -p 3,4 (noisy) last hop digi -p 0,1,3,4,5,6,7,8,9,14,16 original, noisy, path loosing ... 0..2 limit ssid-routing to (bit0 + 2*bit1 + 4*bit2) dest-3: dest-2,digicall*, dest-3,call*: dest-2,call,digicall* 3 allow repeatet before (mostly with wrong path trace) 4 no uplink check for 'looks like direct heared' (noisy, wrong path trace possible) 5 resend TRACEn-(N-1), 6 resend WIDEn-(N-1) so frames may be relayed again by loss of downlink trace 7 append remaining digi path after via digicall 8 append remaining digi path after RELAY/GATE/TRACE 9 append remaining digi path after WIDE so frames may be relayed again by loss of downlink trace 10, 11, 12, 13 switch off via digicall, RELAY, TRACE, WIDE 14 insert not digicall on direct heared before WIDEn-N, as others do, your digi is hidden, and path is shown wrong 15 convert destination ssid routing to WIDEn-n 16 send n-0 without repeated flag 17 remove all WIDE from downlink path 18 enable via GATE (use as gate: disable via all other) 19 allow ECHO as alias to RELAY -P <s> piggyback time sending beacon earlier if sent anything now -R <ip>:<port> read raw axudp frame, 0 ip read from all (-R 0.0.0.0:2000) -r <ip>:<port> send raw axudp frame -S Satgate, filter out uplink (has via with no h-bit) -s pass not-UI-frames too (all PR-Frames, SABM, RR..) (raw axudp only) and axudp2 modem to layer2 message frames -t <s>,<s> dupe filter time in seconds (all types, user messages) -t 1740,28 29min not same beacon, 28s for retrying user message) -u <call>:<file> global option, receive & ack usermessages to call store in file repeat -u for more Calls to same or different File -v show frames and analytics on stdout -X same as -x but pass only frames with this calls -x <call>{,<call>} delete frames with call in a address field, -x TCPIP,N?CALL* udpbox -v -M 0.0.0.0:9200 -d MYCALL-10 -p 0,1,7 -t 1800,28 -r 192.168.1.24:9400
Pakettypen für frametype filter -f
Es folgt eine Übersicht aller möglichen APRS Pakettypen (frametypes) aus der Originaldatei der APRS Protokollbeschreibung aprs101.pdf. Der Pakettyp gibt die Art und den Inhalt des Pakets an.
dec = Dezimalwert des Pakettyps (anzugeben im -p Parameter) ascii = ASCII Wert des Parameters (sichtbar als erstes Zeichen im Datenteil des APRS Pakets) pos = enthält Positionskoordinaten ja (+) oder nein (-) ? = Unterschiedlich bzw. unbekannt digi = ???
dec ascii pos digi 28 0x1c + + Aktuelle Mic-E Daten (Rev 0 beta) 29 0x1d + + Alte Mic-E Daten (Rev 0 beta) 33 ! + + Position ohen Zeitstempel (keine APRS Nachrichten), oder Ultimeter 2000 Wetterstation 34 " [Ungenutzt] 35 # ? + Peet Bros U-II Wetterstation 36 $ + + GPS Rohdaten oder Ultimeter 2000 Wetterstation 37 % ? + Agrelo DFJr / MicroFinder 38 & ? + [Reserviert, Map Feature] 39 ' + + Alte Mic-E Daten (auch aktuelle Daten des TM-D700) 40 ( [Ungenutzt] 41 ) + + Item 42 * ? + Peet Bros U-II Wetterstation 43 + [Reserviert, Shelter data with time] 44 , - Ungültige Daten oder Testdaten 45 - [Ungenutzt] 46 . ? + [Reserviert, Weltraumwetter] 47 / + + Position mit Zeitstempel (ohne APRS Nachricht) 48-57 0-9 - [Bitte nicht benutzen] 58 : - + APRS-Nachricht 59 ; + + APRS-Objekt 60 < - + Station Capabilities 61 = + + Position ohne Zeitstempel (ohne APRS Nachricht) 62 > - - Status 63 ? - + Query 64 @ + + Position mit Zeitstempel (mit APRS Nachricht) 65-83 A-S - [Bitte nicht benutzen] 84 T - - Telemetrie Daten 85-90 U-Z - [Bitte nicht benutzen] 91 [ + + QTH Locator Bake (veraltet) 92 \ [Ungenutzt] 93 ] [Ungenutzt] 94 ^ [Ungenutzt] 95 _ - - Wetter Report (ohne Position) 96 ` + + Aktuelle Mic-E Daten (wird nicht verwendet vom TM-D700) 97-122 a-z - [Bitte nicht benutzen] 123 { ? + Benutzerdefiniertes APRS Format 124 | - [Nicht benutzen, TNC Steuerzeichen] 125 } +- - VPN Pakete (Paket in Paket), wird bei HF-Aussendungen aus APRS-IS verwendet. 126 ~ - [Nicht benutzen, TNC Steuerzeichen]
Digipeating Optionen -p
-p 0..2 ergeben, als Bit 0 bis 2 einer Binaerzahl interpretiert, die maximal zulaessige SSID am Destination "Call". Ansonsten wird die Zahl auf eben diesen Wert limitiert und dann wie sonst auch um 1 reduziert wieder gesendet.
-p 15 Setzt das nur mehr von manchen Digis verstandene SSID-Routing in ein entsprechendes WIDEn-n um. Die kritische 1. Funkstrecke vom Fahrzeug ist dann schon ueberstanden und der nun um 7 Byte laengere Frame wird meist nur mehr zwischen Feststationen weitergegeben.
udpbox Parameter Input Output ------------------------------------------------------------------------------ -d OE5DXL-2 OE5DXL>TEST-7:>test -d OE5DXL-2 -p 0 OE5DXL>TEST-7:>test OE5DXL>TEST,OE5DXL-2*:>test -d OE5DXL-2 -p 1 OE5DXL>TEST-7:>test OE5DXL>TEST-1,OE5DXL-2*:>test -d OE5DXL-2 -p 2 OE5DXL>TEST-7:>test OE5DXL>TEST-3,OE5DXL-2*:>test -d OE5DXL-2 -p 0,2 OE5DXL>TEST-7:>test OE5DXL>TEST-4,OE5DXL-2*:>test -d OE5DXL-2 -p 0,1,2 OE5DXL>TEST-7:>test OE5DXL>TEST-6,OE5DXL-2*:>test -d OE5DXL-2 -p 0,1,2 OE5DXL>TEST-6:>test OE5DXL>TEST-5,OE5DXL-2*:>test -d OE5DXL-2 -p 0,1,2 OE5DXL>TEST-1:>test OE5DXL>TEST,OE5DXL-2*:>test -d OE5DXL-2 -p 0,1,15 OE5DXL>TEST-5:>test OE5DXL>TEST,OE5DXL-2*,WIDE2-2:>test -d OE5DXL-2 -p 0,1,15 OE5DXL>TEST-4:>test OE5DXL>TEST,OE5DXL-2*,WIDE2-2:>test -d OE5DXL-2 -p 0,1,15 OE5DXL>TEST-3:>test OE5DXL>TEST,OE5DXL-2*,WIDE2-2:>test -d OE5DXL-2 -p 0,1,15 OE5DXL>TEST-2:>test OE5DXL>TEST,OE5DXL-2*,WIDE1-1:>test -d OE5DXL-2 -p 0,1,15 OE5DXL>TEST-1:>test OE5DXL>TEST,OE5DXL-2*:>test -d OE5DXL-2 -p 0,1,15 OE5DXL>TEST:>test ----
-p 3 repeate auch was schon vorher durch einen digi gelaufen ist
-d OE5DXL-2 -p 3 OE5DXL>TEST,OE5XBL*,WIDE2-2:>test OE5DXL>TEST,OE5XBL,OE5DXL-2*:>test -d OE5DXL-2 OE5DXL>TEST,OE5XBL*,WIDE2-2:>test
-p 4 repeate auch was bei ueblicher Parameter Einstellung nicht nach "direkt gehoert" aussieht, also kein * im Pfad und beim 1. WIDE oder TRACE gleiche Ziffern hat
-d OE5DXL-2 -p 4 OE5DXL>TEST,WIDE2-2:>test OE5DXL>TEST,OE5DXL-2*:>test -d OE5DXL-2 -p 4 OE5DXL>TEST,WIDE2-1:>test OE5DXL>TEST,OE5DXL-2*:>test -d OE5DXL-2 OE5DXL>TEST,WIDE2-2:>test OE5DXL>TEST,OE5DXL-2*:>test -d OE5DXL-2 OE5DXL>TEST,WIDE2-1:>test
-p 5 sende TRACEn-N mit um 1 vermindertem N ansonsten tu es ganz weg
-d OE5DXL-2 -p 5 OE5DXL>TEST,WIDE2-2:>test OE5DXL>TEST,OE5DXL-2*:>test -d OE5DXL-2 -p 5 OE5DXL>TEST,TRACE2-2:>test OE5DXL>TEST,OE5DXL-2*,TRACE2-1:>test
-p 6 sende WIDEn-N mit um 1 vermindertem N ansonsten tu es ganz weg
-d OE5DXL-2 -p 6 OE5DXL>TEST,WIDE2-2:>test OE5DXL>TEST,OE5DXL-2*,WIDE2-1:>test -d OE5DXL-2 -p 6 OE5DXL>TEST,TRACE2-2:>test OE5DXL>TEST,OE5DXL-2*:>test
WIDE und TRACE
-d OE5DXL-2 -p 5,6 OE5DXL>TEST,TRACE2-2:>test OE5DXL>TEST,OE5DXL-2*,TRACE2-1:>test -d OE5DXL-2 -p 5,6 OE5DXL>TEST,WIDE2-2:>test OE5DXL>TEST,OE5DXL-2*,WIDE2-1:>test
-p 7 Sende den Rest vom Pfad mit bei via digicall
-p 8 Sende den Rest vom Pfad mit bei via RELAY
-p 9 Sende den Rest vom Pfad mit bei via TRACE oder WIDE
-d OE5DXL-2 -p 7 OE5DXL>TEST,OE5DXL-2,WIDE2-2:>test OE5DXL>TEST,OE5DXL-2*,WIDE2-2:>test -d OE5DXL-2 -p 7 OE5DXL>TEST,RELAY,WIDE2-2:>test OE5DXL>TEST,OE5DXL-2*:>test -d OE5DXL-2 -p 7 OE5DXL>TEST,TRACE1-1,WIDE2-2:>test OE5DXL>TEST,OE5DXL-2*:>test -d OE5DXL-2 -p 7 OE5DXL>TEST,WIDE1-1,WIDE2-2:>test OE5DXL>TEST,OE5DXL-2*:>test -d OE5DXL-2 -p 8 OE5DXL>TEST,OE5DXL-2,WIDE2-2:>test OE5DXL>TEST,OE5DXL-2*:>test -d OE5DXL-2 -p 8 OE5DXL>TEST,RELAY,WIDE2-2:>test OE5DXL>TEST,OE5DXL-2*,WIDE2-2:>test -d OE5DXL-2 -p 8 OE5DXL>TEST,TRACE1-1,WIDE2-2:>test OE5DXL>TEST,OE5DXL-2*:>test -d OE5DXL-2 -p 8 OE5DXL>TEST,WIDE1-1,WIDE2-2:>test OE5DXL>TEST,OE5DXL-2*:>test -d OE5DXL-2 -p 9 OE5DXL>TEST,OE5DXL-2,WIDE2-2:>test OE5DXL>TEST,OE5DXL-2*:>test -d OE5DXL-2 -p 9 OE5DXL>TEST,RELAY,WIDE2-2:>test OE5DXL>TEST,OE5DXL-2*:>test -d OE5DXL-2 -p 9 OE5DXL>TEST,TRACE1-1,WIDE2-2:>test OE5DXL>TEST,OE5DXL-2*,WIDE2-2:>test -d OE5DXL-2 -p 9 OE5DXL>TEST,WIDE1-1,WIDE2-2:>test OE5DXL>TEST,OE5DXL-2*,WIDE2-2:>test
-p 10 via digicall aus
-p 11 via RELAY aus
-p 12 via TRACEn-N aus
-p 13 via WIDEn-N aus
-d OE5DXL-2 -p 10 OE5DXL>TEST,OE5DXL-2:>test -d OE5DXL-2 -p 10 OE5DXL>TEST,RELAY:>test OE5DXL>TEST,OE5DXL-2*:>test -d OE5DXL-2 -p 10 OE5DXL>TEST,TRACE1-1:>test OE5DXL>TEST,OE5DXL-2*:>test -d OE5DXL-2 -p 10 OE5DXL>TEST,WIDE1-1:>test OE5DXL>TEST,OE5DXL-2*:>test -d OE5DXL-2 -p 11 OE5DXL>TEST,OE5DXL-2:>test OE5DXL>TEST,OE5DXL-2*:>test -d OE5DXL-2 -p 11 OE5DXL>TEST,RELAY:>test -d OE5DXL-2 -p 11 OE5DXL>TEST,TRACE1-1:>test OE5DXL>TEST,OE5DXL-2*:>test -d OE5DXL-2 -p 11 OE5DXL>TEST,WIDE1-1:>test OE5DXL>TEST,OE5DXL-2*:>test -d OE5DXL-2 -p 12 OE5DXL>TEST,OE5DXL-2:>test OE5DXL>TEST,OE5DXL-2*:>test -d OE5DXL-2 -p 12 OE5DXL>TEST,RELAY:>test OE5DXL>TEST,OE5DXL-2*:>test -d OE5DXL-2 -p 12 OE5DXL>TEST,TRACE1-1:>test -d OE5DXL-2 -p 12 OE5DXL>TEST,WIDE1-1:>test OE5DXL>TEST,OE5DXL-2*:>test -d OE5DXL-2 -p 13 OE5DXL>TEST,OE5DXL-2:>test OE5DXL>TEST,OE5DXL-2*:>test -d OE5DXL-2 -p 13 OE5DXL>TEST,RELAY:>test OE5DXL>TEST,OE5DXL-2*:>test -d OE5DXL-2 -p 13 OE5DXL>TEST,TRACE1-1:>test OE5DXL>TEST,OE5DXL-2*:>test -d OE5DXL-2 -p 13 OE5DXL>TEST,WIDE1-1:>test
-p 14 tu das eigene digicall NICHT dazu (nicht empfohlen)
-d OE5DXL-2 -p 5,6 OE5DXL>TEST,WIDE2-2:>test OE5DXL>TEST,OE5DXL-2*,WIDE2-1:>test -d OE5DXL-2 -p 5,6,14 OE5DXL>TEST,WIDE2-2:>test OE5DXL>TEST,WIDE2-1:>test
-p 16 aus WIDE1-1 wird WIDE1 (also meistens dann noch mal repeatet)
-d OE5DXL-2 -p 5,6 OE5DXL>TEST,WIDE1-1:>test OE5DXL>TEST,OE5DXL-2*:>test -d OE5DXL-2 -p 5,6,16 OE5DXL>TEST,WIDE1-1:>test OE5DXL>TEST,OE5DXL-2*,WIDE1:>test
-p 17 entferne alle WIDE vom Rest des Pfades
-p 5,6,7,8,9 OE5DXL>TEST,WIDE1-1,RELAY,WIDE3-3:>test OE5DXL>TEST,OE5DXL-2*,RELAY,WIDE3-3:>test -p 5,6,7,8,9,17 OE5DXL>TEST,WIDE1-1,RELAY,WIDE3-3:>test OE5DXL>TEST,OE5DXL-2*,RELAY:>test
-p 18 repeate via GATE (fuer Crossband von kw auf ukw)
-p 5,6,7,8,9 OE5DXL>TEST,GATE,WIDE1-1,WIDE3-3:>test -p 5,6,7,8,9,18 OE5DXL>TEST,GATE,WIDE1-1,WIDE3-3:>test OE5DXL>TEST,OE5DXL-2*,WIDE1-1,WIDE3-3:>test -p 5,6,7,8,9,17,18 OE5DXL>TEST,GATE,WIDE1-1,WIDE3-3:>test OE5DXL>TEST,OE5DXL-2*:>test
-p 19 repeate via ECHO (auf kw anstatt RELAY warum auch immer)
-p 5,6,7,8,9 OE5DXL>TEST,ECHO,WIDE3-3:>test -p 5,6,7,8,9,19 OE5DXL>TEST,ECHO,WIDE3-3:>test OE5DXL>TEST,OE5DXL-2*,WIDE3-3:>test -p 5,6,7,8,9,17,19 OE5DXL>TEST,ECHO,WIDE3-3:>test OE5DXL>TEST,OE5DXL-2*:>test
Weiterführende Links
Ausführliche Beschreibung der Parameter
Parameter | Beschreibung |
---|---|
a <Pfad> | APRS Pfad für ACK Pakete zu APRS-Nachrichten, z.B. WIDE2-2, oder - für keinen Pfad |
b <sek>:<Datei> | Aktiviert eine zu sendende APRS-Bake alle s Sekunden welche aus der einer Datei <Datei> gelesen wird. Ein Pfad kann angegeben werden, z.B. /home/pi/dxlAPRS/aprs/digibeacon.txt. Jede Zeile in der Datei enthält Informationen im folgenden Format: MYCALL>TOCALL:APRS-Daten Mehr Informationen dazu auf der Seite digibeacon.txt. |
c <ip>:<port> | Ausgehende Daten im Text Monitor UDP Format mit cr lf |
D | Beispiel |
d <call> | Aktiviere Digipeater mit dem Rufzeichen CALL. Dupefilter wird ebenfalls aktiviert (Filtern identischer Baken). |
d - | Beispiel |
e | ??? Zeigt die zuletzt gefilterten Pakete |
f <filterparm> | Pakettyp filter. Vorangesetztes p lässt die genannten Pakettypen durch ("pass") und filtert die übrigen. Vorangesetztes d lässt alle Pakettypen zu, außer die hier angegebenen. Beispiele: -f p58,110 oder -f d32,65-79 |
h | Hilfetext |
k <Grad>/<Grad>/<km> | Radiusfilter in km um die angegebene Koordinate (in Dezimalgrad) Beispiel: -k 48.2/13.5/100 -k 0/0/20000 Filtert alle Pakete ohne Position, mit Ausnahme von APRS-Nachrichten. |
L <ip>:<port>:<netname> | Beispiel |
l <ip>:<port> | Beispiel |
M <ip>:<port> | Beispiel |
m <ip>:<port> | Beispiel |
p <n>,<...> | Die Digipeating Optionen geben an unter welchen Umständen empfangene Pakete digipeatet werden. Siehe Abschnitt "Digipeating Optionen". |
P |
Beispiel |
R <ip>:<port> | Eingehende AXUDP Daten, kommend von Rechner-IP <ip> auf Port <port>. Gleicher Rechner = 127.0.0.1:<port>, beliebiger Rechner möglich mit -R 0.0.0.0:<port> |
r <ip>:<port> | Ausgehende AXUDP Daten an Rechner-IP <ip> und Port <Port> |
S | Beispiel |
s | Lass alle nicht-IU-Frames durch (z.B. alle Packet Radio Pakete, SABM, RR usw.). ??? Nur reines AXUDP Format und AXUDP2 Modem zu Layer2 Nachrichtenpakete. ????? |
t |
Dupefilter in s Sekunden. Die erste Angabe bezieht sich auf alle Pakettypen, die zweite bezieht sich auf APRS-Nachrichten. Beispiel: -t 1740,28 lässt die gleiche Bake nur einmal alle 29 Minuten durch, bei APRS-Nachrichten beträgt die Zeit mindestens 28 Sekunden bis zur Wiederholung. Achtung! Das hier eingestellte Intervall kann auch eigene identische Baken aus der digibeacon.txt filtern. Die Intervalle müssen aufeinander abgestimmt werden. |
u <call>:<file> | Beispiel |
v | Zeige Informationen in der Bildschirmausgabe. |
X | Lasse nur Pakete durch, welche die genannten Rufzeichen enthalten, egal an welcher Stelle (TO-Call, Via-Call usw.) |
x <call>{,<call>} | Filtere alle Pakete, welche die genannten Rufzeichen enthalten, egal an welcher Stelle (TO-Call, Via-Call usw.). |
Konfigurationsbeispiele
udpbox -v -M 0.0.0.0:9200 -d MYCALL-10 -p 0,1,7 -t 1800,28 -r 192.168.1.24:9400