Формирование заголовка Via

Поле заголовка Via указывает один из узлов, используемых для проведения транзакции и идентифицирует местоположение (location), куда должен быть отправлен ответ. SIP элемент, добавляет собственное значение заголовка Via только после выбора следующего узла, которому будет передан запрос.

Когда UAC создает запрос, он должен вставить в него поле Via. Также необходимо указать название протокола – SIP, и его версию - 2.0. Поле заголовка Via должно содержать параметр «branch». Этот параметр используется для идентификации транзакции, созданной данным запросом. Он используется и клиентом, и сервером.

Значение параметра «branch» должно быть уникальным для всех запросов, отправляемых UA. Исключение составляют запрос CANCEL и запрос ACK на ответы, отличные от класса 2хх. Запрос CANCEL будет иметь то же значение параметра «branch», что и запрос, который он отменяет. Запрос ACK на ответ, отличный от класса 2хх также будет иметь тот же параметр «branch», что и INVITE, ответ на который он подтверждает. Уникальность этого параметра облегчает его использование в качестве идентификатора транзакции. Параметр «branch», вставляемый элементом сети SIP, должен всегда начинаться с "z9hG4bK". Эти семь символов, называемых «magic cookie» («волшебное печенье»), используют для того, чтобы серверы, получившие запрос, могли определить, что идентификатор транзакции уникален в мировом масштабе. Содержимое куки, как правило, не значимо для получателя и не интерпретируется до тех пор, пока получатель не вернёт куки обратно отправителю. В реальной жизни куки можно сравнить с номерком в гардеробе: номерок не имеет собственной ценности, но он позволяет получить взамен правильное пальто.

Пример заголовка Via:

Via: SIP/2.0/UDP 12.26.17.91:5060; branch=z9hG4bK3af7.0a6e92f4

v: SIP/2.0/UDP server10.itep.com

Укажем назначение некоторых других заголовков, часто встречающихся в сообщениях SIP:

В заголовок Record route (Хранимый маршрут) прокси-сервер вписывает свой адрес – SIP URL, – если хочет, чтобы последующие запросы прошли через него.

Заголовок Content Type (Тип тела сообщения) определяет формат описания сеанса связи. Само описание сеанса, например, в формате протокола SDP, включается в тело сообщения.

Заголовок Content Length (Длина тела сообщения) указывает в десятичном виде размер тела сообщения в байтах.

Следует обратить внимание на то, что запросы и ответы на них могут включать в себя лишь определенный набор заголовков (табл. 1). Здесь буква «M» означает обязательное присутствие заголовка в сообщении, буква «O» – необязательное присутствие, буква «F» запрещает присутствие заголовка. * – поле необходимо только в случае, когда тело сообщения содержит какую-либо информацию, т.е. не является пустым.

Таблица 1 Связь заголовков с запросами и ответами протокола SIPv2.0


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: