Звонки и стримы в Диалог
1. Звонки 1-на-1 — сервер НЕ видит медиа
Архитектура: P2P WebRTC. rtc-server.js — только сигналинг (передаёт SDP/ICE), сам медиапоток через него не проходит.
Почему сервер не видит:
DTLS-handshake идёт напрямую между устройствами — ключи шифрования выводятся на телефонах, сервер их не получает.
Медиа идёт P2P или через TURN-релей; TURN форвардит запечатанные SRTP-пакеты вслепую — ключей у него нет, расшифровать не может.
Шифрование: DTLS-SRTP (включено по умолчанию), сигналинг — TLS/WSS.
➡️ Результат: содержимое звонка 1-на-1 недоступно ни серверу, ни провайдеру, ни прослушке из сети. Фактически E2E.
2. Трансляции через SFU — сервер ВИДИТ поток (by design)
Архитектура: stream-server.js на mediasoup (SFU), схема producer → consumer.
Почему SFU видит стрим:
SFU — не P2P, а ретранслятор. Чтобы раздать один поток множеству зрителей, он обязан терминировать DTLS на себе:
Вещатель шифрует поток и отправляет в SFU (DTLS-сессия вещатель↔SFU).
SFU расшифровывает SRTP — иначе не прочитает RTP-заголовки и не сможет маршрутизировать.
SFU заново шифрует и рассылает каждому зрителю (своя DTLS-сессия на зрителя).
Между шагами 2–3 поток лежит в памяти worker'а mediasoup в открытом виде — у SFU есть ключи обеих сторон. Это принцип работы любого SFU, а не дефект: forwarding-сервер физически должен видеть RTP, чтобы раздать его аудитории. Цена за масштабирование на много зрителей — отсутствие E2E.
Тип Транспорт Сервер видит контент?
Звонок 1-на-1 P2P / TURN (DTLS-SRTP) Нет — ключи только на устройствах
Трансляция / SFU mediasoup (DTLS-SRTP до SFU) Да — SFU расшифровывает для раздачи
Транспорт защищён везде (DTLS-SRTP + TLS). Разница в одном: P2P-звонок шифруется от собеседника к собеседнику, а SFU-стрим — только до сервера, потому что сервер должен ретранслировать поток.
mediasoup — это не SaaS и не готовый продукт. Компании встраивают его как библиотеку и не обязаны об этом говорить. По данным агрегаторов, около 38 компаний публично используют mediasoup (Reo) , но реальная цифра значительно выше.
Также на его основе построены популярные open-source платформы (MiroTalk SFU, multiparty-meeting), которые в свою очередь используются другими организациями.