Pular para conteúdo

Obter Status de uma Chamada

O endpoint /api/calls/{id}/status permite obter o status detalhado de uma chamada, incluindo contagem de participantes ativos, utilizando seu Token de API.

Requisição

Obtém informações em tempo real sobre o status de uma chamada específica.

Cabeçalhos:

{
  "Authorization": "Bearer {API_TOKEN}"
}

Exemplos de Implementação

curl -X GET "https://api.videochamada.com.br/api/calls/{id}/status" \
  -H "Authorization: Bearer {API_TOKEN}"
import requests

response = requests.get(
    "https://api.videochamada.com.br/api/calls/{id}/status",
    headers={"Authorization": "Bearer {API_TOKEN}"}
)
print(response.json())
const response = await fetch('https://api.videochamada.com.br/api/calls/{id}/status', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer {API_TOKEN}'
  }
});

const data = await response.json();
console.log(data);
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer {API_TOKEN}");
var response = await client.GetAsync("https://api.videochamada.com.br/api/calls/{id}/status");
var content = await response.Content.ReadAsStringAsync();

Console.WriteLine(content);

Resposta

Exemplo de Resposta:

{
  "callId": "call_123",
  "status": "active",
  "started": "2025-10-16T10:05:00Z",
  "durationMinutes": 15,
  "activeParticipants": 3,
  "participants": [
    {
      "sessionId": "session_abc123",
      "username": "João Silva",
      "joinedAt": "2025-10-16T10:05:02Z",
      "active": true
    },
    {
      "sessionId": "session_def456",
      "username": "Maria Santos",
      "joinedAt": "2025-10-16T10:06:15Z",
      "active": true
    }
  ],
  "totalBillableMinutes": "15.50"
}
{
  "callId": "call_456",
  "status": "ended",
  "started": "2025-10-16T09:02:00Z",
  "durationMinutes": 43,
  "activeParticipants": 0,
  "participants": [],
  "totalBillableMinutes": "86.00"
}

Explicação dos Campos:

  • callId: Identificador único da chamada
  • status: Status atual da chamada
  • created: Chamada criada mas ainda não iniciada
  • active: Chamada em andamento
  • ended: Chamada encerrada
  • started: Data e hora de início da chamada (quando primeiro participante entrou)
  • durationMinutes: Duração da chamada em minutos (desde o início até agora ou até o fim)
  • activeParticipants: Número de participantes atualmente ativos na chamada
  • participants: Array com detalhes dos participantes ativos
  • sessionId: ID único da sessão WebRTC do participante
  • username: Nome do participante
  • joinedAt: Data e hora em que o participante entrou
  • active: Indica se o participante está atualmente ativo
  • totalBillableMinutes: Total de minutos faturáveis acumulados

Boas Práticas

  • Monitoramento em Tempo Real: Use este endpoint para criar dashboards de monitoramento de chamadas ativas.
  • Alertas: Implemente verificações periódicas para detectar chamadas longas ou com muitos participantes.
  • Polling: Se necessário fazer polling, respeite intervalos de pelo menos 5 segundos entre requisições.
  • Webhooks: Para notificações automáticas de mudança de status, considere usar webhooks em vez de polling constante.

Casos de Uso

  • Dashboard de Administração: Mostrar chamadas ativas em tempo real
  • Relatórios de Uso: Calcular duração e custo de chamadas em andamento
  • Sistemas de Fila: Verificar se há vagas disponíveis antes de adicionar novos participantes
  • Alertas de Capacidade: Notificar quando uma chamada atinge determinado número de participantes