Личный кабинет    
Назад К началу Вперед Карта сайта Телефонные коды стран и городов Мира Анализатор тарифов Служб IP-Телефонии и Рейтинг

Разделы
Введение
Литература
Операторы
Оборудование
Анализатор
Сотрудничество
Печать карт
Новости
Опросник
Коды
Справка
Работа
Каталог
Хостинг
Личный кабинет

Реклама

Сообщения протокола SIP

    Содержание » Сообщения протокола SIP
В данном разделе приведено описание Протокола инициирования сеансов связи - SIP, его принципы, адресация, архитектура, приведено сравнение с протоколом H323. За основу взята 7 глава книги Б.С. Гольдштейн IP-Телефония.

    Содержание раздела:
  • Структура сообщений
  • Заголовки сообщений
  • Запросы
  • Ответы на запросы
  •     Сообщения протокола SIP  

    Согласно архитектуре <клиент-сервер> все сообщения делятся на запросы, передаваемые от клиента к серверу, и на ответы сервера клиенту. Например, чтобы инициировать установление соединения, вызывающий пользователь должен сообщить серверу ряд параметров, в частности, адрес вызываемого пользователя, параметры информационных каналов и др. Эти параметры передаются в специальном SIP-запросе. От вызываемого пользователя к вызывающему передается ответ на запрос, также содержащий ряд параметров.

        Структура сообщений SIP  

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

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

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

    Стартовая строка представляет собой начальную строку любого SIP-сообщения. Если сообщение является запросом, в этой строке указываются тип запроса, адресат и номер версии протокола. Если сообщение является ответом на запрос, в стартовой строке указываются номер версии протокола, тип ответа и его короткая расшифровка, предназначенная только для пользователя.

    Заголовки сообщений содержат сведения об отправителе, адресате, пути следования и др., в общем, переносят информацию, необходимую для обслуживания данного сообщения. О типе заголовка можно узнать по его имени. Оно не зависит от регистра (т.е. буквы могут быть прописные и строчные), но обычно имя пишут с большой буквы, за которой идут строчные.

    Сообщения протокола SIP могут содержать так называемое тело сообщения. В запросах АСК, INVITE и OPTIONS тело сообщения содержит описание сеансов связи, например, в формате протокола SDP. Запрос BYE тела сообщения не содержит, а ситуация с запросом REGISTER подлежит дальнейшему изучению. С ответами дело обстоит иначе: любые ответы могут содержать тело сообщения, но содержимое тела в них бывает разным.

        Заголовки сообщений SIP  

    В протоколе SIP определено четыре вида заголовков (Таблица 1):
    • Общие заголовки, присутствующие в запросах и ответах;
    • Заголовки содержания, переносят информацию о размере тела сообщения или об источнике запроса (начинаются со слова );
    • Заголовки запросов, передающие дополнительную информацию о запросе;
    • Заголовки ответов, передающие дополнительную информацию об ответе.
    Заголовок содержит название, за которым, отделенное двоеточием, следует значение заголовка. В поле значения содержатся передаваемые данные. Следует отметить, что если сервер принимает сообщения, заголовки которых ему не известны, то эти заголовки игнорируются.

    Ниже представлены наиболее часто используемые заголовки.

    Заголовок Call-ID - уникальный идентификатор сеанса связи или всех регистрации отдельного клиента, он подобен метке соединения (call reference) в сигнализации DSS-1 . Значение идентификатору присваивает сторона, которая инициирует вызов. Заголовок Call-ID состоит из буквенно-числового значения и имени рабочей станции, которая присвоила значение этому идентификатору. Между ними должен стоять символ @, например, 2345call@rts.domen.ru Возможна следующая ситуация: к одной мультимедийной конференции относятся несколько соединений, тогда все они будут иметь разные идентификаторы Call-ID.

    Заголовок То - определяет адресата. Кроме SIP-адреса здесь может стоять параметр для идентификации конкретного терминала пользователя (например, домашнего, рабочего или сотового телефона) в том случае, когда все его терминалы зарегистрированы под одним адресом SIP URL. Запрос может множиться и достичь разных терминалов пользователя; чтобы их различать, необходимо иметь метку tag. Ее вставляет в заголовок терминальное оборудование вызванного пользователя при ответе на принятый запрос.

    Если необходим визуальный вывод имени пользователя, например, на дисплей, то имя пользователя также размещается в поле То.

    Заголовок From - идентифицирует отправителя запроса; по структуре аналогичен полю То.

    Таблица 1. Виды заголовков сообщений SIP

    Общие заголовки Заголовки содержания Заголовки запросов Заголовки ответов
    Call-ID (идентификатор сеанса связи) Content-Encoding (кодирование тела сообщения) Accept (принимается) Allow (разрешение)
    Contact (контактировать) Content-Length (размер тела сообщения) Accent-Encoding (метод кодирования поддерживается) Proxy-Authenticate (подтверждение подлинности прокси-сервера)
    CSeq (последовательность) Content-Type (тип содержимого) Accent-Language (язык поддерживается) Retro-After (повторить через некоторое время)
    Date (Дата) Authorization (авторизация) Server (сервер)
    Encryption (шифрование) Unsupported (не поддерживается)
    Expires (срабатывание таймера) Hide (скрыть) Warning (предупреждение)
    From (источник запроса) Max-Forwards (максимальное количество переадресаций) WWW-Authenticate (подтверждение подлинности WWW-сервера)
    Record-Route (запись маршрута) Organization (организация)
    Timestamp (метка времени) Priority (приоритет)
    То (Адресат) Proxy-Authorization (авторизация прокси-сервера)
    Via (через) Proxy-Require (требуется прокси-сервер)
    Route (маршрут)
    Require (требуется)
    Response-Key (ключ кодирования ответа)
    Subject (тема)
    User-Agent (агент пользователя)

    Заголовок CSeq - уникальный идентификатор запроса, относящегося к одному соединению. Он служит для корреляции запроса с ответом на него. Заголовок состоит из двух частей: натурального числа из диапазона от 1 до 232 и типа запроса. Сервер должен проверять значение CSeq в каждом принимаемом запросе и считать запрос новым, если значение CSeq больше предыдущего. Пример заголовка: CSeq: 2 INVITE.

    Заголовок Via служит для того, чтобы избежать ситуации, в которых запрос пойдет по замкнутому пути, а также для тех случаев, когда необходимо, чтобы запросы и ответы обязательно проходили по одному и тому же пути (например, в случае использования межсетевого экрана - firewall). Дело в том, что запрос может проходить через несколько прокси-сервером, каждый из которых принимает, обрабатывает и переправляет запрос к следующему прокси-серверу, и так до тех пор, пока запрос не достигнет адресата. Таким образом, в заголовке Via указывается весь путь, пройденный запросом: каждый прокси-сервер добавляет поле со своим адресом. При необходимости (например, чтобы обеспечить секретность) действительный адрес может скрываться.

    Например, запрос на своем пути обрабатывался двумя прокси-серверами: сначала сервером domen.ru, потом sip.telecom.com. Тогда в запросе появятся следующие поля:

          Via: SIP/2.0/UDP sip.telecom.com:5060;branch=721 e418c4.1 
          Via: SIP/2.0/UDP domen.ru: 5060, 
    
    где параметр означает, что на сервере sip.telecom.com запрос был размножен и направлен одновременно по разным направлениям, и наш запрос был передан по направлению, которое идентифицируется следующим образом: 721е418c4.1.

    Содержимое полей Via копируется из запросов в ответы на них, и каждый сервер, через который проходит ответ, удаляет поле Via со своим именем.

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

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

    Заголовок Content-Length указывает размер тела сообщения.

    После того, как мы рассмотрели наиболее часто встречающиеся заголовки сообщений протокола SIP, следует обратить внимание на то, что запросы и ответы на них могут включать в себя лишь определенный набор заголовков (Таблица 2). Здесь опять буква означает обязательное присутствие заголовка в сообщении, буква - необязательное присутствие, буква запрещает присутствие заголовка.

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

    Название заголовка Место использования заголовка ACK BYE CAN INV OPT REG
    Accept Заголовок в запросах F F F 0 0 0
    Accept Заголовок в ответе 415 F F F 0 0 0
    Accent-Encoding Заголовок в запросах F F F 0 0 0
    Accent-Encoding Заголовок в ответе 415 F F F 0 0 0
    Accent-Language Заголовок в запросах F 0 0 0 0 0
    Accent-Language Заголовок в ответе 415 F 0 0 0 0 0
    Allow Заголовок в ответе 200 F F F F M F
    Allow Заголовок в ответе 405 0 0 0 0 0 0
    Authorization Заголовок в запросах 0 0 0 0 0 0
    Call-ID Общий заголовок - копируется из запросов в ответы М М М М М М
    Contact Заголовок в запросах 0 F F 0 0 0
    Contact Заголовок в ответах 1хх F F F 0 0 F
    Contact Заголовок в ответах 2хх F F F 0 0 0
    Contact Заголовок в ответах Зхх F 0 F 0 0 0
    Contact Заголовок в ответе 485 F 0 F 0 0 0
    Content-Encoding Заголовки содержания 0 F F 0 0 0
    Content-Length Заголовки содержания 0 F F 0 0 0
    Content-Type Заголовки содержания * F F * * *
    Cseq Общий заголовок - копируется из запросов в ответы М М М М М М
    Date Заголовок в ответах 0 0 0 0 0 0
    Encryption Заголовок в ответах 0 0 0 0 0 0
    Expires Заголовок в ответах F F F 0 F 0
    From Общий заголовок - копируется из запросов в ответы М М М М М М
    Hide Заголовок в запросах 0 0 0 0 0 0
    Max-Forwards Заголовок в запросах 0 0 0 0 0 0
    Organization Общий заголовок F F F 0 0 0
    Proxy-Authenticate Заголовок в ответе 407 0 0 0 0 0 0
    Proxy-Authorization Заголовок в запросах 0 0 0 0 0 0
    Proxy-Require Заголовок в запросах 0 0 0 0 0 0
    Priority Заголовок в запросах F F F 0 F F
    Require Заголовок в запросах 0 0 0 0 0 0
    Retry-After Заголовок в запросах F F F P F 0
    Retry-After Заголовок в ответах 404, 480, 486, 503, 600 и 603 0 0 0 0 0 0
    Response-Key Заголовок в запросах F 0 0 0 0 0
    Record-Route Заголовок в запросах 0 0 0 0 0 0
    Record-Route Заголовок в ответах 2хх 0 0 0 0 0 0
    Route Заголовок в запросах 0 0 0 0 0 0
    Server Заголовок в ответах 0 0 0 0 0 0
    Subject Заголовок в запросах F F F 0 F F
    Timestamp Общий заголовок 0 0 0 0 0 0
    To Общий заголовок - копируется из запросов в ответы М М М М М М
    Unsupported Заголовок в ответе 420 0 0 0 0 0 0
    User-Agent Общий заголовок 0 0 0 0 0 0
    Via Общий заголовок - копируется из запросов в ответы М М М М М М
    Warning Заголовок в ответах 0 0 0 0 0 0
    WWW-Authenticate Заголовок в ответе 401 0 0 0 0 0 0

    * Примечание - поле необходимо только в случае, когда тело сообщения содержит какую-либо информацию, т.е. не является пустым.

    [Дальше]


    ДОКУМЕНТАЦИЯ VoIP


    НОВОСТИ СВЯЗИ


    РЕКОМЕНДУЕМ

     
    [ стандарты | обзор | оборудование | анализатор | коды | новости | карта | партнерам | Мы ВКонтаке ]
    Запрещается копировать материалы сайта без уведомления авторов.
    С вопросами и предложениями обращайтесь со страницы контактов
    Copyright c 1999-2017 IPTop.Net
     
    IP-Телефония, Интернет Телефония, Компьютерная телефония