Диалоги |
|
Диалог представляет собой равноправное взаимодействие двух агентов пользователя по протоколу SIP, которое длится определенное время. Диалог устанавливает последовательность сообщений между UA и обеспечивает верную маршрутизацию запросов. В этом разделе будет рассмотрен процесс использования запросов и ответов для организации диалога и их пересылки в режиме диалога. Диалог идентифицируется каждым агентом пользователя с помощью идентификатора диалога (dialog ID), который состоит из значения Call-ID, локальной метки (local tag) и удаленной метки (remote tag). У участвующих в диалоге сторон локальная метка одного UA идентична удаленной метке другого и наоборот. Идентификатор диалога непосредственно связан со всеми запросами, имеющими параметр «tag» в поле заголовка То. Правила вычисления идентификатора диалога зависят от того, чем является элемент сети SIP-клиентом или сервером агента пользователя. Для UAC значение Call-ID устанавливается по заголовку Call-ID сообщения, удаленная метка - по параметру «tag» в поле заголовка То, а локальная метка по параметру «tag» в поле заголовка From. Для UAS, соответственно, значение Call-ID копируется из заголовка Call-ID сообщения, удаленная метка определяется по параметру «tag» в заголовке From, а локальная метка - по параметру «tag» в заголовке То. Диалог включает в себя ряд компонентов, которые описывают его состояние и используются для передачи сообщений входе диалога. Это - идентификатор диалога, локальный порядковый номер (для упорядочения запросов UA, направляемых собеседнику), удаленный порядковый номер (для упорядочения запросов от собеседника кУА), локальный URI, удаленный URI, текущий адрес удаленного пользователя (remote target), булев флаг «secure» и конфигурация маршрута (route set), представляющая собой упорядоченный список URI. Конфигурация маршрута - это перечень серверов, через которые должен пройти запрос, отправленный второму участнику диалога. Диалог может находиться на так называемой «ранней стадии», которая имеет место при создании диалога в результате передачи предварительного ответа; только после получения клиентом окончательного ответа, диалог переходит в установленное состояние. Если помимо предварительных ответов 2хх никаких ответов не приходит, диалог, находящийся на «ранней стадии», завершается. |

