Connettere il server DVSwitch a Brandmeister utilizzando il protocollo STFU

In questa guida vi descriviamo 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 nostro sacco”, ma è una traduzione dal testo in lingua tedesca, che Paolo IV3BVK ha ottimizzato per rendere più semplice e fruibile questa piccola guida di installazione, inserendo qualche  spiegazione aggiuntiva.

 

Premessa

NOTA BENE: Se utilizzate il vostro server DVSwitch SOLO per connettervi alla rete DMR di Brandmeister, allora 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) creato da Mike N4IRR e Steve N4IRS, per connettersi più facilmente a BM.

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 del Talker Alias che si desidera che compaia 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 configurazione STFU, effettuata dal collega Paolo IV3BVK:

[STFU] ; Brandmeister Open DMR Terminal (ODMRT) Protocol
BMAddress = 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 = 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, isono stati inseriti 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 Paolo IV3BVK utilizza abitualmente.

[AMBE_AUDIO]

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, troverete una descrizione della connessione simile a questa:

 

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, inseriamo di seguito un ampio contenuto iniziale del log di Paolo IV3BVK:

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 è stata effettuata 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 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 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 sia 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.

 

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

[DMR]

Enable=0
ColorCode=1
EmbeddedLCOnly=1
DumpTAData=0

[DMR Network]

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!

 

Controllo dell’hotspot dalla dashboard di Brandmeister

Vi informiamo 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!

NOTA: Nella dashboard di BM potrete 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.

 

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.

L’utilizzo del protocollo STFU vi permette di cambiare il TG del vostro DVSwitch senza che venga inviato pubblicamente ‘il colpo di PTT’ che vi farà identificare nel TG di arrivo che avete selezionato.

Abbiamo trovato molto comodo e interessante l’utilizzo del protocollo STFU che permette il cambio immediato di TG, come scritto 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 assieme se sarà un applicazione semplice da attivare e da utilizzare.

’73 de BM2222 Team