Перейти к основному содержимому

04-03-01 SIP как протокол сигнализации

04-03-01

Введение в SIP: основа классической видеосвязи

Session Initiation Protocol (SIP) — это один из ключевых протоколов, используемых для организации интерактивной видеосвязи в корпоративных и аппаратных системах. Он не передаёт аудио или видео напрямую, но играет центральную роль в установлении, управлении и завершении сеансов связи, таких как видеозвонки и видеоконференции.

SIP пришёл из мира телефонии по IP (VoIP) и стал стандартом де-факто для многих систем видеоконференцсвязи (ВКС), включая аппаратные терминалы, IP-АТС и программные клиенты (softphones). Его основная задача — обеспечить сигнальный обмен, то есть договориться о том, кто с кем хочет связаться, какие параметры медиапотока будут использоваться, и как организовать соединение.


Основные функции SIP

SIP отвечает за следующие ключевые аспекты сеанса связи:

  1. Поиск и адресация собеседника
    SIP определяет, где находится пользователь, и как до него доставить вызов.
  2. Согласование параметров соединения
    Участники обмениваются информацией о поддерживаемых кодеках, типах медиапотоков (аудио, видео), IP-адресах и портах.
  3. Управление состоянием сеанса
    SIP позволяет управлять вызовом: поставить на удержание, перенаправить, добавить участника или завершить сеанс.
  4. Маршрутизация вызова
    Протокол определяет путь, по которому будет проходить вызов, особенно если участники находятся в разных сетях.

Важно понимать: SIP не передаёт медиаданные. Он лишь договаривается о правилах их передачи. Само аудио и видео идут по другим протоколам — в основном, RTP (Real-time Transport Protocol) и RTCP (RTP Control Protocol), которые студенты уже изучали ранее.


Адресация в SIP: что такое SIP URI?

Для идентификации пользователей в SIP используется SIP URI (Uniform Resource Identifier) — аналог электронной почты. Пример:

sip:anna.ivanova@company.com

Этот адрес состоит из:

  • Протокола: sip (или sips для защищённого соединения),
  • Имени пользователя: anna.ivanova,
  • Домена: company.com.

🧩 Аналогия: электронная почта
Как вы отправляете письмо на anna.ivanova@company.com, так и SIP-вызов направляется на sip:anna.ivanova@company.com. Адрес помогает системе понять, куда доставить вызов.

SIP URI может использоваться не только для людей, но и для устройств: например, видеотерминал или медиасервер могут иметь свой SIP-адрес и участвовать в вызовах.


Архитектурные компоненты SIP-системы

SIP-система состоит из нескольких ключевых элементов, которые взаимодействуют друг с другом для организации вызова.

1. User Agent (UA) — конечное устройство

User Agent — это программное или аппаратное устройство, которое инициирует или принимает вызовы. Примеры:

  • Программный телефон (softphone) на компьютере,
  • Аппаратный видеотерминал,
  • IP-телефон,
  • Видеокамера с поддержкой SIP.

User Agent может быть в двух ролях:

  • UAC (User Agent Client) — отправляет запросы (например, INVITE),
  • UAS (User Agent Server) — принимает запросы и отправляет ответы.

💬 Пример
Когда вы нажимаете «Позвонить» в softphone, он выступает как UAC. Когда ваш коллега получает вызов, его устройство — UAS.


2. SIP Proxy Server — маршрутизатор вызовов

SIP Proxy — это промежуточный сервер, который перенаправляет SIP-запросы от одного участника к другому. Он помогает:

  • Найти текущее местоположение пользователя,
  • Проконтролировать доступ (аутентификация, авторизация),
  • Организовать маршрутизацию вызовов между сетями.

🔄 Как это работает?
Вы звоните sip:anna@company.com. Ваш запрос сначала попадает на SIP Proxy. Тот проверяет, где сейчас находится Анна (например, в офисе или удалённо), и перенаправляет вызов на её текущий IP-адрес.

Proxy может быть регистрационным прокси, прокси-сервером доставки или выполнять обе функции.


3. Registrar Server — регистратор местоположения

Registrar — это сервер, который принимает и хранит информацию о местоположении пользователей. Когда устройство включается и подключается к сети, оно отправляет сообщение REGISTER, чтобы сообщить:

«Я — sip:anna@company.com, и сейчас я доступен по IP-адресу 192.168.1.100, порт 5060».

Эта информация сохраняется в директории присутствия (location service), которую затем использует SIP Proxy для маршрутизации вызовов.

🔐 Безопасность
Регистрация обычно требует аутентификации (логин/пароль), чтобы посторонние не могли зарегистрировать чужое устройство.


Основные методы SIP

SIP использует текстовые сообщения, похожие на HTTP. Каждое действие выполняется с помощью метода (method) — команды, указывающей, что нужно сделать. Ниже приведены ключевые методы.

МетодНазначение
INVITEИнициирует вызов. Содержит SDP-описание медиапотоков, которые хочет предложить инициатор.
BYEЗавершает вызов. Может быть отправлен любой стороной.
REGISTERРегистрирует устройство в системе. Указывает текущий IP-адрес и порт.
ACKПодтверждает получение окончательного ответа (например, 200 OK).
OPTIONSПроверяет доступность устройства. Аналог «ping» для SIP.

📝 Пример сценария

  1. Вы отправляете INVITE → начинается вызов.
  2. Собеседник отвечает 180 Ringing → вы слышите гудки.
  3. Он принимает: 200 OK → вы отправляете ACK.
  4. Медиапоток запускается по RTP.
  5. По окончании: один из вас отправляет BYE.

Как SIP передаёт параметры медиасессии: роль SDP

Хотя SIP не передаёт аудио и видео, он согласовывает, как они будут передаваться. Для этого используется SDP (Session Description Protocol) — язык описания медиасессии.

SDP-описание передаётся в теле SIP-сообщений, например:

  • В запросе INVITE — предложение инициатора,
  • В ответе 200 OK — подтверждение и параметры ответчика.

В SDP указываются:

  • Типы медиапотоков: audio, video,
  • Кодеки: например, H.264, Opus,
  • Порты и IP-адреса для приёма/передачи,
  • Направление потока: sendrecv, sendonly, recvonly,
  • Дополнительные параметры: битрейт, профиль кодека, режим пакетизации.

🧩 Пример SDP (упрощённо)

m=audio 5004 RTP/AVP 96
a=rtpmap:96 opus/48000/2
m=video 5006 RTP/AVP 98
a=rtpmap:98 H264/90000
c=IN IP4 192.168.1.100

Это означает:

  • Аудио: Opus, порт 5004,
  • Видео: H.264, порт 5006,
  • IP-адрес: 192.168.1.100.

После обмена SDP стороны знают, куда и как отправлять медиаданные.


Медиатрафик: почему SIP не передаёт аудио и видео

Хотя SIP управляет сеансом, он не несёт полезную нагрузку. Аудио и видео передаются по отдельным протоколам:

  • RTP (Real-time Transport Protocol) — передаёт сами медиапакеты (аудио, видео),
  • RTCP (RTP Control Protocol) — передаёт служебную информацию: статистику, задержку, потери пакетов.

🔗 Связь SIP → SDP → RTP

  1. SIP договаривается о параметрах (через SDP),
  2. Участники обмениваются IP и портами,
  3. Начинается прямая передача по RTP/RTCP, минуя SIP-серверы.

Такой подход обеспечивает:

  • Низкую задержку (медиа идёт напрямую),
  • Эффективное использование ресурсов (серверы не перегружаются транзитом видео),
  • Гибкость (можно использовать разные транспортные протоколы: UDP, TCP, SRTP).

Заключение: SIP в структуре видеосвязи

SIP — это сердце сигнального уровня в классических системах видеосвязи. Он решает задачи, которые невозможно выполнить с помощью одних лишь медиапротоколов:

  • Поиск собеседника,
  • Согласование параметров,
  • Управление сеансом,
  • Интеграция с корпоративной инфраструктурой (IP-АТС, домены, аутентификация).

При этом SIP работает в паре с другими протоколами:

  • SDP — для описания медиа,
  • RTP/RTCP — для передачи аудио и видео,
  • STUN/TURN/ICE — для преодоления NAT (рассматривается далее),
  • TLS/SRTP — для шифрования.

🎯 Ключевая мысль
SIP не заменяет медиапротоколы — он организует их работу. Без SIP невозможно построить интерактивную, многопользовательскую видеосвязь. Без RTP — невозможно передать видео. Оба уровня необходимы.

Понимание SIP позволяет инженеру:

  • Читать логи вызовов,
  • Диагностировать проблемы ("нет звука", "вызов не проходит"),
  • Интегрировать устройства (камеры, терминалы, серверы),
  • Строить сложные видеокомплексы, сочетающие стриминг и двустороннюю связь.