Voice Call (плагин)
Голосовые звонки для OpenClaw через плагин. Поддерживает исходящие уведомления и многоходовые диалоги с политиками входящих вызовов. Текущие провайдеры:twilio(Programmable Voice + Media Streams)telnyx(Call Control v2)plivo(Voice API + XML transfer + GetInput speech)mock(dev/без сети)
- Установить плагин
- Перезапустить Gateway (шлюз)
- Настроить в разделе
plugins.entries.voice-call.config - Использовать
openclaw voicecall ...или инструментvoice_call
Где выполняется (локально vs удалённо)
Плагин Voice Call выполняется внутри процесса Gateway (шлюз). Если вы используете удалённый Gateway (шлюз), установите/настройте плагин на машине, где запущен Gateway (шлюз), затем перезапустите Gateway (шлюз) для его загрузки.Установка
Вариант A: установка из npm (рекомендуется)
Вариант B: установка из локальной папки (dev, без копирования)
Конфигурация
Задайте конфигурацию в разделеplugins.entries.voice-call.config:
- Twilio/Telnyx требуют публично доступный URL вебхука.
- Plivo требует публично доступный URL вебхука.
mock— локальный dev‑провайдер (без сетевых вызовов).- Telnyx требует
telnyx.publicKey(илиTELNYX_PUBLIC_KEY), если толькоskipSignatureVerificationне установлено в true. skipSignatureVerification— только для локального тестирования.- Если вы используете бесплатный тариф ngrok, установите
publicUrlв точный URL ngrok; проверка подписи выполняется всегда. tunnel.allowNgrokFreeTierLoopbackBypass: trueразрешает вебхуки Twilio с недействительными подписями только когдаtunnel.provider="ngrok"иserve.bind— loopback (локальный агент ngrok). Используйте только для локальной разработки.- URL бесплатного тарифа ngrok может меняться или добавлять промежуточные страницы; если
publicUrl«уплывает», подписи Twilio будут недействительны. Для продакшена предпочтительнее стабильный домен или Tailscale funnel.
Безопасность вебхуков
Когда перед Gateway (шлюз) находится прокси или туннель, плагин реконструирует публичный URL для проверки подписи. Эти параметры управляют тем, какие пробрасываемые заголовки считаются доверенными.webhookSecurity.allowedHosts добавляет хосты в allowlist из заголовков проксирования.
webhookSecurity.trustForwardingHeaders доверяет пробрасываемым заголовкам без allowlist.
webhookSecurity.trustedProxyIPs доверяет пробрасываемым заголовкам только когда удалённый IP
запроса совпадает со списком.
Пример со стабильным публичным хостом:
TTS для звонков
Voice Call использует базовую конфигурациюmessages.tts (OpenAI или ElevenLabs)
для потокового синтеза речи в звонках. Вы можете переопределить её в конфигурации
плагина с той же структурой — выполняется глубокое слияние с messages.tts.
- Edge TTS игнорируется для голосовых звонков (телефонный звук требует PCM; вывод Edge ненадёжен).
- Базовый TTS используется, когда включён медиастриминг Twilio; в противном случае звонки используют нативные голоса провайдера.
Дополнительные примеры
Использовать только базовый TTS (без переопределений):Входящие звонки
Политика входящих вызовов по умолчанию —disabled. Чтобы включить входящие звонки, установите:
responseModelresponseSystemPromptresponseTimeoutMs
CLI
Инструмент агента
Имя инструмента:voice_call
Действия:
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.
Gateway RPC
voicecall.initiate(to?,message,mode?)voicecall.continue(callId,message)voicecall.speak(callId,message)voicecall.end(callId)voicecall.status(callId)