Session Initiation Protocol (SIP) – Протокол инициирования сеансов связи – текст-ориентированный протокол прикладного уровня. Предназначен для организации, модификации и завершения различных сеансов связи, в том числе, мультимедийных конференций, телефонных соединений, широковещательной рассылки мультимедийной информации и соединений пользователей с разными инфокоммуникационными приложениями.
1996 г. – SIP2.0
Принципы протокола SIP
Предоставление услуг независимо от местоположения пользователя, т.е. персональная мобильность пользователей;
Определение готовности пользователей участвовать в сеансе связи;
Масштабируемость сети, построенной на базе SIP;
Интеграция в стек протоколов Интернет, разработанный IETF для передачи мультимедийной информации (RSVP, RTP, SDP);
Взаимодействие с протоколами сигнализации Н.323. MGCP, MEGACO/H.248, DSS1, ОКС7;
Расширяемость протокола SIP;
Простота протокола SIP;
Независимость от транспортных технологий.
SDP (Session Description Protocol) – Протокол описания сеансов связи.
SIP не реализует:
Механизмы управления потоками информации;
Механизмы предоставления гарантированного качества обслуживания;
SIP не предназначен для передачи пользовательской информации
Адресация SIP
Адрес – универсальный указатель ресурсов URL (Universal Resource Locators) – SIP URL
Типы SIP-адресов:
имя@домен (sip:sergei@advp.ru),
имя@хост,
имя@IP-адрес (sip:sergei@218.10.15.126),
№телефона@шлюз (tel:+78129996633@sip-gateway.ru).
Архитектура сети SIP – “клиент-сервер”.
При организации и завершении сеанса связи SIP поддерживает:
определение местоположения пользователя (User Location);
определение готовности пользователя участвовать в сеансе (User availability);
определение функциональных возможностей терминалов пользователей (User capabilities);
установление сеанса связи (Session Setup), т.е. назначение параметров;
управление сеансом связи (Session Management), т.е. модификация параметров связи.
Функциональные элементы SIP
Агент пользователя – терминал, инициирующий запросы, отвечает на запросы, взаимодействует с другими агентами для организации и завершения сеанса связи.
Прокси-сервер обрабатывает запросы, поступающие от терминалов пользователей. 2 типа: с сохранением данных о состояниях и без.
Сервер перенаправления определяет текущий IP-адрес вызываемого пользователя.
Сервер регистрации местоположения пользователей позволяют агентам регистрировать свое местоположение, реализуя тем самым услуги мобильности.
Структура сообщений протокола SIP
Стартовая строка – тип запроса, текущий узел-адресат, номер версии протокола. При ответе – номер версии протокола, тип ответа, короткая расшифровка ответа.
Заголовки сообщений – информация об отправителе, адресате, пути следования и т.д.
Заголовки сообщений протокола SIP
Общие заголовки присутствуют в запросах и ответах, например, Call-ID (идентификатор соединения), Contact (контакт), CSeq (порядковый номер запроса/ответа), Date (дата), Encryption (кодирование), From (источник запроса), To (адресат), Via (через), Record-Route (запись маршрута);
Заголовки содержания переносят информацию о размере тела сообщения или об источнике запроса, например, Content-Encoding (кодирование тела сообщения), Content-Length (размер тела сообщения), Content-Type (тип содержимого);
Заголовки сообщений протокола SIP
Заголовки, передающие дополнительную информацию о запросе, например, Accept (принимается), Accept Encoding (кодирование поддерживается), Accept Language (язык поддерживается), Priority (приоритет), Subject (тема), Route (маршрут), Response-Key (ключ кодирования ответа);
Заголовки ответов, передают дополнительную информацию об ответе, например, Allow (разрешение), Proxy-Authenticate (подтверждение подлинности прокси-сервера), Unsupported (не поддерживается), Warning (предупреждение), Server (сервер), Retry-After (повторить через некоторое время).
Общие заголовки протокола SIP
Call-ID – уникальный идентификатор сеанса связи. Состоит из буквенно-числового значения и имени рабочей станции, например, 2345call@advp.ru;
То – определяет адресата. Содержит параметр tag для идентификации терминала пользователя. ;
From – идентифицирует отправителя запроса. По структуре аналогичен То;
CSeq – уникальный идентификатор запроса, относящийся к одному соединению. Состоит из 2-х частей: натурального числа в диапазоне от 1 до 232 и типа запроса, например, 2 INVITE;
Via – позволяет избежать зацикливания запроса и поддерживать одинаковый путь для запроса и ответа. Пример заголовка: