Видеоконференции в 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
Расскажите нам, что вы пытаетесь сделать
Обычно достаточно короткого разговора, чтобы узнать, являемся ли мы подходящими людьми. Если нет, мы скажем вам об этом и покажем вам куда-нибудь лучше.
