Expand description
Dialogs (RFC 3261 §12).
A dialog is the shared state two user agents keep between an INVITE and a BYE. Getting it wrong produces calls that establish and then cannot be ended, which is worse than a call that never establishes: the media keeps flowing.
The three parts that matter, and the ways each goes wrong:
- The identifier is
Call-IDplus both tags. The local and remote tags swap places depending on which side you are, and a UAS that builds the identifier as though it were the UAC will fail to match its own dialog’s BYE. - The sequence numbers are independent. Each side numbers its own requests. Sharing one counter means the first in-dialog request from each side collides.
- The route set is the
Record-Routeof the dialog-forming exchange, and it is reversed for a UAC. Sending in the wrong order routes a BYE through the proxies backwards, and it never arrives.
Structs§
Enums§
- Role
- Which side of the dialog this is.
Traits§
- HasTag
- Both
ToandFromcarry a tag, and both are needed from either side.