Inicia chamada nativa de voz
Usa a sessão Baileys já conectada e o runtime WASM/WebRTC do servidor, sem serviço externo.
curl -X POST "https://seu-dominio/instances/:id/calls" \
-H "x-api-key: $VERTICE_API_KEY" \
-H "content-type: application/json" \
-d '{"to":"5511999999999","type":"audio","durationMs":30000}'
const response = await fetch('https://seu-dominio/instances/:id/calls', {
method: 'POST',
headers: {
'x-api-key': process.env.VERTICE_API_KEY ?? '',
'content-type': 'application/json',
},
body: JSON.stringify({
"to": "5511999999999",
"type": "audio",
"durationMs": 30000
}),
});
const payload = await response.json();
console.log(payload);
Conceituação
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.
Respostas de sucesso seguem { "data": ... }; erros seguem { "error": { "code", "message" } }. Operações de escrita exigem escopo write quando autenticadas por API key.
Atributos
Header
x-api-key
string
obrigatório
API key do workspace (vtc_live_...). Também aceita Authorization: Bearer.
content-type
string
obrigatório
application/json.
Path
id
string
obrigatório
ID da instância.
Body
to
string
opcional
Telefone com DDI e DDD, ou JID de grupo terminando em @g.us.
type
string
opcional
Campo type do corpo JSON.
durationMs
integer
opcional
Campo durationMs do corpo JSON.
Request Body
{
"to": "5511999999999",
"type": "audio",
"durationMs": 30000
}
Resposta
{
"data": {
"ok": true
}
}
Respostas de sucesso são envelopadas em data.