github Thinline-Dynamic-Solutions/ThinLineRadio v26.04.019
v26.04.019 — Pager-style alert playback, VoIP push gating, manual scanner improvements

latest release: v26.04.020
7 hours ago

What's New

Mobile — Pager-style alert playback

  • Per-talkgroup and per-tone-set toggle to enable pager-style audio playback when the app is backgrounded
  • When enabled, the app fetches and plays the call audio natively in the background after the push notification arrives — no app interaction needed
  • Uses a native serial audio queue on both Android (MediaPlayer via SingleThreadExecutor) and iOS (AVAudioPlayer via a serial DispatchQueue): multiple simultaneous alerts are queued and played one after another rather than overlapping or cutting each other off
  • Duplicate callId deduplication in the native queue: if tone-alert and keyword-alert fire for the same call, only one playback is queued

Server — Pager-alert preference persistence

  • pagerAlert and toneSetPagerAlerts columns added to userAlertPreferences (auto-migrated on startup)
  • GET /api/alerts/preferences now returns both fields; PUT /api/alerts/preferences saves them — toggles survive app restarts

Server — VoIP/PushKit push gating

  • APNs VoIP pushes are now only sent when the notification is a real pager-alert call
  • Regular test pushes, disconnect alerts, and keyword-only alerts no longer trigger the CallKit UI on iOS

Server — Test endpoint respects user toggles

  • TestPagerAlertHandler no longer bypasses per-device pager-alert settings

Mobile — Manual scanner URL handling

  • URL field now requires an explicit http:// or https:// prefix — no auto-detection or port scanning
  • "Server Found" (green) / "Not Found" (red) badge appears inline on the Scanner URL label after detection
  • v6 server password field is always optional with a note: "Login credentials may be required"
  • v7+ email and password fields are also optional — scanner can be added without credentials

Server — Disconnect push improvements

  • Disconnect push notification is now sent to FCM (mobile) devices regardless of whether another web session is still active
  • In-app disconnect beep (3 beeps) only plays when live feed is active in the mobile app

Platforms

Platform Architecture Download
Linux x86-64 thinline-radio-linux-amd64-v26.04.019.tar.gz
Linux ARM64 thinline-radio-linux-arm64-v26.04.019.tar.gz
Linux PowerPC64LE thinline-radio-linux-ppc64le-v26.04.019.tar.gz
Linux IBM Z (s390x) thinline-radio-linux-s390x-v26.04.019.tar.gz
Linux RISC-V 64 thinline-radio-linux-riscv64-v26.04.019.tar.gz
FreeBSD x86-64 thinline-radio-freebsd-amd64-v26.04.019.tar.gz
FreeBSD ARM64 thinline-radio-freebsd-arm64-v26.04.019.tar.gz
OpenBSD x86-64 thinline-radio-openbsd-amd64-v26.04.019.tar.gz
OpenBSD ARM64 thinline-radio-openbsd-arm64-v26.04.019.tar.gz
NetBSD x86-64 thinline-radio-netbsd-amd64-v26.04.019.tar.gz
NetBSD ARM64 thinline-radio-netbsd-arm64-v26.04.019.tar.gz
Solaris/Illumos x86-64 thinline-radio-solaris-amd64-v26.04.019.tar.gz
macOS Intel thinline-radio-darwin-amd64-v26.04.019.tar.gz
macOS Apple Silicon thinline-radio-darwin-arm64-v26.04.019.tar.gz
macOS Universal thinline-radio-darwin-universal-v26.04.019.tar.gz
Windows x86-64 thinline-radio-windows-amd64-v26.04.019.zip
Windows ARM64 thinline-radio-windows-arm64-v26.04.019.zip

Don't miss a new ThinLineRadio release

NewReleases is sending notifications on new releases.