для поддержки какой функции протокола sip необходимо наличие серверов регистрации и перенаправления
ИТ База знаний
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Протокол сигнализации SIP
Телефония поверх протокола IP
Мы продолжаем постигать основы важнейшего протокола, использующегося в IP телефонии и в сегодняшней статье рассмотрим основные сценарии установления соединения, а также работу основных компонентов протокола SIP. Протокол SIP имеет 3 стандартных сценария установления соединения, которые отличаются наличием и участием тех или и иных устройств.
Базовый курс по Asterisk
Мы собрали концентрат всех must have знаний в одном месте, которые позволят тебе сделать шаг вперед на пути к экспертному владению Asterisk
Пример №1
Однако, данный сценарий установления соединения является самым примитивным, можно даже сказать частным. Обычно в сети присутствует SIP прокси сервер, который принимает и обрабатывает запросы от пользователей и выполняет, соответствующие этим запросам, действия.
Пример №2
Рассмотрим сценарий установления соединения между двумя пользователями.
В данном случае задачу поиска и приглашения абонента выполняет Прокси сервер, вызывающему пользователю необходимо знать только постоянный номер вызываемого абонента. Отметим, что функции прокси сервера выполняет офисная телефонная станция
Как видно из рисунка, процесс установления и разъединения соединения происходит аналогично первому сценарию, только в качестве посредника при передаче сообщений протокола SIP выступает SIP Proxy.
Пример №3
Допустим, что в сети имеется множество пользователей, число которых постоянно пополняется. Они могут менять свое фактическое положение, ставить переадресацию (redirection) на другой номер, проводить конференц – звонки и др. Для предоставления подобных сервисов требуется наличие в сети соответствующих серверов, поддерживающих ту или иную функцию.
Сервер регистрации это логический элемент и обычно его функции выполняет SIP Proxy, такие совмещенные сервера называют Registar. SIP Proxy может также выполнять функции серверов определения местоположения и переадресации, такое совмещение полезно в плане масштабируемости сети.
Приведем пример, когда сеть содержит некий комбинированный SIP Proxy, который поддерживает все функции, описанные выше. Допустим, что новый, еще не зарегистрированный пользователь A,вызывает пользователя B, который уже прошел процедуру авторизации.
Как видно из рисунка дальнейший процесс соединения происходит аналогично сценарию 1.
В следующей статье мы подробно рассмотрим основные модификации протокола SIP для взаимодействия с традиционными телефонными сетями, использующими сигнализацию ОКС-7.
Продвинутый курс по Asterisk
Концентрат редких знаний, для внедрения Asterisk в крупных предприятиях. Все это мы собрали в одном курсе для тебя.
Для поддержки какой функции протокола sip необходимо наличие серверов регистрации и перенаправления
SIP (англ. Session Initiation Protocol — протокол установления сеанса) — протокол передачи данных, который описывает способ установления и завершения пользовательского интернет-сеанса, включающего обмен мультимедийным содержимым (видео- и аудиоконференция, мгновенные сообщения, онлайн-игры).
Протокол описывает, каким образом клиентское приложение (например, софтфон) может запросить начало соединения у другого, возможно, физически удалённого клиента, находящегося в той же сети, используя его уникальное имя. Протокол определяет способ согласования между клиентами об открытии каналов обмена на основе других протоколов, которые могут использоваться для непосредственной передачи информации (например, RTP). Допускается добавление или удаление таких каналов в течение установленного сеанса, а также подключение и отключение дополнительных клиентов (то есть допускается участие в обмене более двух сторон — конференц-связь). Протокол также определяет порядок завершения сеанса.
Содержание
Принципы протокола
В основу протокола рабочая группа MMUSIC заложила следующие принципы:
Дизайн протокола
Клиенты SIP традиционно используют порт 5060 TCP и UDP для соединения элементов SIP-сети. В основном, SIP используется для установления и разъединения голосовых и видеозвонков. При этом он может использоваться и в любых других приложениях, где требуется установка соединения, таких, как системы оповещения, мобильные терминалы и так далее. Существует большое количество рекомендаций RFC, относящихся к SIP и определяющих поведение таких приложений. Для передачи самих голосовых и видеоданных используют другие транспортные протоколы, чаще всего RTP.
Главной задачей разработки SIP было создание сигнального протокола на базе IP, который мог бы поддерживать расширенный набор функций обработки вызова и услуг, представленных в существующей ТфОП. Сам протокол SIP не определяет этих функций, а сосредоточен только на процедурах установления звонка и сигнализации. При этом он был спроектирован с поддержкой таких функциональных элементов сети, как прокси-серверы (Proxy Servers) и Пользовательские Агенты (User Agents). Эти элементы обеспечивают базовый набор услуг: набор номера, вызов телефонного аппарата, звуковое информирование абонента о статусе вызова.
Телефонные сети на основе SIP могут поддерживать и более современные услуги, обычно предоставляемые ОКС-7, несмотря на значительное различие этих двух протоколов. ОКС-7 характеризуется сложной, централизованной интеллектуальной сетью и простыми, неинтеллектуальными, терминалами (традиционные телефонные аппараты). SIP — наоборот, требует очень простую (и, соответственно, хорошо масштабируемую) сеть с интеллектом, встроенным в оконечные элементы на периферии (терминалы, построенные как физические устройства или программы).
SIP используется вместе с несколькими другими протоколами и участвует только в сигнальной части сессии связи. SIP выполняет роль носителя для SDP, который описывает параметры передачи медиаданных в рамках сессии, например используемые порты IP и кодеки. В типичном применении сессии SIP — это просто потоки пакетов RTP. RTP является непосредственным носителем голосовых и видеоданных.
Первая предложенная версия стандарта (SIP 2.0) была определена в RFC 2543. Протокол был дополнительно уточнён в RFC 3261, хотя многие реализации по-прежнему основаны на промежуточных версиях стандарта. Обратите внимание, что номер версии остался 2.0.
Адресация
Для организации взаимодействия с существующими приложениями IP-сетей и для обеспечения мобильности пользователей, SIP использует адрес, подобный адресу электронной почты. В качестве адресов рабочих станций используются универсальные указатели ресурсов URL, так называемые SIP URL:
В начале SIP-адреса (в тексте) ставится слово sip:, указывающее, что это именно SIP-адрес, так как бывают и другие c таким же форматом (например, адреса электронной почты, обозначаемые mailto:).
Адрес состоит из двух частей. Первая часть — имя пользователя, зарегистрированного в домене или на рабочей станции. Если вторая часть идентифицирует какой-либо шлюз, то в первой указывается телефонный номер абонента. Во второй части адреса указывается имя домена сети, хоста или IP-адрес.
Имена пользователей представляют собой обычные алфавитно-цифровые идентификаторы. В IP-телефонии, как правило, используют чисто цифровые идентификаторы («номера») для удобства расширения/замены классических телефонных сетей. Номера местной связи, как правило, 2-3-4-значные.
Номер телефона, передаваемый шлюзу — любой доступный через него, и может быть как номером местной связи, так и номером мобильного или обычного городского телефона. Адрес шлюза (IP-адрес или доменное имя) задаётся в настройках телефона или программы-клиента, а пользователю для совершения звонка достаточно только набора номера.
Архитектура сети
Протокол SIP имеет клиент-серверную архитектуру.
Клиент выдаёт запросы, с указанием того, что он хочет получить от сервера. Сервер принимает и обрабатывает запросы, выдаёт ответы, содержащие уведомление об успешности выполнения запроса, уведомление об ошибке или информацию, запрошенную клиентом.
Обслуживание вызова распределено между различными элементами сети SIP. Основным функциональным элементом, реализующим функции управления соединением, является абонентский терминал. Остальные элементы сети могут отвечать за маршрутизацию вызовов, а иногда служат для предоставления дополнительных сервисов.
Терминал
Когда клиент и сервер реализованы в оконечном оборудовании и взаимодействуют непосредственно с пользователем, они называются пользовательским агентским клиентом — User Agent Client (UAC) — и пользовательским агентским сервером — User Agent Server (UAS). Если в устройстве присутствуют и UAC, и UAS, то оно называется пользовательским агентом — User Agent (UA), а по своей сути представляет собой терминальное оборудование SIP.
Сервер UAS и клиент UAC имеют возможность непосредственно взаимодействовать с пользователем. Другие клиенты и серверы SIP этого делать не могут.
Прокси-сервер
Прокси-сервер (от англ. proxy — «представитель») представляет интересы пользователя в сети. Он принимает запросы, обрабатывает их и выполняет соответствующие действия. Прокси-сервер состоит из клиентской и серверной частей, поэтому может принимать вызовы, инициировать запросы и возвращать ответы.
Предусмотрено два типа прокси-серверов
Сервер переадресации
Сервер переадресации используется для определения текущего местоположения пользователя. Сервер переадресации не терминирует вызовы и не инициирует собственные запросы, а только сообщает адрес необходимого терминала или прокси-сервера. Для этих целей он взаимодействует с сервером определения местоположения.
Однако, для осуществления соединения пользователь может не использовать сервер переадресации, если он сам знает текущий адрес требуемого пользователя.
Сервер определения местоположения пользователей
Пользователь может перемещаться в пределах сети SIP, поэтому существует механизм определения его местоположения в текущий момент времени. Сервер определения местоположения пользователей служит для хранения текущего адреса пользователя и представляет собой базу данных адресной информации.
Пользователь, которому нужна адресная информация не связывается с сервером определения местоположения напрямую. Эту функцию выполняют другие SIP-серверы при помощи протоколов LDAP, RWHOIS, или других протоколов.
B2BUA
B2BUA — (англ. back-to-back user agent, буквально: пользовательские-агенты-спина-к-спине) — вариант логического элемента в приложениях, работающих с протоколом SIP. B2BUA работает одновременно с двумя оконечными устройствами — терминалами, разделяя звонок или сессию на два плеча-участка. С каждым участком B2BUA работает индивидуально, хотя сигнальные сообщения передаются в рамках сессии в обе стороны синхронизировано. Таким образом каждый из участников сессии, на уровне сигнализации взаимодействует с B2BUA, как с оконечным устройством, хотя в действительности он является посредником.
B2BUA может предоставлять следующие функции:
Довольно часто B2BUA является частью медиа-шлюза для того, что бы полностью контролировать медиа-потоки в рамках сессии. Сигнальный шлюз, являющийся частью пограничного контроллера сессий — наглядный пример применения B2BUA.
Сообщения протокола SIP
Сообщения протокола SIP (запросы и ответы), представляют собой последовательности текстовых строк, закодированных в соответствии с документом RFC 2279. Структура и синтаксис сообщений SIP идентичны используемым в протоколе HTTP. Структура сообщений протокола SIP:
Пример запроса INVITE:
Запросы
В первоначальной версии протокола SIP (RFC 3261) было определено шесть типов запросов. С помощью запросов клиент сообщает о текущем местоположении, приглашает пользователей принять участие в сеансах связи, модифицирует уже установленные сеансы, завершает их и т. д. Тип запроса указывается в стартовой строке.
Ответы на запросы
Ответы на запросы сообщают о результате обработки запроса либо передают запрошенную информацию. Структуру ответов и их виды протокол SIP унаследовал от протокола HTTP. Определено шесть типов ответов, несущих разную функциональную нагрузку. Тип ответа кодируется трёхзначным числом, самой важной является первая цифра, которая определяет класс ответа:
Алгоритмы установления соединения
Протокол SIP является управляющим протоколом для установления, модификации и разрыва соединения, ориентированного на передачу потоковых данных. Параметры передачи медиа-потоков описываются в протоколе SIP посредством SDP (протокол описания сессии). Потоковые медиа-данные могут передаваться различными средствами, среди которых наиболее популярны транспортные протоколы RTP и RTCP.
Протокол SIP определяет 3 основных сценария установления соединения: с участием прокси-сервера, с участием сервера переадресации и непосредственно между пользователями. Сценарии отличаются по тому, как осуществляется поиск и приглашение вызываемого пользователя. Основные алгоритмы установления соединения описаны в RFC 3665.
Пример сценария установления соединения:
SIP-T и SIP-I
Для взаимодействия с традиционными телефонными сетями, использующими сигнализацию ОКС-7, были разработаны модификации протокола SIP для телефонии: Session Initiation Protocol for Telephones (SIP-T) и Session Initiation Protocol Internetworking (SIP-I). Разность версий ввиду того, что SIP-I был разработан ITU-T, а SIP-T — IETF и описан в RFC 3372. Основная задача данных модификаций протокола SIP заключается в прозрачной передаче сообщений ISUP по IP-сети. Данная задача осуществляется путём инкапсуляции сигнальных единиц ОКС в сообщения SIP. Все требуемые задачи по взаимодействию между протоколами были решены на базе протокола SIP:
Требование по взаимодействию | Функция SIP-T |
---|---|
Прозрачность сигнализации ISUP | Инкапсуляция ISUP в тело сообщения SIP |
Возможность маршрутизировать сообщения SIP в зависимости от ISUP | Трансляция параметров ISUP в заголовке сообщения SIP |
Трансляция адресной информации при установленном соединении | Использование метода INFO |
Сравнение с H.323
Параметр сравнения | SIP | H.323 |
---|---|---|
Дополнительные услуги | Набор услуг, поддерживаемых обоими протоколами примерно одинаков | |
Персональная мобильность пользователей | Имеется хороший набор средств поддержки мобильности | Персональная мобильность поддерживается, но менее гибко |
Расширяемость протокола | Удобная расширяемость, простая совместимость с предыдущими версиями | Расширяемость поддерживается, но существует ряд сложностей |
Масштабируемость сети | Оба протокола обеспечивают хорошую масштабируемость сети | |
Время установления соединения | Достаточно одной транзакции | Требуется несколько транзакций. |
Сложность протокола | Простой, мало запросов, текстовый формат сообщений | Сложный, много запросов и протоколов, двоичное представление сообщений |
Совместимость оборудования | Практически никакой. Каждый производитель SIP устройств соблюдает только тот набор рекомендаций (RFC) который ему нравится, ибо набор этих рекомендаций очень велик. Совместим фактически только базовый вызов | Практически полная. Стандарты устоявшиеся и имеют чёткий набор спецификаций |
Безопасность
Вопросам безопасности использования протокола SIP посвящён отдельный раздел RFC 3261. Шифрование сигнального трафика возможно на транспортном уровне через иcпользование TLS вместо TCP/UDP. Кроме того, разработан стандарт SIPS (англ. SIPS ), накладывающий дополнительные соглашения по безопасной передаче данных посредством SIP. Для шифрования мультимедийного контента применяется протокол SRTP.
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
SIP (Session Initiation Protocol)
SIP (англ. Session Initiation Protocol — протокол установления сеанса) — протокол для сигнализации и управления мультимедийными сеансами связи. Наиболее распространённые области применения в интернет-телефонии – для передачи голоса и осуществления видеозвонков, а также обмена мгновенными сообщениями по сетям IP (Internet Protocol). Протокол описывает, каким образом клиентское приложение (например, софтфон) может запросить начало соединения у другого, возможно, физически удалённого клиента, находящегося в той же сети, используя его уникальное имя. Протокол определяет способ согласования между клиентами об открытии каналов обмена на основе других протоколов, которые могут использоваться для непосредственной передачи информации (например, RTP). Допускается добавление или удаление таких каналов в течение установленного сеанса, а также подключение и отключение дополнительных клиентов (то есть допускается участие в обмене более двух сторон — конференц-связь). Протокол также определяет порядок завершения сеанса.
Содержание
История разработки
SIP-протокол был первоначально разработан группой специалистов в 1996 году. Он был стандартизован в RFC 2543 в 1999 году (SIP 1.0). В ноябре 2000 года он был принят в качестве сигнального протокола 3 GPP и постоянного элемента IP-архитектуры Multimedia Subsystem (IMS) для потоковых мультимедийных услуг на базе IP в системах сотовой связи. Последняя версия (SIP 2.0) в спецификации RFC 3261 была выпущена в июне 2002 года. С определёнными расширениями и уточнениями она используется и в наше время. Несмотря на то что первоначально SIP-протокол был разработан на основе голосовых сервисов. Сегодня он поддерживает широкий спектр приложений, включая видеоконференции, потоковые мультимедиа, обмен мгновенными сообщениями, передачу файлов и факсов через IP и онлайн-игры.
Принципы протокола
Разработкой занималась организация IETF MMUSIC Working Group. Протокол начал разрабатываться в 1996 году Хенингом Шулзри (Henning Schulzrinne, Колумбийский университет) и Марком Хэндли (Университетский колледж Лондона). В ноябре 2000 года SIP был утверждён как сигнальный протокол проекта 3GPP и основной протокол архитектуры IMS (модификация 3GPP TS.24.229. Наряду c другим распространённым протоколом H.323, SIP — один из протоколов, лежащих в основе Voice over IP. В основу протокола рабочая группа MMUSIC заложила следующие принципы:
Дизайн протокола
Клиенты SIP традиционно используют порт 5060 TCP или UDP для соединения элементов SIP-сети. В основном, SIP используется для установления и разъединения голосовых и видеозвонков. При этом он может использоваться и в любых других приложениях, где требуется установка соединения, таких, как системы оповещения, мобильные терминалы и так далее. Существует большое количество рекомендаций RFC, относящихся к SIP и определяющих поведение таких приложений. Для передачи самих голосовых и видеоданных используют другие транспортные протоколы, чаще всего RTP. Главной задачей разработки SIP было создание сигнального протокола на базе IP, который мог бы поддерживать расширенный набор функций обработки вызова и услуг, представленных в существующей ТфОП. Сам протокол SIP не определяет этих функций, а сосредоточен только на процедурах регистрации пользователя, установления и завершения вызова и соответствующей сигнализации. При этом он был спроектирован с поддержкой таких функциональных элементов сети, как прокси-серверы (Proxy Servers) и Пользовательские Агенты (User Agents). Эти элементы обеспечивают базовый набор услуг: набор номера, вызов телефонного аппарата, звуковое информирование абонента о статусе вызова. Телефонные сети на основе SIP могут поддерживать и более современные услуги, обычно предоставляемые ОКС-7, несмотря на значительное различие этих двух протоколов. ОКС-7 характеризуется сложной, централизованной интеллектуальной сетью и простыми, неинтеллектуальными, терминалами (традиционные телефонные аппараты). SIP — наоборот, требует очень простую (и, соответственно, хорошо масштабируемую) сеть с интеллектом, встроенным в оконечные элементы на периферии (терминалы, построенные как физические устройства или программы). SIP используется вместе с несколькими другими протоколами и участвует только в сигнальной части сессии связи. SIP выполняет роль носителя для SDP, который описывает параметры передачи медиаданных в рамках сессии, например используемые порты IP и кодеки. В типичном применении сессии SIP — это просто потоки пакетов RTP. RTP является непосредственным носителем голосовых и видеоданных. Первая предложенная версия стандарта (SIP 2.0) была определена в RFC 2543. Протокол был дополнительно уточнён в RFC 3261, хотя многие реализации по-прежнему основаны на промежуточных версиях стандарта. Обратите внимание, что номер версии остался 2.0.
Адресация
Для организации взаимодействия с существующими приложениями IP-сетей и для обеспечения мобильности пользователей, SIP использует адрес, подобный адресуэлектронной почты. В качестве адресов рабочих станций используются универсальные указатели ресурсов URI, так называемые SIP URI. Обычно используется следующий формат [sip «:»] идентификатор [«@» фрагмент], где идентификатор указывает на логин абонента или его номер телефона, а фрагмент определяет хост, который может быть задан доменным именем или IP-адресом. Примеры:
Общий стандарт URI определен рекомендацией RFC 3986. Адрес состоит из двух частей. Первая часть — имя пользователя, зарегистрированного в домене или на рабочей станции. Во второй части адреса указывается имя домена сети, хоста или IP-адрес. Если вторая часть идентифицирует какой-либо шлюз, то в первой указывается телефонный номер абонента. Имена пользователей представляют собой обычные алфавитно-цифровые идентификаторы. В IP-телефонии, как правило, используют чисто цифровые идентификаторы («номера») для удобства расширения/замены классических телефонных сетей. Номера местной связи, как правило, 2-3-4-значные. Номер телефона, передаваемый шлюзу — любой доступный через него, и может быть как номером местной связи, так и номером мобильного или обычного городского телефона. Адрес шлюза (IP-адрес или доменное имя) задаётся в настройках телефона или программы-клиента, а пользователю для совершения звонка достаточно только набора номера.
Архитектура сети
Протокол SIP имеет клиент-серверную архитектуру. Клиент выдаёт запросы, с указанием того, что он хочет получить от сервера. Сервер принимает и обрабатывает запросы, выдаёт ответы, содержащие уведомление об успешности выполнения запроса, уведомление об ошибке или информацию, запрошенную клиентом. Обслуживание вызова распределено между различными элементами сети SIP. Основным функциональным элементом, реализующим функции управления соединением, является абонентский терминал. Остальные элементы сети могут отвечать за маршрутизацию вызовов, а иногда служат для предоставления дополнительных сервисов.
Терминал
Когда клиент и сервер реализованы в оконечном оборудовании и взаимодействуют непосредственно с пользователем, они называются пользовательским агентским клиентом — User Agent Client (UAC) — и пользовательским агентским сервером — User Agent Server (UAS). Если в устройстве присутствуют и UAC, и UAS, то оно называется пользовательским агентом — User Agent (UA), а по своей сути представляет собой терминальное оборудование SIP. Сервер UAS и клиент UAC имеют возможность непосредственно взаимодействовать с пользователем. Другие клиенты и серверы SIP этого делать не могут.
Прокси-сервер
Прокси-сервер (от англ. proxy — «представитель») представляет интересы пользователя в сети. Он принимает запросы, обрабатывает их и выполняет соответствующие действия. Прокси-сервер состоит из клиентской и серверной частей, поэтому может принимать вызовы, инициировать запросы и возвращать ответы. Прокси-сервер может не изменять структуру и содержимое передаваемых сообщений, лишь добавляя свою адресную информацию в специальное поле Via. Предусмотрено два типа прокси-серверов
Сервер B2BUA
Довольно часто B2BUA является частью медиа-шлюза для того, чтобы полностью контролировать медиа-потоки в рамках сессии. Сигнальный шлюз, являющийся частью пограничного контроллера соединений/сеансов — наглядный пример применения B2BUA.
Сервер переадресации
Сервер переадресации (англ. Redirect Server) используется для перенаправление вызова по адресу текущего местоположения пользователя. Сервер переадресации не терминирует вызовы и не инициирует собственные запросы, а только сообщает адрес необходимого терминала или прокси-сервера при помощи ответов класса 3XX (301 Moved Permanently или 302 Moved Temporarily). Для этих целей сервер переадресации может взаимодействовать с SIP-регистраром или сервером определения местоположения. Однако, для осуществления соединения пользователь может не использовать сервер переадресации, если он сам знает текущий адрес требуемого пользователя.
Сервер регистрации (регистратор)
Сервер определения местоположения пользователей
Пользователь может перемещаться в пределах разных сетей, кроме того, подлинный адрес пользователя может быть и не известным, даже если его номер известен. Это актуально, в частности для услуги переносимости номера (LNP/MNP). Для решения таких задач существует механизм определения местоположения пользователя при помощи сторонних средств, не имеющих прямого отношения к элементам SIP-сети. Для этого используется сервер определения местоположения (англ. Location Server), который хранит текущий адрес пользователя и представляет собой регулярно обновляемую базу данных адресной информации Пользователь, которому нужна адресная информация другого пользователя для установления соединения не связывается с сервером определения местоположения напрямую. Эту функцию выполняют другие SIP-серверы при помощи протоколов LDAP, RWHOIS, ENUM, RADIUS или других протоколов.
Сообщения протокола SIP
Сообщения протокола SIP (запросы и ответы), представляют собой последовательности текстовых строк, закодированных в соответствии с документом RFC 2279. Структура и синтаксис сообщений SIP идентичны используемым в протоколе HTTP. Структура сообщений протокола SIP:
Пример запроса INVITE:
Запросы
В первоначальной версии протокола SIP (RFC 3261) было определено шесть типов запросов. С помощью запросов клиент сообщает о текущем местоположении, приглашает пользователей принять участие в сеансах связи, модифицирует уже установленные сеансы, завершает их и т. д. Тип запроса указывается в стартовой строке.
Но в процессе развития, в протокол было добавлено еще несколько типов запросов, которые дополнили его функциональность:
Ответы на запросы
Ответы на запросы сообщают о результате обработки запроса либо передают запрошенную информацию. Структуру ответов и их виды протокол SIP унаследовал от протокола HTTP. Определено шесть типов ответов, несущих разную функциональную нагрузку. Тип ответа кодируется трёхзначным числом, самой важной является первая цифра, которая определяет класс ответа:
Алгоритмы установления соединения
Протокол SIP является управляющим протоколом для установления, модификации и разрыва соединения, ориентированного на передачу потоковых данных. Параметры передачи медиа-потоков описываются в протоколе SIP посредством SDP (протокол описания сессии). Потоковые медиа-данные могут передаваться различными средствами, среди которых наиболее популярны транспортные протоколы RTP и RTCP.
Протокол SIP определяет 3 основных сценария установления соединения: с участием прокси-сервера, с участием сервера переадресации и непосредственно между пользователями. Сценарии отличаются по тому, как осуществляется поиск и приглашение вызываемого пользователя. Основные алгоритмы установления соединения описаны в RFC 3665.
Пример сценария установления соединения, с участием SIP сервера переадресации и SIP Proxy
Пример сценария установления соединения с участием сервера B2BUA
SIP-T и SIP-I
Для взаимодействия с традиционными телефонными сетями, использующими сигнализацию ОКС-7, были разработаны модификации протокола SIP для телефонии: Session Initiation Protocol for Telephones (SIP-T) и Session Initiation Protocol Internetworking (SIP-I). Разность версий ввиду того, что SIP-I был разработан ITU-T, а SIP-T — IETF и описан в RFC 3372. Основная задача данных модификаций протокола SIP заключается в прозрачной передаче сообщений ISUP по IP-сети. Данная задача осуществляется путём инкапсуляции сигнальных единиц ОКС в сообщения SIP. Все требуемые задачи по взаимодействию между протоколами были решены на базе протокола SIP:
Требование по взаимодействию | Функция SIP-T |
---|---|
Прозрачность сигнализации ISUP | Инкапсуляция ISUP в тело сообщения SIP |
Возможность маршрутизировать сообщения SIP в зависимости от ISUP | Трансляция параметров ISUP в заголовке сообщения SIP |
Трансляция адресной информации при установленном соединении | Использование метода INFO |
Сравнение с H.323
SIP пригоден для чтения человеком и структурирован в отношении запросов и откликов. Сторонники SIP также заявляют о нём как о более простом, по сравнению с H.323. Однако некоторые склонны считать, что, в то время как первоначально целью SIP была простота, в своём сегодняшнем виде он стал так же сложен, как и H.323. Другие считают, что SIP — протокол без состояний, который тем самым даёт возможность легко реализовать восстановление при отказе и другие возможности, которые затруднены в протоколах с состояниями, таких как H.323. SIP и H.323 не ограничены голосовой связью, они могут обслуживать любой сеанс связи, от голосового до видеосеанса или приложений будущего.
Параметр сравнения | SIP | H.323 |
---|---|---|
Дополнительные услуги | Набор услуг, поддерживаемых обоими протоколами примерно одинаков | |
Персональная мобильность пользователей | Имеется хороший набор средств поддержки мобильности | Персональная мобильность поддерживается, но менее гибко |
Расширяемость протокола | Удобная расширяемость, простая совместимость с предыдущими версиями | Расширяемость поддерживается, но существует ряд сложностей |
Масштабируемость сети | Оба протокола обеспечивают хорошую масштабируемость сети | |
Время установления соединения | Достаточно одной транзакции | Требуется несколько транзакций. |
Сложность протокола | Простой, мало запросов, текстовый формат сообщений | Сложный, много запросов и протоколов, двоичное представление сообщений |
Совместимость оборудования | Практически никакой. Каждый производитель SIP устройств соблюдает только тот набор рекомендаций (RFC) который ему нравится, ибо набор этих рекомендаций очень велик. Совместим фактически только базовый вызов | Практически полная. Стандарты устоявшиеся и имеют чёткий набор спецификаций |
Безопасность
Если требуется безопасная передача данных, схема предписывает, что каждый из элементов сети, по которому перенаправляется запрос до целевого домена, должен быть обеспечен Transport Layer Security (TLS). Последний шаг от прокси-сервера к целевому домену при этом обязан функционировать в соответствии с местными настройками по безопасности. TLS защищает от злоумышленников, которые пытаются перехватить данные в момент их отправки. Но она не обеспечивает реальную безопасность до конца и не может предотвратить слежение и кражу информации. Как же SIP-протокол, порты которого должны быть надёжно соединены, работает с другими службами сети? Он работает совместно с несколькими другими протоколами и участвует только в части сигнализации сеанса связи. SIP-клиенты, как правило, используют TCP или UDP с номерами портов 5060 или 5061 для подключения к SIP-серверам и другим конечным точкам SIP. Порт 5060 обычно используется для незашифрованного сигнального трафика, тогда как порт 5061 тесно «дружит» с Transport Layer Security (TLS).