# crates/rutster-trunk/Cargo.toml [package] name = "rutster-trunk" version = "0.0.0" license.workspace = true edition.workspace = true repository.workspace = true description = "Rented carrier transport — CPaaS media-leg ingress; no first-party SIP (spearhead step 5, ADR-0007)." [dependencies] # FOB-side wiring (slice-5 dev-c branch -- tasks T1/T3/T4/T5/T7/T8): # * rutster-media: PcmFrame + SAMPLES_PER_FRAME + Reflex stack (REUSED slice-4 verbatim). # * rutster-call-model: Channel + ChannelId for TrunkSession (T4). # * rutster-tap: TapAudioPipe (REUSED verbatim -- the architectural load-bearing claim, spec §6.1). rutster-media = { path = "../rutster-media" } rutster-call-model = { path = "../rutster-call-model" } rutster-tap = { path = "../rutster-tap" } tokio = { workspace = true, features = ["macros", "rt-multi-thread", "sync", "time"] } axum = { workspace = true, features = ["ws"] } serde = { workspace = true, features = ["derive"] } serde_json = { workspace = true } tracing = { workspace = true } thiserror = { workspace = true } base64 = { workspace = true } url = { workspace = true } # NOTE: reqwest + async-trait land in dev-b's branch (T2 provider trait + T6 TwilioCallControlClient # live REST impl). They live at arm's length from the FOB hot path per ADR-0009 -- never re-exported # through the workspace, never imported by g711/twilio_media_streams/session/loop_driver. The # stacked-branches rebase-merge (per AGENTS.md Git workflow carve-out) reconciles the [dependencies] # table at merge time. [features] default = [] # Reserved for T6 (dev-b's live TwilioCallControlClient REST impl). The routine CI gate stays # default-features-off -- MockCallControlClient is the per-PR integration test surface. The # maintainer triggers `cargo test --features=twilio-live` manually pre-release. twilio-live = [] [dev-dependencies] # `tower::ServiceExt::oneshot` is the canonical axum router helper for unit tests # (turns a Router into a one-shot Service: `app.oneshot(request).await`). tower = { workspace = true }