Expand description
The UPDATE method (RFC 3311).
A re-INVITE renegotiates a session that is already up. It cannot renegotiate one that is not: until the INVITE has a final response there is a transaction in progress, and a second INVITE inside it is not a thing SIP has. UPDATE is the request that fills that hole — an in-dialog renegotiation that runs alongside the INVITE transaction without disturbing it — and RFC 4028 §7.4 then reuses it as the cheaper way to refresh a session timer.
Everything here is pure. What is written down is the offer/answer bookkeeping a dialog has
to keep in order to decide whether an UPDATE may be sent or accepted, and the three
different refusals §5.2 requires when it may not. The sending, the clock and the randomness
live a layer up; see docs/specs/sip-update.md.
Structs§
- Negotiation
- One dialog’s offer/answer bookkeeping, as far as UPDATE is concerned (RFC 3264, RFC 3311 §5).
Enums§
- Reception
- What to do with an UPDATE that has arrived.
- Refusal
- Why an UPDATE cannot be processed now (RFC 3311 §5.2).
Constants§
- ALLOW
- The
Allowvalue sipx advertises (RFC 3311 §4, RFC 3261 §20.5). - RETRY_
AFTER_ MAX_ SECS - The largest
Retry-Aftera §5.2 refusal may name.
Functions§
- peer_
allows - Whether a peer’s
Allowlists UPDATE (RFC 3311 §4).