13 releases
new 0.2.3 | May 23, 2025 |
---|---|
0.2.2 | May 23, 2025 |
0.1.9 | May 15, 2025 |
0.1.7 | Apr 30, 2025 |
0.1.1 | Jan 16, 2025 |
#104 in Multimedia
1,038 downloads per month
Used in rustpbx
725KB
6.5K
SLoC
A SIP Stack written in Rust
WIP This is a work in progress and is not yet ready for production use.
A RFC 3261 compliant SIP stack written in Rust. The goal of this project is to provide a high-performance, reliable, and easy-to-use SIP stack that can be used in various scenarios.
TODO
- Transport support
- UDP
- TCP
- TLS
- WebSocket
- Digest Authentication
- Transaction Layer
- Dialog Layer
- WASM target
Use Cases
This SIP stack can be used in various scenarios, including but not limited to:
- Integration with WebRTC for browser-based communication, such as WebRTC SBC.
- Building custom SIP proxies or registrars
- Building custom SIP user agents (SIP.js alternative)
Why Rust?
We are a group of developers who are passionate about SIP and Rust. We believe that Rust is a great language for building high-performance network applications, and we want to bring the power of Rust to the SIP/WebRTC/SFU world.
How to run
# the sip phone will serve at: YOUR_NETWORK_IP:25060
cargo run --example client
Make a call to sip:YOUR_NETWORK_IP:25060
from another sip client.(e.g. linphone)
Benchmark tools
# run server
cargo run -r --bin bench_ua -- -m server -p 5060
# run client with 1000 calls
cargo run -r --bin bench_ua -- -m client -p 5061 -s 127.0.0.1:5060 -c 1000
The test monitor:
=== SIP Benchmark UA Stats ===
Dialogs: 9992
Active Calls: 9983
Rejected Calls: 0
Failed Calls: 0
Total Calls: 250276
Calls/Second: 1501
============================
Dependencies
~27–41MB
~725K SLoC