Skip to content

Инварианты клиентской интеграции

Эти правила обязательны для собственного клиента или сервисного участника. Они описывают наблюдаемое поведение протокола, а не внутреннюю реализацию ядра.

Управление и авторизация

  • Сервер является источником состояния участников, устройств и прав. Локальное намерение клиента не заменяет подтверждение сервера.
  • Управляющий WSS, медиа и файлы имеют разные назначения. Не отправляйте медиа как JSON-команды или файлы через управляющий канал.
  • Используйте access token с нужными scopes; service account не должен получать права владельца только ради удобства интеграции.
  • Секрет интеграции хранится на backend. Серверный JWT secret не передаётся браузеру или партнёру.
  • Ошибку сети или временную недоступность сервера нельзя трактовать как удаление аккаунта.

Идентичности

  • Пользователь, подключение, участие в конференции, устройство и SSRC не взаимозаменяемы. Один пользователь может иметь несколько подключений.
  • Партнёр передаёт стабильный внешний ID человека, не его отображаемое имя или случайный ID браузера.
  • conference_tag задаёт комнату, а conference_session_id — конкретный созвон. Для результатов нескольких запусков сервиса учитывайте также job_id и сервер/интеграцию.

Медиа и восстановление

  • Создавайте и удаляйте устройства через control-команды. Не публикуйте от имени неразрешённого устройства.
  • Привязывайте получаемый трек к подтверждённому endpoint/SSRC. Не объединяйте устройства разных подключений только по пользователю.
  • Обрабатывайте удаление устройства симметрично добавлению: освобождайте подписку и локальные ресурсы.
  • После reconnect согласуйте состояние с сервером. Повторные события не должны порождать дубли устройств и подписок.
  • Модерация применяется сервером. Захват микрофона или экрана всё равно требует разрешения пользователя и поддержки платформой.

Результаты и сервисы

  • Работающий CAN-worker не означает активное задание. Создание комнаты не запускает live-транскрибацию автоматически.
  • Для CAN требуется действующий trial или полный ключ; service token не заменяет лицензию.
  • Повторы webhook дедуплицируются по event.id. Отвечайте 2xx только после надёжного сохранения события.
  • Один transcription.ready завершает один запуск ASR, не обязательно весь созвон. Не затирайте другие части разговора.

Подробности: команды, конференция и устройства, авторизация, собственный клиент, CRM и транскрипт.