Pular para conteúdo

Listar Eventos de uma Chamada

O endpoint /api/calls/{id}/events permite listar todos os eventos ocorridos durante uma chamada utilizando seu Token de API.

Requisição

Lista os eventos de uma chamada específica, incluindo entrada e saída de participantes.

Cabeçalhos:

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

Parâmetros de consulta

  • type: (string, opcional) Filtra eventos por tipo específico. Valores possíveis:
  • call_started - Início da chamada (primeiro participante)
  • call_ended - Fim da chamada
  • participant_joined - Participante entrou
  • participant_left - Participante saiu
  • participant_reconnected - Participante reconectou
  • disconnected - Desconexão inesperada

Exemplos de Implementação

# Listar todos os eventos
curl -X GET "https://api.videochamada.com.br/api/calls/{id}/events" \
  -H "Authorization: Bearer {API_TOKEN}"

# Filtrar apenas eventos de entrada
curl -X GET "https://api.videochamada.com.br/api/calls/{id}/events?type=participant_joined" \
  -H "Authorization: Bearer {API_TOKEN}"
import requests

# Listar todos os eventos
response = requests.get(
    "https://api.videochamada.com.br/api/calls/{id}/events",
    headers={"Authorization": "Bearer {API_TOKEN}"}
)

# Filtrar por tipo
response = requests.get(
    "https://api.videochamada.com.br/api/calls/{id}/events",
    headers={"Authorization": "Bearer {API_TOKEN}"},
    params={"type": "participant_joined"}
)
print(response.json())
// Listar todos os eventos
const response = await fetch('https://api.videochamada.com.br/api/calls/{id}/events', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer {API_TOKEN}'
  }
});

// Filtrar por tipo
const filtered = await fetch('https://api.videochamada.com.br/api/calls/{id}/events?type=participant_joined', {
  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}");

// Listar todos os eventos
var response = await client.GetAsync("https://api.videochamada.com.br/api/calls/{id}/events");

// Filtrar por tipo
var filtered = await client.GetAsync("https://api.videochamada.com.br/api/calls/{id}/events?type=participant_joined");

var content = await response.Content.ReadAsStringAsync();
Console.WriteLine(content);

Resposta

Exemplo de Resposta:

[
  {
    "id": "event_124",
    "type": "participant_joined",
    "sessionId": "session_abc123",
    "participantName": "João Silva",
    "timestamp": "2025-10-16T10:05:02Z"
  },
  {
    "id": "event_125",
    "type": "participant_joined",
    "sessionId": "session_def456",
    "participantName": "Maria Santos",
    "timestamp": "2025-10-16T10:06:15Z"
  },
  {
    "id": "event_126",
    "type": "disconnected",
    "sessionId": "session_abc123",
    "participantName": "João Silva",
    "timestamp": "2025-10-16T10:35:00Z"
  },
  {
    "id": "event_127",
    "type": "participant_left",
    "sessionId": "session_def456",
    "participantName": "Maria Santos",
    "timestamp": "2025-10-16T10:35:30Z"
  }
]

Explicação dos Campos:

A resposta é um array direto de eventos (não um objeto com data).

Objeto de Evento:

  • id: Identificador único do evento
  • type: Tipo do evento
  • sessionId: ID da sessão WebRTC do participante (quando aplicável)
  • participantName: Nome do participante (quando aplicável)
  • timestamp: Data e hora em que o evento ocorreu

Tipos de Eventos:

  • call_started: Primeiro participante entrou na chamada
  • call_ended: Chamada foi encerrada
  • participant_joined: Um participante entrou na chamada
  • participant_left: Um participante saiu da chamada
  • participant_reconnected: Um participante reconectou após queda
  • disconnected: Desconexão inesperada de um participante

Boas Práticas

  • Rastreamento de Participantes: Use este endpoint para construir relatórios detalhados de participação.
  • Análise de Qualidade: Eventos de disconnected podem indicar problemas de conexão.
  • Cálculo de Duração: Combine eventos de participant_joined e participant_left para calcular tempo de permanência individual.
  • Auditoria: Mantenha logs dos eventos para fins de auditoria e troubleshooting.