feat(fax): add fax routing, job tracking, inbox management, and T.38/UDPTL media support

This commit is contained in:
2026-04-20 20:43:42 +00:00
parent 3c010a3b1b
commit d2c18a4ebb
27 changed files with 4247 additions and 280 deletions
+161 -23
View File
@@ -165,7 +165,7 @@ dependencies = [
"nom",
"num-traits",
"rusticata-macros",
"thiserror",
"thiserror 1.0.69",
"time",
]
@@ -181,7 +181,7 @@ dependencies = [
"nom",
"num-traits",
"rusticata-macros",
"thiserror",
"thiserror 1.0.69",
"time",
]
@@ -327,6 +327,26 @@ dependencies = [
"virtue",
]
[[package]]
name = "bindgen"
version = "0.72.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895"
dependencies = [
"bitflags 2.11.0",
"cexpr",
"clang-sys",
"itertools",
"log",
"prettyplease",
"proc-macro2",
"quote",
"regex",
"rustc-hash",
"shlex",
"syn 2.0.117",
]
[[package]]
name = "bitflags"
version = "1.3.2"
@@ -429,6 +449,15 @@ dependencies = [
"smallvec",
]
[[package]]
name = "cexpr"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
dependencies = [
"nom",
]
[[package]]
name = "cfg-if"
version = "0.1.10"
@@ -498,6 +527,17 @@ dependencies = [
"inout",
]
[[package]]
name = "clang-sys"
version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4"
dependencies = [
"glob",
"libc",
"libloading",
]
[[package]]
name = "clap"
version = "3.2.25"
@@ -538,7 +578,7 @@ version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2c9f73004e928ed46c3e7fd7406d2b12c8674153295f08af084b49860276dc02"
dependencies = [
"thiserror",
"thiserror 1.0.69",
]
[[package]]
@@ -1021,6 +1061,12 @@ dependencies = [
"signature",
]
[[package]]
name = "either"
version = "1.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
[[package]]
name = "elliptic-curve"
version = "0.12.3"
@@ -1367,6 +1413,12 @@ dependencies = [
"polyval",
]
[[package]]
name = "glob"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280"
[[package]]
name = "group"
version = "0.12.1"
@@ -1668,7 +1720,7 @@ dependencies = [
"rand 0.8.5",
"rtcp",
"rtp",
"thiserror",
"thiserror 1.0.69",
"tokio",
"waitgroup",
"webrtc-srtp",
@@ -1681,6 +1733,15 @@ version = "2.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2"
[[package]]
name = "itertools"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
dependencies = [
"either",
]
[[package]]
name = "itoa"
version = "1.0.18"
@@ -1792,6 +1853,16 @@ dependencies = [
"rle-decode-fast",
]
[[package]]
name = "libloading"
version = "0.8.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55"
dependencies = [
"cfg-if 1.0.4",
"windows-link",
]
[[package]]
name = "linux-raw-sys"
version = "0.12.1"
@@ -2386,7 +2457,9 @@ dependencies = [
"serde",
"serde_json",
"sip-proto",
"spandsp",
"tokio",
"udptl",
"webrtc",
]
@@ -2584,7 +2657,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6423493804221c276d27f3cc383cd5cbe1a1f10f210909fd4951b579b01293cd"
dependencies = [
"bytes",
"thiserror",
"thiserror 1.0.69",
"webrtc-util",
]
@@ -2594,7 +2667,7 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce5248489db464de29835170cd1f6e19933146b0016789effc59cb53d9f13844"
dependencies = [
"thiserror",
"thiserror 1.0.69",
]
[[package]]
@@ -2606,7 +2679,7 @@ dependencies = [
"bytes",
"rand 0.8.5",
"serde",
"thiserror",
"thiserror 1.0.69",
"webrtc-util",
]
@@ -2617,7 +2690,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7bb90df8268abfe08452ef2dae9e867a54edfdaa71b3127ef47d8b031f77ac73"
dependencies = [
"smallvec",
"thiserror",
"thiserror 1.0.69",
]
[[package]]
@@ -2744,7 +2817,7 @@ checksum = "4d22a5ef407871893fd72b4562ee15e4742269b173959db4b8df6f538c414e13"
dependencies = [
"rand 0.8.5",
"substring",
"thiserror",
"thiserror 1.0.69",
"url",
]
@@ -2957,6 +3030,28 @@ dependencies = [
"winapi",
]
[[package]]
name = "spandsp"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5f076b6e56f1a1062d6950dcd1c6c1df281ae2828db271929c50c191ec8c79e"
dependencies = [
"bitflags 2.11.0",
"spandsp-sys",
"thiserror 2.0.18",
]
[[package]]
name = "spandsp-sys"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c05ab99051230293dded61ba3cd32f06eb15b437a8135be21f560f72bab713db"
dependencies = [
"bindgen",
"cc",
"pkg-config",
]
[[package]]
name = "spin"
version = "0.5.2"
@@ -3004,7 +3099,7 @@ dependencies = [
"rand 0.8.5",
"ring",
"subtle",
"thiserror",
"thiserror 1.0.69",
"tokio",
"url",
"webrtc-util",
@@ -3104,7 +3199,16 @@ version = "1.0.69"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
dependencies = [
"thiserror-impl",
"thiserror-impl 1.0.69",
]
[[package]]
name = "thiserror"
version = "2.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
dependencies = [
"thiserror-impl 2.0.18",
]
[[package]]
@@ -3118,6 +3222,17 @@ dependencies = [
"syn 2.0.117",
]
[[package]]
name = "thiserror-impl"
version = "2.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.117",
]
[[package]]
name = "time"
version = "0.3.47"
@@ -3194,9 +3309,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100"
dependencies = [
"pin-project-lite",
"tracing-attributes",
"tracing-core",
]
[[package]]
name = "tracing-attributes"
version = "0.1.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.117",
]
[[package]]
name = "tracing-core"
version = "0.1.36"
@@ -3230,7 +3357,7 @@ dependencies = [
"rand 0.8.5",
"ring",
"stun",
"thiserror",
"thiserror 1.0.69",
"tokio",
"webrtc-util",
]
@@ -3241,6 +3368,17 @@ version = "1.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb"
[[package]]
name = "udptl"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b255ad0ff36582a8a453c42a2bcc16c72d00f0ab16a14a4a7aeacb55ccb2a351"
dependencies = [
"thiserror 2.0.18",
"tokio",
"tracing",
]
[[package]]
name = "unicode-ident"
version = "1.0.24"
@@ -3532,7 +3670,7 @@ dependencies = [
"sha2",
"smol_str",
"stun",
"thiserror",
"thiserror 1.0.69",
"time",
"tokio",
"turn",
@@ -3557,7 +3695,7 @@ dependencies = [
"bytes",
"derive_builder",
"log",
"thiserror",
"thiserror 1.0.69",
"tokio",
"webrtc-sctp",
"webrtc-util",
@@ -3595,7 +3733,7 @@ dependencies = [
"sha2",
"signature",
"subtle",
"thiserror",
"thiserror 1.0.69",
"tokio",
"webpki",
"webrtc-util",
@@ -3617,7 +3755,7 @@ dependencies = [
"serde",
"serde_json",
"stun",
"thiserror",
"thiserror 1.0.69",
"tokio",
"turn",
"url",
@@ -3635,7 +3773,7 @@ checksum = "f08dfd7a6e3987e255c4dbe710dde5d94d0f0574f8a21afa95d171376c143106"
dependencies = [
"log",
"socket2 0.4.10",
"thiserror",
"thiserror 1.0.69",
"tokio",
"webrtc-util",
]
@@ -3650,7 +3788,7 @@ dependencies = [
"bytes",
"rand 0.8.5",
"rtp",
"thiserror",
"thiserror 1.0.69",
]
[[package]]
@@ -3665,7 +3803,7 @@ dependencies = [
"crc",
"log",
"rand 0.8.5",
"thiserror",
"thiserror 1.0.69",
"tokio",
"webrtc-util",
]
@@ -3688,7 +3826,7 @@ dependencies = [
"rtp",
"sha1",
"subtle",
"thiserror",
"thiserror 1.0.69",
"tokio",
"webrtc-util",
]
@@ -3709,7 +3847,7 @@ dependencies = [
"log",
"nix",
"rand 0.8.5",
"thiserror",
"thiserror 1.0.69",
"tokio",
"winapi",
]
@@ -3880,7 +4018,7 @@ dependencies = [
"nom",
"oid-registry 0.4.0",
"rusticata-macros",
"thiserror",
"thiserror 1.0.69",
"time",
]
@@ -3899,7 +4037,7 @@ dependencies = [
"oid-registry 0.6.1",
"ring",
"rusticata-macros",
"thiserror",
"thiserror 1.0.69",
"time",
]