rvoip — universal real-time gateway facade
rvoip is the facade for the workspace's shared conversation model and
transport adapters. It always provides the transport-independent
Orchestrator and the Conversation/Session/Connection/Stream/
Message/Participant types, defaults to the SIP product, and lets
applications opt into WebRTC, UCTP, Vapi voice agents, client,
application-builder, and conversation-extension surfaces.
Unified
0.3.8release train. Thesipfeature is the release-gated beta surface. Other facade features are available today as developer previews: they are implemented and published, but API-unstable or outside the SIP beta attestation. Publication requires fresh strict full-beta evidence bound to the exact clean0.3.8release source; historical exception and carry-forward reports do not qualify this train. Breaking changes remain possible before1.0.
Quick start
The default feature is sip:
[]
= "0.3.8"
The shared orchestrator is available with every feature combination:
use ;
async
For the fastest path to a SIP endpoint, use
rvoip-sip directly. Its Endpoint, StreamPeer,
CallbackPeer, and UnifiedCoordinator APIs are also re-exported through
rvoip::sip when the default sip feature is enabled.
Cargo features
This table mirrors crates/rvoip/Cargo.toml.
| Feature | Default | Maturity | Enables |
|---|---|---|---|
sip |
✅ | Beta-qualified | SIP application and interop surface under rvoip::sip |
g729 |
Developer preview | End-to-end G.729A/G.729AB media, SDP, RTP, and transcoding support; implies sip |
|
amr-nb |
Developer preview | End-to-end AMR narrowband media with RFC 4867 framing, DTX, and CMR; implies sip |
|
amr-wb |
Developer preview | The same for AMR wideband (G.722.2) at 16 kHz; implies sip |
|
amr |
Developer preview | Both AMR variants | |
opus |
Developer preview | End-to-end Opus media; requires libopus on the build host; implies sip |
|
all-codecs |
Developer preview | g729 + amr + opus |
|
webrtc |
Developer preview | WebRTC interop adapter under rvoip::webrtc |
|
uctp |
Developer preview | UCTP protocol plus QUIC, WebTransport, and WebSocket adapters under rvoip::uctp |
|
vapi |
Developer preview | Vapi bidirectional WebSocket agent adapter under rvoip::vapi |
|
sip-stir-shaken |
Developer preview | STIR/SHAKEN signing/verification under rvoip::stir_shaken; implies sip |
|
voip-3 |
Developer preview | sip + webrtc + uctp + vCon + identity + AI harness |
|
client |
Developer preview | Cross-transport SDK under rvoip::client |
|
app |
Developer preview | High-level SIP/WebRTC/UCTP gateway builder under rvoip::app |
|
full |
Developer preview | voip-3 + vapi + sip-stir-shaken + client + app + g729 + amr. Excludes opus, which needs libopus on the build host — use all-codecs for that |
Examples:
# Shared conversation model plus SIP, WebRTC, UCTP, vCon, identity, and AI.
= { = "0.3.8", = ["voip-3"] }
# High-level cross-transport application builder.
= { = "0.3.8", = ["app"] }
# Every facade-owned feature.
= { = "0.3.8", = ["full"] }
full means every facade feature, not every crate in the rvoip workspace.
Module layout
| Module/path | Required feature | Source product |
|---|---|---|
rvoip::{Orchestrator, Config} |
Always | rvoip-core |
rvoip::core_traits |
Always | rvoip-core-traits |
rvoip::sip |
sip |
rvoip-sip |
rvoip::stir_shaken |
sip-stir-shaken |
rvoip-stir-shaken |
rvoip::webrtc |
webrtc |
rvoip-webrtc |
rvoip::uctp::{protocol, quic, webtransport, websocket} |
uctp |
UCTP and substrate crates |
rvoip::vapi |
vapi |
rvoip-vapi |
rvoip::{vcon, identity, harness} |
voip-3 |
Conversation-model extension crates |
rvoip::client |
client |
rvoip-client |
rvoip::app |
app |
Facade-owned application/gateway layer |
Extension routing
Some extensions are re-exported by facade features; deployment-specific providers stay separate so protocol applications do not pull in backends they do not use.
| Need | How to enable | Crates |
|---|---|---|
| vCon, identity surface, and AI-provider harness | rvoip feature voip-3 |
rvoip-vcon, rvoip-identity, rvoip-harness |
| Vapi-hosted voice agents over SIP or WebRTC | rvoip feature vapi |
rvoip-vapi |
| STIR/SHAKEN | rvoip feature sip-stir-shaken |
rvoip-stir-shaken |
| OIDC or Keycloak | Add directly | rvoip-oidc, rvoip-keycloak |
| LDAP, Redis, or IMS AKA authentication | Add directly | rvoip-ldap, rvoip-redis, rvoip-ims-aka |
| SAML, SCIM, or WebAuthn user lifecycle | Add directly | rvoip-saml, rvoip-scim, rvoip-webauthn |
| Redacted audit and SIEM exports | Add directly | rvoip-audit |
| Postgres vCon storage | Add directly | rvoip-vcon-postgres |
For example:
[]
= { = "0.3.8", = ["sip"] }
= "0.3.8"
= "0.3.8"
= "0.3.8"
Specialized workspace products
These products ship in the unified 0.3.8 train but are intentionally not
facade feature flags:
| Product | Crate | Why it stays separate |
|---|---|---|
| Media over QUIC | rvoip-moq |
MOQT transport/relay and broadcast deployments have their own runtime and security configuration |
| Amazon Connect | rvoip-amazon-connect |
Optional AWS control-plane dependencies and Amazon Chime media |
| OS audio devices | rvoip-audio-device |
Optional CPAL/native device dependencies |
| Enterprise identity providers | crates/extensions |
Applications select only the identity, provisioning, and audit backends they operate |
High-level gateway builder
Enable app to declare transports, roles, assignment, and callbacks through
one builder:
= { = "0.3.8", = ["app"] }
use *;
# async
See the repository's
12-customer-escalation-sip-webrtc
example for a complete cross-transport application.
Maturity boundaries
- SIP beta evidence does not qualify WebRTC, UCTP, MoQ, Amazon Connect, or extension products.
- WebRTC includes ICE and DTLS-SRTP; that does not make them SIP beta capabilities.
- Published developer-preview crates are available to build with now, but do not carry a blanket production-readiness or API-compatibility guarantee.
- Product READMEs define exact supported scope, configuration, and non-claims.
Documentation
- Workspace overview and complete extension catalog
- Facade API
- SIP API
- SIP beta evidence
- Architecture and protocol design
License
Licensed under the MIT License.