Слайд 1Дисциплина “Цифровые сети интегрального обслуживания”
2013 г.
САЛИФОВ Ильнур Илдарович
Протокол SIP
Слайд 2УрТИСИ, 2013
САЛИФОВ Ильнур Илдарович
SIP (Session Initiation Protocol)
– протокол организации, модификации и завершения различных сеансов связи, а
также мультимедийных конференций, телефонных соединений, широковещательной рассылки мультимедийной информации и соединений пользователей с разными инфокоммуникационными приложениями.
Выступает в качестве альтернативы H.323.
Представляет собой протокол прикладного уровня.
Протокол SIP имеет общие черты с протоколом HTTP, такие как синтаксис и архитектура “клиент-сервер”.
Протокол SIP имеет возможность устанавливать не только телефонные сеансы, но и другие услуги, такие как транспортировка текущих сообщений и уведомление о присутствии.
Протокол SIP независим от транспортных технологий.
Протокол SIP не определяет услуги, но позволяет пользователям устанавливать сеансы связи и их параметры для ввода потоков пользовательской информации “в услуги” и для вывода ее ”из них”.
Слайд 3УрТИСИ, 2013
САЛИФОВ Ильнур Илдарович
В основу протокола SIP
были заложены следующие принципы:
- предоставление услуг независимо от местоположения
пользователя, т.е. персональная мобильность пользователей, основанная на присвоении пользователю уникального идентификатора, который позволяет ему перемещаться в пределах сети и получать связь в любом ее месте вне зависимости от своего местоположения;
- определение готовности пользователей участвовать в сеансе связи, для чего в протоколе SIP определены специальные коды ответов для предоставления детальной информации о текущей готовности пользователя к связи;
- масштабируемость сети, построенной на базе протокола SIP;
- интеграция в стек протоколов Интернет, разработанных IETF для передачи мультимедийной информации и включающих в себя протокол резервирования ресурсов RSVP (Resource ReserVation Protocol), протокол реального времени RTP, а также протокол описания сеанса связи SDP (Session Description Protocol);
- взаимодействие с протоколами сигнализации Н.323, MGCP, MEGACO/H.248, DSS1 и ОКС7, включая возможность переносить в сигнальных сообщениях SIP не только специфический SIP-адрес, но и телефонный номер формата Е.164 или любого другого формата;
- расширяемость протокола SIP, характеризуемая возможностью дополнять протокол функциями поддержки новых услуг и его адаптации к работе с различными приложениями.
Слайд 4УрТИСИ, 2013
САЛИФОВ Ильнур Илдарович
Элементы сети SIP:
Агенты пользователя
– это уже не физическое устройство, а приложение терминалов. Состоит
из клиентской (принимает запросы) и серверной (передает запросы) частей.
Прокси-сервер – интерпретирует заголовки поступивших от клиентов запросов перед отправкой их другим серверам. Ответы клиенту SIP поступают не напрямую, а через обслуживающий его прокси-сервер.
Сервер регистрации местонахождения – определяет текущее местоположение вызываемого абонента и сообщает его вызывающему пользователю.
4. Сервер перенаправлений – определяет текущий IP-адрес терминала вызываемого пользователя по полученному от вызывающего пользователя известного ему адреса.
Слайд 5УрТИСИ, 2013
САЛИФОВ Ильнур Илдарович
Адресация в сетях SIP
Используется
принцип адресации, подобный электронной почте. В качестве адресов используют специальные
универсальные указатели ресурсов URL, называемые SIP URL:
sip: Имя@домен.
sip: Имя@хост
sip: Имя@IP-адрес
tel: №телефона@шлюз
Слайд 6УрТИСИ, 2013
САЛИФОВ Ильнур Илдарович
Архитектура сети SIP
Существует два
функциональных элемента: клиент и сервер. Клиент передает запросы, в которых
указывает, какого рода услугу он желает получить от сервера. Сервер принимает запросы, обрабатывает их и передает обратно ответ с указанием либо успешного выполнения запроса, либо ошибки, или обеспечивает предоставление услуги, затребованной клиентом.
При организации и завершении мультимедийной связи SIP поддерживает:
определение местонахождения (User location) пользователя;
определение готовности (User availability) пользователя, т.е. того, что встречная сторона готова участвовать в сеансе связи;
определение функциональных возможностей (User capabilities) пользователей, т.е. того, какого рода информацией они могут обмениваться, и параметров этой информации;
установление сеанса связи (Session setup), т.е. указание параметров сеанса связи как для вызывающей, так и для вызываемой сторон;
управление сеансом связи (Session management), включая поддержание и завершение сеанса связи, модификацию параметров сеанса и активизацию услуг.
Слайд 7УрТИСИ, 2013
САЛИФОВ Ильнур Илдарович
Структура сообщения в сетях SIP
Стартовая строка -
при запросе содержит тип запроса, текущий узел-адресат и номер версии
протокола; при ответе – номер версии протокола, тип ответа и короткая расшифровка ответа.
Заголовки сообщений несут информацию об отправителе, адресате, пути следования и другую информацию, необходимую для обслуживания сообщения.
Все сообщения делятся на команды клиента и ответы сервера:
1. Команды предназначены для выполнения широкого круга задач при предоставлении базовых и дополнительных услуг связи (INVITE, ACK, BYE, CANCEL, REGISTER, OPTIONS, INFO и другие).
2. Ответы шести видов:
- запрос в процессе выполнения (1хх);
- успешный запрос (2хх);
- переадресация (3хх);
- неправильный запрос (4хх);
- отказ сервера (5хх);
- глобальный отказ (6хх).
Слайд 8УрТИСИ, 2013
САЛИФОВ Ильнур Илдарович
Структура сообщения в сетях SIP
В
протоколе SIP определено четыре вида заголовков:
общие заголовки, присутствующие в запросах
и ответах, к которым относятся, в частности, Call-ID (идентификатор соединения), Contact (контакт), CSeq (последовательность), Date (дата), Encryption (кодирование), From (источник запроса), То (адресат), Via (через), Record-Route (запись маршрута);
заголовки содержания переносят информацию о размере тела сообщения или об источнике запроса, начинаются со слова 'Content', например, Content-Encoding (кодирование тела сообщения), Content-Length (размер тела сообщения), Content-Type (тип содержимого);
заголовки, передающие дополнительную информацию о запросе, например, Accept (принимается), Accept-Encoding (кодирование принимается), Accept-Language (язык поддерживается), Authorization (авторизация), Hide (скрыть), Max-Forwards (максимальное количество переадресаций), Organization (организация), Priority (приоритет), Proxy-Authorization (авторизация прокси–сервера), Proxy-Require (требование прокси-сервера), Route (маршрут), Response-Key (ключ кодирования ответа), Subject (тема), User-Agent (агент пользователя);
заголовки ответов, передающие дополнительную информацию об ответе, например Allow (разрешение), Proxy-Authenticate (подтверждение подлинности прокси-сервера), Retry-After (повторить через некоторое время), Server (сервер), Unsupported (не поддерживается), Warning (предупреждение), WWW-Authenticate (аутентификация WWW-сервера).
Слайд 9УрТИСИ, 2013
САЛИФОВ Ильнур Илдарович
Структура сообщения в сетях SIP
Заголовок состоит из названия, за которым следует отделенное двоеточием значение
заголовка. В поле значения содержатся передаваемые данные.
Наиболее часто используемые заголовки:
Call-ID – уникальный идентификатор сеанса связи. Значение идентификатору присваивается стороной, инициирующей вызов. Состоит из буквенно-числового значения и имени рабочей станции, которая присвоила значение этому идентификатору. Между ними должен стоять символ @. Например, 2345call@niits.ru.
То – определяет адресата. Кроме SIP-адреса, здесь может стоять параметр tag для идентификации определенного терминала пользователя, например, домашнего, рабочего или мобильного телефона, в том случае, когда все они зарегистрированы под одним адресом SIP URL. Запрос может множиться и достичь разных терминалов одного пользователя; чтобы их различить нужна метка tag.
From – идентифицирует отправителя запроса; по структуре он аналогичен полю То.
CSeq - уникальный идентификатор запроса, относящегося к одному соединению. Он служит для корреляции запроса с ответом на него. Заголовок состоит из двух частей: натурального числа в диапазоне от 1 до 232 и типа запроса. Сервер должен проверять значение величины CSeq в каждом принимаемом запросе, и считает его новым, если значение больше предыдущего. Пример заголовка CSeq: 2 INVITE.
Via необходим, чтобы избежать зацикливания запроса, а также в тех случаях, когда требуется, чтобы запросы и ответы обязательно проходили по одному и тому же пути. В заголовке Via указывается весь путь, пройденный запросом: каждый прокси-сервер добавляет поле со своим адресом. Содержимое полей Via копируется из запросов в ответы на них, и каждый сервер, через который проходит ответ, удаляет поле со своим именем.
Слайд 10УрТИСИ, 2013
САЛИФОВ Ильнур Илдарович
Процедура установления соединения через сервер перенаправлений
Слайд 11УрТИСИ, 2013
САЛИФОВ Ильнур Илдарович
Процедура установления соединения через сервер перенаправлений
Администратор сети сообщает пользователям адрес сервера перенаправления.
Вызывающий пользователь передает запрос INVITE (1) на известный ему адрес сервера перенаправления и порт 5060, используемый по умолчанию, и указывает в запросе адрес вызываемого пользователя.
Сервер перенаправления запрашивает текущий адрес вызываемого абонента у сервера определения местонахождения (2), который сообщает ему требуемый адрес (3).
Сервер перенаправления в ответе 302 Moved temporarily передает вызывающей стороне текущий адрес вызываемого абонента (4) или может сообщить список зарегистрированных адресов вызываемого пользователя и предложить вызывающему пользователю самому выбрать адрес.
Вызываемая сторона подтверждает прием ответа 302 передачей сообщения ACK (5).
Теперь вызывающая сторона может связаться непосредственно с вызываемой стороной. Для этого она передает новый запрос INVITE (6) с тем же идентификатором Call-ID, но с другим номером последовательности CSeq. В теле сообщения INVITE указываются возможности вызывающей стороны в формате протокола SDP.
Слайд 12УрТИСИ, 2013
САЛИФОВ Ильнур Илдарович
Вызываемая сторона принимает запрос
INVITE и начинает его обработку, о чем сообщает ответом 100
Trying (7) встречному оборудованию для рестарта его таймеров.
После завершения обработки поступившего запроса оборудование вызываемого пользователя сообщает своему пользователю о поступлении входящего вызова, а встречной стороне передает ответ 180 Ringing (8).
После приема вызываемым пользователем входящего вызова удаленной стороне передается сообщение 200 ОК (9), в котором содержится описание возможностей вызываемого терминала в формате протокола SDP.
Терминал вызывающего пользователя подтверждает прием ответа запросом АСК (10). На этом фаза установления соединения закончена, и начинается разговорная фаза.
По завершении разговорной фазы передается запрос BYE (11), который подтверждается ответом 200 ОК (12).
Процедура установления соединения через сервер перенаправлений
Слайд 13УрТИСИ, 2013
САЛИФОВ Ильнур Илдарович
Процедура установления соединения через прокси-сервер
Слайд 14УрТИСИ, 2013
САЛИФОВ Ильнур Илдарович
Администратор сети сообщает пользователям
адрес прокси-сервера.
Вызывающий пользователь передает запрос INVITE
(1) на адрес прокси-сервера и порт 5060, используемый по умолчанию.
В запросе он указывает известный ему адрес вызываемого пользователя.
Прокси-сервер запрашивает текущий адрес вызываемого абонента у сервера определения местонахождения (2), который и сообщает ему требуемый адрес (3).
Далее прокси-сервер передает запрос INVITE непосредственно вызываемому абоненту (4). Опять в запросе указываются возможности терминала, но при этом в запрос добавляется поле Via с адресом прокси-сервера для того, чтобы ответы на обратном пути шли через него.
После получения запроса и его обработки оборудование вызываемого пользователя сообщает ему о том, что поступил входящий вызов, а встречной стороне передает ответ 180 Ringing (5), копируя в него из запроса поля To, From, Call-ID, CSeq и Via.
Процедура установления соединения через прокси-сервер
Слайд 15УрТИСИ, 2013
САЛИФОВ Ильнур Илдарович
После приема вызываемым пользователем
входящего вызова удаленной стороне передается сообщение 200 ОК (9), в
котором содержится описание в формате протокола SDP возможностей вызываемого терминала.
Терминал вызывающего пользователя подтверждает прием ответа запросом АСК (10).
На этом фаза установления соединения закончена, и начинается разговорная фаза.
По завершении разговорной фазы передается запрос BYE (11), который подтверждается ответом 200 ОК (12).
Все сообщения проходят через прокси-сервер, который может модифицировать некоторые поля сообщений.
Процедура установления соединения через прокси-сервер
Слайд 16УрТИСИ, 2013
САЛИФОВ Ильнур Илдарович
Рекомендуемая литература
Л1. Гольдштейн А.Б., Гольдштейн Б.С.
SoftSwitch // СПб.: BHV. 2006.
Л2. Гольдштейн Б.С., Пинчук А.В.,
Суховицкий А.Л. IP-телефония // М.: Радио и связь. 2001, 2003, 2006.
Л3. Джонатан Дэвидсон, Джеймс Питерс и др. Основы передачи голосовых данных по сетям IP, 2-е изд.: Пер. с англ. – М.: Вильямс. 2007.