Files
dmr-talkback/talkback.service
Cort BuffingtonandClaude Opus 5 d2d99cca3e Initial commit — DMR voice test (talkback) endpoint
Connects to an HBP master as an ordinary repeater, records one call, and
replays it sourced from its own radio ID.

- One configured radio ID performs every radio-ID function: HBP login,
  DMRD repeater field, source of the replay, and the unit-call target.
- Group, unit, or both; the reply mirrors the inbound call type. Group
  goes back onto the same talkgroup, unit is a private call to the caller.
- Full rewrite of the DMRD header AND the payload Link Control (full LC in
  VHEAD/VTERM, embedded LC fragments in bursts B-E, FLCO per call type).
  AMBE is never touched, so replayed audio is bit-identical. Earlier
  implementations rewrote only the header, leaving radios displaying the
  original caller.
- Talkgroup config is emitted as an RPTO subscription at login, which is
  what makes it work on HBlink4 without server-side configuration.
- Clocked egress at 60 ms off the event loop; fixed capture buffer sized
  at startup; nothing allocates on the data path.

HBP client and the DMR DSP module are lifted from ipsc2hbpc.

Conformance test is the loopback identity: 378 checks over a synthetic
capture covering every frame kind.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-15 14:54:42 -05:00

23 lines
542 B
Desktop File

# talkback.service — systemd unit for dmr-talkback.
# Installed by `sudo make install` to /lib/systemd/system/talkback.service.
[Unit]
Description=DMR voice test (talkback) endpoint
Documentation=https://github.com/n0mjs710/dmr-talkback
After=network.target
Wants=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/talkback -c /etc/talkback/talkback.toml
Restart=on-failure
RestartSec=10s
TimeoutStopSec=10s
StandardOutput=journal
StandardError=journal
SyslogIdentifier=talkback
[Install]
WantedBy=multi-user.target