Udpbox

Aus DXL-Wiki
Zur Navigation springen Zur Suche springen

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

Udpbox.gif

Ü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