Expand description
Reliable provisional responses (RFC 3262): 100rel, RSeq, RAck and PRACK.
An ordinary 180 Ringing is fire-and-forget. Over UDP it is simply lost sometimes, and the
caller hears nothing while the callee’s phone rings — or, worse, an early-media answer never
arrives and the call connects to silence. RFC 3262 makes a provisional response an
acknowledged message: the UAS numbers it, retransmits it until a PRACK comes back, and gives
up on the whole invitation if none ever does.
Some carriers will not accept a call without it, which is the practical reason this exists.
Everything here is pure: sequence numbers, the ordering rule, and the decision about whether a request may or must be answered reliably. The retransmission clock lives a layer up.
Structs§
- Numbering
- The UAS’s numbering of reliable provisionals within one transaction (RFC 3262 §3).
- Offered
- What the peer said about 100rel in its request.
- RAck
- The
RAckheader (RFC 3262 §7.2):response-num CSeq-num Method. - RSeq
- The
RSeqheader (RFC 3262 §7.1). - Sequence
- The UAC’s view of the reliable provisionals arriving for one request (RFC 3262 §4).
Enums§
- Received
- What the UAC should do with a reliable provisional it has just received.
- Reliability
- What a UAS must do about reliability for an incoming request.
Constants§
- MAX_
FIRST_ RSEQ - The largest first sequence number the RFC allows.
- OPTION_
TAG - The option tag, in
Supported,RequireandUnsupported(RFC 3262 §8.1).
Functions§
- reliability
- Decide the UAS side (RFC 3262 §3).