Files
web-dmr/README.md
T
2026-08-29 12:55:16 +02:00

48 lines
2.2 KiB
Markdown

# Web-DMR Receiver
Un ricevitore audio web leggero e ad alte prestazioni per reti radio DMR (Digital Mobile Radio). Il sistema si interfaccia con reti come HBLink tramite protocollo OpenBridge, decodifica il traffico voce AMBE in tempo reale e lo trasmette al browser tramite WebSocket per un ascolto a latenza zero.
## Funzionalità Principali
* Ascolto via Browser: Nessun software aggiuntivo richiesto lato client, elaborazione audio nativa tramite Web Audio API (PCM Float32).
* Multi-Utente: Gestione fino a 5 connessioni simultanee con sintonizzazione indipendente sui Talkgroup.
* Late-Join Sincronizzato: Identificazione istantanea del parlatore anche se ci si sintonizza a trasmissione già iniziata.
* Risoluzione Nominativi: Integrazione automatica con i database mondiali o locali (supporta file DMRIds.json, DMRIds.dat o StripDMRIDs.dat).
* Keep-Alive Intelligente: Connessione WebSocket persistente, immune ai timeout dei router domestici durante lunghi periodi di silenzio radio.
## Requisiti di Sistema
* Python 3.8 o superiore (compatibile con Python 3.13+ tramite audioop-lts).
* Una connessione attiva verso un server HBLink / OpenBridge.
* Il motore di decodifica VocoderEngine (file eseguibile/libreria) nella stessa directory.
## Installazione
1. Clona il repository sul tuo server:
git clone https://git.arifvg.it/iv3jdv/web-dmr.git
cd web-dmr
2. Installa le dipendenze Python necessarie:
pip install aiohttp bitstring audioop-lts
3. Crea un file config.json nella cartella principale (questo file è ignorato da Git per sicurezza) con la seguente struttura:
{
"hblink_ip": "127.0.0.1",
"hblink_port": 62047,
"hblink_password": "LA_TUA_PASSWORD",
"peer_id": 22242
}
4. Inserisci il tuo database contatti (es. DMRIds.json) nella directory del progetto per visualizzare i nominativi.
## Avvio Rapido
Per lanciare il server in modalità interattiva, esegui:
python3 server.py
Il servizio sarà raggiungibile all'indirizzo http://INDIRIZZO_IP:8080. Se utilizzi un dominio pubblico e HTTPS, assicurati di configurare un reverse proxy (es. Nginx) per gestire i certificati SSL e le connessioni WebSocket (wss://).