In questo articolo vi descriverò come aggiornare facilmente il vostro server DVSwitch, per utilizzare la modalità di connessione con il protocollo STFU (Simple Terminal Feature Update), invece di utilizzare la connessione standard di BM, che utilizza il protocollo ODTP (Open DMR Terminal Protocol).
Questa volta il contenuto dell’articolo non è “farina del mio sacco” e il risultato di alcune mie prove, ma è una traduzione dal testo in lingua tedesca dell’articolo presente nel sito di Mario DC7JBZ. Traduzione che, come ogni volta, ho ottimizzato per rendere più semplice e fruibile questa piccola guida di installazione, inserendo qualche mia spiegazione aggiuntiva.
Premessa
NOTA BENE: Se utilizzate il vostro server DVSwitch SOLO per connettervi alla rete DMR di Brandmeister, potete procedere con la configurazione descritta di seguito, utilizzando il protocollo STFU.
ATTENZIONE: STFU funziona solo se viene utilizzato per connettere la rete DMR di Brandmeister. Se utilizzate anche delle connessioni verso le altre reti DMR (come DMR+ TGIF, FreeDMR, ADN, ecc.), continuate ad utilizzare la modalità standard DMR, già funzionante nel vostro server DVSWitch.
Cos’è il protocollo STFU?
Lo STFU è un protocollo implementato dai creatori di DVS per poter dialogare con il protocollo ODTP, proprietario di BM; secondo i creatori di DVS il protocollo STFU è migliore e privo di bug… (almeno così scrivono nei loro siti!) 😉
Trovate delle importanti informazioni sul suo funzionamento, disponibili nella pagina wiki di BM Open DMR Terminal Protocol / Push Service. In questa pagina viene spiegato in modo molto dettagliato il funzionamento del protocollo tra il vostro dispositivo e il server di BM.
Ne consiglio vivamente la lettura, per capire la modalità di funzionamento di questo protocollo e il perché si consiglia di utilizzarlo in tutti i server DVSwitch che sono connessi solo al DMR di BM.
Di seguito, procedo con la spiegazione dettagliata dell’installazione, prendendo spunto dall’articolo originale tradotto dal sito di Mario DC7JBZ, al quale ho aggiunto qualche mia informazione personale nei vari paragrafi.
Il servizio STFU, con la sua semplice configurazione, invece di utilizzare il servizio interno MMDVM_Bridge e il protocollo MMDVM del DVSwitch, permette di connettere il vostro server DVSwitch alla rete Brandmeister tramite il protocollo ODTP. Questa procedura per connettere i DVS a BM, è la più gradita ai gestori della rete DMR di Brandmeister, in quanto rende il server più fluido e utilizza minori risorse quando rimane in IDLE mode.
Per poter scavalcare il noto problema che “Brandmeister non desidera che i dispositivi come i DVSwitch siano connessi alla rete DMR tramite il protocollo MMDVM, ma tramite il protocollo Open DMR Terminal Protocol (ODTP)”; il server DVSwitch ha la possibilità di utilizzare anche il servizio STFU (Simple Terminal Feature Update), per connettersi più facilmente.
Come funziona il protocollo STFU? Per gli OM più tecnici e per coloro che desiderano approfondire l’argomento, vi invito a visitare questa pagina di GitHub riguardante il protocollo STFU e il documento esplicativo del funzionamento dell’Analog Reflector utilizzato nel server DVSwitch.
Installare il servizio STFU nel Raspberry
Per prima cosa dovete verificare se il servizio STFU è già installato nel vostro dispositivo. Una volta installato il software, lo potrete trovare presente nella directory /opt/STFU.
In caso non fosse già presente, potrete installarlo utilizzando le seguenti indicazioni.
Dalla riga di terminale, digitate il seguente comando:
sudo apt update && sudo apt install stfu -y
premendo Enter.
Con questi comandi aggiornerete i repository del Raspberry e Il software del servizio STFU verrà installato automaticamente.
Modifica della configurazione del file DVSwitch.ini
Completata l’installazione del software, iniziate con la modifica del file DVSwitch.ini.
Inserite alla fine del file le righe di comando standard elencate nel segmento [STFU], (SE NON SONO GIÀ PRESENTI NEL FILE).
Utilizzate il seguente comando:
sudo nano /opt/MMDVM_Bridge/DVSwitch.ini
Testo da inserire:
; Configure the BrandMeister connection
; Simple Terminal Feature Update
; Audio format is AMBE 72 bit
[STFU] ; Brandmeister Open DMR Terminal (ODMRT) Protocol
BMAddress = 3102.repeater.net ; Brandmeister ODMRT server address
BMPort = 54006 ; Brandmeister ODMRT port
BMPassword = personal_hotspot_security_password ; Your Brandmeister password
Address = 127.0.0.1 ; Address to send AMBE TLV frames to (export)
txPort = 36100 ; Port to send AMBE TLV frames to (export)
rxPort = 36103 ; Port to listen on (import)
UserID = 1234567 ; Your DMR ID
TalkerAlias = N0CALL Name City ; Max 27 characters
StartTG = 3166 ; Startup talk group
LogLevel = 3 ; STFU log level (0=No logging, 1=Debug, 2=Mess$
Questo è il testo di default della configurazione di STFU. Ora procedete alla personalizzazione dei vari campi di configurazione, inserendo i vostri dati.
Nell’indirizzo BMAddress inserite l’indirizzo IP del master server BM di vostra scelta. Nel mio caso, ho inserito l’indirizzo 2222.master.brandmeister.network, corrispondente al server italiano di BM;
BMPort normalmente si deve mantenere il valore della porta predefinita;
BMPassword inserite la vostra ‘Hotspot Security Password‘ creata nel Selfcare di BM, che utilizzate anche per gli hotspot;
txPort e rxPort controllate bene questi due i valori, che dovete modificare! Servono per la successiva configurazione per permettere la comunicazione dati con il servizio AMBE AUDIO!
NOTA: Dato che il servizio AMBE AUDIO è già attivo, modificherete questi due valori sopra descritti, in base a i valori che già state utilizzando nella configurazione di AMBE AUDIO, che trovate descritti nel file successivo.
UserID è il vostro normale ID DMR di 7 cifre. ODTP non accetta (per ora, ancora no…) le combinazioni di ID DMR+SSID. Nel mio caso, ho inserito il valore del mio ID DMR 22244483;
TalkerAlias Potete scegliere liberamente un testo fino a 27 caratteri, che verranno poi visualizzati quando verranno inviati ai dispositivi compatibili con il Talker Alias (TA). In questo caso, inserite solo il vostro Nome personale!
ATTENZIONE: La raccomandazione di Brandmeister è di inserire in questo campo solo il Call Name (solo il nome, nel mio caso ho inserito (solo per questo specifico caso) il testo IV3BVK Paolo, che è il testo che si desidera far comparire in trasmissione).
Per evitare problemi di decodifica del vostro TA nella rete DMR di BM dovreste assolutamente attenervi a questa disposizione, poiché alcuni dispositivi hanno dei problemi con la ricezione di TA “molto complessi e/o troppo lunghi” .
StartTG è il TG che viene automaticamente “connesso” dal vostro DVSwitch, quando effettuate il login a BM. Nel mio caso, ho inserito il valore numerico del TG 22231, corrispondente al TG DMR multi protocollo della Regione FVG.
Una volta inseriti i dati, salvateli nel file DVSwitch.ini con i comandi Alt-X, J/Y+Enter
Eccovi l’esempio della mia configurazione STFU:
[STFU] ; Brandmeister Open DMR Terminal (ODMRT) ProtocolBMAddress = 2222.master.brandmeister.network ; Brandmeister ODMRT server address
BMPort = 54006 ; Brandmeister ODMRT port
BMPassword = my_personal_hotspot_security_password ; Your Brandmeister HS password
Address = 127.0.0.1 ; Address to send AMBE TLV frames to (export)
txPort = 31100 ; Port to send AMBE TLV frames to (export)
rxPort = 31103 ; Port to listen on (import)
UserID = 2224483 ; Your DMR ID
TalkerAlias = IV3BVK Paolo ; Max 27 characters
StartTG = 22231 ; Startup talk group
LogLevel = 3 ; STFU log level (0=No logging, 1=Debug, 2=Message, 3=Info, 4=Warning, 5=Error)
(in rxPort e txPort, io ho inserito i valori già presenti nel file di configurazione dell’Analog Bridge).
Controllo della configurazione del file Analog_Bridge.ini
Controllate i dati presenti nel file Analog_Bridge.ini, contenuto nella directory /opt/Analog_Bridge. Utilizzate il seguente comando:
sudo nano /opt/Analog_Bridge/Analog_Bridge.ini
Cercate la sezione [AMBE_AUDIO] e controllate attentamente il valore delle porte che dovrete modificare nel file DVSwitch.ini.
Di seguito, potete vedere la configurazione che utilizzo abitualmente.
address = 127.0.0.1 ; IP address of xx_Bridge
txPort = 31103 ; Transmit TLV frames to partner on this port
rxPort = 31100 ; Listen for TLV frames from partner on this port
ambeMode = DMR ; DMR, DMR_IPSC, DSTAR, NXDN, P25, YSFN, YSFW (encode PCM to this format)
minTxTimeMS = 2500 ; Analog -> Digital Minimum time in MS for hang delay (0-10000)
ATTENZIONE: Il valore di rxPort in DVSwitch.ini viene inserito uguale al valore txPort presente nel file Analog_Bridge.ini; il valore di txPort da DVSwitch.ini viene inserito uguale al valore rxPort presente nel file Analog_Bridge.ini.
Per ora, mantenete il valore di ambeMode come lo avete trovato. Eventualmente lo modificherete più avanti.
Il file, se modificato, dovrà essere nuovamente salvato, utilizzando i comandi Alt-X, J/Y+Enter
Attivazione del servizio STFU
Adesso procedete all’attivazione all’avvio del servizio STFU, con il comando:
sudo systemctl enable stfu
Attivate prima l’inserimento di STFU nelle applicazioni di avvio del Systemd Unit. Ciò significa che il servizio omonimo partirà automaticamente ad ogni avvio del sistema.
Avviate manualmente (solo questa prima volta) il servizio STFU, con il comando:
sudo systemctl start stfu
il sistema eseguirà il vostro comando, senza scrivere nessuna informazione come output nel terminale.
Controllate se il servizio STFU si è avviato correttamente, utilizzando il comando:
sudo systemctl status stfu
il sistema risponderà con un testo di output simile a questo:
● stfu.service – STFU Service
Loaded: loaded (/lib/systemd/system/stfu.service; disabled; vendor preset: enabled)
Active: active (running) since Mon 2024-08-26 13:22:16 CEST; 56s ago
Process: 6168 ExecStartPre=/bin/sh -c echo “Starting STFU: [`date +%T.%3N`]” >> /var/log/netcheck (code=exited, status=0/SUCCESS)
Main PID: 6171 (STFU)
Tasks: 3 (limit: 2063)
CGroup: /system.slice/stfu.service
└─6171 /opt/STFU/STFU /opt/MMDVM_Bridge/DVSwitch.ini
ago 26 13:22:16 dvswitch-server systemd[1]: Starting STFU Service…
ago 26 13:22:16 dvswitch-server systemd[1]: Started STFU Service.
Leggendo quanto sopra descritto nel terminale, avrete la certezza che il servizio STFU sarà attivo e funzionante.
Controllo dell’avvenuta connessione
Se desiderate controllare l’avvenuta connessione del vostro DVSwitch dal lato del server di BM, potete utilizzare la dashboard di controllo degli stati di connessione al server BM.
In fondo alla lista della dashboard, nel mio caso, ho trovato la seguente descrizione:
Controllo del log di sistema del servizio STFU
Con il comando:
sudo tail -f /var/log/dvswitch/STFU.log
potete visualizzare anche il contenuto del file di log di questo servizio.
Per questo esempio, inserisco di seguito un ampio contenuto iniziale del mio log:
I: 2024-08-26 12:08:18.753 Created by Mike N4IRR and Steve N4IRS
I: 2024-08-26 12:08:18.753 STFU comes with ABSOLUTELY NO WARRANTY
I: 2024-08-26 12:08:18.753
I: 2024-08-26 12:08:18.753 This software is for use on amateur radio networks only,
I: 2024-08-26 12:08:18.753 it is to be used for educational purposes only. Its use on
I: 2024-08-26 12:08:18.753 commercial networks is strictly prohibited.
I: 2024-08-26 12:08:18.753
I: 2024-08-26 12:08:18.753 STFU is starting
I: 2024-08-26 12:08:18.754 Connecting to STFU server at address: 2222.master.brandmeister.network:54006
I: 2024-08-26 12:08:18.936 Successful connection to BM server at ip address:
I: 2024-08-26 12:09:11.798 DMR, Remote CMD: menu=adv_main.txt
I: 2024-08-26 12:09:11.816 DMR, Remote CMD: codec=slin
I: 2024-08-26 12:09:15.634 DMR, TAG_SET_INFO: src=2224483 rpt=222448311 dst=9 sl ot=2 cc=1 metadata=IV3BVK
I: 2024-08-26 12:09:15.634 DMR, Remote CMD: txTg=22231
I: 2024-08-26 12:09:30.156 DMR, Begin TX: src=2224483 rpt=222448311 dst=22231 slot=2 cc=1 metadata=IV3BVK
I: 2024-08-26 12:09:32.664 DMR, TX state = OFF, DMR frame count was 42 frames
I: 2024-08-26 12:09:48.308 DMR, TAG_SET_INFO: src=2224483 rpt=222448311 dst=22231 slot=2 cc=1 metadata=IV3BVK
Qui di seguito ho effettuato una prova audio, utilizzando il TG Parrot 9990, con chiamata PRIVATA:
I: 2024-08-26 12:09:48.308 DMR, Remote CMD: txTg=9990#
I: 2024-08-26 12:09:51.609 DMR, Begin TX: src=2224483 rpt=222448311 dst=9990 slot=2 cc=1 metadata=IV3BVK
I: 2024-08-26 12:09:54.952 DMR, TX state = OFF, DMR frame count was 56 frames
I: 2024-08-26 12:09:58.212 DMR, ODMR Begin Tx: src = 9990, dst = 2224483 (PRIVATE)
I: 2024-08-26 12:10:01.577 DMR, ODMR End Tx:DMR frame count was 60 frames
In questo mio log di esempio potete vedere che il server DVSwitch si è connesso correttamente al server di BM, e poco dopo è stato addirittura ricevuto subito un “segnale DMR” (volutamente, inviato con una mia radio DMR connessa ad un hotspot).
Quanto sopra descritto significa che ora il server DVSwitch si registra correttamente nella rete DMR di BM attraverso la “modalità consigliata” per i DVS (come consigliato negli ultimi tempi anche dai sysop di Brandmeister).
Creazione manuale del servizio STFU
Se per qualche motivo l’unità di sistema (servizio) stfu.service non si fosse installata automaticamente, la potrete creare manualmente voi stessi (o potete controllarne la corretta esattezza dei parametri, se è esistente), utilizzando il comando:
sudo nano /lib/systemd/system/stfu.service
Nel caso non siano già presente, copiate all’interno del file il seguente codice:
[Unit]
Description=STFU Service
# Description=Place this file in /lib/systemd/system
# Description=N4IRS 10/07/2020
After=netcheck.service
Requires=netcheck.service
[Service]
Type=simple
Restart=on-failure
RestartSec=3
RestartPreventExitStatus=254
StandardOutput=null
WorkingDirectory=/opt/STFU
Environment=STFU_LOG=/var/log/dvswitch
ExecStartPre = /bin/sh -c ‘echo “Starting STFU: [`date +%%T.%%3N`]” >> /var/log/netcheck’
ExecStart=/opt/STFU/STFU /opt/MMDVM_Bridge/DVSwitch.ini
# ExecStartPost= -/usr/local/sbin/update-config.sh
ExecReload=/bin/kill -2 $MAINPID
KillMode=process
[Install]
WantedBy=multi-user.target
# 254 matching IDs
# 253 ini parse errors
# 252 dv3000 not found, fallback not enabled
Il file dovrà essere salvato con con i comandi Alt-X, J/Y+Enter;
Ora che il file del servizio per il systemd è stato creato, potete procedere con la parte successiva delle programmazione. Il servizio è già attivo e si caricherà automaticamente al prossimo avvio del Raspberry.
Modifica personale del file stfu.service originale
Avendo letto con attenzione i vari files pubblicati da Steve N4IRS su GitHub, ho migliorato la configurazione di questo servizio, venendo a conoscenza di questi altri codici di errore del sistema, descritti in questa pagina di codice, su GitHub:
# ERROR_SUCCESS 0 // ALL
# ERROR_PORT_IN_USE 251 // STFU
# ERROR_DV3000_NOT_FOUND 252 // AB
# ERROR_INI_PARSE 253 // AB, MB, STFU
# ERROR_MATCHING_IDS 254 // AB
# ERROR_FATAL_ERROR 254 // MB, STFU
# ERROR_SERVER_TIMEOUT 255 // STFU
Di conseguenza, ho modificato solo la seguente riga di codice:
RestartPreventExitStatus=254 253 251 255
inserendo questi altri tre codici, affinchè il servizio si riavvii automaticamente in caso riceva quegli errori di sistema sopra descritti.
Disattivazione manuale del servizio MMDVM Bridge
ATTENZIONE: Se utilizzate il vostro server DVSwitch solo per la connessione DMR sul server di Brandmeister, potete disattivare il servizio interno MMDVM_Bridge, già presente e attivo nel vostro server.
Lo potete fare, inviando i seguenti comandi:
sudo systemctl stop mmdvm_bridge
il sistema ferma il servizio mmdvm_bridge;
sudo systemctl disable mmdvm_bridge
inviando questo ultimo comando, si impedisce che il servizio venga riavviato automaticamente al prossimo riavvio del Raspberry.
MOLTO IMPORTANTE: Se utilizzate anche le altre modalità (protocolli) del vostro server DVSwitch, come il YSF, P25 e NXDN, lasciate che il servizio mmdvm_bridge continui a funzionare, perché è ancora necessario al funzionamento di quelle altre modalità.
In questo caso, solo i due seguenti parametri Enable presente nei segmenti [DMR] e [DMR Network] del file MMDVM_Bridge.ini, devono essere impostati su 0.
Per effettuare la modifica dei due valori, utilizzate il seguente comando:
sudo nano /opt/MMDVM_Bridge/MMDVM_Bridge.ini
Enable=0
ColorCode=1
EmbeddedLCOnly=1
DumpTAData=0
Enable=0
Address=2222.master.brandmeister.network
Port=62031
Jitter=360
Tutte le altre modalità di protocollo configurate nel file rimarranno attive e continueranno a funzionare normalmente.
IMPORTANTE: Utilizzando questo tipo di configurazione sarà possibile utilizzare solo un’istanza del protocollo Open DMR Terminal Protocol (ODTP) con un SOLO ID DMR.
Se eseguite DUE istanze STFU per DVPi con un secondo VFO, avrete bisogno di utilizzare DUE ID DMR diversi.
Gli ID DMR con SSID (ID a 9 cifre) non possono essere utilizzati!
Esempio dei dati di connessione visualizzati in un BOT Telegram
Controllo dell’hotspot dalla dashboard di Brandmeister
Vi informo che utilizzando il protocollo STFU per connettervi al server di BM, controllando il funzionamento del vostro DVS dalla dashboard dei ripetitori di BM, lo stato di connessione del vostro server DVS risulterà essere disconnesso, anche se invece il dispositivo sarà perfettamente funzionante e connesso a BM!
Esempio pratico:
NOTA: Nell’immagine superiore, potete vedere che da quando è stata utilizzata la configurazione STFU descritta in questo articolo, lo Stato della connessione del server DVSwitch risulta essere DISCONNESSO, visualizzando i dati dell’ultima volta che il sistema centrale l’ha visto presente nella rete DMR di BM.
Sappiamo bene che non è così, ma avendo cambiato protocollo di connessione non vi sarà possibile nemmeno modificare da web alcune delle impostazioni previste dal profilo di BM.
Modifica (eventuale) per la gestione degli altri protocolli DMR, YSF, NXDN, P25
NOTA: Vi informo che utilizzando e connettendo spesso anche altre reti DMR, diverse da BM, io personalmente non utilizzo il protocollo di connessione STFU nel mio DVSwitch (Singolo Utente) personale; nel mio sistema continuo ad utilizzare il protocollo di connessione di default, anche perché utilizzo i modi YSF, NXDN e P25 per effettuare diverse altre sperimentazioni, e non desidero modificare ulteriormente la configurazione dell’AMBE AUDIO, presente nel file dell’Analog_Bridge.
Per coloro che desiderano avere attivi questi protocolli utilizzando la modifica con il protocollo STFU, vi informo che sarà sufficiente applicare questa modifica software, che trovate descritta nel forum del DVSWitrch.
Io questa modifica non l’ho applicata, mi sono solo limitato a fare un esperimento temporaneo; dopo tanti anni di scrittura di codice e di molte modifiche, ho ben capito che “meno sono complicate le varie configurazioni e meglio funzionano i sistemi!!”
Possibilità di cambio immediato del TG DMR utilizzato
Con l’utilizzo del protocollo di connessioone STFU verso la rete BM, ora c’è la possibilità di spostare il TG quando lo si desidera, ANCHE mentre state ascoltando un QSO in corso.
Sarà sufficiente inserire il numero del TG desiderato su cui spostarsi, e premere il pulsante Send del vostro DVS. Verrete immediatamente spostati sul TG impostato, e il DVS NON invierà il colpo di PTT sul TG di destinazione.
Considerazioni personali e conclusione
La modifica della configurazione del server DVS termina qui; non è stato necessario effettuare nessun riavvio del dispositivo, in quanto tutti i servizi necessari sono già attivi e funzionanti. Potete effettuare comunque un riavvio di prova, per controllare che il vostro server continui a funzionare regolarmente.
Ho trovato molto comodo e interessante l’utilizzo del protocollo STFU che permette il cambio immediato di TG, come detto sopra. Questo protocollo è molto fluido e veloce, ma come già detto all’inizio di questo articolo può essere utilizzato solo sulla rete DMR di Brandmeister.
Funzionano correttamente tutte le chiamate private, compresa quella al Parrot (9990#). La chiamata al TG 4000 di disconnessione funziona regolarmente, MA NON ATTIVA LA VOCE DIGITALE DI BM che vi invia l’annuncio vocale “DISCONNESSO”.
C’è ancora da lavorare e sperimentare per attivare il Servizio Push di BM, ma vedremo se sarà un applicazione semplice da attivare e da utilizzare.
Continuando a sperimentare con i sistemi radio digitali, e sperando di sentirvi presto in radio, vi auguro dei sereni QSO.
’73 de Paolo IV3BVK
Scopri di più da Il mondo di Paolettopn (IV3BVK - K1BVK)
Abbonati per ricevere gli ultimi articoli inviati alla tua e-mail.