v0.9.1

thevoiceguy/siphon-aiv0.9.1Jun 18, 2026by thevoiceguy

Upgrading?

AI Summary

Adds SDES SRTP support for the outbound delayed-offer answer, enabling encryption for outbound calls to secure trunks.

Key Highlights

  • SDES answer in the ACK for outbound delayed offers.
  • Governed by `[[gateway]].srtp` configuration.
  • Encryption for outbound delayed-offer calls to secure trunks.

New Features

  • Outbound SDES SRTP on delayed-offer

Full Release Notes

**Patch release — SRTP on the outbound delayed-offer answer (SDES, RFC 4568).** The deferred 0.9.0 follow-up.

### Added
- **SRTP on the outbound delayed-offer answer.** An offerless outbound INVITE can't *offer* SRTP, but when the peer's 2xx carries an SDES offer (`RTP/SAVP` + `a=crypto`), SiphonAI now **answers** it — so an outbound delayed-offer call to a secure trunk encrypts. The gateway UAC's delayed-offer answer generator runs the same SDES negotiation the inbound early-offer path uses (rewrite the peer offer for codec matching, patch the answer back to `RTP/SAVP` with our `a=crypto`, install the keys on the leg).

  Governed by **`[[gateway]].srtp`**: `preferred` answers SRTP when offered (else plaintext); `required` fails the call on a plaintext peer offer. Surfaces on `start.srtp` and `siphon_ai_outbound_srtp_total{result}` like early-offer outbound SRTP.

### Notes
- **DTLS-SRTP on a delayed answer is not handled** (no per-call cert in the generator) — SDES only.
- **SRTP on the *inbound* delayed-offer** (where SiphonAI offers in the 200 OK) remains a separate follow-up.

Verified live: gateway `srtp = "required"` + a peer SDES 2xx → the ACK answers SRTP and keys install (`outbound_srtp_total{result="encrypted"}` = 1). New SIPp `outbound_delayed_srtp` regression phase.

PR: #193.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Related Repositories