v0.12.0

cyphar/paperbackv0.12.0Aug 12, 2026by csiwek

AI Summary

A major release introducing audio resampling improvements, Google Cloud Storage backend, and advanced SIP and STT capabilities.

Key Highlights

  • Better resampling capabilities
  • GCS storage backend support
  • Multi-stream SIP legs support
  • Deepgram Flux turn detection integration
  • SIPREC support

New Features

  • GCS storage backend
  • Multi-stream SIP legs support
  • Deepgram Flux turn detection and speech_final
  • Custom recording filename support
  • Mid-stream STT finalize

Full Release Notes

## What's Changed
* Feat/better resampling by @csiwek in https://github.com/VoiceBlender/voiceblender/pull/88
* Report why a prompt stopped and how much of it played by @Mliviu79 in https://github.com/VoiceBlender/voiceblender/pull/85
* AMD Rework and fixes by @csiwek in https://github.com/VoiceBlender/voiceblender/pull/89
* Contain a mixer IO panic to the participant that caused it by @Mliviu79 in https://github.com/VoiceBlender/voiceblender/pull/80
* Post PR80 pull request fixes and improvements by @csiwek in https://github.com/VoiceBlender/voiceblender/pull/90
* fix flaky tests by @csiwek in https://github.com/VoiceBlender/voiceblender/pull/91
* Finalise recordings when participant leave in all cases by @csiwek in https://github.com/VoiceBlender/voiceblender/pull/93
* Add stable event_id to events with X-Event-Id webhook header and egre… by @csiwek in https://github.com/VoiceBlender/voiceblender/pull/96
* Publish recordings atomically and drive stereo capture from its own c… by @csiwek in https://github.com/VoiceBlender/voiceblender/pull/97
* Fail fast on a missing S3 bucket without breaking least-privilege IAM… by @csiwek in https://github.com/VoiceBlender/voiceblender/pull/98
* Feat/gcs storage backend by @csiwek in https://github.com/VoiceBlender/voiceblender/pull/99
* fix(sip): answer OPTIONS with 200 OK for dispatcher health probes by @mirkobrankovic82 in https://github.com/VoiceBlender/voiceblender/pull/94
* fix(sip): inbound SIP webhook signing when using global WEBHOOK_SECRET by @mirkobrankovic82 in https://github.com/VoiceBlender/voiceblender/pull/95
* test(sip): move OPTIONS test out of the TLS file and poll for readiness by @csiwek in https://github.com/VoiceBlender/voiceblender/pull/101
* Added CLAUDE.md for AI assisted develpment by @csiwek in https://github.com/VoiceBlender/voiceblender/pull/112
* Watch a REFER-transferred leg's dialog so a remote BYE ends the leg by @Mliviu79 in https://github.com/VoiceBlender/voiceblender/pull/102
* Transferred legs now publish leg.hold/leg.unhold like by @csiwek in https://github.com/VoiceBlender/voiceblender/pull/113
* Derive the outbound From identity from the registered trunk's AOR by @Mliviu79 in https://github.com/VoiceBlender/voiceblender/pull/103
* Added Unit tests by @csiwek in https://github.com/VoiceBlender/voiceblender/pull/114
* Keep caller transcripts and DTMF digits out of default-level logs by @Mliviu79 in https://github.com/VoiceBlender/voiceblender/pull/104
* Retry transient TTS synthesis failures with a bounded backoff by @Mliviu79 in https://github.com/VoiceBlender/voiceblender/pull/105
* PR-106 plus fixes (avoid blocking WS connections) by @csiwek in https://github.com/VoiceBlender/voiceblender/pull/115
* fix(api): bound VSI websocket writes on a deadline by @csiwek in https://github.com/VoiceBlender/voiceblender/pull/116
* feat(stt): add mid-stream STT finalize that keeps the session open (#… by @csiwek in https://github.com/VoiceBlender/voiceblender/pull/117
* feat(api): allow custom recording filename on /record by @mirkobrankovic82 in https://github.com/VoiceBlender/voiceblender/pull/111
* feat: Multi-stream SIP legs support with multiple m-lines by @csiwek in https://github.com/VoiceBlender/voiceblender/pull/118
* PATCH to change a stream's routing role in place. by @csiwek in https://github.com/VoiceBlender/voiceblender/pull/120
* Fix warning on github actions by @csiwek in https://github.com/VoiceBlender/voiceblender/pull/121
* fix/artifact fix by @csiwek in https://github.com/VoiceBlender/voiceblender/pull/122
* SIPREC support as SRC and SRS by @csiwek in https://github.com/VoiceBlender/voiceblender/pull/123
* Fix flaky webrtc tests by @csiwek in https://github.com/VoiceBlender/voiceblender/pull/125
* Add Deepgram Flux turn detection, speech_final, and preflight TTS by @csiwek in https://github.com/VoiceBlender/voiceblender/pull/126
* Fix TTS tests by @csiwek in https://github.com/VoiceBlender/voiceblender/pull/127
* Assert a recording session survives the ACK by @agranig in https://github.com/VoiceBlender/voiceblender/pull/128
* sip: a bare rs-metadata body is not an SDP offer by @agranig in https://github.com/VoiceBlender/voiceblender/pull/129

## New Contributors
* @Mliviu79 made their first contribution in https://github.com/VoiceBlender/voiceblender/pull/85
* @mirkobrankovic82 made their first contribution in https://github.com/VoiceBlender/voiceblender/pull/94
* @agranig made their first contribution in https://github.com/VoiceBlender/voiceblender/pull/128

**Full Changelog**: https://github.com/VoiceBlender/voiceblender/compare/v0.11.2...v0.12.0