Appel vocal (plugin)
Appels vocaux pour OpenClaw via un plugin. Prend en charge les notifications sortantes et les conversations multi-tours avec des politiques entrantes. Fournisseurs actuels :twilio(Programmable Voice + Media Streams)telnyx(Call Control v2)plivo(Voice API + transfert XML + GetInput speech)mock(dev/pas de reseau)
- Installer le plugin
- Redemarrer la Gateway (passerelle)
- Configurer sous
plugins.entries.voice-call.config - Utiliser
openclaw voicecall ...ou l’outilvoice_call
Ou cela s’execute (local vs distant)
Le plugin Appel vocal s’execute a l’interieur du processus de la Gateway (passerelle). Si vous utilisez une Gateway (passerelle) distante, installez/configurez le plugin sur la machine qui execute la Gateway (passerelle), puis redemarrez la Gateway (passerelle) pour le charger.Installation
Option A : installer depuis npm (recommande)
Option B : installer depuis un dossier local (dev, sans copie)
Configuration
Definissez la configuration sousplugins.entries.voice-call.config :
- Twilio/Telnyx necessitent une URL de webhook accessible publiquement.
- Plivo necessite une URL de webhook accessible publiquement.
mockest un fournisseur local de dev (aucun appel reseau).- Telnyx nécessite
telnyx.publicKey(ouTELNYX_PUBLIC_KEY) sauf siskipSignatureVerificationest défini sur true. skipSignatureVerificationest reserve aux tests locaux uniquement.- Si vous utilisez l’offre gratuite ngrok, definissez
publicUrlsur l’URL ngrok exacte ; la verification de signature est toujours appliquee. tunnel.allowNgrokFreeTierLoopbackBypass: trueautorise les webhooks Twilio avec des signatures invalides uniquement lorsquetunnel.provider="ngrok"et queserve.bindest en loopback (agent local ngrok). A utiliser uniquement pour le dev local.- Les URL de l’offre gratuite ngrok peuvent changer ou ajouter un comportement interstitiel ; si
publicUrldiverge, les signatures Twilio echoueront. En production, preferez un domaine stable ou un funnel Tailscale.
Securite des webhooks
Lorsqu’un proxy ou un tunnel se trouve devant la Gateway (passerelle), le plugin reconstruit l’URL publique pour la verification de signature. Ces options controlent quels en-tetes transmis sont approuves.webhookSecurity.allowedHosts met sur liste d’autorisation les hôtes provenant des en-tetes de transfert.
webhookSecurity.trustForwardingHeaders fait confiance aux en-tetes de transfert sans liste d’autorisation.
webhookSecurity.trustedProxyIPs ne fait confiance aux en-tetes de transfert que lorsque l’IP distante de la requete correspond a la liste.
Exemple avec un hôte public stable :
TTS pour les appels
L’Appel vocal utilise la configuration TTS principalemessages.tts (OpenAI ou ElevenLabs) pour
la synthese vocale en streaming pendant les appels. Vous pouvez la remplacer sous la configuration du plugin avec la meme structure — elle est fusionnee en profondeur avec messages.tts.
- Edge TTS est ignore pour les appels vocaux (l’audio de telephonie necessite du PCM ; la sortie Edge est peu fiable).
- Le TTS principal est utilise lorsque le streaming media Twilio est active ; sinon, les appels basculent vers les voix natives du fournisseur.
Plus d’exemples
Utiliser uniquement le TTS principal (sans surcharge) :Appels entrants
La politique entrante par defaut estdisabled. Pour activer les appels entrants, definissez :
responseModelresponseSystemPromptresponseTimeoutMs
CLI
Outil d’agent
Nom de l’outil :voice_call
Actions :
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 de la Gateway (passerelle)
voicecall.initiate(to?,message,mode?)voicecall.continue(callId,message)voicecall.speak(callId,message)voicecall.end(callId)voicecall.status(callId)