12.9. Dialogs

A dialog is a SIP relationship between two collaborators. The dialog provides the necessary states required for the routing and sequencing of messages between those collaborators.

Dialogs are identified using Dialog-IDs and UAs use them to track messages sent within a dialog. A Dialog-ID consists of a Call-ID, a local tag and a remote tag. For a UAC the local tag is the tag that appears in the From header of the initial dialog-creating request and the remote tag is the tag that appears in the To header of the dialog-creating response. For a UAS the local tag is the tag that appears in the To header of the dialog-creating response and the remote tag is the tag that appears in the From header of the initial dialog-creating request. For subsequent requests using dialogs sent from either end, the local tag is placed in the From header and the remote tag is placed in the To header.

Note that a UAS needs to be prepared to receive a request without a tag in the From header, in which case the tag is considered to have a null value.

A dialog state is needed for creating, sending, receiving and processing of messages within a dialog. This state consists of the dialog-ID, a local sequence number, a remote sequence number, a local URI, a remote URI, a remote target, a Boolean flag called a "secure" flag and a route set.

When a dialog is in an "early" state it is referred to as an "early dialog". This occurs when a provisional response arrives at the UAC to an initial request, ...

Get The IMS: IP Multimedia Concepts And Services, Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.