v0.9.2

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

Upgrading?

AI Summary

Adds SDES SRTP support for the inbound delayed-offer offer, completing SDES SRTP for both directions of delayed offers.

Key Highlights

  • SDES offer in the 200 OK for inbound delayed offers.
  • Governed by `[media].srtp` configuration.
  • Call fails if peer answers plaintext when SRTP is required.

New Features

  • Inbound SDES SRTP on delayed-offer

Full Release Notes

**Patch release — SRTP on the inbound delayed-offer offer (SDES, RFC 4568).** The mirror of the 0.9.1 outbound follow-up; completes SDES SRTP for both delayed-offer directions.

### Added
- **SRTP on the inbound delayed-offer offer.** On an inbound delayed offer SiphonAI is the *offerer* (its offer rides the 200 OK), so unlike the outbound case it can **offer** SRTP. When `[media].srtp` (or a `[route.media]` override) is `preferred`/`required`, the 200 OK now offers SDES (`RTP/SAVP` + `a=crypto`); the peer's answered key is installed from the ACK, and `required` fails the call if the peer answers plaintext. Surfaces on `start.srtp`.

  Reuses the `originate_offer`/`apply_answer` SDES path the delayed-offer accept already runs — it just stops hardcoding plaintext.

### Notes
- **DTLS-SRTP on a delayed offer is not produced** (the SDES path only) — the remaining delayed-offer SRTP follow-up.

Verified live: `[media].srtp = "required"` + an offerless INVITE → the 200 OK offers SDES (`a=crypto`), the peer answers SRTP in the ACK, the key installs, and the call bridges. New SIPp `delayed_offer_srtp` regression phase.

With this, both delayed-offer directions support SDES SRTP: **0.9.1** (outbound answer) + **0.9.2** (inbound offer).

PR: #194.

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

Related Repositories