BroadNet
SIP / VoIPОсновы

Обзор протокола SIP

Обновлено 3 мин чтенияна основе стандартов
Прямой ответ

SIP (Session Initiation Protocol, RFC 3261) — это текстовый протокол сигнализации запрос/ответ, который устанавливает, изменяет и завершает медиасессии в реальном времени, такие как голосовые и видеозвонки. Он определяет user agent, прокси, registrar и серверы перенаправления и несёт описание сессии (SDP), согласующее медиа, которыми будут обмениваться конечные точки.

§01

Что такое SIP

SIP — это управляющий протокол прикладного уровня для создания и сопровождения мультимедийных сессий поверх IP — чаще всего голоса (VoIP), видео и обмена сообщениями. Он не несёт сами медиа; он согласует и управляет сессиями, а затем медиа текут отдельно поверх RTP. Его дизайн намеренно похож на HTTP: человекочитаемые текстовые сообщения, методы запросов и трёхзначные коды ответов и адресация на основе URI (sip:alice@example.com). Эта привычность и независимость от нижележащих медиа сделали SIP стандартным протоколом сигнализации для VoIP, SIP-транкинга и VoLTE/IMS.

§02

Сущности SIP

SIP определяет небольшой набор логических ролей. User Agent — это конечная точка: он выступает как User Agent Client (UAC), когда отправляет запрос, и как User Agent Server (UAS), когда отвечает. Прокси маршрутизируют запросы к назначению и могут разветвлять их на несколько целей. Registrar записывает, где сейчас достижим пользователь (его Contact), через REGISTER. Сервер перенаправления возвращает альтернативное расположение, а не пересылает. Back-to-Back User Agent (B2BUA) завершает и заново инициирует вызов, находясь посередине как сигнализации, так и часто медиа — модель, используемая пограничными контроллерами сессий и УАТС.

Логические роли SIP
СущностьРоль
UACUser Agent Client — инициирует запрос
UASUser Agent Server — отвечает на запрос
ПроксиМаршрутизирует/пересылает запросы, может разветвлять (fork) на несколько адресатов
РегистраторЗаписывает текущий Contact пользователя (через REGISTER)
Сервер перенаправленияВозвращает альтернативное местоположение (3xx) вместо пересылки
B2BUAТерминирует и заново инициирует вызов (SBC, PBX)
§03

Транзакции и диалоги

У SIP два уровня состояния. Транзакция — это один запрос и его ответы (например, INVITE и вызванные им 100/180/200), идентифицируемая параметром branch в Via. Диалог — это более долгое отношение точка-точка, которое представляет вызов, идентифицируемое сочетанием Call-ID, тега From и тега To. INVITE создаёт диалог; последующие внутридиалоговые запросы (re-INVITE, BYE) ссылаются на него. Понимание этого разделения важно для чтения потока SIP, потому что ответы и повторные передачи сопоставляются на уровне транзакции, тогда как вызов живёт на уровне диалога.

§04

Транспорт и порты

SIP работает поверх UDP, TCP или TLS и (реже) SCTP или WebSocket для WebRTC. Порт IANA по умолчанию — 5060 для UDP и TCP и 5061 для SIP поверх TLS (сигнализируется URI sips:). UDP распространён из-за низких накладных расходов, но большие сообщения, превышающие MTU пути, должны использовать TCP, а любое развёртывание, пересекающее недоверенные сети, должно использовать TLS для сигнализации и SRTP для медиа. Транспорт выбирается на каждом переходе и может меняться вдоль пути.

Транспорт SIP и порты по умолчанию
ТранспортПорт по умолчаниюПримечания
UDP5060Низкие накладные расходы; переход на TCP при превышении MTU
TCP5060Для передачи больших сообщений и обеспечения надежной доставки
TLS (sips:)5061Зашифрованная сигнализация
WSS (WebSocket)—SIP через защищенный WebSocket для WebRTC
Часто задаваемые вопросы

Часто задаваемые вопросы

Для чего используется SIP?

SIP устанавливает, изменяет и завершает медиасессии в реальном времени поверх IP — голосовые и видеозвонки, SIP-транкинг между телефонными системами и операторами и управление вызовами VoLTE/IMS. Он обрабатывает сигнализацию; сам звук или видео идёт отдельно поверх RTP.

Похож ли SIP на HTTP?

По замыслу да. SIP заимствует у HTTP модель запрос/ответ, текстовые сообщения, синтаксис заголовков, трёхзначные коды статуса и адресацию URI. Семантика отличается — SIP управляет сессиями с сохранением состояния через прокси, и обе конечные точки могут инициировать запросы — но поверхность будет знакома любому, кто знает HTTP.

В чём разница между транзакцией и диалогом SIP?

Транзакция — это один запрос плюс его ответы, сопоставляемые по branch в Via. Диалог — это продолжающееся отношение вызова, идентифицируемое Call-ID плюс тегами From и To. Один диалог (вызов) содержит несколько транзакций — INVITE, а затем позже BYE.

Какой порт использует SIP?

Значение IANA по умолчанию — 5060 для SIP поверх UDP и TCP и 5061 для SIP поверх TLS. Медиа (RTP) используют отдельный, динамически согласуемый диапазон UDP-портов, описанный в SDP, а не сигнальный порт SIP.

Несёт ли SIP голос?

Нет. SIP несёт только сигнализацию — он согласует сессию и параметры медиа через SDP. Сам звук или видео идёт поверх RTP (или SRTP при шифровании) напрямую между конечными точками или через медиарелей, на портах, отдельных от сообщений SIP.

Ссылки

Технические характеристики источника

На этой странице представлены опубликованные стандарты, на которых они основаны. (Открывается в новой вкладке)

BNПоддерживается инженерной командой BroadNet·Обмен сообщениями операторского класса с 2003 года.
Прикрепите это к проводу

Разработано с использованием реального SMPP подключения и REST API.

Запросите тестовый доступ с реальными тестовыми ключами: сначала отправьте их на свой подтвержденный номер, а затем, после утверждения вашей личности отправителя и маршрутов, переходите к использованию в производственной среде более чем в 200 странах.