You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.1 KiB
2.1 KiB
Introduction
Purpose
This service is a DMR peer and bridge. It implements:
- HBP over UDP to MASTER and PEER systems (DMRD frames, authentication, pings).
- OpenBridge over UDP to other networks — DMRE v5 (embedded version 5, BLAKE2b, hops) is the recommended inter-server mode on ADN; DMRD v1 remains for legacy interop (see OpenBridge).
Configuration is YAML (adn-server.yaml), merged at runtime with optional voice settings (adn-voice.yaml). The shipped template is adn-server.example.yaml.
Design
Routing, timers, OpenBridge loop control, and protocol handling are implemented in application and infrastructure modules behind stable ports; the domain layer holds types and rules without I/O. This keeps the system easier to reason about and extend.
Major subsystems
| Subsystem | Role |
|---|---|
| Bridge router | BRIDGES table: which systems forward which TG on which slot; dynamic bridges; static/stat bridges. |
| HBP protocol | Authentication, DMRD ingress/egress, repeat to peers, TG filters. |
| OpenBridge | DMRE ingress, hop limit, loop control (min(1ST)), BCSQ/BCKA when enabled. |
| Voice | AMBE files, scheduled announcements, TTS pipeline, on-demand playback (TG 9991–9999). |
| Reporting | TCP netstring channel to adn-monitor (and compatible dashboards): config, bridge state, BRDG_EVENT call events. |
Related programs
- Parrot / playback — separate entrypoint (
adn-parrot.py) for record-and-playback; see Parrot.
Next steps
- Configuration — files,
GLOBAL, MASTER / PEER / OPENBRIDGE, ACLs, reports, aliases, voice merge. - Bridges and talkgroups — how
BRIDGESworks. - Special numbers — TG 4000, information services, echo.
- ADN Monitor — dashboard,
adn-mon.yaml, self-service (separate repo, deployed with the server). - Credits & license — ADN → FreeDMR → hblink3, license.