Issued by Iskratel; All rights reserved SIP OBR70121a Стандартизация Issued by Iskratel; All rights reserved Спецификация стандарта принята в IETF рабочей группой SIP, входящей в Транспортную рабочую группу Впервые стандартизована в 1999 (RFC2543) Несколько RFC относятся к SIP – главный RFC - RFC 3261 Статистика проекта SIP (по состоянию на май 2004): 137 черновых стандартов интернет, относящихся к SIP 11 новых и 2 обновлённых стандарта за последние 14 дней Протоколы Voice over IP Call Control and Signaling Signaling and Gateway Control Media Audio/ Video H.323 H.225 H.245 Q.931 RAS SIP MGCP TCP RTP RTCP RTSP UDP Issued by Iskratel; All rights reserved IP H.323 Version 1 и 2 поддерж. H.245 поверх TCP, Q.931 поверх TCP и RAS поверх UDP. H.323 Version 3 и 4 поддерж. H.245 поверх UDP/TCP и Q.931 поверх UDP/TCP и RAS поверх UDP. SIP поддерж. TCP и UDP. Что такое SIP Issued by Iskratel; All rights reserved Протокол инициализации сеанса (Session Initiation Protocol) Сигнальный протокол прикладного уровня, который определяет процедуры инициирования, модификации и завершения мультимедийные диалоговых сессии связи между пользователями. Протокол управления мультимедийными сеансами SIP SIP – хотя он относится к числу протоколов для одноранговых сетей, т.е из конца в конец (end-to-end), он состоит из логических клиента и сервера SIP обеспечивает определение присутствия и мобильность примитивы : session setup, termination, changes Любые услуги базируются на уровнях, лежащих выше SIP: переадресация неизвестных вызовов секретарю ответ с web-страницы если абонент недоступен посылка изображения в формате JPEG при установке сеанса и т.п. Характерные особенности Issued by Iskratel; All rights reserved текстовый формат (совместимость с telnet, tcpdump) легко программируется SIP – Основные цели, решаемые протоколом SIP не ограничивается только интернет телефонией Issued by Iskratel; All rights reserved SIP умеет обнаруживать присутствие пользователя SIP сообщения могут переносить произвольное полезное содержание сигнализации: описание сессии, короткие сообщения, изображения JPEG, любые MIME* типы Подходит для приложений, оперирующих понятием сессии Функции распределены между устройствами Сетевые игры (Quake II/III) Видео конференции, и т.п Приложения могут использовать инфраструктуру SIP как средство реализации свои задач (Call Processing, User Location, Authentication) Мгновенный обмен сообщениями и определение присутствия SIP для устройств * MIME (Multipurpose Internet Mail Extension - многоцелевые расширения электронной почты для Internet) разработаны как метод передачи присоединенных данных по Internet средствами электронной почты. Чем SIP не является Issued by Iskratel; All rights reserved Транспортным протоколом Протоколом резервирования QoS Протоколом управления шлюзами Некоторые утверждают, что он может использоваться для вызова IP-приборов … Он не диктует … особенности изделия и услуги (цвет вашего телефона и мелодии идентифицирующие звонящего, число одновременных вызовов воспринимаемых вашим телефоном …) Сетевую конфигурацию Распределённая архитектура SIP Компоненты SIP Issued by Iskratel; All rights reserved Location Server Redirect Server Registrar Server PSTN GW User Agent Proxy Server Proxy Server Агент пользователя (User agent) Агент пользователя (UA) - прикладная программа из двух частей: Клиент агента пользователя (User agent client, UAC) – прикладная программа, которая инициирует SIP-запрос (request), Сервер агента пользователя (User agent server, UAS) прикладная программа общения с пользователем после принятия SIP-запроса, возвращает ответ (response) на запрос данного пользователя; Issued by Iskratel; All rights reserved User Agent User Agent UAS UAC UAC UAS Серверы SIP Issued by Iskratel; All rights reserved Сервер - прикладная программа, которая позволяет системе принимать запросы, выполнять их и посылать ответы; может иметь вид proxy-сервера, сервера переадресации или сервера агента пользователя; Proxy- сервер Issued by Iskratel; All rights reserved Proxy-сервер (или proxy) – промежуточная программа, которая действует как сервер и как клиент, имеет право посылать запросы от имени других клиентов, интерпретирует и при необходимости переписывает сообщение запроса перед его отсылкой User Agent Proxy Server User Agent Issued by Iskratel; All rights reserved Сервер-распорядитель (Registrar Server) Пользователи информируют proxy-сервер или серверредиректор, по какому адресу следует обращаться для установления сеанса связи. Когда пользователю понадобится изменить адрес, SIP-клиент выдает запрос REGISTER. Сервер-распорядитель (Registrar Server) принимает REGISTER и записывает содержащуюся в запросе обновленную информацию. Обычно SIP-сервер использует эти данные для передачи службе локализации, которая направляет запрос на правильный адрес. Часто функции proxy-сервера и сервера-распорядителя совмещают в одном устройстве User Agent Registrar Server Issued by Iskratel; All rights reserved Сервер переадресации (Redirect server) Сервер переадресации (Redirect server) – предназначен для определения текущего адреса вызываемого абонента. Алгоритм простой: вызывающий абонент обращается к redirect серверу с известным ему адресом вызываемого пользователя, а redirect переадресует вызов на текущий адрес. В процессе данной деятельности redirect server взаимодействует с сервером registrar. Redirect только сообщает адрес вызываемого абонента или proxy сервера. Redirect сервер не терминирует звонки. User Agent Redirect Server Сервер локации (Location server) Issued by Iskratel; All rights reserved Сервер локации (Location server) – выполняет услугу определения местоположения пользователя Как правило совмещен с сервером переадресации (Redirect server) Характерные особенности SIP Протокол SIP близок к HTTP (HyperText Transfer Protocol): Issued by Iskratel; All rights reserved запросы и ответы имеют текстовый вид; в заголовках есть поля, которые передают параметры вызова; вызовы в SIP идентифицируются посредством Call-ID в заголовке SIP-сообщения, там же указывается исходящий (From) и входящий (To) адреса; для адресации выбрана форма, принятая в электронной почте: user@domain, user@host, user@IP-address, или: phone-number@gateway, что, требует выхода в IP-облако через соответствующий шлюз “gateway”. Как и в HTTP, клиент инициирует процедуры (т.н. методы) на сервере. SIP Сообщения – Методы и ответы (Methods&Responses) Компоненты SIP архитектуры обмениваются SIP сообщениями: SIP Методы (Methods) - процедуры, инициируемые клиентом: INVITE – Приглашение пользователя на конференц-связь ACK - Подтверждение (для надежности обмена) что клиент получил последний ответ на запрашиваемый метод INVITE BYE - Окончание связи между двумя пользователями CANCEL - Окончание поиска пользователя REGISTER – Передает информацию о местоположении пользователя в SIP-сервер OPTIONS – Запрос информации о пользователе INFO – Используется для передачи информации вне полосы (out-of-bound information), например: DTMF цифр Issued by Iskratel; All rights reserved SIP Ответы (Responses) 1xx – Информационные сообщения (Informational Messages) 2xx – Ответы, подтверждающие успешность выполнения метода (Successful Responses) 3xx – Ответы сервера переадресаций (Redirection Responses) 4xx – Ошибка запроса (Request Failure Responses) 5xx – Ошибка сервера (Server Failure Responses) 6xx – Глобальная ошибка (Global Failures Responses) Заголовок SIP Issued by Iskratel; All rights reserved SIP позаимствовал большую часть синтаксиса и семантики у HTTP SIP сообщения выглядят как HTTP сообщения – формат сообщения, заголовок и поддержка MIME Пример SIP заголовка ----------------------------------------------------------------SIP Header ----------------------------------------------------------------INVITE sip:[email protected] SIP/2.0 Via: SIP/2.0/UDP 192.168.6.21:5060 From: sip:[email protected] To: <sip:[email protected]> Call-ID: [email protected] CSeq: 100 INVITE Expires: 180 User-Agent: Cisco IP Phone/ Rev. 1/ SIP enabled Accept: application/sdp Contact: sip:[email protected]:5060 Content-Type: application/sdp Сценарии SIP взаимодействий UA-UA. Взаимодействие непосредственно между клиентскими приложениями (UA) без участия серверов. Для этого вызывающий UA должен знать текущий адрес вызываемого абонента Во время вызова происходит следующий диалог: вызывающий UA - приглашаю к разговору (INVITE). вызываемый UA - выдаю звонок (RINGING), трубка поднята, можно начинать разговор (OK) вызывающий UA - подтверждаю начало разговора (ACK) Далее идет разговор (RTP/RTCP между клиентскими приложениями). Если один из участников решает прекратить связь, то: вызываемый UA - завершаем звонок (BYE) вызываемый UA - хорошо, завершаем (OK). INVITE TRYING Issued by Iskratel; All rights reserved RINGING OK User Agent ACK RTP/RTCP BAY OK User Agent Сценарии SIP взаимодействий UA-Proxy-UA. Звонки c участием Proxy сервера (или нескольких серверов). Registrar Server WHERIES LOCATION Issued by Iskratel; All rights reserved Proxy Server RTP/RTCP User Agent User Agent Сценарии SIP взаимодействий UA-Redirect-UA. Взаимодействие с участием Redirect сервера. Redirect Server WHERIES LOCATION Proxy Server Issued by Iskratel; All rights reserved INVITE TRYING,RTP/RTCP RINGING, OK BAY ACK User Agent OK User Agent SIP – цели разработки SIP разрабатывался для Issued by Iskratel; All rights reserved Интеграции с существующими IETF протоколами Масштабируемости и простоты Мобильности Для лёгкого создания и внедрения услуг Session Description Protocol - SDP RFC 2327 Issued by Iskratel; All rights reserved Описание сессий отображается в SDP в виде коротких структурированных текстовых описаниях, содержащих имя и цель сессии, описание параметров медиа-данных, протоколы, форматы кодеков, временные параметры и транспортную информацию, которая необходима , чтобы принять решение представляет ли данная сессия интерес и как следует организовать перенос медиа-данных Спецификации сессий Issued by Iskratel; All rights reserved Session description v= (protocol version) o= (owner/creator and session identifier). s= (session name) i=* (session information) u=* (URI of description) e=* (email address) p=* (phone number) c=* (connection information - not required if included in all media) b=* (bandwidth information) z=* (time zone adjustments) k=* (encryption key) a=* (zero or more session attribute lines) Спецификации сессий Time description t= (time the session is active) r=* (zero or more repeat times) Issued by Iskratel; All rights reserved Media description m= (media name and transport address) i=* (media title) c=* (connection information - optional if included at sessionlevel) b=* (bandwidth information) k=* (encryption key) a=* (zero or more media attribute lines) Issued by Iskratel; All rights reserved Кодеки Кодеки Однонаправленная скорость (Кбит/сек) G.723 5.3/6.3 GSM 13.0 G.711 64 (телефония) MPEG L3 56-128 Видео Зависит от содержания, скорости следования кадров, степени сжатия, и подвижности изображения