Создание запроса протокола SIP

Сообщения протокола SIP (запросы и ответы), представляют собой последовательности текстовых строк, закодированных в соответствии с документом RFC 2279. Структура и синтаксис сообщений SIP идентичны используемым в протоколе HTTP (рис. 3).

Стартовая строка
Заголовки
Пустая строка
Тело сообщения

Рис. 3. Структура сообщений протокола SIP

Запрос протокола SIP, составленный клиентом агента пользователя UAC (User Agent Client), должен обязательно включать:

- стартовую строку Request-Line;

- шесть полей заголовков: To, From, CSeq, Call-ID, Max-Forwards и Via.

Стартовая строка Request-Line состоит из названия типа запроса, адрес запроса Request-URI и номера версии протокола, разделённых пробелом (рис. 4). Request-Line заканчивается символами возврата каретки и перевода строки (CRLF). Оба символа, вместе или по одиночке, не должны встречаться в других частях строки.

Тип запроса Пробел Request-URI Пробел Версия протокола СRLF

Рис 4. Структура строки Request-Line

В базовой рекомендации IETF RFC 3261 определено 6 типов запросов: REGISTER - для регистрации контактной информации, INVITE, ACK и СANCEL - для установление сессий, BYE - для завершения сессий и OPTIONS - для запроса информации о функциональных возможностях сервера. В настоящее время число запросов в протоколе SIP увеличено до 14. Сервер определяет тип принятого запроса по названию, указанному в стартовой строке.

Поле Request-URI - это SIP URI, указывающий на пользователя или сервис, к которому адресован запрос. Исходное значение поля Request-URI сообщения устанавливается таким же, как URI в поле To. При использовании предустановленного маршрута рекомендуется задавать один URI, соответствующий исходящему прокси-серверу. Поле Request-URI не должно содержать пробелов и управляющих символов, а также быть заключённым в угловые скобки «< >».

И запросы, и ответы содержат действующую версию SIP-протокола. Приложения, посылающие SIP-сообщения, должны в поле SIP-Version указывать SIP/2.0.

Пример стартовой строки:

ACK sip:alex@psuti.ru SIP/2.0

Ниже будет рассмотрено формирование заголовков SIP-запросов при работе UAC вне диалога. Примерами запросов, отсылаемых вне диалога, является запрос INVITE, устанавливающий сессию, и запрос OPTIONS для запроса информации о функциональных возможностях. SIP-запросы при работе UAC в режиме диалога должны содержать специальный параметр, определяющий конкретный терминал вызываемого пользователя.


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



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