diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index e0d71cc7c..76e760eab 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "09d193c592b3bdaaca5c6df709b585c8e495bfa3", - "syncedAt": "2026-05-02T07:41:54.505Z" + "sha": "e4aab1419ab87404ffedb0fb1d61efe26ca5940d", + "syncedAt": "2026-05-02T07:44:03.433Z" } diff --git a/docs/.generated/config-baseline.sha256 b/docs/.generated/config-baseline.sha256 index 3851000d6..a14957d7c 100644 --- a/docs/.generated/config-baseline.sha256 +++ b/docs/.generated/config-baseline.sha256 @@ -1,4 +1,4 @@ -737056ad5544e24250ce91c000ae4a5fe0af751681a529f2e4710b383ef5d4e7 config-baseline.json +a7158716d9262edba32ef9a18ab04d9f48f83cb903444b6f87b991977b6be52f config-baseline.json 2d132b4c2e3b0e0f2524fc1cc889d3be658ad0e40c970b2d367bf27348883658 config-baseline.core.json f42329d45c095881bd226bdb192c235980658fd250606d0c0badc2b12f12f5d3 config-baseline.channel.json -726c2fb81319f05be6977cdf5c9598884feafc600e6c76d482be626f4983bc32 config-baseline.plugin.json +de03faf42db470fe419a3f93a5777161f830f0355912603c6795945e42f39735 config-baseline.plugin.json diff --git a/docs/plugins/voice-call.md b/docs/plugins/voice-call.md index 075aa00bd..27b5041de 100644 --- a/docs/plugins/voice-call.md +++ b/docs/plugins/voice-call.md @@ -109,6 +109,7 @@ Voice-call credentials accept SecretRefs. `plugins.entries.voice-call.config.twi provider: "twilio", // or "telnyx" | "plivo" | "mock" fromNumber: "+15550001234", // or TWILIO_FROM_NUMBER for Twilio toNumber: "+15550005678", + sessionScope: "per-phone", // per-phone | per-call twilio: { accountSid: "ACxxxxxxxx", @@ -192,6 +193,14 @@ Voice-call credentials accept SecretRefs. `plugins.entries.voice-call.config.twi +## Session scope + +By default, Voice Call uses `sessionScope: "per-phone"` so repeat calls from +the same caller keep conversation memory. Set `sessionScope: "per-call"` when +each carrier call should start with fresh context, for example reception, +booking, IVR, or Google Meet bridge flows where the same phone number may +represent different meetings. + ## Realtime voice conversations `realtime` selects a full-duplex realtime voice provider for live call @@ -212,7 +221,7 @@ Current runtime behaviour: - Voice Call exposes the shared `openclaw_agent_consult` realtime tool by default. The realtime model can call it when the caller asks for deeper reasoning, current information, or normal OpenClaw tools. - `realtime.fastContext.enabled` is default-off. When enabled, Voice Call first searches indexed memory/session context for the consult question and returns those snippets to the realtime model within `realtime.fastContext.timeoutMs` before falling back to the full consult agent only if `realtime.fastContext.fallbackToConsult` is true. - If `realtime.provider` points at an unregistered provider, or no realtime voice provider is registered at all, Voice Call logs a warning and skips realtime media instead of failing the whole plugin. -- Consult session keys reuse the existing voice session when available, then fall back to the caller/callee phone number so follow-up consult calls keep context during the call. +- Consult session keys reuse the stored call session when available, then fall back to the configured `sessionScope` (`per-phone` by default, or `per-call` for isolated calls). ### Tool policy