1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//! SIP↔SIP same-codec fast-path bridge strategy.
//!
//! Per CARVE_PLAN §3 (BridgeManager row): when both legs are SIP and codecs
//! match, the cross-transport `Orchestrator` dispatches to this fast path
//! instead of running the generic frame-pump (INTERFACE_DESIGN §10.2). The
//! fast path simply calls `api::UnifiedCoordinator::bridge(a, b)`, which
//! already does the right thing — RTP-direct relay through `media-core`.
//!
//! This module wraps no media-core types; it returns the
//! `media-core::BridgeHandle` that `bridge()` already returns. Bridge
//! registry tracking is the caller's responsibility (typically
//! `rvoip-core::BridgeManager`).
use crate;
use crateSessionId;
use Arc;
/// Run the SIP-fast-path bridge between two existing SIP sessions.
///
/// Returns the [`BridgeHandle`] (media-core type, re-exported through
/// `rvoip-sip`'s api). Drop the handle to tear the bridge down.
pub async
/// Strategy object the cross-transport `Orchestrator` (in step 9+) registers
/// for SIP↔SIP bridge dispatch. Provided as a struct (not just a function)
/// so future configuration knobs (e.g. per-tenant bridge limits, codec
/// preference policies) can attach without changing the call signature.