v0.48.4
thevoiceguy/siphon-aiv0.48.4Aug 4, 2026by github-actions[bot]
Upgrading?
AI Summary
Fixes handling of BYE/ACK during delayed-offer pending window to prevent hanging calls and incorrect durations.
Key Highlights
- BYE or body-less ACK during delayed-offer now ends call immediately
- Fixes 32s hang on missing SDP answer
- Adds `caller_hangup` result label to delayed-offer metric
Full Release Notes
### Fixed - **A BYE or body-less ACK during the delayed-offer pending window now ends the call immediately** (issue #425). Between our 200-with-offer and the peer's ACK answer, an inbound delayed-offer call has a confirmed dialog but no controller yet — and both teardown signals fell into that gap: the routing handler dropped ACKs without a body before the acceptor could see them, and `dispatch_bye` consulted only the controller registry, so the peer's BYE got its RFC-mandated 200 while the parked call sat — forge session and ports held — until the Timer-H watchdog expired 32 s later and wrote a CDR claiming `ack_timeout` with a 32 s duration for a call the peer had ended in milliseconds (live shape: FreeSWITCH's gateway leg failing its own media setup sends exactly this empty-ACK + BYE pair 2 ms after our 200). Now every in-dialog ACK reaches the acceptor — a body-less one on a held dialog is the peer failing to answer our offer (RFC 3261 §13.2.2.4) and reaps the call as `missing_sdp_answer`, the outcome that was documented in the metric description and CDR schema since 0.9.5 but that no code path ever emitted — and the daemon installs the acceptor as the dialog terminator, so a BYE that misses the controller registry also checks the pending window and reaps the call with the ordinary `caller_hangup` cause and its real duration (CANCEL deliberately does not: RFC 3261 §9.2, no effect after a final response). `siphon_ai_delayed_offer_total` gains the `caller_hangup` result label; documented in DEPLOY.md. --- **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.48.4` (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
A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io
An open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.
Build smaller, faster, and more secure desktop and mobile applications with a web frontend.
π RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.
Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one