Voice Call (wtyczka)
Połączenia głosowe dla OpenClaw realizowane przez wtyczkę. Obsługuje powiadomienia wychodzące oraz wieloturowe rozmowy z politykami połączeń przychodzących. Aktualni dostawcy:twilio(Programmable Voice + Media Streams)telnyx(Call Control v2)plivo(Voice API + XML transfer + GetInput speech)mock(dev/bez sieci)
- Zainstaluj wtyczkę
- Zrestartuj Gateway
- Skonfiguruj w sekcji
plugins.entries.voice-call.config - Użyj
openclaw voicecall ...lub narzędziavoice_call
Gdzie działa (lokalnie vs zdalnie)
Wtyczka Voice Call działa wewnątrz procesu Gateway. Jeśli używasz zdalnego Gateway, zainstaluj/skonfiguruj wtyczkę na maszynie uruchamiającej Gateway, a następnie zrestartuj Gateway, aby ją załadować.Instalacja
Opcja A: instalacja z npm (zalecane)
Opcja B: instalacja z lokalnego folderu (dev, bez kopiowania)
Konfiguracja
Ustaw konfigurację wplugins.entries.voice-call.config:
- Twilio/Telnyx wymagają publicznie dostępnego adresu URL webhooka.
- Plivo wymaga publicznie dostępnego adresu URL webhooka.
mockto lokalny dostawca deweloperski (bez wywołań sieciowych).- Telnyx wymaga
telnyx.publicKey(lubTELNYX_PUBLIC_KEY), chyba że ustawionoskipSignatureVerificationna true. skipSignatureVerificationjest przeznaczony wyłącznie do testów lokalnych.- Jeśli używasz darmowego planu ngrok, ustaw
publicUrlna dokładny adres URL ngrok; weryfikacja podpisów jest zawsze wymuszana. tunnel.allowNgrokFreeTierLoopbackBypass: truezezwala na webhooki Twilio z nieprawidłowymi podpisami wyłącznie, gdytunnel.provider="ngrok"orazserve.bindto loopback (lokalny agent ngrok). Używać tylko do lokalnego dev.- Adresy URL darmowego planu ngrok mogą się zmieniać lub dodawać zachowanie pośrednie; jeśli
publicUrlulegnie rozjazdowi, podpisy Twilio będą zawodzić. W produkcji preferuj stabilną domenę lub funnel Tailscale.
Bezpieczeństwo webhooków
Gdy przed Gateway znajduje się proxy lub tunel, wtyczka rekonstruuje publiczny adres URL na potrzeby weryfikacji podpisu. Te opcje kontrolują, które nagłówki przekazywane są uznawane za zaufane.webhookSecurity.allowedHosts tworzy listę dozwolonych hostów z nagłówków przekazywania.
webhookSecurity.trustForwardingHeaders ufa nagłówkom przekazywania bez listy dozwolonych.
webhookSecurity.trustedProxyIPs ufa nagłówkom przekazywania tylko wtedy, gdy
zdalny adres IP żądania pasuje do listy.
Przykład ze stabilnym publicznym hostem:
TTS dla połączeń
Voice Call używa podstawowej konfiguracjimessages.tts (OpenAI lub ElevenLabs) do
strumieniowego generowania mowy w połączeniach. Możesz ją nadpisać w konfiguracji wtyczki,
zachowując ten sam kształt — następuje głębokie scalenie z messages.tts.
- Edge TTS jest ignorowany dla połączeń głosowych (audio telefoniczne wymaga PCM; wyjście Edge jest zawodne).
- Podstawowy TTS jest używany, gdy włączone jest strumieniowanie mediów Twilio; w przeciwnym razie połączenia przechodzą na natywne głosy dostawcy.
Więcej przykładów
Użyj tylko podstawowego TTS (bez nadpisywania):Połączenia przychodzące
Domyślna polityka połączeń przychodzących todisabled. Aby włączyć połączenia przychodzące, ustaw:
responseModelresponseSystemPromptresponseTimeoutMs
CLI
Narzędzie agenta
Nazwa narzędzia:voice_call
Akcje:
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 Gateway
voicecall.initiate(to?,message,mode?)voicecall.continue(callId,message)voicecall.speak(callId,message)voicecall.end(callId)voicecall.status(callId)