v0.53.0
sundowndev/phoneinfogav0.53.0Sep 27, 2026by github-actions[bot]
Upgrading?
AI Summary
Adds configuration for idle keepalive to prevent RTP starvation during silent periods and fixes critical security vulnerabilities in `siphon-rs` and `rustls`.
Key Highlights
- New `[bridge].idle_keepalive` configuration option to prevent RTP starvation.
- Security patch for `siphon-rs` fixing remote panics in `extract_tag` and `validate_event_package`.
- Security patch for `rustls` fixing TLS 1.3 handshake issues.
- Documentation update for Debian 13 installation.
New Features
- Idle keepalive configuration
- Remote panic fixes in siphon-rs
- TLS handshake fix in rustls
- Debian 13 installation guide
Full Release Notes
### Added - **`[bridge].idle_keepalive`** ([#610](https://github.com/thevoiceguy/siphon-ai/issues/610)). Optional outbound RTP during the silent-server window: with the default `"off"` a call whose WS server streams nothing emits no outbound RTP at all, and some media paths respond to a peer gone silent by stopping their own RTP toward us — FreeSWITCH measured at one packet per 5 s, RTCP-only, starving the caller's inbound audio. `"silence"` emits a digital-silence frame per idle 20 ms tick, `"comfort_noise"` a low-level comfort-noise frame (the same forge generator MOH falls back to). Engagement requires the idle verdict to hold continuously for 250 ms (any server frame restarting the clock) so ordinary mid-utterance server jitter doesn't insert a fill frame, and frames keep flowing through mute and barge-in arbitration, where caller→server audio must keep arriving. Per-route override via `[route.bridge].idle_keepalive`; unknown values (global or route) fail at load. New counter `siphon_ai_idle_keepalive_frames_total`. ### Security - **siphon-rs v2026.09.05 → v2026.09.22** fixes two remote panics ([siphon-rs v2026.09.22](https://github.com/thevoiceguy/siphon-rs/releases/tag/v2026.09.22)): `extract_tag` and `validate_event_package` sliced a `From` tag / `Event` header at a fixed byte offset to test for a prefix, which panics when that offset falls inside a multi-byte character. Every in-dialog request is matched through `extract_tag`, so a single crafted header from any peer could stop the process. Both sites now return `None` where they panicked, with regression tests, and siphon-rs's fuzz crate — described as running, but never built — now builds and runs nightly with four new targets. **All deployments should update.** - **rustls 0.23.40 → 0.23.45** ([RUSTSEC-2026-0285](https://rustsec.org/advisories/RUSTSEC-2026-0285)): TLS 1.3 handshake messages were accepted across encryption-level boundaries. rustls sits under every TLS surface here — SIP over TLS, the WS bridge, the admin listener and the webhook/CDR HTTP clients — so this closes the daily `cargo audit` failure that had been open on `main` since the advisory landed. Lockfile-only; the fixed rustls requires aws-lc-rs 1.18.1 / aws-lc-sys 0.45.0, which came along with it. ### Changed - **forge-media v2026.09.10.1 → v2026.09.22, siphon-rs v2026.09.05 → v2026.09.22.** The siphon-rs roll carries the panic fixes above plus v2026.09.15 (sip-core 0.7.8 multipart bodies and RFC 6442 geolocation serialisation, sip-parse 0.4.0, sip-uac 0.7.2 `invite_with_options`) — none of which siphon-ai calls. forge-media moves with it because v2026.09.22 embeds siphon-rs v2026.09.22 (its `sip-sdp` pin and submodule), and staying behind would link two copies of the SDP negotiator. Of the forge crates siphon-ai builds, only forge-rtp 0.7.0 (RFC 8285 extension walking), forge-sdp 0.2.2 (RFC 4796 `a=content`) and forge-webrtc 0.7.0 (a second video content stream) changed, all additive; forge-engine, core, codecs, dtmf, vad, hep, ice, mixer and injection are unchanged, so the audio path is untouched. The rest of the range is video, GPU, MP4 and BFCP crates this project does not depend on. No wire behaviour changes. ### Documentation - **Getting started on Debian 13** (`getting_started_with_siphon-ai.md`): a first-run guide from a fresh install to a bridged call. --- **Artifacts** - Static musl binaries for `x86_64` and `aarch64` (`.tar.gz`). - Debian packages (`.deb`) for `amd64` and `arm64` — `apt install ./siphon-ai_*_amd64.deb`. - `SHA256SUMS` — verify with `sha256sum -c SHA256SUMS`. - `*-sbom.cdx.json` — CycloneDX SBOM. - `SHA256SUMS.cosign.bundle` — cosign keyless signature over the checksums. - Container: `ghcr.io/thevoiceguy/siphon-ai:v0.53.0` (multi-arch, cosign-signed). Verify the checksums signature: ``` cosign verify-blob --bundle SHA256SUMS.cosign.bundle \ --certificate-oidc-issuer https://token.actions.githubusercontent.com \ --certificate-identity-regexp 'release.yml@' SHA256SUMS ```
Related Repositories
ollama/ollama★ 184,218
Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other models.
fatedier/frp★ 110,057
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
infiniflow/ragflow★ 92,619
RAGFlow is a leading open-source Retrieval-Augmented Generation (RAG) engine that fuses cutting-edge RAG with Agent capabilities to create a superior context layer for LLMs
gohugoio/hugo★ 90,198
The world’s fastest framework for building websites.
junegunn/fzf★ 83,715
:cherry_blossom: A command-line fuzzy finder