Expand description
Native SIP/RTP: Flowcat speaks SIP directly (no FreeSWITCH).
This module makes a flowcat-core process a SIP user agent on a trunk:
REGISTER (with digest auth + periodic refresh), accept inbound INVITEs, and
originate outbound INVITEs — then carry the call’s audio over hand-rolled
RTP, surfaced through the same MediaTransport
seam the WS/Plivo path uses. See SIP-DESIGN.md §2.
Split:
- Signaling (
agent) is delegated torsipstack(REGISTER/INVITE/ACK/ BYE transactions + dialogs, digest auth). rsipstack re-exports thersipmessage/header types asrsipstack::sip. - RTP (
rtp) and SDP (sdp) are hand-rolled (deterministic, fully unit-tested, no extra media dep) over a plaintokio::net::UdpSocket. transport::SipTransportbridges RTP ↔ decodedMediaIn::Audiofor one dialog, implementingMediaTransport.
Re-exports§
pub use agent::InboundInvite;pub use agent::SipAgent;pub use agent::SipConfig;pub use agent::DEFAULT_RTP_PORT_BASE;pub use agent::DEFAULT_RTP_PORT_TRIES;pub use rtp::depacketize;pub use rtp::JitterBuffer;pub use rtp::RtpPacket;pub use rtp::RtpSender;pub use rtp::JITTER_DEPTH;pub use sdp::G711Codec;pub use sdp::SdpMedia;pub use transport::SipTransport;
Modules§
- agent
SipAgent— a SIP user agent on one trunk (REGISTER + inbound/outbound calls).- rtp
- Hand-rolled RTP (RFC 3550) for G.711 telephony — packetize, depacketize, and a small fixed jitter buffer.
- sdp
- Minimal SDP (RFC 4566) for G.711 telephony — just enough to offer/answer a
single
audiostream over RTP/AVP with PCMU/PCMA. - transport
SipTransport— bridges one SIP dialog’s RTP media to theMediaTransportseam.