52 lines
2.3 KiB
Markdown
52 lines
2.3 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.
|
|
|
|
# Attenzione!!
|
|
|
|
* Per gestire la transcodifica simultanea, il sistema richiede l'avvio in background di N sessioni dell'emulatore MD380-EMU (una per ogni flusso audio/utente concorrente che si intende supportare).
|
|
|
|
## 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://).
|