Формирование заголовка Via |
|
Поле заголовка Via указывает один из узлов (например, прокси-сервер), используемых для проведения транзакции и идентифицирует место (location), куда должен быть отправлен ответ. SIP-элемент добавляет собственное значение заголовка Via только после выбора следующего узла, которому будет передан запрос. Когда UAC создает запрос, он должен поместить в него поле Via. Необходимо также указать название протокола - SIP - и его версию - 2.0. Поле заголовка Via должно содержать параметр «branch», который служит для идентификации транзакции, созданной запросом. Он используется и клиентом, и сервером. Значение параметра «branch» должно быть уникальным для всех запросов, передаваемых UA. Исключение составляют запрос CANCEL и запрос-подтверждение АСК приема ответов, отличных от класса 2хх. Запрос CANCEL будет иметь то же значение параметра «branch», что и запрос, который он отменяет. Запрос-подтверждение АСК приема ответа, отличного от класса 2хх, будет иметь тот же параметр «branch», что и INVITE, прием ответа на который он подтверждает. Уникальность этого параметра облегчает его использование в качестве идентификатора транзакции. Параметр «branch», вводимый в Via элементом сети SIP, должен всегда начинаться с «z9hG4bK». Эти семь символов, называемых «magic cookie», используют для того, чтобы серверы, получившие запрос, могли определить, что идентификатор транзакции уникален. Другие параметры заголовка Via («maddr», «ttl» и «sent-by») будут определены во время обработки запроса транспортным уровнем протокола SIP. |

