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.
  • Eine weitere Anwendungsmöglichkeit wäre udpbox als Bakengenerator zu nutzen. Baken aus Bakenfile aussenden und per UDP raus zum TX oder ans iGate.

udpbox folgt einem einfachen Prinzip. Es kommen Daten rein (mit -R oder -M), diese werden verarbeitet und/oder gefiltert (mit -d, -f, -p, -x und -b) und wieder ausgegeben (mit -r, -l, -m und -c). Dabei kann udpbox mehrere solcher "chains" verarbeiten. Auch kann der Output pro chain mehrfach erfolgen, es gibt keine Grenzen.

Udpbox.png

Ü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
 -n <ip>:<port> send raw payload (no axudp header and crc) udp frame
 -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 ohne 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. Bezieht sich auf das SSID Routing, ist Heute nicht mehr weit verbreitet.

-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 das, was schon vorher durch einen Digi gelaufen ist

udpbox Parameter      Input                              Output
------------------------------------------------------------------------------
-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 das, was bei ueblicher Parameter Einstellung nicht nach "direkt gehoert" aussieht, also kein * im Pfad und beim 1. WIDE oder TRACE gleiche Ziffern hat

udpbox Parameter      Input                       Output
------------------------------------------------------------------------------
-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

udpbox Parameter      Input                              Output
------------------------------------------------------------------------------
-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

udpbox Parameter      Input                              Output
------------------------------------------------------------------------------
-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

udpbox Parameter      Input                              Output
------------------------------------------------------------------------------
-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


udpbox Parameter      Input                               Output
------------------------------------------------------------------------------
-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 Deaktiviere digipeating via digicall

-p 11 Deaktiviere digipeating via via RELAY

-p 12 Deaktiviere digipeating via via TRACEn-N

-p 13 Deaktiviere digipeating via via WIDEn-N

udpbox Parameter      Input                               Output
------------------------------------------------------------------------------
-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 Hänge das eigene digicall NICHT mit an. Dieser Parameter ist nicht zu empfehlen! Es ist dann nicht mehr zu erkennen, dass das Paket digipeatet wurde.

udpbox Parameter      Input                      Output
------------------------------------------------------------------------------
-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)

udpbox Parameter      Input                      Output
------------------------------------------------------------------------------
-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. Verhindert das Pakete von anderen Digis nochmal digipeatet werden, egal welchen Pfad der Absender vorgibt.

udpbox Parameter      Input                               Output
------------------------------------------------------------------------------
-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)

udpbox Parameter      Input                               Output
------------------------------------------------------------------------------
-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)

udpbox Parameter      Input                               Output
------------------------------------------------------------------------------
-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

Beispiele für mögliche -p Parameterkombinationen

Die lokalen Stationen nach Aussen bringen (-p 0)

  • Also direkt gehört repeaten und Rest vom Pfad weg lassen. Macht den geringstmöglichen Lärm.

Die lokalen Stationen nach Aussen bringen und dort weiter (0,1,2,5,6,7,8,9)

  • Also direkt gehört repeaten und Rest vom Pfad dran lassen. Der eigene Digi hört die Sachen dann mehrfach wieder und ist taub fürs lokale.

Stationen nach lokal bringen (-p 0,3,4)

  • Alles repeaten aber den Rest vom Pfad weg lassen. Macht viel Lärm, wäre aber genial wenn man das auf 70cm umgesetzt machen würde.

Stationen nach lokal bringen und weiter verteilen (-p 0,1,2,3,4,5,6,7,8,9)

  • Alles repeaten und den Rest vom Pfad dran lassen, macht maximalen Lärm.

Weiterführende Links


Ausführliche Beschreibung der Parameter

Parameter Beschreibung
a <Pfad> APRS Pfad für ACK Frames zu APRS-Nachrichten, z.B. WIDE2-2, oder - für keinen Pfad
b <s>:<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> Das Gleiche wie -m, aber die Zeile wird mit CR LF terminiert.
D Schreibe dekodierte APRS Daten auf stdout wie Call, Position, Höhe, Kommentar ...
d <call> Aktiviere Digipeater mit dem Rufzeichen CALL. Dupefilter wird ebenfalls aktiviert (Filtern identischer Baken).
d - Aktiviert einen Dupefilter ohne weitere Datenmodifikation (Digicall anhängen, WIDE Runterzählen etc.). Sinn: Dupefilter innerhalb einer Chain, wenn mehrere Quellen zum Aussenden zusammenkommen. Die Pakete müssen auch bereits "aufbereitet" sein zum senden. Verhindert mehrfache Aussendung ein und dasselben Paketes weil es ggf. aus mehreren Richtungen ankommt (z.B. mehrere RXe, nur ein TX).
e Nach einem -r -m -l werden die soeben damit gesendeten Frames für weitere Verarbeitung zur Verfügung gestellt. Ohne -e wären das die Daten, die beim letzten -R -M empfangen wurden. Macht nur Sinn wenn die Daten verändert wurden um sie wo anders auch noch hin zu senden mit oder ohne nochmal filtern.
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
Siehe auch Abschnitt zum Pakettypfilter weiter oben.
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> Verbindung zu UDPrfnet womit alles oder Teilstecken von APRS von 144.8 in ein IP-Netz ausgelagert werden kann (derzeit nicht verwendet).
l <ip>:<port> Wie -r, aber belasse evtl. vorhandene AXUDP2 Header. Verwende überall wo das Frameziel AXUDP2 versteht (alle dxl-Tools). Sinn: Übertragung von Metadaten vom afskmodem wie txdel, pegel, qualitaet, dcd, sendepuffer leer ...
M <ip>:<port> Wie -R, aber Textformat ala TAPR-tnc monitor oder frame(s) Eingabe auf stdin mit 255.255.255.255:0 oder frame Eingabe auf stdin mit 255.255.255.255:1 und udbbox terminiert nach einem Frame. Sinn: Baken erzeugen von Kommandozeile und aus Shell- oder PHP-Skripts.
m <ip>:<port> Wie -r, aber statt AXUDP im Textformat mit 0x00 terminiert.
n <ip>:<port> Wie -r, aber entferne AX.25 Calls und CRC. Es kommt nur die payload raus, transparent 00..FF.
p <n>,<...> Die Digipeating Optionen geben an unter welchen Umständen empfangene Pakete digipeatet werden. Siehe Abschnitt "Digipeating Optionen".
P Sekunden bis zu denen eine von udpbox erzeugte Bake (-b) früher gesendet wird als der Bakentimer es normal tun würde, zu dem Zweck, dass die Bake direkt an einem jetzt zu sendenden Frame angehängt wird. Sinn: Einsparen einer oder mehrerer TXDELAY Sendezeiten.
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 Schalte udpbox filter in Empfangspfad von Modem zu iGate auf ISS Frequenz. Sinn: Evtl. direkt empfangener Frame wird entfernt damit er nicht den wichtigen via ISS empfangenen im Dupe-Filter eliminiert.
s Lass auch nicht-IU-Frames durch (z.B. alle Packet Radio Pakete, SABM, RR usw.) und auch AXUDP2 Status Pakete (wie DCD und Sendepuffer leer) erzeugt von afskmodem -L oder -P weitergegeben mit -L zu l2cat für Packet Radio.
t <sek>,<sek> 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>:<Datei> Horche auf APRS-Nachrichten zu <call> und speichere sie in <Datei> und sende ein ACK.
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.).

Digipeater Statusmeldungen von udpbox

Für jedes in udpbox eingehende Paket gibt udpbox eine Statusmeldung aus. Sie sagt darüber aus, wie das Paket anhand der gesetzten Parameter bewertet wird und was anschließend damit passiert.

Der Zusatz "no tx" bedeutet immer, dass das Paket durch einen Filter aussortiert wurde und auch nicht weitergeleitet bzw. weiterverarbeitet wird.

Status Bedeutung
already digipeated no tx Paket wurde bereits digipeatet. Das wiederholte Digipeating wurde deaktiviert (-p 3 fehlt). Paket wird verworfen und nicht erneut digipeatet, selbst wenn noch WIDE-Hops übrig sind.
XYs since same payload no tx Identisches Paket wurde bereits vor XY Sekunden empfangen, für eine wiederholte Aussendung ist noch nicht genug Zeit vergangen (Dupefilter). Paket wird verworfen und nicht erneut digipeatet. Der Zeitraum lässt sich mit Parameter -t steuern.
message type filter no tx Paket wurde durch den Message Type Filter gefiltert (-f).
no (more) digipeat flags no tx WIDEn-n Pfade sind aufgebraucht. Paket wird nicht mehr digipeatet.
via WIDEn-n digi raw Paket wurde mit WIDEn-n Sytematik digipeatet.
no pos no tx Radius-Filter eingeschaltet. Pakete ohne Position wurde gefiltert.
digi raw Wenn einzeln dastehend, werden damit z.B. eigene Aussendungen aus der Bakendatei gekenntzeichnet. Ansonsten jedesmal wenn der Digipeater etwas digipeatet, z.B. bei via WIDEn-n digi raw.
callfilter deletes frame Callfilter hat das Paket gefiltert (-x oder -X).
too far Radius-Filter eingeschaltet. Pakete außerhalb des Radius wurde gefiltert.
sat gate and direct heard Wenn SAT-Gate mit -S aktiviert ist, werden diese Frames entsprechend so markiert.
via ssid routing Digipeating über SSID-Routing.
via digicall Digipeating über Digicall.
via RELAY Digipeating über RELAY.
via GATE Digipeating über die GATE Funktion (Kurzwelle zu UKW Digipeating) bei eingeschalteter GATE-Funktion (-p 18).
via TRACEn-n Digipeating über TRACEn-n.
we have already digipeated Erscheint wenn das eigene Digicall als digipeatende Station aufgeführt wird (z.B. Digi hört sich selber).
beacon macro file not readable Externe Datei als Textergänzungsmakro ist nicht lesbar.
bad beacon macro Textergänzungsmakro (z.B. Uhrzeit, Datum usw.) ist fehlerhaft.
bad beacon format Bake hat falsches Format.
delete beacon file Bakendatei wird dan dem Senden gelöscht (z.B. bei sich regelmäßig ändernden Baken, z.B. WX).
beacon file not found Bakendatei wurde nicht gefunden.
message ack path wrong ACK Pfad einer APRS-Nachricht an die udpbox selbst ist fehlerhaft.
<rawframe decode error> AX.25 Dekodierung fehlerhaft oder Datenformat weicht vom AX.25 Protokoll ab. Tritt z.B. auf bei umprogrammierten RS41 Wettersonden mit OM3BC Software, wenn das 5-stellige Call nicht mit Blanks aufgefüllt wird (Protokollfehler).
no input data

Konfigurationsbeispiele

Einfacher Digipeater

udpbox -R 127.0.0.1:9001 -l 127.0.0.1:9101 -d DB0XYZ-10 -p 0,1,2,5,8,17 -t 1740,28 -f p28,29,33,35-39,41-43,46,47,58,59,61,64,91,95,96,123 -k 0/0/20000 -b 600:/home/pi/dxlAPRS/aprs/digibeacon.txt -x APLWS*,NOCALL -l 127.0.0.1:9002 -v
  • Digi mit einem Ein- und ausgangskanal, z.B. ein TNC2. RX Port 9001 und TX-Port 9002
  • Empfang einer Frequenz mit AFSKMODEM und Weiterleitung der Daten an Port 9001
  • Die Daten werden weitergeleitet an das iGate (-l 127.0.0.1:9101)
  • Der Digipeater wird aktiviert (-d DB0XYZ-10)
    • mit Digipeating-Optionen (-p 0,1,2,5,8,17)
    • Dupe-Filter (-t 1740,28)
    • Pakettyp-Filter (-f p28,29,33,35-39,41-43,46,47,58,59,61,64,91,95,96,123)
    • Radius-Filter (-k 0/0/20000) der alles ohne Position (außer Nachrichten) wegfiltert
    • eine HF-Bake erzeugt (-b 600:/home/pi/dxlAPRS/aprs/digibeacon.txt)
    • alle Frames die Rufzeichen wie APLWS* (Wettersonden) und NOCALL enthalten filtert
    • und alles was übrigbleibt und zum digipeaten vorgesehen ist auf Port 9002 weiterleitet, dem TX-Port am TNC2. Das wird dann tatsächlich ausgesendet.

Komplexer Digipeater

udpbox -R 127.0.0.1:9070 -l 127.0.0.1:9170 -r 127.0.0.1:7070 -d DB0NU-10 -p 0,1,2,5,8,17 -t 1740,28 -f p28,29,33,35-39,41-43,46,47,58,59,61,64,91,95,96,123 -l 127.0.0.1:9002 -R 127.0.0.1:9021 -r 127.0.0.1:4711 -l 127.0.0.1:9121 -d DB0NU-10 -p 0,1,2,5,8,17 -t 1740,28 -f p28,29,33,35-39,41-43,46,47,58,59,61,64,91,95,96,123 -b 600:/home/pi/dxlAPRS/aprs/digibeacon.txt -l 127.0.0.1:9002 -R 127.0.0.1:9022 -r 127.0.0.1:4711 -l 127.0.0.1:9122 -v

Sieht ganz wild aus, ist es aber nicht. Dies ist die Konfiguration vom APRS Digi DB0NU-10. Dies sind die Gegebenheiten:

  • TNC2 an Mobilfunkgerät 144,800 MHz an Diamond X50 (RX-Port wird nicht verwendet, TX Port 9002)
  • SDR-STICK mit AFSKMODEM 144,800 MHz und 145,825 MHz an Diamond X200 (RX-Ports 9021 und 9022)
  • SDR-STICK mit AFSKMODEM 432,500 MHz an Diamond X200 (RX-Port 9701)

Es sind also insgesamt vier Eingangskanäle vorhanden, wobei nur drei genutzt werden. Da der Hardware-RX mit TNC und Funkgerät deutlich schlechter empfängt als der SDR-Stick, wird das TNC nur zum Senden auf 144,800 MHz verwendet. Der Empfangszweig bleibt ungenutzt. Es bleiben die drei Eingangskanäle 144,800 MHz - 145,825 MHz - 432,500 MHz übrig. Diese werden von udpbox verarbeitet. Dies sieht man daran, dass nur drei mal -R verwendet wird. Der ganze Befehlsstring lässt sich in drei unabhängige Teile aufteilen.

Teil 1:

-R 127.0.0.1:9070 -l 127.0.0.1:9170 -r 127.0.0.1:7070 -d DB0NU-10 -p 0,1,2,5,8,17 -t 1740,28 -f p28,29,33,35-39,41-43,46,47,58,59,61,64,91,95,96,123 -l 127.0.0.1:9002 
  • Dies ist der 70cm Empfangsteil auf 432,500 MHz - Port 9070.
  • Zuerst wird alles empfangene an udpgate4 weitergeleitet (-l 127.0.0.1:9170)
  • Zusätzlich wird alles nochmal an Port 7070 gesendet (-r 127.0.0.1:7070). Dies dient dem Zweck, dass ich bei Bedarf udpflex an diesen Port "andocken" kann um das Geschehen auf 70cm mitzulesen (Monitor-Mode).
  • Anschließend wird der Digipeater aktiviert (-d DB0NU-10)
    • die Digipeatingoptionen festgelegt (-p 0,1,2,5,8,17 - es wird nur direkt gehörtes digipeatet, die WIDE Pfade werden abgeschnitten und das was bereits digipeatet wurde, wird nicht nochmal von DB0NU digipeatet)
    • der Dupe-Filter auf 29 Minuten / 28 Sekunden festgelegt (-t 1740,28)
    • der Pakettypfilter definiert (-f p28,29,33,35-39,41-43,46,47,58,59,61,64,91,95,96,123)
    • und alle damit erzeugten Pakete an das TNC gesendet (-l 127.0.0.1:9002)

Zusammenfassung Teil 1: leitet die auf 70cm empfangenen Daten an das iGate weiter und wird diese wiederum auf 2m digipeaten (aber nicht alles, sondern nur lokal empfangenes, was nicht schon woanders digipeatet wurde)

Teil 2:

-R 127.0.0.1:9021 -l 127.0.0.1:9121 -r 127.0.0.1:4711 -d DB0NU-10 -p 0,1,2,5,8,17 -t 1740,28 -f p28,29,33,35-39,41-43,46,47,58,59,61,64,91,95,96,123 -b 600:/home/pi/dxlAPRS/aprs/digibeacon.txt -l 127.0.0.1:9002
  • Dies ist der 2m Empfangsteil auf 144,800 MHz - Port 9021.
  • Zuerst wird alles empfangene an udpgate4 weitergeleitet (-l 127.0.0.1:9121)
  • Zusätzlich wird alles nochmal an Port 4711 gesendet (-r 127.0.0.1:4711). Dies dient dem Zweck, dass ich bei Bedarf udpflex an diesen Port "andocken" kann um das Geschehen auf 2m mitzulesen (Monitor-Mode, gemeinsamer Port 4711 für 144,800 und 145,825 MHz).
  • Anschließend wird der Digipeater aktiviert (-d DB0NU-10)
    • die Digipeatingoptionen festgelegt (-p 0,1,2,5,8,17 - es wird nur direkt gehörtes digipeatet, die WIDE Pfade werden abgeschnitten und das was bereits digipeatet wurde, wird nicht nochmal von DB0NU digipeatet)
    • der Dupe-Filter auf 29 Minuten / 28 Sekunden festgelegt (-t 1740,28)
    • der Pakettypfilter definiert (-f p28,29,33,35-39,41-43,46,47,58,59,61,64,91,95,96,123)
    • eine HF-Bake aktiviert (-b 600:/home/pi/dxlAPRS/aprs/digibeacon.txt)
    • und alle damit erzeugten Pakete an das TNC gesendet (-l 127.0.0.1:9002).
  • Der Digipeating-Teil ist auf 2m und 70cm identisch, bis auf die Bake. Diese wird nur einmal erzeugt.

Zusammenfassung Teil 2: leitet die auf 144,800 MHz empfangenen Daten an das iGate weiter und wird diese wiederum auf 2m digipeaten (aber nicht alles, sondern nur lokal empfangenes, was nicht schon woanders digipeatet wurde)

Teil 3:

-R 127.0.0.1:9022 -l 127.0.0.1:9122 -r 127.0.0.1:4711 
  • Dies ist der 2m Empfangsteil auf 145,825 MHz (ISS) - Port 9022.
  • Zuerst wird alles empfangene an udpgate4 weitergeleitet (-l 127.0.0.1:9122)
  • Zusätzlich wird alles nochmal an Port 4711 gesendet (-r 127.0.0.1:4711). Dies dient dem Zweck, dass ich bei Bedarf udpflex an diesen Port "andocken" kann um das Geschehen auf 2m mitzulesen (Monitor-Mode, gemeinsamer Port 4711 für 144,800 und 145,825 MHz).
  • Dieser Teil wird nicht weiter fürs digipeating ausgewertet, die Daten landen also nur im iGate und damit im APRS-IS Netzwerk

Zusammenfassugn Teil 3: Es werden nur empfangene Daten weitergeleitet, sonst nichts.

Sieht alles ganz kryptsich aus, ist es aber nicht :)

Paketverteilung beim Sondenempfänger

udpbox -R 127.0.0.1:9001 -l 127.0.0.1:9101 -l 127.0.0.1:9105 -v

Bei einem Sondenempfänger kann man udpbox benutzen, um den Datenstrom zu duplizieren. Einserseits sollen die Daten an das iGate weitergeleitet werden (-l 127.0.0.1:9101), andererseits möchte man diese vielleicht auch noch gleich in aprsmap auf dem gleichen Rechner visuell darstellen und sendet alle Daten dort nochmal hin (-l 127.0.0.1:9105). Natürlich kann man aprsmap auch auf einem anderen Rechner laufen lassen und sendet diese Daten dann an eine andere IP-Adresse.

Bakengenerator

udpbox -R 0.0.0.0:0 -b 600:/home/pi/dxlAPRS/aprs/digibeacon.txt -l 127.0.0.1:9002

Es wird hier ausschließlich die Bakenaussendung aktiviert und die damit erzeugten Baken an den TX bei Port 9002 gesendet. Es muss allerdings noch eine Dummy-Quelle eingefügt werden, z.B. -R 0.0.0.0:0, da die Bakenerzeugung nicht die erste Chain sein kann. Als Ziel kann man allerdings auch das iGate udpgate4 angeben, um damit beliebige Baken ins APRS-IS Netzwerk einzuspeisen.