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

Введение в SIP: основа классической видеосвязи
Session Initiation Protocol (SIP) — это один из ключевых протоколов, используемых для организации интерактивной видеосвязи в корпоративных и аппаратных системах. Он не передаёт аудио или видео напрямую, но играет центральную роль в установлении, управлении и завершении сеансов связи, таких как видеозвонки и видеоконференции.
SIP пришёл из мира телефонии по IP (VoIP) и стал стандартом де-факто для многих систем видеоконференцсвязи (ВКС), включая аппаратные терминалы, IP-АТС и программные клиенты (softphones). Его основная задача — обеспечить сигнальный обмен, то есть договориться о том, кто с кем хочет связаться, какие параметры медиапотока будут использоваться, и как организовать соединение.
Основные функции SIP
SIP отвечает за следующие ключевые аспекты сеанса связи:
- Поиск и адресация собеседника
SIP определяет, где находится пользователь, и как до него доставить вызов. - Согласование параметров соединения
Участники обмениваются информацией о поддерживаемых кодеках, типах медиапотоков (аудио, видео), IP-адресах и портах. - Управление состоянием сеанса
SIP позволяет управлять вызовом: поставить на удержание, перенаправить, добавить участника или завершить сеанс. - Маршрутизация вызова
Протокол определяет путь, по которому будет проходить вызов, особенно если участники находятся в разных сетях.
Важно понимать: 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. |
📝 Пример сценария
- Вы отправляете
INVITE→ начинается вызов.- Собеседник отвечает
180 Ringing→ вы слышите гудки.- Он принимает:
200 OK→ вы отправляетеACK.- Медиапоток запускается по RTP.
- По окончании: один из вас отправляет
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
- SIP договаривается о параметрах (через SDP),
- Участники обмениваются IP и портами,
- Начинается прямая передача по RTP/RTCP, минуя SIP-серверы.
Такой подход обеспечивает:
- Низкую задержку (медиа идёт напрямую),
- Эффективное использование ресурсов (серверы не перегружаются транзитом видео),
- Гибкость (можно использовать разные транспортные протоколы: UDP, TCP, SRTP).
Заключение: SIP в структуре видеосвязи
SIP — это сердце сигнального уровня в классических системах видеосвязи. Он решает задачи, которые невозможно выполнить с помощью одних лишь медиапротоколов:
- Поиск собеседника,
- Согласование параметров,
- Управление сеансом,
- Интеграция с корпоративной инфраструктурой (IP-АТС, домены, аутентификация).
При этом SIP работает в паре с другими протоколами:
- SDP — для описания медиа,
- RTP/RTCP — для передачи аудио и видео,
- STUN/TURN/ICE — для преодоления NAT (рассматривается далее),
- TLS/SRTP — для шифрования.
🎯 Ключевая мысль
SIP не заменяет медиапротоколы — он организует их работу. Без SIP невозможно построить интерактивную, многопользовательскую видеосвязь. Без RTP — невозможно передать видео. Оба уровня необходимы.
Понимание SIP позволяет инженеру:
- Читать логи вызовов,
- Диагностировать проблемы ("нет звука", "вызов не проходит"),
- Интегрировать устройства (камеры, терминалы, серверы),
- Строить сложные видеокомплексы, сочетающие стриминг и двустороннюю связь.