GopherTrunk v0.5.2 — social announcement drafts

One-click copy-paste blurbs for posting the v0.5.2 release. Each block below is a fenced code block so the rendered-markdown “copy” button grabs exactly what you’d paste.

Release: https://github.com/MattCheramie/GopherTrunk/releases/tag/v0.5.2


Reddit — title

GopherTrunk v0.5.2 — a generic JSON webhook call sink (POST every completed call to your own endpoint on a stable schema), a DMR fix that clears garbled "sounds-encrypted" audio on 288-cadence carriers, calls that never deliver voice now end in 7s instead of hanging 30s, and siglab that names exactly why a control channel didn't lock

Reddit — body

**[GopherTrunk](https://gophertrunk.org) v0.5.2 is out** — pure-Go digital-trunking scanner for RTL-SDR / HackRF / Airspy / USRP. P25 (Phase 1+2), DMR (AMBE+2 voice), NXDN, Motorola Type II, EDACS, LTR, MPT 1327, dPMR, D-STAR, YSF, M17, plus APRS, POCSAG + FLEX paging, and AIS / DSC / ADS-B. No CGO, single static binary for Linux / macOS / Windows.

This is a maintenance release headlined by a new outbound integration and a couple of voice-path fixes.

**What's new since v0.5.1:**

* **Generic JSON webhook call sink** (`broadcast.webhook`, #404, #268). A new outbound call-streaming backend that POSTs one `application/json` object per completed call on a documented, stable schema — system, protocol, talkgroup (+label), source RID, frequency, P25 site identity (channel/RFSS/site/NAC), timeslot, encryption + emergency flags, patched groups, and RFC3339 start/stop timestamps. An optional `Authorization` header is sent verbatim, and `include_audio` opt-in embeds the base64 MP3 (default off keeps it a lightweight metadata feed). It rides the same fan-out as the OpenMHz / Broadcastify Calls / RdioScanner / Icecast backends, so custom dashboards and automations are just another feed.
* **DMR garbled "sounds-encrypted" audio fixed** (#644). 2-slot TDMA cadence is now picked by AMBE Golay FEC instead of the often-unvalidated embedded Link Control, so 288-cadence carriers no longer slice every burst 24 dibits off and render clear voice as structured noise.
* **No more phantom 30-second "active" calls** (#788). A voice grant whose channel never delivers a single voice frame (dropped carrier, stale grant re-announcement, mis-tuned tap) now ends at a bounded 7 s window instead of being held by the full call-timeout watchdog with a climbing ELAPSED and no audio.
* **siglab names *why* a control channel didn't lock** (#771) — SNR/EVM-limited, frame-sync-not-aligned, not-the-control-channel, or no-signal — rendered after the "did NOT lock" line and serialized into the CSV/JSON/YAML summaries, plus an opt-in `replay -soft-sync` fallback that extends reach into marginal-SNR captures without manufacturing a false lock.

**Downloads** (Linux / macOS / Windows, x64 + ARM64): https://github.com/MattCheramie/GopherTrunk/releases/tag/v0.5.2

**Docs:** https://gophertrunk.org

Heads-up: the v0.x line is still flagged prerelease — actively developed, feedback / captures / bug reports very welcome.

Discord

**GopherTrunk v0.5.2 is out** — pure-Go trunking scanner for RTL-SDR / HackRF / Airspy / USRP. P25, DMR, NXDN, M17, analog trunked, APRS, POCSAG + FLEX paging, AIS / DSC / ADS-B. Single static binary, zero CGO.

A maintenance release headlined by a new outbound integration and a couple of voice-path fixes.

**What's new since v0.5.1:**
- **Generic JSON webhook call sink** (`broadcast.webhook`, #404, #268) — POST one stable-schema JSON object per completed call to any HTTP endpoint, alongside the existing OpenMHz / Broadcastify Calls / RdioScanner / Icecast backends.
- **DMR garbled "sounds-encrypted" audio fixed** (#644) — 2-slot cadence is now picked by AMBE FEC, not the unvalidated embedded LC, so 288-cadence carriers decode clean instead of as structured noise.
- **No more phantom 30s "active" calls** (#788) — a grant that never delivers voice ends at a bounded 7 s window instead of hanging on the call-timeout watchdog.
- **siglab names the no-lock reason** (#771) — SNR/EVM-limited vs frame-sync vs wrong-channel vs no-signal, plus an opt-in `replay -soft-sync` fallback for marginal captures.

Download: <https://github.com/MattCheramie/GopherTrunk/releases/tag/v0.5.2>
Docs: <https://gophertrunk.org>