fix: stabilize google meet twilio joins

This commit is contained in:
Peter Steinberger
2026-05-06 09:16:40 +01:00
parent 2eaf8ad712
commit a1b49c4b20
10 changed files with 249 additions and 41 deletions

View File

@@ -1668,16 +1668,16 @@ participant:
- Run `openclaw voicecall tail` and check that Twilio webhooks are arriving at
the Gateway.
- Run `openclaw logs --follow` and look for the Twilio Meet sequence: Google
Meet delegates the join, Voice Call starts the phone leg, Google Meet waits
`voiceCall.dtmfDelayMs`, sends DTMF with `voicecall.dtmf`, waits
`voiceCall.postDtmfSpeechDelayMs`, then requests intro speech with
`voicecall.speak`.
Meet delegates the join, Voice Call stores and serves pre-connect DTMF TwiML,
Voice Call serves realtime TwiML for the Twilio call, then Google Meet requests
intro speech with `voicecall.speak`.
- Re-run `openclaw googlemeet setup --transport twilio`; a green setup check is
required but does not prove the meeting PIN sequence is correct.
- Confirm the dial-in number belongs to the same Meet invitation and region as
the PIN.
- Increase `voiceCall.dtmfDelayMs` if Meet answers slowly or the call transcript
still shows the prompt asking for a PIN after DTMF was sent.
- Increase `voiceCall.dtmfDelayMs` from the 12-second default if Meet answers
slowly or the call transcript still shows the prompt asking for a PIN after
pre-connect DTMF was sent.
- If the participant joins but you do not hear the greeting, check
`openclaw logs --follow` for the post-DTMF `voicecall.speak` request and
either media-stream TTS playback or the Twilio `<Say>` fallback. If the call

View File

@@ -902,10 +902,11 @@ If Voice Call is green but the Meet participant never joins, check the Meet
dial-in number, PIN, and `--dtmf-sequence`. The phone call can be healthy while
the meeting rejects or ignores an incorrect DTMF sequence.
Google Meet passes the Meet DTMF sequence and intro text to `voicecall.start`.
For Twilio calls, Voice Call serves the DTMF TwiML first, redirects back to the
webhook, then opens the realtime media stream so the saved intro is generated
after the phone participant has joined the meeting.
Google Meet starts the Twilio phone leg through `voicecall.start` with a
pre-connect DTMF sequence. PIN-derived sequences include the Google Meet plugin's
`voiceCall.dtmfDelayMs` as leading Twilio wait digits. The default is 12 seconds
because Meet dial-in prompts can arrive late. Voice Call then redirects back to
realtime handling before the intro greeting is requested.
Use `openclaw logs --follow` for the live phase trace. A healthy Twilio Meet
join logs this order:
@@ -914,7 +915,7 @@ join logs this order:
- Voice Call stores pre-connect DTMF TwiML.
- Twilio initial TwiML is consumed and served before realtime handling.
- Voice Call serves realtime TwiML for the Twilio call.
- The realtime bridge starts with the initial greeting queued.
- Google Meet requests intro speech with `voicecall.speak` after the post-DTMF delay.
`openclaw voicecall tail` still shows persisted call records; it is useful for
call state and transcripts, but not every webhook/realtime transition appears