vértice
Produto Preços Painel
Ligações

Ligações

Chamadas nativas beta: originação, atendimento recebido, áudio em arquivo e transporte PCM com token por chamada. SIP e vídeo indisponíveis.

Referência

11 endpoints

GET /instances/:id/calls →

Histórico recente de chamadas

Lista as chamadas recentes observadas pelo socket.

API key · Escopo read
POST /instances/:id/calls/reject →

Rejeita uma chamada recebida

Rejeita uma chamada recebida pelo ID e JID do autor.

API key · Escopo write
POST /instances/:id/calls/link →

Gerar link de chamada

Gera um link de chamada de áudio ou vídeo.

API key · Escopo write
POST /instances/:id/calls →

Inicia chamada nativa de voz

Usa a sessão Baileys já conectada e o runtime WASM/WebRTC do servidor, sem serviço externo. Header Idempotency-Key obrigatório; repetir a chave retorna a mesma chamada. base64 opcional contém arquivo de áudio puro; durationMs opcional aceita 1000..120000. Retorna 202 com provider=vertice, transport=native e stateSource=native_engine. Estados seguem eventos do engine: initiating, ringing, connected, ended, failed, interrupted. Runtime indisponível retorna 503 voice_engine_unavailable. O destinatário é resolvido para o número canônico registrado no WhatsApp antes da discagem; cadastro ausente retorna 400 voice_recipient_not_found. Uma chamada ativa por número; cada chamada usa processo filho isolado, com sinalização pela sessão Baileys existente. O padrão WA_VOICE_MAX_CONCURRENT_CALLS=0 remove o teto fixo por servidor; cada número pode ligar independentemente. Um valor de 1..200 define um teto operacional opcional. Capabilities retornam maxCallsPerNumber=1 e maxConcurrentCalls=null quando não há teto fixo. Falta de memória ou teto operacional atingido retorna 429 voice_capacity_reached. A capacidade real depende de CPU e memória; 100 simultâneas ainda não foram validadas. Áudio em aparelho pareado ainda exige homologação.

API key · Escopo write
GET /instances/:id/calls/:callId →

Estado da chamada pelos eventos do engine nativo

stateSource=native_engine. Estados: initiating, ringing, connected, ended, failed, interrupted. connected representa evento do engine e não comprova áudio audível no aparelho.

API key · Escopo read
POST /instances/:id/calls/:callId/end →

Encerrar chamada nativa

Operação idempotente. O estado reflete o engine nativo; falhas não são convertidas em sucesso.

API key · Escopo write
POST /instances/:id/calls/:callId/audio →

Reproduz arquivo de áudio na chamada nativa conectada

O próprio servidor reproduz o arquivo quando a chamada está connected. Exige base64 puro válido com até 750 KB. acceptedByEngine confirma execução no engine, sem comprovar áudio audível no aparelho. Esta rota reproduz arquivo. O softphone de Conversas usa microfone e áudio WSS por /calls/:callId/media/live; atendimento usa /accept. Vídeo e SIP indisponíveis; áudio no aparelho ainda exige homologação.

API key · Escopo write
POST /instances/:id/calls/:callId/accept →

Atende chamada recebida

callId é o ID local de uma oferta recebida pelo socket. Oferta expira em60s. Não cria outro socket/pareamento. Eventos call acompanham estados do motor; mídia exige negociação e homologação real.

API key · Escopo write
POST /instances/:id/calls/:callId/media-token →

Emite token de áudio por chamada

Exige chamada connected. Token de30s, vinculado à chamada/instância; nova emissão revoga o anterior. Além da autenticação normal, envie x-voice-media-token no transporte binário. Resposta token/expiresAt/format=f32le.

API key · Escopo write
GET /instances/:id/calls/:callId/media →

Lê quadros de áudio recebidos

Resposta application/octet-stream com até10 quadros float32 little-endian. Headers x-pcm-capture e x-pcm-playback contêm formatos negociados, x-pcm-dropped-frames informa descarte acumulado. Buffer vazio indica ausência de quadros. Token e autenticação normal obrigatórios; no-store.

API key · Escopo read
POST /instances/:id/calls/:callId/media →

Injeta quadro de áudio na chamada

Envie exatamente um quadro application/octet-stream float32 little-endian, tamanho negociado. Amostras finitas entre-1 e1. Limite HTTP32KiB, até4 escritas pendentes. 409 negociação pendente;429 pressão no canal. Exige autenticação normal e x-voice-media-token.

API key · Escopo write