active-call 0.3.31

A SIP/WebRTC voice agent
Documentation
[package]
name = "active-call"
version = "0.3.31"
edition = "2024"
authors = ["jinti<shenjindi@fourz.cn>"]
description = "A SIP/WebRTC voice agent"
license = "MIT"
repository = "https://github.com/restsend/active-call"
readme = "README.md"
keywords = ["sip", "voip", "telephony", "voice-agent", "webrtc"]
categories = ["network-programming", "multimedia"]

[features]
default = ["opus", "offline", "ort"]
opus = ["dep:opusic-sys"]
offline = ["dep:symphonia"]
ort = ["ort/download-binaries"]
cross = ["opus", "offline", "aws-lc-rs/bindgen", "ort/load-dynamic"]
not_vad = []

[dependencies]
opusic-sys = { version = "0.5.8", optional = true }
audio-codec = { version = "0.3.30", features = ["opus"] }
rustrtc = "0.3.7"
#rustrtc = { path = "../rustrtc" }
serde = { version = "1", features = ["derive"] }
serde_json = "1.0.148"
minijinja = { version = "2.6.0", features = ["loader", "json"] }
anyhow = "1"
async-trait = "0.1.88"
async-stream = "0.3.6"
axum = { version = "0.8.7", features = ["ws", "tokio", "multipart"] }
tower-http = { version = "0.6.2", features = ["fs", "trace"] }
bytes = "1"
futures = "0.3.31"
rustls = "0.23.36"
dotenvy = "0.15.7"
clap = { version = "4.5.54", features = ["derive"] }
chrono = { version = "0.4.42", features = ["serde"] }
tokio = { version = "1.49.0", features = ["full", "tracing"] }
tokio-stream = { version = "0.1.18", features = ["net", "sync"] }
tokio-tungstenite = { version = "0.28.0", features = [
    "rustls-tls-native-roots",
] }
tokio-util = "0.7.18"
tracing = "0.1.43"
tracing-subscriber = { version = "0.3.22", features = ["env-filter"] }
tracing-appender = "0.2.4"
toml = "0.9.8"
rsip = "0.4.0"
rsipstack = "0.4.3"
#rsipstack = { path = "../rsipstack" }
uuid = { version = "1.19.0", features = ["v4"] }
reqwest = { version = "0.13.1", features = [
    "json",
    "stream",
    "rustls",
    "multipart",
    "form",
    "query",
    "gzip",
] }
object_store = { version = "0.13.0", features = ["aws", "azure", "gcp"] }
serde_with = "3.16.1"
rand = "0.8.5"
humantime = "2.1.0"
lru = "0.16.2"
md5 = { package = "md-5", version = "0.10.6" }
sha2 = "0.10.9"
serde_yaml = "0.9.33"
regex = "1.12.2"
once_cell = "1.21.3"
hex = "0.4.3"
nnnoiseless = "0.5.2"
hound = "3.5.1"
get_if_addrs = "0.5.3"
http = "1.4.0"
urlencoding = "2.1.3"
base64 = "0.22.1"
url = "2.5.8"
unic-emoji = "0.9.0"
realfft = "3.3"
rmp3 = "0.3"
tempfile = "3.24.0"
aws-lc-rs = "1"

# Math / arrays (keep in sync with ort 2.0.0-rc.10 -> ndarray 0.16)
ndarray = { version = "0.16.1" }
rustfft = "6.2"
num-complex = "0.4"
hf-hub = { version = "0.4.3", default-features = false, features = [
    "rustls-tls",
    "tokio",
    "ureq",
] }

ort = { version = "=2.0.0-rc.10", default-features = false, features = [
    "std",
    "ndarray",
] }
knf-rs-sys = "0.3.2"
openssl = { version = "0.10", features = ["vendored"] }

# Audio processing for offline
symphonia = { version = "0.5", optional = true, features = ["all"] }
unicode-normalization = "0.1"
rand_distr = "0.4"
num_cpus = "1.16"
msedge-tts = "0.2.1"


[dev-dependencies]
tempfile = "3.23.0"
warp = { version = "0.4.1", features = ["server", "websocket"] }
tokio-test = "0.4.5"
mockall = "0.14.0"
portpicker = "0.1.1"
dotenvy = "0.15.7"