KamoCRM

Собственные видеоконференции

Медиа-серверы WebRTC, реле TURN и путь ICE между ними

Видеоконференции в KamoCRM работают на медиа-инфраструктуре, которую мы обслуживаем: блок селективной пересылки, фокус конференции, ретранслятор TURN, компоненты шлюза записи и потокового вещания. Медиа в реальном времени - это наименее прощающая вещь в сети, и нет способа узнать об этом, кроме как запустить его.

Каждое число здесь называет, откуда оно пришло и когда оно было измерено.
МераСтоимостьИсточникИзмеряемые
Медиа-компоненты реального времени в производстве6 (media server, conference focus, signalling, recording, telephony gateway, TURN relay)kubectl get deployments,statefulsets -n kamo
Сервер потокового вещания, работающий параллельно с конференционной системой1 (MediaMTX, live streaming only)kubectl get deployments -n kamo

Чему здание нас научило

Веб-запрос, который занимает дополнительные две сотни миллисекунд, не имеет значения; две сотни миллисекунд тремора в вызовах— это спор о том, кто говорит через кого. Подключение договаривается, а не настраивается— собираются адреса-кандидаты, тестируются пути, используется реле, когда прямой путь не может быть найден— и режимы отказа асимметричны и раздражают. Один участник слышит всех, никто их не слышит, и каждый журнал говорит, что вызов в порядке.

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

Мы также управляем ретрансляцией и записью. Запись— это то место, где обязательства в отношении конфиденциальности становятся конкретными, а не теоретическими, потому что запись— это документ об идентифицируемых людях, который теперь кто-то должен хранить законно, и это ограничение конструкции задолго до того, как это становится документом политики.

Построен с

  • WebRTC
  • Jitsi Videobridge
  • Jicofo
  • Prosody
  • coturn
  • MediaMTX
  • XMPP
  • ICE
  • SRTP

Для чего это нас квалифицирует

Real-time systemsLive data, messaging, presence and media — the unforgiving end of the webCustom web applicationsThe system your business actually runs on, built properlyMobile applicationsCross-platform where it makes sense, native where it does not

Расскажите нам, что вы пытаетесь сделать

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

Начать разговорЯ уже использую KamoCRMКак мы цитируем