Expand description
RTP and RTCP (RFC 3550).
Two things here earn their tests. The sequence number is 16 bits and wraps every
twenty-odd minutes at speech packet rates, so the wrap is an ordinary event and any
comparison that uses < is wrong. And the jitter buffer trades latency for order:
packets arrive late, early, twice or not at all, and audio needs them evenly spaced.
Packet parsing rejects rather than guesses. A decoder that reads a malformed packet optimistically plays header bytes as audio, which is heard as a loud click.
§Stability
sipx is pre-1.0, so neither word below means frozen. 1.0.0 is what freezes an API, and its
predicates are in docs/roadmap.md. Until then:
- Supported — meant to be depended on. Breaking changes get a
CHANGELOG.mdentry saying what to do instead. New enum variants and new struct fields may still appear in a minor release, so a downstreammatchshould carry a_arm. - Experimental — may change shape or be removed without a migration note. Depend on it only if you are prepared to follow it.
Supported. RTP, RTCP, the jitter buffer, quality statistics, SRTP and RFC 4733 DTMF are all reachable from a call and exercised by it.
Re-exports§
pub use dtmf::Digit;pub use dtmf::Event as DtmfEvent;pub use dtmf::Receiver as DtmfReceiver;pub use jitter::JitterBuffer;pub use packet::HEADER_LEN;pub use packet::Packet;pub use packet::RtpError;pub use packet::sequence_distance;pub use packet::sequence_is_newer;pub use quality::Quality;pub use quality::ntp_now;pub use quality::round_trip;pub use rtcp::ReceiverReport;pub use rtcp::ReportBlock;pub use rtcp::Rtcp;pub use rtcp::RtcpError;pub use rtcp::Sdes;pub use rtcp::SdesChunk;pub use rtcp::SdesItem;pub use rtcp::SenderReport;pub use rtcp::StreamStats;pub use srtp::Context as SrtpContext;pub use srtp::SrtpError;
Modules§
- dtmf
- DTMF as named telephone events (RFC 4733).
- jitter
- A jitter buffer.
- packet
- RTP packets (RFC 3550 §5.1).
- quality
- What a call actually sounded like: loss, jitter, round-trip time, and an estimate of how bad that combination was.
- rtcp
- RTCP sender and receiver reports (RFC 3550 §6.4).
- srtp
- SRTP (RFC 3711): the default transform, AES-128 counter mode with HMAC-SHA1.