SIP signaling and RTP transport for WaveKat voice pipelines, on a from-scratch SIP engine (no external SIP stack). Same pattern as wavekat-vad and wavekat-turn.
[!WARNING] Early development. API will change between minor versions.
What this crate is
A small, focused SIP/RTP toolkit for building softphones, voice bots, and recording bridges in Rust. It owns the wire-level concerns —
- SIP signaling: REGISTER (digest auth + keepalive), outbound and inbound
calls (
Caller/IncomingCall), in-dialog hold/resume, DTMF (RFC 4733 + INFO fallback), and RFC 4028 session timers. - SDP: minimal offer/answer for G.711 (PCMU + PCMA) telephony audio.
- RTP: header parser, a debug-friendly receive loop, and a codec-agnostic send loop.
— and stays out of the audio device, codec, and call-orchestration layers so it remains light and embeddable.
Quick Start
Register an account against your SIP server:
use CancellationToken;
use ;
# async
Place an outbound call and hang up:
use Arc;
use ;
# async #
Answer inbound calls from the endpoint's incoming stream:
# use Arc;
# use SipEndpoint;
# async #
Status
| Module | State |
|---|---|
account |
Stable — runtime SIP account type. |
endpoint |
Working — shared SIP endpoint + transport + routing. |
registrar |
Working — REGISTER + auth + keepalive + unregister. |
resolve |
Working — RFC 3263 (subset) SRV + A/AAAA fallback. |
caller |
Working — outbound dial, hold/resume, DTMF, hangup. |
callee |
Working — inbound INVITE accept/reject. |
sdp |
Working — minimal G.711 offer/answer. |
rtp |
Working — header parser, receive loop, send loop. |
Architecture
PSTN / SIP trunk
│
▼
wavekat-sip (in-house transport, transactions, dialogs)
│
├─ account ──── credentials + endpoint config
├─ endpoint ─── UDP transport + transaction/dialog engine + routing
├─ registrar ── REGISTER / digest auth / keepalive
├─ caller ───── outbound INVITE / hold / DTMF / hangup
├─ callee ───── inbound INVITE accept / reject
├─ sdp ──────── offer/answer for telephony codecs
└─ rtp ──────── RTP header parse / receive / send
│
▼
your app ──► audio device I/O, codec, recording, AI pipeline
About WaveKat
wavekat-sip is part of WaveKat, an open-source ecosystem of Rust crates for building real-time voice pipelines. It handles SIP signaling and RTP transport, alongside sibling crates for voice activity detection, turn detection, speech-to-text, and text-to-speech.
See wavekat.com for the full project.
Stars
License
Licensed under Apache 2.0.
Copyright 2026 WaveKat.
Acknowledgements
rsip— SIP message types.