Expand description
§rvoip — Universal real-time gateway library
rvoip is the facade crate for the rvoip workspace. It always compiles the
voip-3 substrate (rvoip-core + rvoip-core-traits — the cross-transport
Orchestrator and the Conversation/Session/Connection/Stream/
Message/Participant model) and lets you opt into transports and
extensions behind cargo features, defaulting to the SIP product.
§Maturity tiers
All workspace crates are aligned at 0.3.3. Maturity is
product-specific rather than encoded in the version number: the sip
surface is beta-qualified, while webrtc, uctp, the voip-3
extensions, and client are available as developer previews.
See docs/PRD.md, INTERFACE_DESIGN.md, and CONVERSATION_PROTOCOL.md
for the architectural context.
§Quick start
use rvoip::{Orchestrator, Config};
// `Orchestrator::new` returns an `Arc<Orchestrator>`.
let orchestrator = Orchestrator::new(Config::default());
// Register interop adapters (e.g. `rvoip::sip::SipAdapter::new(coordinator).await?`,
// built from a configured `UnifiedCoordinator`) via `orchestrator.register(adapter)?`.
let mut events = orchestrator.subscribe_events();
while let Ok(event) = events.recv().await {
// handle each orchestrator event
drop(event);
}§Cargo features
| Feature | Default | Pulls in |
|---|---|---|
sip | ✅ | SIP interop adapter (rvoip::sip) — beta |
webrtc | WebRTC interop adapter (rvoip::webrtc) — developer preview | |
uctp | UCTP substrate adapters — QUIC / WebTransport / WebSocket (rvoip::uctp) — developer preview | |
vapi | Vapi bidirectional WebSocket agent adapter (rvoip::vapi) — developer preview | |
sip-stir-shaken | RFC 8224 caller-ID attestation; requires sip (rvoip::stir_shaken) — developer preview | |
voip-3 | SIP + WebRTC + UCTP + vCon / identity / AI-harness extensions — developer preview | |
client | Cross-transport client SDK (rvoip::client) — developer preview | |
app | High-level gateway builder (rvoip::app) — developer preview | |
full | voip-3 + vapi + sip-stir-shaken + client + app |
The vcon, identity, and harness conversation-model extensions are
transport-agnostic and reachable only through the voip-3 feature.
§Module layout
The unifying voip-3 nouns are re-exported at the crate root via
rvoip::core_traits; the Orchestrator + Config at the root directly.
Each transport/extension lives under its own feature-gated module
(rvoip::sip, rvoip::webrtc, rvoip::uctp, rvoip::app,
rvoip::vapi, rvoip::client, …).
Re-exports§
pub use rvoip_core_traits as core_traits;
Modules§
- sip
- SIP interop adapter — bridges SIP/RTP into the voip-3
Sessionabstraction. Seervoip-sipfor the full surface.
Structs§
- Config
- Orchestrator configuration.
- Orchestrator
Constants§
- VERSION
- The version of the rvoip facade crate.