Подрядчик закрыл свой этап и ушел с проекта полгода назад. Ссылка на еженедельную планерку так и осталась у него в календаре. Откроется ли комната, если он по ней нажмет? На демонстрации этот вопрос не всплывает. Два ноутбука в одной переговорке честно покажут, что собеседники слышат друг друга, и больше ничего. Они не расскажут, каким маршрутом идет медиатрафик из внешней сети, кто увидит запись совещания через месяц и удастся ли поднять её из резервной копии после сбоя.
Для российских компаний эти вопросы давно перестали быть технической формальностью. Многие сменили ВКС вынужденно, в режиме пожарной замены, и выбирали по принципу «лишь бы работало». Теперь выбор делают осознанно. Учитывают требования к импортонезависимости и закрытому контуру. Помнят, что запись совещания с лицами и голосами сотрудников содержит персональные данные. И хотят, чтобы разговоры о стратегии не покидали собственный периметр.
Поэтому ВКС стоит проверять не одним звонком, а всей жизнью одной встречи. Мы предлагаем такой сценарий заказчикам NextBox Calls и публикуем его целиком, включая места, где продукт ведет себя строже или иначе, чем можно ожидать. Возьмем проектную комнату и проведём через нее команду, внешнего подрядчика и несколько намеренно неудобных ситуаций.
Начните с самого неприятного. Создайте комнату, пригласите команду, затем исключите одного сотрудника из рабочей группы, но оставьте ему прежний URL. Если других прав на комнату у него нет, повторный вход должен закончиться отказом. В корпоративной ВКС ссылка обязана быть адресом, а не пропуском.
Подрядчик ставит обратную задачу. Ему нужен текущий разговор, но не история переписки, не файлы и не записи прошлых встреч. Обе проверки отвечают на один вопрос: кого адрес впускает и что человек видит.
В NextBox Calls сотрудники входят под учетными записями NextBox. Доступ к комнате назначается пространству, группам и отдельным пользователям. Поэтому отзыв группового права закрывает вход и по сохраненной ссылке, если другого разрешения у человека не осталось. Звонки опираются на те же учетные записи и группы, что и вся платформа, так что отдельный список доступа для них вести не нужно.
Гость же по ссылке попадает только в звонок той комнаты, куда его пригласили. Переписка, файлы, холсты и записи остаются для него закрытыми. Здесь важно видеть границу: введенное гостем имя ничего не удостоверяет. Если приглашение можно переслать, в комнату войдет любой, кто назовется нужным человеком. Для встреч с чувствительной повесткой регламент должен предусматривать сверку участника по независимому каналу.
Права сработали, но открытая комната еще не гарантирует беседу. Интерфейс и чат способны загрузиться, пока браузер безуспешно устанавливает медиасоединение. Сигнальный канал и медиаканал живут отдельно и отказывают тоже по отдельности.
Разведите участников по разным сетям. Один сидит в офисе, второй подключается через корпоративный VPN, подрядчик остается на мобильном интернете. Пусть они поговорят, покажут экран и переподключатся после обрыва. Для каждого зафиксируйте фактический адрес медиасервера, транспорт, задержку, джиттер и потери пакетов. В браузерах на базе Chromium все это видно на служебной странице.
В NextBox Calls комнатами и правами управляет само приложение, а аудио и видео идут через медиасервер LiveKit по WebRTC. LiveKit работает как SFU: он не сводит потоки в один, а пересылает каждому участнику только нужные. Для сервера и клиентских устройств предусмотрены отдельные адреса медиасервиса. Сетевой команде предстоит проверить точки терминации TLS, трансляцию адресов, разрешенные направления и порты. Отдельно проверьте запасной маршрут через TCP или TURN на случай, когда межсетевой экран закрывает UDP. В крупных компаниях это не экзотика, а обычная конфигурация. Именно здесь прячется типичная жалоба «чат работает, а звонок висит на подключении».
Схема размещения компонентов и протокол теста из трех сетей скажут о продукте больше, чем слово on-premise в коммерческом предложении.
Запишите разговор и дождитесь файла. Запись в NextBox Calls собирает отдельный компонент LiveKit Egress, поэтому нажатый «Стоп» ещё не означает готового видео: между остановкой и появлением файла идет обработка. Данную функцию включают при развертывании. На пилоте можно увидеть оба исхода, успешную сборку записи и ошибку.
Теперь о том, кто нажимает кнопку. Запустить запись может любой авторизованный участник комнаты. Гостю эта возможность недоступна, а личные звонки сервис не записывает вовсе. Если внутренний регламент оставляет право записи только ведущему, такое расхождение лучше обнаружить уже на пилоте.
С записью связан и вопрос, который российские юристы задают первым. Раз видео совещания содержит персональные данные, компании нужны понятные правила: как участники узнают о записи, сколько она хранится и кто отвечает за удаление. Эти правила ВКС должна позволять исполнять.
Права на готовую запись проверяются отдельно от прав на комнату. Обычный сотрудник видит видео, если присутствовал во время записи. Коллега, которого добавили в комнату позже, прежний файл не получит: доступ к комнате не открывает ее прошлое автоматически. Логика строгая, и ее полезно заранее показать будущим пользователям, чтобы она не стала сюрпризом.
Затем устройте учебную катастрофу и восстановите материалы из резервной копии. Прикладное состояние NextBox Calls хранится в PostgreSQL, а файлы комнат и записи лежат в отдельном постоянном томе. Проверьте на пилоте всю связку целиком. Тут же зафиксируйте срок хранения записей, ответственного за удаление и порядок восстановления после сбоя.
Пусть кто-нибудь отправит в чат комнаты документ, который команда решит оставить в проекте. Сам по себе файл из комнаты в NextBox Storage не попадает. Действие «Сохранить в NextBox» создаёт в платформе отдельную копию, и её удаление не затрагивает исходник в комнате. Для работы это удобно: согласованная версия одним действием уходит в проектную папку, а черновики остаются там, где их обсуждали.
Запустите расшифровку готовой записи и на время остановите обслуживающий ее сервис. Пока он недоступен, проведите ещё один звонок. Обработка записей должна быть вынесена отдельно от разговора, поэтому сбой расшифровки не должен задеть живую встречу. Заодно выясните две вещи: что пользователь увидит вместо текста и по каким признакам администратор найдёт причину. Такой тест проверяет не наличие функции в меню, а то, сможет ли ваша команда сопровождать ее в собственной инфраструктуре.
Хороший пилот заканчивается не впечатлениями, а протоколом. Старая ссылка не открыла комнату. Гость не увидел ее истории. Медиатрафик прошел через согласованные узлы во всех трех сетях. Запись восстановилась из резервной копии вместе с базой. Документ попал в хранилище только после явного действия пользователя, а сбой расшифровки не остановил звонок. Каждый из этих фактов можно предъявить службе ИБ, сетевикам и юристам. Каждый снимает конкретный риск, а не абстрактное сомнение. И все это уже успешно реализовано в NextBox Calls.
NextBox Calls работает как часть платформы NextBox. Там, где группы и проектные файлы уже живут в NextBox, звонки встраиваются в существующий процесс без второго каталога пользователей и второй модели прав. На выходе вы получаете не еще одну ВКС в зоопарке сервисов, а единый рабочий контур, где разговоры, файлы и доступы подчиняются одним правилам.