Skip to main content

POST Ativar Gravação

Inicia a gravação de áudio da sala (composta + por participante), enviada para o Cloudflare R2.

Autenticação necessária

Esta rota requer o header Authorization: Bearer {accessToken}

Sem permissão específica

Não exige @CheckPermissions — qualquer usuário autenticado pode chamar.

Precisa de participante conectado

Deve ser chamada só depois que houver alguém conectado na sala com áudio/vídeo publicado — o LiveKit Room Composite exige isso pra receber o sinal de início de gravação.

Só áudio

A gravação é audioOnly, formato OGG. Não há gravação de vídeo.


Endpoint

POST https://api-dev.imagemais.com.br/api/telemedicine/activate-recording

Corpo da Requisição

CampoTipoObrigatórioDescrição
consultationIdnumber (inteiro positivo)ID da consulta

O que acontece

  1. Se a feature flag LIVEKIT_ENABLE_RECORDING estiver desligada, retorna { data: { isRecording: false } } sem erro (não grava, mas responde 201 normalmente).
  2. Busca a consulta e a sala (404 em ambos os casos se não encontrar).
  3. Se a sala já está gravando (room.activeRecording), retorna { data: { isRecording: true } } sem iniciar de novo (idempotente).
  4. Se não há nenhum participante na sala, retorna 400.
  5. Inicia egress composto da sala + um egress por faixa de áudio de cada participante conectado, todos enviados ao R2 em telemedicine/{sha256(consultationId)}/....

Requisição

curl -X 'POST' \
'https://api-dev.imagemais.com.br/api/telemedicine/activate-recording' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {accessToken}' \
-d '{
"consultationId": 123
}'

Respostas

201 Sucesso

{
"data": { "isRecording": true }
}

201 Gravação desabilitada (feature flag)

{
"data": { "isRecording": false }
}

400 Nenhum participante na sala

{
"statusCode": 400,
"message": "Nenhum participante na sala. Conecte-se à sala antes de iniciar a gravação."
}

404 Consulta não encontrada

{
"statusCode": 404,
"message": "Consulta não encontrada"
}

404 Sala de telemedicina não encontrada

{
"statusCode": 404,
"message": "Sala de telemedicina não encontrada"
}