Chamada de Voz (plugin)
Chamadas de voz para o OpenClaw por meio de um plugin. Suporta notificações de saída e conversas de múltiplos turnos com políticas de entrada. Provedores atuais:twilio(Programmable Voice + Media Streams)telnyx(Call Control v2)plivo(Voice API + transferência XML + fala GetInput)mock(dev/sem rede)
- Instale o plugin
- Reinicie o Gateway
- Configure em
plugins.entries.voice-call.config - Use
openclaw voicecall ...ou a ferramentavoice_call
Onde ele roda (local vs remoto)
O plugin de Chamada de Voz roda dentro do processo do Gateway. Se você usar um Gateway remoto, instale/configure o plugin na máquina que executa o Gateway, depois reinicie o Gateway para carregá-lo.Instalação
Opção A: instalar a partir do npm (recomendado)
Opção B: instalar a partir de uma pasta local (dev, sem cópia)
Configuração
Defina a configuração emplugins.entries.voice-call.config:
- Twilio/Telnyx exigem uma URL de webhook publicamente acessível.
- Plivo exige uma URL de webhook publicamente acessível.
mocké um provedor local de dev (sem chamadas de rede).- Telnyx requer
telnyx.publicKey(ouTELNYX_PUBLIC_KEY), a menos queskipSignatureVerificationseja true. skipSignatureVerificationé apenas para testes locais.- Se você usar o plano gratuito do ngrok, defina
publicUrlpara a URL exata do ngrok; a verificação de assinatura é sempre aplicada. tunnel.allowNgrokFreeTierLoopbackBypass: truepermite webhooks do Twilio com assinaturas inválidas somente quandotunnel.provider="ngrok"eserve.bindé loopback (agente local do ngrok). Use apenas para dev local.- URLs do plano gratuito do ngrok podem mudar ou adicionar comportamento intermediário; se
publicUrlvariar, as assinaturas do Twilio falharão. Para produção, prefira um domínio estável ou um funnel do Tailscale.
Segurança de Webhook
Quando um proxy ou túnel fica na frente do Gateway, o plugin reconstrói a URL pública para verificação de assinatura. Essas opções controlam quais headers encaminhados são confiáveis.webhookSecurity.allowedHosts cria uma lista de permissões de hosts a partir dos headers de encaminhamento.
webhookSecurity.trustForwardingHeaders confia nos headers encaminhados sem uma lista de permissões.
webhookSecurity.trustedProxyIPs só confia nos headers encaminhados quando o IP remoto da requisição
corresponde à lista.
Exemplo com um host público estável:
TTS para chamadas
Chamada de Voz usa a configuração principal demessages.tts (OpenAI ou ElevenLabs) para
streaming de fala nas chamadas. Você pode sobrescrevê-la na configuração do plugin com o
mesmo formato — ela é mesclada em profundidade com messages.tts.
- O Edge TTS é ignorado para chamadas de voz (o áudio de telefonia precisa de PCM; a saída do Edge é pouco confiável).
- O TTS principal é usado quando o streaming de mídia do Twilio está habilitado; caso contrário, as chamadas recorrem às vozes nativas do provedor.
Mais exemplos
Usar apenas o TTS principal (sem sobrescrever):Chamadas de entrada
A política de entrada padrão édisabled. Para habilitar chamadas de entrada, defina:
responseModelresponseSystemPromptresponseTimeoutMs
CLI
Ferramenta de agente
Nome da ferramenta:voice_call
Ações:
initiate_call(message, to?, mode?)continue_call(callId, message)speak_to_user(callId, message)end_call(callId)get_status(callId)
skills/voice-call/SKILL.md.
RPC do Gateway
voicecall.initiate(to?,message,mode?)voicecall.continue(callId,message)voicecall.speak(callId,message)voicecall.end(callId)voicecall.status(callId)