Расширения SIP для IP Multimedia Subsystem
Расширения SIP для IP Multimedia Subsystem (англ. SIP extensions for IP Multimedia Subsystem, IMS) — набор расширений, определённых для протокола инициирования сеанса (SIP) с целью поддержки мультимедийных сеансов с несколькими участниками в IP-мультисервисной подсистеме (IMS). SIP был выбран в качестве основного сигнального протокола консорциумом 3GPP для архитектуры IMS и является её ключевым компонентом.
SIP был разработан организацией IETF как стандартная технология для установления мультимедийных сессий в IP-сетях. Работая на прикладном уровне протоколов Интернета, SIP предоставляет механизмы для установления, управления и завершения сеансов реального времени, включающих передачу голоса, видео и текстовых сообщений.
После стандартизации были опубликованы многочисленные расширения SIP в виде RFC, которые расширяют возможности базового протокола SIP, обеспечивая поддержку продвинутого управления вызовами, механизмов безопасности и интеграции с другими интернет-приложениями.
Консорциум 3GPP, объединяющий ассоциации операторов связи для разработки и поддержки IMS, сформулировал набор требований к SIP для успешного применения в IMS. Часть из них можно реализовать с помощью существующих возможностей и расширений SIP, а для других 3GPP пришлось сотрудничать с IETF для стандартизации новых расширений. При этом IETF развивает SIP как универсальный протокол, и большинство расширений не ограничиваются только IMS.
Требования 3GPP к SIP
3GPP определяет ряд общих требований для работы IMS: эффективное использование радиоинтерфейса (минимизация сигнального обмена между мобильным терминалом и сетью), сокращённое время установления сеанса (перенос предварительных операций до фазы установления), минимальная поддержка со стороны терминала, поддержка сценариев с роумингом и без, с управлением мобильностью терминала (на уровне сетевого доступа, а не SIP), а также поддержка адресации IPv6.
Кроме того, требуются расширения протокола, такие как новые поля заголовков для обмена информацией о пользователе или сервере, а также расширение набора методов SIP для новых функций сети: регистрация, перерегистрация, отмена регистрации, оповещения о событиях, обмен мгновенными сообщениями или примитивы управления вызовами с дополнительными возможностями, например, перевод вызова.
Другие конкретные требования включают:
- Поддержка качества обслуживания (QoS) с функциями политик, тарификации, а также согласование и резервирование ресурсов до момента оповещения вызываемого абонента.
- Идентификация пользователей для задач аутентификации, авторизации и учёта. Безопасность между пользователями, сетью и сетевыми узлами должна реализовываться с помощью механизмов взаимной аутентификации (приватные и публичные ключи, дайджесты), медиарасширений авторизации. Должна быть возможность представлять обеим сторонам идентификационную информацию собеседника (с возможностью скрытия), а также поддержка анонимности и защиты приватности.
- Защита сигнальных сообщений SIP: обеспечение целостности и конфиденциальности на основе начальной аутентификации и симметричных ключей, а также механизмы восстановления после ошибок.
- Освобождение сеанса по инициативе сети (например, если терминал вышел из зоны обслуживания или закончились средства на счету абонента).
- Использование механизмов маршрутизации по источнику. Все попытки установления сеанса от терминала должны проходить через P-CSCF и S-CSCF, что позволяет соответствующим серверам управления сеансами корректно предоставлять свои функции.
- Обеспечение взаимодействия IMS с общедоступной телефонной сетью (PSTN).
Также необходимо адаптировать другие протоколы и сетевые службы (например, DHCP или DNS), чтобы они работали с SIP для обнаружения исходящего прокси (P-CSCF) и разрешения SIP-URI в IP-адреса.
Механизм согласования расширений
В SIP реализован механизм согласования поддерживаемых расширений между клиентами и серверами с помощью трёх полей заголовков: supported, require и unsupported. Клиент при инициировании SIP-диалога указывает обязательные расширения (require) и поддерживаемые (supported); сервер в ответном сообщении указывает необходимые ему расширения (require). Если обязательные расширения сервера не перечислены в сообщении клиента, сервер возвращает сообщение об ошибке. Аналогично, если сервер не поддерживает обязательные для клиента расширения, он отправляет сообщение об ошибке и список unsupported. Такие расширения оформляются как option tags, однако SIP также может расширяться новыми методами. В этом случае используется заголовок Allow для указания поддерживаемых методов, а option tag, связанную с методом, добавляют для обязательности использования.
Расширения SIP
Предпочтения вызывающего и возможности пользовательского агента
Два связанных расширения дают возможность пользователю определять свои предпочтения относительно предоставляемых IMS сервисов.
Расширение предпочтений вызывающего позволяет указывать желаемый тип пользовательского агента (например, стационарный или мобильный, голосовая почта или пользователь, личная или корпоративная учётная запись, поддерживаемые сервисы/методы). Параметры передаются через заголовки Accept-Contact (желаемые агенты назначения), Reject-Contact (нежелательные агенты) и Request-Disposition (как следует обрабатывать запрос в сети: перенаправлять или нет, и как искать пользователя — последовательно или параллельно).
С помощью расширения возможностей пользовательского агента терминалы могут описывать себя при регистрации, чтобы поиск по предпочтениям осуществлялся корректно. Для этого терминал перечисляет свои возможности в заголовке Contact регистрационного сообщения REGISTER.
Оповещения о событиях
Оповещение о событиях предназначено для получения информации о состоянии указанного ресурса (например, пользователя или его голосовой почты) и последующем обновлении при его изменении.
В системе IMS это важно для информирования о присутствии пользователя («онлайн»/«офлайн»), оповещения о статусе собственной регистрации пользователя или прокси (P-CSCF), а также для дополнительных сервисов (например, уведомления о новых голосовых сообщениях в входящих). Специальное расширение оповещения о событиях вводит базовый фреймворк, методы SUBSCRIBE и NOTIFY, новые поля заголовков и коды ответов, а также роли subscriber (подписчик) и notifier (уведомитель). Подписчик отправляет SUBSCRIBE с URI ресурса и типом события, notifier отвечает NOTIFY с текущим состоянием ресурса. При каждом изменении состояния отправляется новое NOTIFY. Для каждого типа событий вводится event package, то есть значение для SUBSCRIBE и формат передачи информации в виде MIME-типа внутри NOTIFY.
Служебный заголовок allow-events показывает поддерживаемые типы событий, коды ответов 202 accepted и 489 bad event указывают, был ли принят запрос на подписку или отклонён из-за незнания типа события. Для уменьшения нагрузки возможен event throttling (ограничение частоты уведомлений), а conditional event notification позволяет отправлять NOTIFY только при реальных изменениях состояния.
Публикация состояния
Фреймворк оповещения о событиях только описывает подписку на события, но не регламентирует процесс их публикации. Расширение публикации состояния добавляет новый метод PUBLISH для передачи актуального состояния ресурса (указывается в request-URI) и связанного события (Event header).
Мгновенные сообщения
Возможность отправки мгновенных сообщений определяет расширение для обмена мгновенными сообщениями, формирующее сервис, аналогичный коротким сообщениям. Сообщения независимы (не образуют диалог SIP), передаются через сигнальную сеть, разделяя ресурсы с контрольными сообщениями. Введён новый метод MESSAGE, с помощью которого можно отправить сообщение ресурсу, заданному в request-URI (тело содержит контент в формате MIME, обычно text/plain). Для диалоговых обменов мгновенными сообщениями применяется протокол MSRP.
Перевод вызова
Метод REFER позволяет клиенту запросить пользовательский агент на установление сеанса с ресурсом, который указывается в заголовке Refer-To. Типовое применение — перевод вызова: участник посылает REFER, а получатель инициирует связь c заданным агентом. REFER также подразумевает подписку на событие по результату операции.
Механизм REFER не ограничивается только переводом вызова: Refer-To может содержать любой URI, например, HTTP-адрес веб-страницы.
Гарантированная доставка предварительных ответов
Базовая спецификация SIP обеспечивает гарантированную доставку только для запросов и финальных ответов (коды 2XX): их повторно передаёт отправитель до получения подтверждения (ACK). Поскольку SIP может работать как поверх надёжных транспортных протоколов (TCP), так и ненадёжных (UDP), этот механизм критически важен. В системе IMS требуется также подтверждать предварительные (provisional) ответы на INVITE (например, 180 Ringing). Расширение надёжности предварительных ответов вводит метод PRACK, который информирует отправителя предварительного ответа, что его сообщение получено. PRACK содержит поле RACK (соответствует RSeq provisional-ответа), а также CSeq с идентификатором INVITE. Для указания поддержки этого механизма применяется 100rel option tag.
Обновление описания сеанса
Расширение UPDATE даёт возможность отправлять обновления параметров сеанса внутри диалога — до передачи окончательного ответа на INVITE. Это позволяет заранее согласовывать ресурсы для вызываемого.
Предусловия (Preconditions)
IMS предъявляет требование минимизации вероятности неудачного установления сеанса после оповещения вызываемого. Одним из рисков является невозможность резервирования сетевых ресурсов — которые должны быть зарезервированы до звонка. Для этого требуется предварительный обмен параметрами IP и сессии, который может инициировать только INVITE-запрос. В базовом SIP такое взаимодействие запускает оповещение. Концепция preconditions решает эту проблему: вызывающий формулирует набор требований к сессии (например, кодеки, QoS) в оффере, а вызываемый отвечает, не запуская оповещение пока precondition не выполнены с обеих сторон.
Расширение preconditions влияет как на SIP (через новый option tag precondition и процедуры offer/answer), так и на Session Description Protocol, SDP, где появляются атрибуты: current status, desired status для резервирования и confirmation status (когда требуется подтверждение резервирования).
Модель SDP offer/answer с использованием PRACK и UPDATE
В IMS начальное согласование параметров осуществляется с помощью расширений provisional responses и session description updating наряду с SDP внутри сообщений. Первый оффер (SDP) вкладывается в INVITE и отражает поддерживаемые вызывающим кодеки. Ответный provisional-ответ 183 Session Progress возвращает SDP список поддерживаемых кодеков обеих сторон. PRACK к этому provisional-ответу используется для выбора кодека и начала переговоров о QoS.
Процедура согласования QoS реализуется через PRACK, инициируя резервирование ресурсов у инициатора, и завершается после получения ответа 2XX. После этого вызываемый также резервирует ресурсы, обмен UPDATE сообщает о прогрессе резервирования. Как только оба участника завершили резервирование, вызываемый оповещается о вызове.
Идентификация и тарификация
В архитектуре IMS важную роль играет идентификация пользователей для задач аутентификации, авторизации и учёта/тарификации. Для этого используются специальные расширения полей заголовков SIP.
Приватные заголовки (P-Headers)
Приватные расширения SIP (P-Headers) — специальные заголовки, применимые только в частных сетях с особыми топологиями и характеристиками нижних уровней. Они были созданы специально для нужд 3GPP при отсутствии универсальных решений.
Наиболее значимые поля:
- P-Charging-Vector — информация о тарификации (идентификатор сессии, адрес прокси, идентификатор оператора).
- P-Charging-Function-Address — адреса функций тарификации в домашней сети абонента.
- P-Visited-Network-ID — строка, идентифицирующая посещаемую сеть (используется при регистрации абонента в роуминге).
- P-Access-Network-Info — информация о технологии доступа (тип радиосети, идентификатор соты и др.).
- P-Called-Party-ID — исходный URI запроса, заменённый регистратором S-CSCF на актуальный контактный адрес; необходим для определения, на какой адрес-учётку был отправлен вызов.
- P-Associated-URI — дополнительные URI, ассоциированные с регистрируемым пользователем; передаются в ответе 200 OK на REGISTER.
Есть дополнительные приватные заголовки для работы с пользовательской базой:
- P-User-Database — адрес базы данных пользователя (HSS). Хотя HSS представлен единой логической сущностью, с целью масштабируемости и надёжности он может быть распределён; тогда для выбора нужного HSS используется SLF. Попадая на пограничный прокси I-CSCF, запрос прокси SLF, получает нужный HSS и передаёт его адрес через P-User-Database S-CSCF, который затем работает напрямую с HSS (например, для аутентификации при регистрации).
- P-Profile-Key — ключ для быстрого поиска профиля пользователя в HSS, особенно полезен при использовании маскированных (регулярных выражений) сервис-идентификаторов.
Утверждаемая идентичность (Asserted identity)
Приватные расширения идентификации пользователей внутри доверенных сетей позволяют сети доверенных SIP-серверов утверждать личность аутентифицированного пользователя (в пределах домена с согласованными политиками). Дополнительно возможно указание конфиденциальности: токен id в заголовке Privacy.
Базовый механизм — заголовок P-Asserted-Identity: после успешной аутентификации прокси вставляет этот заголовок с подтверждённой идентичностью, чтобы другие узлы доверенного домена могли использовать её без повторной проверки. Для пользователя с несколькими публичными идентичностями определён заголовок P-Preferred-Identity — он позволяет явно указать, какая из идентичностей окажется в P-Asserted-Identity.
Если запрошена приватность, прокси должны удалять P-Asserted-Identity при передаче за пределы доверенного домена (внешним адресатам).
Существуют аналогичные расширения и для идентификации сервисов пользователей, где используются URN для указания сервиса (голосовой вызов, обмен сообщениями, IPTV-поток).
Механизмы безопасности
Доступ к сервисам IMS предполагает аутентификацию и авторизацию пользователя (в S-CSCF) и установку защищённого соединения между P-CSCF и терминалом. Для этих целей применяются различные механизмы:
- HTTP-аутентификация типа digest access authentication (базовый механизм SIP), приводящий к созданию защищённого соединения (Transport Layer Security) между пользователем и прокси.
- HTTP Digest с использованием AKA — более защищённый механизм для сотовых сетей, использующий данные смарт-карты пользователя и обычно создающий две ассоциации безопасности (IPsec) между P-CSCF и терминалом.
Расширение для согласования механизмов безопасности вводит три новых поля заголовка:
- Терминал добавляет заголовок security-client, перечисляя поддерживаемые механизмы, алгоритмы аутентификации и шифрования в REGISTER.
- P-CSCF отвечает с security-server, где перечислены механизмы с приоритетом.
- Пользователь отправляет новое REGISTER по установленному защищённому каналу, указывая security-verify (то же, что и security-server). Это защищает согласование от атак типа «человек посередине»: несоответствие security-server и security-verify раскрывает атаку. Перехватчик не может изменить security-verify, так как оно передаётся уже внутри нового защищённого соединения.
Авторизация медиапотока
Резервирование ресурсов IMS для обеспечения QoS приводит к задаче контроля доступа и защиты от DoS-атак. Для получения разрешения на передачу пользовательский агент предъявляет токен авторизации, получаемый у P-CSCF (отвечающего за контроль политик или взаимодействующего с PDF, политическим органом сети). Приватное расширение авторизации медиапотока вводит механизм получения токенов и заголовок P-Media-Authorization для передачи их между P-CSCF и терминалом. Применимо только внутри административных доменов с доверием и ориентировано на специализированные системы типа IMS, а не на общий Интернет.
Маршрутизация по источнику (source-routing)
Механизм маршрутизации по источнику позволяет отправителю явно задать маршрут сообщения с помощью заголовка route, где перечислены прокси, которые должны быть пройдены сообщением. В контексте IMS определён также механизм автоматического обнаружения необходимых узлов (CSCF) через расширения path и service-route.
Path
Специальное расширение добавляет возможность вносить SIP-URI прокси на каждом этапе прохождения REGISTER в заголовок Path, чтобы регистратор мог узнать обратный маршрут к терминалу. В IMS каждый терминал обслуживается своим P-CSCF (найденным через DHCP или аналогично при входе в сеть). Все обращения должны проходить через этот прокси; при регистрации P-CSCF добавляет свой SIP-URI в Path REGISTER, а S-CSCF сохраняет полученный маршрут и использует его для обратной связи.
Service route
Расширение Service-Route предназначено для информирования терминала, какой узел (обычно собственный S-CSCF) должен обрабатывать все его исходящие запросы; Service-Route возвращается в ответе на REGISTER. Терминал затем вставляет этот SIP-URI в заголовок Route для всех исходящих запросов.
Глобально маршрутизируемые URI агента пользователя
В IMS один пользователь может иметь несколько терминалов (например, мобильный телефон, компьютер) или приложений (видеотелефония, обмен сообщениями, голосовая почта), идентифицируемых одной публичной идентичностью (SIP-URI). Для адресации требуется механизм — Globally Routable User Agent URI (GRUU): уникальный URI, указывающий конкретный экземпляр агента пользователя и действующий для маршрутизации из любой точки мира. GRUU формируется путём добавления параметра gr к SIP-URI (явно, либо псевдонимом для защиты приватности). Обычно GRUU выдаётся при регистрации: терминал сообщает уникальный URN, регистратор (S-CSCF) формирует и возвращает GRUU для дальнейшей маршрутизации.
Сжатие сигнальных сообщений
Для эффективного расходования ресурсов сети (особенно при использовании радиоинтерфейса) применяется механизм сжатия сообщений SIP — SigComp (signaling compression). Алгоритмы заменяют часто встречающиеся слова на индексы в словаре. Для ускорения формируются общие словари как для одного сообщения, так и для серии сообщений, а также статический словарь SIP/SDP. С помощью параметра comp=sigcomp указывается поддержка SigComp (в URI запроса — запрос сжат, в заголовках Via — ответ сжат). Механизм content indirection позволяет дополнительно уменьшить длину сообщений, заменяя часть MIME-тела на внешний URI (например, HTTP).
Проходимость NAT
Сетевой адресный транслятор (NAT) препятствует достижимости терминалов из внешней сети. Для решения данной задачи (как для сигнального, так и для медийного трафика) применяются специальные механизмы, объединённые и рассмотренные в RFC 6314: симметричная маршрутизация ответов и подключения, инициированные клиентом (SIP signaling), а для медиа — STUN, TURN и комплексная технология ICE.
Совместимость с IPv6
RFC 6157 описывает необходимые механизмы для корректной работы SIP в смешанных сетях во время перехода на IPv6. При наличии правильно сконфигурированных прокси и DNS, сигнальные сообщения SIP проходят между IPv4/IPv6-сетями, однако агенты пользователей должны реализовывать расширения для обмена мультимедийными потоками напрямую (в SDP-обмене осуществлять сбор адресов обеих версий протокола).
Взаимодействие с другими технологиями
Помимо рассмотренных выше расширений SIP, обеспечивающих работу IMS, критичным является интеграция IMS с существующими сетями, прежде всего телефонной сетью общего пользования.
Обеспечивают такие возможности стандарты:
- PINT — расширение SIP и SDP для доступа к услугам классической телефонии PSTN (телефонные услуги, факс, передача контента по телефону).
- SPIRITS — обратное взаимодействие, поддержка доступа к Интернет-сервисам из PSTN.
Кроме того, реализованы решения для шлюзов PSTN-SIP:
- Session Initiation Protocol for Telephones (SIP-T) — описание архитектуры и практик интеграционных шлюзов.
- ISUP to SIP Mapping — сопоставление сообщений SIP и ISUP из SS7, используемой в PSTN.
Метод INFO в SIP предназначен для передачи пользовательской информации между терминалами вне сигнального диалога, в том числе может использоваться для передачи DTMF-сигналов при наборе номера на телефоне.
Литература
- Poikselkä, Miikka. The IMS: IP multimedia concepts and services / Miikka Poikselkä, Georg Mayer, Hisham Khartabil … [и др.]. — 2. — John Wiley & Sons, 10 марта 2006. — ISBN 978-0-470-01906-1.
- Camarillo, Gonzalo. The 3G IP Multimedia Subsystem (IMS): Merging the Internet and the Cellular Worlds / Gonzalo Camarillo, Miguel A. García-Martín. — 3. — John Wiley & Sons, 4 ноября 2008. — ISBN 978-0-470-51662-1.