v0.4.0
eisenzopf/rvoipv0.4.0Oct 12, 2026by github-actions[bot]
Upgrading?
AI Summary
This release introduces bounded lifecycle capabilities and completes the call-history system, alongside significant improvements to media quality and SIP protocol conformance, including RTCP integration and deployment profiles.
Key Highlights
- Completion of call-history release and bounded lifecycle capabilities
- Introduction of authenticated UCTP application profiles for QUIC and WebSocket
- Deployment profiles for servers, trunks, NAT, and mTLS peering
- Integration of RTCP reporting and improved media quality diagnostics
Breaking Changes
- Bounded lifecycle capabilities and completed call-history release
- Marked public configuration structs as #[non_exhaustive]
New Features
- Expose connection ID budget usage for worker rotation
- Make TTS codec-aware and encode bounded PCM prompts
- Add opt-in authenticated UCTP application profiles
- Opt in to TLS Contact compatibility on observed TLS ingress
- Retain bounded analytics-block redress diagnostics
- Supervise and drain periodic SDK workers
- Expose bounded identifier-free resource snapshots
- Add experimental browser and Node UCTP WebSocket client
- Support authenticated UCTP application profiles via QUIC
- Offer a=rtcp-mux by default so RTCP flows on muxing peers
- Deployment profiles for servers, trunks, NAT and mTLS peering with OPTIONS keep-alive
Full Release Notes
Detailed release notes: https://github.com/eisenzopf/rvoip/blob/v0.4.0/crates/sip/rvoip-sip/docs/RELEASE_NOTES_NEXT.md Protected qualification run and full evidence: https://github.com/eisenzopf/rvoip/actions/runs/38195041080 <!-- Release notes generated using configuration in .github/release.yml at v0.4.0 --> ## What's Changed ### Breaking changes * fix(core): bounded lifecycle capabilities and completed call-history release by @vapi-eisen in https://github.com/eisenzopf/rvoip/pull/259 ### Features * feat(core): expose connection ID budget usage for worker rotation by @eisenzopf in https://github.com/eisenzopf/rvoip/pull/265 * feat(core): make TTS codec-aware and encode bounded PCM prompts by @vapi-eisen in https://github.com/eisenzopf/rvoip/pull/291 * feat: add opt-in authenticated UCTP application profiles by @vapi-eisen in https://github.com/eisenzopf/rvoip/pull/262 * feat(sip): opt in to TLS Contact compatibility on observed TLS ingress by @vapi-eisen in https://github.com/eisenzopf/rvoip/pull/287 * feat(sip): retain bounded analytics-block redress diagnostics by @vapi-eisen in https://github.com/eisenzopf/rvoip/pull/290 * feat(core): supervise and drain periodic SDK workers by @vapi-eisen in https://github.com/eisenzopf/rvoip/pull/277 * feat(core): expose bounded identifier-free resource snapshots by @vapi-eisen in https://github.com/eisenzopf/rvoip/pull/289 * feat: add experimental browser and Node UCTP WebSocket client by @vapi-eisen in https://github.com/eisenzopf/rvoip/pull/271 ### Fixes * fix(sip): release dialog locks before asynchronous DNS resolution by @eisenzopf in https://github.com/eisenzopf/rvoip/pull/264 * fix(sip): reject early INVITE setup failures with safe diagnostics by @vapi-eisen in https://github.com/eisenzopf/rvoip/pull/283 * fix(core): reconcile tenant quotas against configured capacity by @vapi-eisen in https://github.com/eisenzopf/rvoip/pull/275 * fix(media): advance stereo playout RTP timestamps per channel by @vapi-eisen in https://github.com/eisenzopf/rvoip/pull/276 * fix(sip): reframe variable-duration Opus before graph encoding by @vapi-eisen in https://github.com/eisenzopf/rvoip/pull/286 * fix(codec): correct G.711 utility encoding and decoding by @vapi-eisen in https://github.com/eisenzopf/rvoip/pull/273 * fix(core): cancel blocked playback and supervise stream workers by @vapi-eisen in https://github.com/eisenzopf/rvoip/pull/282 * fix: retain RTCP reporting for late SDP and add opt-in SIP mux policy by @vapi-eisen in https://github.com/eisenzopf/rvoip/pull/260 * fix(media): normalize RTP source epochs and reset replacement decoders by @vapi-eisen in https://github.com/eisenzopf/rvoip/pull/285 * fix(sip): reuse admitted direct TLS flow for in-dialog requests by @vapi-eisen in https://github.com/eisenzopf/rvoip/pull/288 ### Documentation * docs: propose application-scoped SIP diagnostic observation by @vapi-eisen in https://github.com/eisenzopf/rvoip/pull/281 * docs: add runnable authenticated UCTP application profile example by @vapi-eisen in https://github.com/eisenzopf/rvoip/pull/272 ### Other changes * build(deps): bump the github-actions group across 1 directory with 7 updates by @dependabot[bot] in https://github.com/eisenzopf/rvoip/pull/178 * vapi: add safe diagnostics for socket write stalls by @vapi-eisen in https://github.com/eisenzopf/rvoip/pull/263 * feat(websocket): own listener drain and inbound peer shutdown by @eisenzopf in https://github.com/eisenzopf/rvoip/pull/293 * feat(quic): support authenticated UCTP application profiles by @eisenzopf in https://github.com/eisenzopf/rvoip/pull/292 * build(deps): bump hickory-resolver from 0.26.1 to 0.26.2 in /examples by @dependabot[bot] in https://github.com/eisenzopf/rvoip/pull/294 * build(deps): bump hickory-resolver from 0.26.1 to 0.26.2 by @dependabot[bot] in https://github.com/eisenzopf/rvoip/pull/295 * release: require a changelog entry for every release by @eisenzopf in https://github.com/eisenzopf/rvoip/pull/296 * build(examples): record rvoip-sip's url dependency in the examples lockfile by @eisenzopf in https://github.com/eisenzopf/rvoip/pull/301 * docs(sip): document the jitter buffer, RTCP behaviour and deployment profiles by @eisenzopf in https://github.com/eisenzopf/rvoip/pull/299 * fix(sip): RFC 4028 session timer conformance and in-dialog Request-URI by @eisenzopf in https://github.com/eisenzopf/rvoip/pull/309 * 0.4.0 integration: RTCP fully wired, media quality, deployment profiles, non_exhaustive configs by @eisenzopf in https://github.com/eisenzopf/rvoip/pull/308 * api!: mark public configuration structs #[non_exhaustive] by @eisenzopf in https://github.com/eisenzopf/rvoip/pull/302 * feat(sip): deployment profiles for servers, trunks, NAT and mTLS peering; OPTIONS keep-alive by @eisenzopf in https://github.com/eisenzopf/rvoip/pull/305 * fix(sip): survive rejected session refreshes; route every in-dialog request to the remote target by @eisenzopf in https://github.com/eisenzopf/rvoip/pull/310 * feat(sip): offer a=rtcp-mux by default so RTCP flows on muxing peers by @eisenzopf in https://github.com/eisenzopf/rvoip/pull/303 * build(deps): bump the github-actions group with 2 updates by @dependabot[bot] in https://github.com/eisenzopf/rvoip/pull/300 * release: 0.4.0 changelog, migration guide, release notes, API baseline and docs by @eisenzopf in https://github.com/eisenzopf/rvoip/pull/312 * Prepare v0.4.0 by @github-actions[bot] in https://github.com/eisenzopf/rvoip/pull/313 * fix: 0.4.0 qualification blockers (rustdoc, Jambonz 0.9.14, re-INVITE race, BYE-before-shutdown) by @eisenzopf in https://github.com/eisenzopf/rvoip/pull/316 * release: finalize the 0.4.0 release notes for publication by @eisenzopf in https://github.com/eisenzopf/rvoip/pull/317 ## New Contributors * @dependabot[bot] made their first contribution in https://github.com/eisenzopf/rvoip/pull/178 **Full Changelog**: https://github.com/eisenzopf/rvoip/compare/v0.3.12...v0.4.0
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