- Deze neemt alleen deel aan een expliciete
https://meet.google.com/...-URL. - Deze kan via de Google Meet API een nieuwe Meet-ruimte maken en vervolgens deelnemen aan de geretourneerde URL.
agentis de standaard terugspreekmodus: realtime transcriptie luistert, de geconfigureerde OpenClaw-agent antwoordt, en reguliere OpenClaw-TTS spreekt in Meet.bidiblijft beschikbaar als fallbackmodus voor een direct realtime-spraakmodel.- Agents kiezen het deelnamegedrag met
mode: gebruikagentvoor live luisteren/terugspreken,bidials fallback voor directe realtime spraak, oftranscribeom de browser te openen/besturen zonder de terugspreekbrug. - Auth start als persoonlijke Google OAuth of een al ingelogd Chrome-profiel.
- Er is geen automatische toestemmingsaankondiging.
- De standaard Chrome-audiobackend is
BlackHole 2ch. - Chrome kan lokaal draaien of op een gekoppelde Node-host.
- Twilio accepteert een inbelnummer plus optionele PIN of DTMF-reeks; het kan niet rechtstreeks naar een Meet-URL bellen.
- De CLI-opdracht is
googlemeet;meetis gereserveerd voor bredere teleconference-workflows van agents.
Snelstart
Installeer de lokale audio-afhankelijkheden en configureer een realtime-transcriptieprovider plus reguliere OpenClaw-TTS. OpenAI is de standaard transcriptieprovider; Google Gemini Live werkt ook als een afzonderlijkebidi-spraakfallback met
realtime.voiceProvider: "google":
blackhole-2ch installeert het virtuele audioapparaat BlackHole 2ch. Het
installatieprogramma van Homebrew vereist een herstart voordat macOS het apparaat toont:
--mode transcribe; die modus slaat realtime audiovereisten over
omdat deze niet via de brug luistert of spreekt:
voice-call-Plugin, Twilio-referenties en openbare Webhook-blootstelling klaar zijn.
Behandel elke ok: false-controle als een blokkade voor het gecontroleerde transport en de modus
voordat je een agent vraagt deel te nemen. Gebruik openclaw googlemeet setup --json voor
scripts of machineleesbare uitvoer. Gebruik --transport chrome,
--transport chrome-node of --transport twilio om een specifiek
transport vooraf te controleren voordat een agent het probeert.
Voor Twilio moet je het transport altijd expliciet vooraf controleren wanneer het standaardtransport
Chrome is:
voice-call-bedrading, Twilio-referenties of onbereikbare
Webhook-blootstelling op voordat de agent probeert in te bellen bij de vergadering.
Neem deel aan een vergadering:
google_meet-tool:
google_meet-tool blijft beschikbaar op niet-macOS-hosts voor
artifact-, agenda-, setup-, transcriptie-, Twilio- en chrome-node-flows. Lokale
Chrome-terugspreekacties worden daar geblokkeerd omdat het gebundelde Chrome-audiopad
momenteel afhankelijk is van macOS BlackHole 2ch. Gebruik op Linux mode: "transcribe",
Twilio-inbellen of een macOS chrome-node-host voor Chrome-terugspreekdeelname.
Maak een nieuwe vergadering en neem eraan deel:
SpaceConfig.accessType wanneer je wilt
dat het geen-aanklopbeleid van de ruimte expliciet is in plaats van overgenomen uit de standaardinstellingen
van het Google-account:
OPEN laat iedereen met de Meet-URL deelnemen zonder aan te kloppen. TRUSTED laat de
vertrouwde gebruikers van de hostorganisatie, uitgenodigde externe gebruikers en inbelgebruikers
deelnemen zonder aan te kloppen. RESTRICTED beperkt toegang zonder aankloppen tot genodigden. Deze
instellingen zijn alleen van toepassing op het officiële aanmaakpad van de Google Meet API, dus OAuth-
referenties moeten zijn geconfigureerd.
Als je Google Meet hebt geauthenticeerd voordat deze optie beschikbaar was, voer dan opnieuw
openclaw googlemeet auth login --json uit nadat je het
meetings.space.settings-bereik aan je Google OAuth-toestemmingsscherm hebt toegevoegd.
Maak alleen de URL zonder deel te nemen:
googlemeet create heeft twee paden:
- API-aanmaak: gebruikt wanneer Google Meet OAuth-referenties zijn geconfigureerd. Dit is het meest deterministische pad en is niet afhankelijk van de browser-UI-status.
- Browserfallback: gebruikt wanneer OAuth-referenties ontbreken. OpenClaw gebruikt de
gepinde Chrome-Node, opent
https://meet.google.com/new, wacht tot Google omleidt naar een echte URL met vergadercode en retourneert vervolgens die URL. Dit pad vereist dat het OpenClaw Chrome-profiel op de Node al bij Google is ingelogd. Browserautomatisering verwerkt de eigen eerste microfoonprompt van Meet; die prompt wordt niet behandeld als een Google-inlogfout. Deelname- en aanmaakflows proberen ook een bestaande Meet-tab te hergebruiken voordat ze een nieuwe openen. Matching negeert onschuldige URL-querystrings zoalsauthuser, zodat een nieuwe poging van een agent de al geopende vergadering zou moeten focussen in plaats van een tweede Chrome-tab te maken.
source-veld (api of browser), zodat agents
kunnen uitleggen welk pad is gebruikt. create neemt standaard deel aan de nieuwe vergadering en
retourneert joined: true plus de deelnamesessie. Gebruik
create --no-join in de CLI, of geef "join": false door aan de tool, om alleen de URL te maken.
Of zeg tegen een agent: “Maak een Google Meet, neem eraan deel met de terugspreekmodus van de agent,
en stuur mij de link.” De agent moet google_meet aanroepen met
action: "create" en vervolgens de geretourneerde meetingUri delen.
"mode": "transcribe" in. Dat start
niet de duplex realtime-spraakbrug, vereist geen BlackHole of SoX,
en zal niet terugspreken in de vergadering. Chrome-deelnames in deze modus vermijden ook
OpenClaw’s toestemmingsverlening voor microfoon/camera en vermijden het Meet-pad Use
microphone. Als Meet een interstitial voor audiokeuze toont, probeert automatisering
het pad zonder microfoon en rapporteert anders een handmatige actie in plaats van
de lokale microfoon te openen. In transcriptiemodus installeren beheerde Chrome-transporten ook
een best-effort Meet-ondertitelingsobserver. googlemeet status --json en
googlemeet doctor tonen captioning, captionsEnabledAttempted,
transcriptLines, lastCaptionAt, lastCaptionSpeaker, lastCaptionText,
en een korte recentTranscript-staart, zodat operators kunnen zien of de browser
aan het gesprek heeft deelgenomen en of Meet-ondertitels tekst produceren.
Gebruik openclaw googlemeet test-listen <meet-url> --transport chrome-node wanneer
je een ja/nee-probe nodig hebt: deze neemt deel in transcriptiemodus, wacht op nieuwe beweging in ondertitels of
transcriptie, en retourneert listenVerified, listenTimedOut, velden voor handmatige
actie en de nieuwste ondertitelingsstatus.
Tijdens realtime sessies bevat de google_meet-status browser- en audiobrugstatus,
zoals inCall, manualActionRequired, providerConnected,
realtimeReady, audioInputActive, audioOutputActive, laatste invoer-/uitvoer-
tijdstempels, bytetellers en gesloten status van de brug. Als een veilige Meet-paginaprompt
verschijnt, verwerkt browserautomatisering deze wanneer dat kan. Inlog-, hosttoelatings- en
browser-/OS-toestemmingsprompts worden gerapporteerd als handmatige actie met een reden en
bericht dat de agent kan doorgeven. Beheerde Chrome-sessies geven de intro- of
testzin alleen weer nadat browserstatus inCall: true rapporteert; anders rapporteert status
speechReady: false en wordt de spreekpoging geblokkeerd in plaats van te doen alsof de
agent in de vergadering heeft gesproken.
Lokale Chrome-deelnames verlopen via het ingelogde OpenClaw-browserprofiel. Realtime modus
vereist BlackHole 2ch voor het microfoon-/speakerpad dat door OpenClaw wordt gebruikt. Gebruik voor
schone duplexaudio afzonderlijke virtuele apparaten of een Loopback-achtige grafiek; een
enkel BlackHole-apparaat is genoeg voor een eerste rooktest, maar kan echo veroorzaken.
Lokale Gateway + Parallels Chrome
Je hebt geen volledige OpenClaw Gateway of model-API-sleutel binnen een macOS-VM nodig alleen om de VM eigenaar van Chrome te maken. Draai de Gateway en agent lokaal en draai vervolgens een Node-host in de VM. Schakel de gebundelde Plugin eenmaal in op de VM, zodat de Node de Chrome-opdracht adverteert: Wat waar draait:- Gateway-host: OpenClaw Gateway, agent-werkruimte, model-/API-sleutels, realtime provider en de Google Meet-Pluginconfiguratie.
- Parallels macOS-VM: OpenClaw CLI/Node-host, Google Chrome, SoX, BlackHole 2ch, en een Chrome-profiel dat bij Google is ingelogd.
- Niet nodig in de VM: Gateway-service, agent-configuratie, OpenAI/GPT-sleutel of model- providerinstelling.
BlackHole 2ch toont:
<gateway-host> een LAN-IP is en je geen TLS gebruikt, weigert de Node de
plaintext WebSocket tenzij je daar expliciet voor kiest voor dat vertrouwde privénetwerk:
OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 is een procesomgeving, geen
openclaw.json-instelling. openclaw node install slaat deze op in de LaunchAgent-
omgeving wanneer deze aanwezig is op de installatieopdracht.
Keur de Node goed vanaf de Gateway-host:
googlemeet.chrome
als browsercapaciteit/browser.proxy adverteert:
google_meet-tool te gebruiken met transport: "chrome-node".
Voor een rooktest met één opdracht die een sessie maakt of hergebruikt, een bekende
zin uitspreekt en sessiestatus afdrukt:
manualActionRequired: true met manualActionReason en
manualActionMessage. Agents moeten stoppen met opnieuw proberen deel te nemen, precies dat
bericht plus de huidige browserUrl/browserTitle rapporteren, en pas opnieuw proberen nadat de
handmatige browseractie is voltooid.
Als chromeNode.node is weggelaten, selecteert OpenClaw automatisch alleen wanneer precies één
verbonden node zowel googlemeet.chrome als browserbesturing adverteert. Als
meerdere geschikte nodes zijn verbonden, stel chromeNode.node dan in op de node-id,
weergavenaam of externe IP.
Veelvoorkomende foutcontroles:
Configured Google Meet node ... is not usable: offline: de vastgezette node is bekend bij de Gateway maar niet beschikbaar. Agents moeten die node behandelen als diagnostische staat, niet als een bruikbare Chrome-host, en de setup-blokkade rapporteren in plaats van terug te vallen op een ander transport, tenzij de gebruiker daarom vroeg.No connected Google Meet-capable node: startopenclaw node runin de VM, keur koppeling goed, en zorg datopenclaw plugins enable google-meetenopenclaw plugins enable browserin de VM zijn uitgevoerd. Controleer ook dat de Gateway-host beide node-commando’s toestaat metgateway.nodes.allowCommands: ["googlemeet.chrome", "browser.proxy"].BlackHole 2ch audio device not found: installeerblackhole-2chop de host die wordt gecontroleerd en herstart voordat je lokale Chrome-audio gebruikt.BlackHole 2ch audio device not found on the node: installeerblackhole-2chin de VM en herstart de VM.- Chrome opent maar kan niet deelnemen: log in op het browserprofiel binnen de VM, of
houd
chrome.guestNameingesteld voor deelnemen als gast. Automatisch deelnemen als gast gebruikt OpenClaw browserautomatisering via de node-browserproxy; zorg dat de node-browserconfiguratie verwijst naar het gewenste profiel, bijvoorbeeldbrowser.defaultProfile: "user"of een benoemd profiel met bestaande sessie. - Dubbele Meet-tabbladen: laat
chrome.reuseExistingTab: trueingeschakeld. OpenClaw activeert een bestaand tabblad voor dezelfde Meet-URL voordat een nieuw wordt geopend, en het maken van vergaderingen in de browser hergebruikt een lopendhttps://meet.google.com/newof Google-accountprompttabblad voordat nog een wordt geopend. - Geen audio: routeer in Meet microfoon-/luidsprekeraudio via het virtuele audioapparaatpad dat OpenClaw gebruikt; gebruik afzonderlijke virtuele apparaten of Loopback-achtige routering voor schone duplexaudio.
Installatieopmerkingen
De standaard Chrome-terugspraak gebruikt twee externe tools:sox: opdrachtregel-audiohulpprogramma. De Plugin gebruikt expliciete CoreAudio apparaatcommando’s voor de standaard 24 kHz PCM16-audiobridge.blackhole-2ch: virtuele audiodriver voor macOS. Deze maakt hetBlackHole 2chaudioapparaat dat Chrome/Meet kan gebruiken voor routering.
LGPL-2.0-only AND GPL-2.0-only; BlackHole is GPL-3.0. Als je een
installatieprogramma of appliance bouwt die BlackHole met OpenClaw bundelt, controleer dan de
upstream licentievoorwaarden van BlackHole of verkrijg een aparte licentie van Existential Audio.
Transporten
Chrome
Chrome-transport opent de Meet-URL via OpenClaw-browserbesturing en neemt deel als het ingelogde OpenClaw-browserprofiel. Op macOS controleert de Plugin opBlackHole 2ch voor het starten. Indien geconfigureerd, voert deze ook een gezondheidscommando
voor de audiobridge en een opstartcommando uit voordat Chrome wordt geopend. Gebruik chrome wanneer
Chrome/audio op de Gateway-host draaien; gebruik chrome-node wanneer Chrome/audio draaien
op een gekoppelde node zoals een Parallels macOS-VM. Kies voor lokale Chrome het
profiel met browser.defaultProfile; chrome.browserProfile wordt doorgegeven aan
chrome-node-hosts.
BlackHole 2ch niet is geïnstalleerd, mislukt het deelnemen met een setupfout
in plaats van stilzwijgend deel te nemen zonder audiopad.
Twilio
Twilio-transport is een strikt belplan dat wordt gedelegeerd aan de Voice Call Plugin. Het parseert geen Meet-pagina’s voor telefoonnummers. Gebruik dit wanneer Chrome-deelname niet beschikbaar is of wanneer je een terugvaloptie voor telefonisch inbellen wilt. Google Meet moet een telefonisch inbelnummer en pincode voor de vergadering beschikbaar maken; OpenClaw ontdekt die niet vanaf de Meet-pagina. Schakel de Voice Call Plugin in op de Gateway-host, niet op de Chrome-node:openclaw.json:
realtime.provider: "openai" met de OpenAI provider-Plugin en
OPENAI_API_KEY als dat je realtime spraakprovider is.
Herstart of herlaad de Gateway na het inschakelen van voice-call; Plugin-configuratiewijzigingen
verschijnen pas in een al draaiend Gateway-proces nadat het opnieuw laadt.
Verifieer daarna:
googlemeet setup geslaagde
controles voor twilio-voice-call-plugin, twilio-voice-call-credentials en
twilio-voice-call-webhook.
--dtmf-sequence wanneer de vergadering een aangepaste reeks nodig heeft:
OAuth en preflight
OAuth is optioneel voor het maken van een Meet-link omdatgooglemeet create kan
terugvallen op browserautomatisering. Configureer OAuth wanneer je officiële API-aanmaak,
space-resolutie of Meet Media API-preflightcontroles wilt.
Google Meet API-toegang gebruikt gebruikers-OAuth: maak een Google Cloud OAuth-client,
vraag de vereiste scopes aan, autoriseer een Google-account, en sla vervolgens het
resulterende refresh-token op in de Google Meet Plugin-configuratie of geef de
OPENCLAW_GOOGLE_MEET_*-omgevingsvariabelen op.
OAuth vervangt het Chrome-deelnamepad niet. Chrome- en Chrome-node-transporten
nemen nog steeds deel via een ingelogd Chrome-profiel, BlackHole/SoX, en een verbonden
node wanneer je browserdeelname gebruikt. OAuth is alleen voor het officiële Google
Meet API-pad: vergaderruimtes maken, ruimtes oplossen en Meet Media API
preflightcontroles uitvoeren.
Google-referenties maken
In Google Cloud Console:- Maak of selecteer een Google Cloud-project.
- Schakel Google Meet REST API in voor dat project.
-
Configureer het OAuth-toestemmingsscherm.
- Intern is het eenvoudigst voor een Google Workspace-organisatie.
- Extern werkt voor persoonlijke/testsetups; zolang de app in Testing staat, voeg je elk Google-account dat de app zal autoriseren toe als testgebruiker.
-
Voeg de scopes toe die OpenClaw aanvraagt:
https://www.googleapis.com/auth/meetings.space.createdhttps://www.googleapis.com/auth/meetings.space.readonlyhttps://www.googleapis.com/auth/meetings.space.settingshttps://www.googleapis.com/auth/meetings.conference.media.readonly
-
Maak een OAuth-client-ID.
- Applicatietype: Webapplicatie.
-
Geautoriseerde redirect-URI:
- Kopieer de client-ID en het clientgeheim.
meetings.space.created is vereist door Google Meet spaces.create.
meetings.space.readonly laat OpenClaw Meet-URL’s/codes oplossen naar ruimtes.
meetings.space.settings laat OpenClaw SpaceConfig-instellingen doorgeven zoals
accessType tijdens het maken van API-ruimtes.
meetings.conference.media.readonly is voor Meet Media API-preflight en mediawerk;
Google kan Developer Preview-inschrijving vereisen voor daadwerkelijk Media API-gebruik.
Als je alleen browsergebaseerde Chrome-deelnames nodig hebt, sla OAuth dan volledig over.
Het refresh-token aanmaken
Configureeroauth.clientId en optioneel oauth.clientSecret, of geef ze door als
omgevingsvariabelen, en voer daarna uit:
oauth-configuratieblok met een refresh-token. Het gebruikt PKCE,
localhost-callback op http://localhost:8085/oauth2callback, en een handmatige
kopieer/plak-flow met --manual.
Voorbeelden:
oauth-object op onder de Google Meet Plugin-configuratie:
openclaw googlemeet auth login --json opnieuw uit zodat het refresh-token
de scope meetings.space.created heeft.
OAuth verifiëren met doctor
Voer de OAuth-doctor uit wanneer je een snelle gezondheidscontrole zonder geheimen wilt:ok, configured,
tokenSource, expiresAt, en controleberichten; het print niet het access-token,
refresh-token of clientgeheim.
Veelvoorkomende resultaten:
| Controle | Betekenis |
|---|---|
oauth-config | oauth.clientId plus oauth.refreshToken, of een gecachte toegangstoken, is aanwezig. |
oauth-token | De gecachte toegangstoken is nog geldig, of de vernieuwingstoken heeft een nieuwe toegangstoken uitgegeven. |
meet-spaces-get | Optionele --meeting-controle heeft een bestaande Meet-ruimte opgelost. |
meet-spaces-create | Optionele --create-space-controle heeft een nieuwe Meet-ruimte gemaakt. |
spaces.create-bereik te bewijzen:
--create-space maakt een tijdelijke Meet-URL. Gebruik dit wanneer je moet bevestigen dat de Google Cloud-project de Meet API heeft ingeschakeld en dat het geautoriseerde account het meetings.space.created-bereik heeft.
Om leestoegang voor een bestaande vergaderruimte te bewijzen:
doctor --oauth --meeting en resolve-space bewijzen leestoegang tot een bestaande ruimte waartoe het geautoriseerde Google-account toegang heeft. Een 403 van deze controles betekent meestal dat de Google Meet REST API is uitgeschakeld, dat de ingestemde vernieuwingstoken het vereiste bereik mist, of dat het Google-account geen toegang heeft tot die Meet-ruimte. Een vernieuwingstokenfout betekent dat je openclaw googlemeet auth login --json opnieuw moet uitvoeren en het nieuwe oauth-blok moet opslaan.
Er zijn geen OAuth-referenties nodig voor de browserfallback. In die modus komt Google-authenticatie van het aangemelde Chrome-profiel op de geselecteerde Node, niet uit de OpenClaw-configuratie.
Deze omgevingsvariabelen worden geaccepteerd als fallbacks:
OPENCLAW_GOOGLE_MEET_CLIENT_IDofGOOGLE_MEET_CLIENT_IDOPENCLAW_GOOGLE_MEET_CLIENT_SECRETofGOOGLE_MEET_CLIENT_SECRETOPENCLAW_GOOGLE_MEET_REFRESH_TOKENofGOOGLE_MEET_REFRESH_TOKENOPENCLAW_GOOGLE_MEET_ACCESS_TOKENofGOOGLE_MEET_ACCESS_TOKENOPENCLAW_GOOGLE_MEET_ACCESS_TOKEN_EXPIRES_ATofGOOGLE_MEET_ACCESS_TOKEN_EXPIRES_ATOPENCLAW_GOOGLE_MEET_DEFAULT_MEETINGofGOOGLE_MEET_DEFAULT_MEETINGOPENCLAW_GOOGLE_MEET_PREVIEW_ACKofGOOGLE_MEET_PREVIEW_ACK
spaces/{id} op via spaces.get:
--meeting gebruiken artifacts en attendance standaard het nieuwste conferentierecord. Geef --all-conference-records mee wanneer je elk bewaard record voor die vergadering wilt.
Agenda-opzoeking kan de vergader-URL uit Google Calendar oplossen voordat Meet-artefacten worden gelezen:
--today doorzoekt de primary-agenda van vandaag naar een Calendar-afspraak met een Google Meet-link. Gebruik --event <query> om overeenkomende afspraaktekst te zoeken, en --calendar <id> voor een niet-primaire agenda. Agenda-opzoeking vereist een nieuwe OAuth-login die het alleen-lezenbereik voor Calendar-afspraken bevat.
calendar-events toont een voorbeeld van de overeenkomende Meet-afspraken en markeert de afspraak die latest, artifacts, attendance of export zal kiezen.
Als je de conferentierecord-id al weet, adresseer die dan direct:
spaces.endActiveConference aan en vereist OAuth met het meetings.space.created-bereik voor een ruimte die het geautoriseerde account kan beheren.
OpenClaw accepteert een Meet-URL, vergadercode of spaces/{id}-invoer en lost die op naar de API-ruimteresource voordat de actieve conferentie wordt beëindigd.
Dit staat los van googlemeet leave: leave stopt OpenClaw’s lokale/sessie-deelname, terwijl end-active-conference Google Meet vraagt de actieve conferentie voor de ruimte te beëindigen.
Schrijf een leesbaar rapport:
artifacts retourneert metadata van conferentierecords plus metadata van deelnemer-, opname-, transcript-, gestructureerde transcriptvermelding- en smart-note-resources wanneer Google die voor de vergadering beschikbaar stelt. Gebruik --no-transcript-entries om het opzoeken van vermeldingen voor grote vergaderingen over te slaan. attendance breidt deelnemers uit naar deelnemer-sessierijen met eerste/laatste gezien-tijden, totale sessieduur, te-laat-/vroeg-vertrek-vlaggen, en dubbele deelnemerresources samengevoegd op basis van aangemelde gebruiker of weergavenaam. Geef --no-merge-duplicates mee om ruwe deelnemerresources gescheiden te houden, --late-after-minutes om te-laatdetectie af te stemmen, en --early-before-minutes om vroeg-vertrekdetectie af te stemmen.
export schrijft een map met summary.md, attendance.csv, transcript.md, artifacts.json, attendance.json en manifest.json.
manifest.json registreert de gekozen invoer, exportopties, conferentierecords, uitvoerbestanden, aantallen, tokenbron, Calendar-afspraak wanneer die is gebruikt, en eventuele waarschuwingen over gedeeltelijke ophaling. Geef --zip mee om ook een draagbaar archief naast de map te schrijven. Geef --include-doc-bodies mee om gekoppelde transcript- en smart-note-Google Docs-tekst te exporteren via Google Drive files.export; dit vereist een nieuwe OAuth-login die het alleen-lezenbereik voor Drive Meet bevat. Zonder --include-doc-bodies bevatten exports alleen Meet-metadata en gestructureerde transcriptvermeldingen. Als Google een gedeeltelijke artefactfout retourneert, zoals een smart-note-lijst-, transcriptvermelding- of Drive-documenttekstfout, bewaren de samenvatting en manifest de waarschuwing in plaats van de hele export te laten mislukken.
Gebruik --dry-run om dezelfde artefact-/aanwezigheidsgegevens op te halen en de manifest-JSON af te drukken zonder de map of ZIP te maken. Dat is nuttig voordat je een grote export schrijft of wanneer een agent alleen aantallen, geselecteerde records en waarschuwingen nodig heeft.
Agenten kunnen dezelfde bundel ook maken via de google_meet-tool:
"dryRun": true in om alleen het exportmanifest te retourneren en bestandswrites over te slaan.
Agenten kunnen ook een API-ondersteunde ruimte maken met een expliciet toegangsbeleid:
test_listen gebruiken voordat ze claimen dat de vergadering nuttig is:
OPENCLAW_LIVE_TEST=1schakelt bewaakte live tests in.OPENCLAW_GOOGLE_MEET_LIVE_MEETINGwijst naar een bewaarde Meet-URL, code ofspaces/{id}.OPENCLAW_GOOGLE_MEET_CLIENT_IDofGOOGLE_MEET_CLIENT_IDlevert de OAuth-client-id.OPENCLAW_GOOGLE_MEET_REFRESH_TOKENofGOOGLE_MEET_REFRESH_TOKENlevert de vernieuwingstoken.- Optioneel:
OPENCLAW_GOOGLE_MEET_CLIENT_SECRET,OPENCLAW_GOOGLE_MEET_ACCESS_TOKENenOPENCLAW_GOOGLE_MEET_ACCESS_TOKEN_EXPIRES_ATgebruiken dezelfde fallbacknamen zonder hetOPENCLAW_-voorvoegsel.
https://www.googleapis.com/auth/meetings.space.readonly en
https://www.googleapis.com/auth/meetings.conference.media.readonly nodig. Agenda-opzoeking heeft https://www.googleapis.com/auth/calendar.events.readonly nodig. Export van documenttekst uit Drive heeft
https://www.googleapis.com/auth/drive.meet.readonly nodig.
Maak een nieuwe Meet-ruimte:
meeting uri, bron en joinsessie af. Met OAuth-referenties gebruikt deze de officiële Google Meet API. Zonder OAuth-referenties gebruikt deze als fallback het aangemelde browserprofiel van de vastgezette Chrome-Node. Agenten kunnen de google_meet-tool gebruiken met action: "create" om in één stap te maken en deel te nemen. Geef "join": false mee voor alleen-URL-creatie.
Voorbeeld van JSON-uitvoer van de browserfallback:
google_meet-tool gestructureerde details in plaats van een platte string:
manualActionRequired: true ziet, moet deze de manualActionMessage plus de browser-Node-/tabcontext rapporteren en stoppen met het openen van nieuwe Meet-tabbladen totdat de operator de browserstap voltooit.
Voorbeeld van JSON-uitvoer van API-create:
manualActionRequired: true of een
browserfallbackfout en vraagt het de operator om de Google-login af te ronden voordat
opnieuw wordt geprobeerd.
Stel preview.enrollmentAcknowledged: true alleen in nadat je hebt bevestigd dat je Cloud-
project, OAuth-principal en vergaderdeelnemers zijn ingeschreven in het Google
Workspace Developer Preview Program voor Meet-media-API’s.
Configuratie
Het algemene Chrome-agentpad heeft alleen de ingeschakelde Plugin, BlackHole, SoX, een providersleutel voor realtime transcriptie en een geconfigureerde OpenClaw TTS-provider nodig. OpenAI is de standaardprovider voor transcriptie; stelrealtime.voiceProvider in op
"google" en realtime.model om Google Gemini Live te gebruiken voor de bidi-modus
zonder de standaard transcriptieprovider voor agentmodus te wijzigen:
plugins.entries.google-meet.config:
defaultTransport: "chrome"defaultMode: "agent"("realtime"wordt alleen geaccepteerd als verouderde compatibiliteitsalias voor"agent"; nieuwe toolaanroepen moeten"agent"zeggen)chromeNode.node: optionele Node-id/naam/IP voorchrome-nodechrome.audioBackend: "blackhole-2ch"chrome.guestName: "OpenClaw Agent": naam die wordt gebruikt op het afgemelde Meet-gastschermchrome.autoJoin: true: best-effort invullen van gastnaam en klikken op Nu deelnemen via OpenClaw-browserautomatisering opchrome-nodechrome.reuseExistingTab: true: activeer een bestaand Meet-tabblad in plaats van duplicaten te openenchrome.waitForInCallMs: 20000: wacht tot het Meet-tabblad meldt dat het in gesprek is voordat de terugspreekintro wordt geactiveerdchrome.audioFormat: "pcm16-24khz": audioformaat voor opdrachtparen. Gebruik"g711-ulaw-8khz"alleen voor verouderde/aangepaste opdrachtparen die nog telefonieaudio uitzenden.chrome.audioBufferBytes: 4096: SoX-verwerkingsbuffer voor gegenereerde Chrome- audio-opdrachten met opdrachtparen. Dit is de helft van SoX’ standaardbuffer van 8192 bytes, waardoor de standaardpijplijnlatentie wordt verlaagd en er ruimte blijft om deze op drukke hosts te verhogen. Waarden onder het minimum van SoX worden vastgezet op 17 bytes.chrome.audioInputCommand: SoX-opdracht die leest uit CoreAudioBlackHole 2chen audio schrijft inchrome.audioFormatchrome.audioOutputCommand: SoX-opdracht die audio leest inchrome.audioFormaten schrijft naar CoreAudioBlackHole 2chchrome.bargeInInputCommand: optionele lokale microfoonopdracht die gesigneerde 16-bits little-endian mono-PCM schrijft voor detectie van menselijke interrupties terwijl assistentweergave actief is. Dit is momenteel van toepassing op de door Gateway gehostechrome-brug met opdrachtparen.chrome.bargeInRmsThreshold: 650: RMS-niveau dat telt als een menselijke interruptie opchrome.bargeInInputCommandchrome.bargeInPeakThreshold: 2500: piekniveau dat telt als een menselijke interruptie opchrome.bargeInInputCommandchrome.bargeInCooldownMs: 900: minimale vertraging tussen herhaalde resets door menselijke interruptiesmode: "agent": standaard terugspreekmodus. Spraak van deelnemers wordt getranscribeerd door de geconfigureerde realtime transcriptieprovider, naar de geconfigureerde OpenClaw-agent gestuurd in een subagentsessie per vergadering, en terug uitgesproken via de normale OpenClaw TTS-runtime.mode: "bidi": fallbackmodus voor een direct bidirectioneel realtime model. De realtime spraakprovider beantwoordt spraak van deelnemers direct en kanopenclaw_agent_consultaanroepen voor diepere, door tools ondersteunde antwoorden.mode: "transcribe": alleen-observerenmodus zonder de terugspreekbrug.realtime.provider: "openai": compatibiliteitsfallback die wordt gebruikt wanneer de hieronder gescopete providervelden niet zijn ingesteld.realtime.transcriptionProvider: "openai": provider-id die door deagent-modus wordt gebruikt voor realtime transcriptie.realtime.voiceProvider: provider-id die door debidi-modus wordt gebruikt voor directe realtime spraak. Stel dit in op"google"om Gemini Live te gebruiken terwijl transcriptie in agentmodus op OpenAI blijft.realtime.toolPolicy: "safe-read-only"realtime.instructions: korte gesproken antwoorden, metopenclaw_agent_consultvoor diepere antwoordenrealtime.introMessage: korte gesproken gereedheidscontrole wanneer de realtime brug verbinding maakt; stel dit in op""om stil deel te nemenrealtime.agentId: optionele OpenClaw-agent-id vooropenclaw_agent_consult; standaard ismain
messages.tts.providers.elevenlabs.speakerVoiceId. Antwoorden van agents kunnen ook
per antwoord [[tts:speakerVoiceId=... model=eleven_v3]]-directieven gebruiken wanneer overschrijvingen van het TTS-model
zijn ingeschakeld, maar configuratie is de deterministische standaard voor vergaderingen.
Bij deelname moeten de logs transcriptionProvider=elevenlabs tonen en elk
gesproken antwoord moet provider=elevenlabs model=eleven_v3 speakerVoiceId=<voiceId> loggen.
Configuratie alleen voor Twilio:
voiceCall.enabled is standaard true; met Twilio-transport delegeert het de
daadwerkelijke PSTN-oproep, DTMF en introductiebegroeting aan de Voice Call-Plugin. Voice Call
speelt de DTMF-reeks af voordat de realtime mediastream wordt geopend, en gebruikt daarna de
opgeslagen introductietekst als de initiële realtime begroeting. Als voice-call niet is
ingeschakeld, kan Google Meet het belplan nog steeds valideren en registreren, maar kan het de
Twilio-oproep niet plaatsen.
Tool
Agents kunnen de toolgoogle_meet gebruiken:
transport: "chrome" wanneer Chrome op de Gateway-host draait. Gebruik
transport: "chrome-node" wanneer Chrome op een gekoppelde Node draait, zoals een Parallels-
VM. In beide gevallen draaien de modelproviders en openclaw_agent_consult op de
Gateway-host, zodat modelreferenties daar blijven. Met de standaard mode: "agent"
handelt de realtime transcriptieprovider het luisteren af, produceert de geconfigureerde OpenClaw-
agent het antwoord, en spreekt reguliere OpenClaw TTS dit uit in Meet. Gebruik
mode: "bidi" wanneer je wilt dat het realtime spraakmodel direct antwoordt.
Ruwe mode: "realtime" blijft geaccepteerd als verouderde compatibiliteitsalias voor
mode: "agent", maar wordt niet langer geadverteerd in het agenttoolschema.
Logs in agentmodus bevatten de opgeloste transcriptieprovider/het model bij het opstarten van de brug
en de TTS-provider, het model, de stem, het uitvoerformaat en de samplefrequentie na
elk gesynthetiseerd antwoord.
Gebruik action: "status" om actieve sessies weer te geven of een sessie-id te inspecteren. Gebruik
action: "speak" met sessionId en message om de realtime agent
direct te laten spreken. Gebruik action: "test_speech" om de sessie te maken of te hergebruiken,
een bekende zin te activeren en inCall-gezondheid terug te geven wanneer de Chrome-host dit kan
rapporteren. test_speech forceert altijd mode: "agent" en faalt als gevraagd wordt om
in mode: "transcribe" te draaien, omdat alleen-observerensessies bewust geen
spraak kunnen uitzenden. Het resultaat speechOutputVerified is gebaseerd op toenemende realtime audio-uitvoerbytes
tijdens deze testaanroep, dus een hergebruikte sessie met oudere audio
telt niet als een nieuwe succesvolle spraakcontrole. Gebruik action: "leave" om
een sessie als beëindigd te markeren.
status bevat Chrome-gezondheid wanneer beschikbaar:
inCall: Chrome lijkt zich binnen de Meet-oproep te bevindenmicMuted: best-effort Meet-microfoonstatusmanualActionRequired/manualActionReason/manualActionMessage: het browserprofiel vereist handmatige login, toelating door de Meet-host, machtigingen of browserbesturingsherstel voordat spraak kan werkenspeechReady/speechBlockedReason/speechBlockedMessage: of beheerde Chrome-spraak nu is toegestaan.speechReady: falsebetekent dat OpenClaw de intro-/testzin niet naar de audiobrug heeft gestuurd.providerConnected/realtimeReady: status van de realtime spraakbruglastInputAt/lastOutputAt: laatste audio gezien van of gestuurd naar de brugaudioOutputRouted/audioOutputDeviceLabel: of de media-uitvoer van het Meet-tabblad actief werd gerouteerd naar het BlackHole-apparaat dat door de brug wordt gebruiktlastSuppressedInputAt/suppressedInputBytes: loopbackinvoer genegeerd terwijl assistentweergave actief is
Agent- en bidi-modi
Chromeagent-modus is geoptimaliseerd voor gedrag waarbij “mijn agent in de vergadering is”. De
realtime transcriptieprovider hoort de vergaderaudio, definitieve deelnemertranscripten
worden via de geconfigureerde OpenClaw-agent gerouteerd, en het antwoord wordt
uitgesproken via de normale OpenClaw TTS-runtime. Stel mode: "bidi" in wanneer je wilt
dat het realtime spraakmodel direct antwoordt.
Nabije definitieve transcriptfragmenten worden samengevoegd vóór de consultatie, zodat één gesproken
beurt niet meerdere verouderde gedeeltelijke antwoorden oplevert. Realtime invoer wordt ook
onderdrukt terwijl audio van de assistent in de wachtrij nog wordt afgespeeld,
en recente assistentachtige transcriptecho’s worden genegeerd vóór de agentconsultatie,
zodat BlackHole-loopback de agent niet zijn eigen spraak laat beantwoorden.
| Modus | Wie bepaalt het antwoord | Pad voor spraakuitvoer | Gebruik wanneer |
|---|---|---|---|
agent | De geconfigureerde OpenClaw-agent | Normale OpenClaw TTS-runtime | Je gedrag wilt waarbij “mijn agent in de vergadering is” |
bidi | Het realtime spraakmodel | Audioreactie van realtime spraakprovider | Je de gesprekslus met de laagste latentie wilt |
bidi-modus kan het realtime model, wanneer het diepere redenatie, actuele
informatie of normale OpenClaw-tools nodig heeft, openclaw_agent_consult aanroepen.
De consult-tool voert achter de schermen de reguliere OpenClaw-agent uit met recente
context uit het vergadertranscript en retourneert een beknopt gesproken antwoord. In agent-modus
stuurt OpenClaw dat antwoord rechtstreeks naar de TTS-runtime; in bidi-modus kan het
realtime spraakmodel het consultresultaat terug de vergadering in uitspreken. Het gebruikt
dezelfde gedeelde consultmechaniek als Voice Call.
Standaard worden consults uitgevoerd tegen de main-agent. Stel realtime.agentId in wanneer een
Meet-lane een specifieke OpenClaw-agentworkspace, modelstandaarden,
toolbeleid, geheugen en sessiegeschiedenis moet raadplegen.
Consults in agentmodus gebruiken per vergadering een sessiesleutel
agent:<id>:subagent:google-meet:<session>, zodat vervolgvragen de vergadercontext behouden
terwijl ze het normale agentbeleid van de geconfigureerde agent erven.
realtime.toolPolicy regelt de consult-run:
safe-read-only: stel de consult-tool beschikbaar en beperk de reguliere agent totread,web_search,web_fetch,x_search,memory_searchenmemory_get.owner: stel de consult-tool beschikbaar en laat de reguliere agent het normale agent-toolbeleid gebruiken.none: stel de consult-tool niet beschikbaar aan het realtime spraakmodel.
Live testchecklist
Gebruik deze volgorde voordat je een vergadering overdraagt aan een onbeheerde agent:googlemeet setupis volledig groen.googlemeet setupbevatchrome-node-connectedwanneer Chrome-node het standaardtransport is of een node is vastgezet.nodes statustoont dat de geselecteerde node verbonden is.- De geselecteerde node adverteert zowel
googlemeet.chromealsbrowser.proxy. - Het Meet-tabblad neemt deel aan het gesprek en
test-speechretourneert Chrome-gezondheid metinCall: true.
googlemeet setupbevat groene controles voortwilio-voice-call-plugin,twilio-voice-call-credentialsentwilio-voice-call-webhook.voicecallis beschikbaar in de CLI na het herladen van de Gateway.- De geretourneerde sessie heeft
transport: "twilio"en eentwilio.voiceCallId. openclaw logs --followtoont dat DTMF TwiML wordt geserveerd vóór realtime TwiML, daarna een realtime bridge met de eerste begroeting in de wachtrij.googlemeet leave <sessionId>hangt het gedelegeerde voice-callgesprek op.
Probleemoplossing
Agent kan de Google Meet-tool niet zien
Controleer of de plugin is ingeschakeld in de Gateway-configuratie en herlaad de Gateway:plugins.entries.google-meet hebt bewerkt, herstart of herlaad dan de Gateway.
De actieve agent ziet alleen plugintools die door het huidige Gateway-proces
zijn geregistreerd.
Op niet-macOS Gateway-hosts blijft de agentgerichte google_meet-tool zichtbaar,
maar lokale Chrome-talk-back-acties worden geblokkeerd voordat ze de audiobridge bereiken.
Lokale Chrome-talk-back-audio is momenteel afhankelijk van macOS BlackHole 2ch, dus
Linux-agents moeten mode: "transcribe", Twilio-inbellen of een macOS
chrome-node-host gebruiken in plaats van het standaardpad voor lokale Chrome-agents.
Geen verbonden node met Google Meet-mogelijkheden
Voer op de node-host uit:googlemeet.chrome plus browser.proxy vermelden.
De Gateway-configuratie moet die node-opdrachten toestaan:
googlemeet setup faalt op chrome-node-connected of het Gateway-log
gateway token mismatch meldt, installeer of herstart de node dan opnieuw met het huidige Gateway-token.
Voor een LAN-Gateway betekent dit meestal:
Browser opent, maar agent kan niet deelnemen
Voergooglemeet test-listen uit voor observer-only deelname of googlemeet test-speech
voor realtime deelname en inspecteer daarna de geretourneerde Chrome-gezondheid. Als een van beide probes
manualActionRequired: true meldt, toon manualActionMessage aan de operator
en stop met opnieuw proberen totdat de browseractie is voltooid.
Veelvoorkomende handmatige acties:
- Meld je aan bij het Chrome-profiel.
- Laat de gast toe vanuit het Meet-hostaccount.
- Verleen Chrome-microfoon-/cameramachtigingen wanneer de native machtigingsprompt van Chrome verschijnt.
- Sluit of herstel een vastgelopen Meet-machtigingsdialoog.
Vergadering aanmaken mislukt
googlemeet create gebruikt eerst het Google Meet API-eindpunt spaces.create
wanneer OAuth-referenties zijn geconfigureerd. Zonder OAuth-referenties valt het terug
op de browser van de vastgezette Chrome-node. Controleer:
- Voor API-aanmaak:
oauth.clientIdenoauth.refreshTokenzijn geconfigureerd, of overeenkomendeOPENCLAW_GOOGLE_MEET_*-omgevingsvariabelen zijn aanwezig. - Voor API-aanmaak: het refresh-token is uitgegeven nadat aanmaakondersteuning is
toegevoegd. Oudere tokens kunnen de scope
meetings.space.createdmissen; voeropenclaw googlemeet auth login --jsonopnieuw uit en werk de pluginconfiguratie bij. - Voor browserfallback:
defaultTransport: "chrome-node"enchromeNode.nodewijzen naar een verbonden node metbrowser.proxyengooglemeet.chrome. - Voor browserfallback: het OpenClaw Chrome-profiel op die node is aangemeld
bij Google en kan
https://meet.google.com/newopenen. - Voor browserfallback: nieuwe pogingen hergebruiken een bestaand tabblad
https://meet.google.com/newof een Google-accountprompttabblad voordat een nieuw tabblad wordt geopend. Als een agent een time-out krijgt, probeer de toolaanroep opnieuw in plaats van handmatig een ander Meet-tabblad te openen. - Voor browserfallback: als de tool
manualActionRequired: trueretourneert, gebruik dan de geretourneerdebrowser.nodeId,browser.targetId,browserUrlenmanualActionMessageom de operator te begeleiden. Probeer niet in een lus opnieuw totdat die actie is voltooid. - Voor browserfallback: als Meet “Do you want people to hear you in the
meeting?” toont, laat het tabblad open. OpenClaw zou via browserautomatisering
op Use microphone moeten klikken of, voor create-only fallback, op Continue without microphone
en verder wachten op de gegenereerde Meet-URL. Als dat niet lukt, moet de
fout
meet-audio-choice-requiredvermelden, nietgoogle-login-required.
Agent neemt deel, maar praat niet
Controleer het realtime pad:mode: "agent" voor het normale STT -> OpenClaw-agent -> TTS-talk-backpad,
of mode: "bidi" voor de directe realtime spraakfallback. mode: "transcribe"
start bewust geen talk-backbridge. Voer voor observer-only foutopsporing
openclaw googlemeet status --json <session-id> uit nadat deelnemers hebben gesproken
en controleer captioning, transcriptLines en lastCaptionText. Als inCall
true is maar transcriptLines op 0 blijft, zijn Meet-ondertitels mogelijk uitgeschakeld, heeft niemand
gesproken sinds de observer is geïnstalleerd, is de Meet-UI gewijzigd of zijn live
ondertitels niet beschikbaar voor de vergadertaal/het account.
googlemeet test-speech controleert altijd het realtime pad en meldt of
bridge-uitvoerbytes voor die aanroep zijn waargenomen. Als speechOutputVerified false is en
speechOutputTimedOut true is, heeft de realtime provider de uiting mogelijk geaccepteerd,
maar zag OpenClaw geen nieuwe uitvoerbytes de Chrome-audiobridge bereiken.
Controleer ook:
- Er is een realtime providersleutel beschikbaar op de Gateway-host, zoals
OPENAI_API_KEYofGEMINI_API_KEY. BlackHole 2chis zichtbaar op de Chrome-host.soxbestaat op de Chrome-host.- Meet-microfoon en -speaker zijn gerouteerd via het virtuele audiopad dat door
OpenClaw wordt gebruikt.
doctormoetmeet output routed: yestonen voor lokale Chrome realtime deelname.
googlemeet doctor [session-id] print de sessie, node, in-callstatus,
reden voor handmatige actie, realtime providerverbinding, realtimeReady, audio-
invoer-/uitvoeractiviteit, laatste audiotijdstempels, byte-tellers en browser-URL.
Gebruik googlemeet status [session-id] --json wanneer je de ruwe JSON nodig hebt. Gebruik
googlemeet doctor --oauth wanneer je Google Meet OAuth-refresh moet verifiëren
zonder tokens bloot te leggen; voeg --meeting of --create-space toe wanneer je ook
Google Meet API-bewijs nodig hebt.
Als een agent een time-out heeft gekregen en je al een Meet-tabblad open ziet, inspecteer dat tabblad
zonder een ander te openen:
recover_current_tab. Deze focust en inspecteert een
bestaand Meet-tabblad voor het geselecteerde transport. Met chrome gebruikt het lokale
browserbesturing via de Gateway; met chrome-node gebruikt het de geconfigureerde
Chrome-node. Het opent geen nieuw tabblad en maakt geen nieuwe sessie aan; het meldt de
huidige blokkade, zoals login, toelating, machtigingen of audio-keuzestatus.
De CLI-opdracht communiceert met de geconfigureerde Gateway, dus de Gateway moet actief zijn;
chrome-node vereist ook dat de Chrome-node verbonden is.
Twilio-setupcontroles mislukken
twilio-voice-call-plugin faalt wanneer voice-call niet is toegestaan of niet is ingeschakeld.
Voeg het toe aan plugins.allow, schakel plugins.entries.voice-call in en herlaad de
Gateway.
twilio-voice-call-credentials faalt wanneer de Twilio-backend account-SID,
auth-token of bellernummer mist. Stel deze in op de Gateway-host:
twilio-voice-call-webhook faalt wanneer voice-call geen publieke Webhook-blootstelling
heeft, of wanneer publicUrl naar loopback- of privénetwerkruimte wijst.
Stel plugins.entries.voice-call.config.publicUrl in op de publieke provider-URL of
configureer een voice-call-tunnel/Tailscale-blootstelling.
Loopback- en privé-URL’s zijn niet geldig voor carrier-callbacks. Gebruik
localhost, 127.0.0.1, 0.0.0.0, 10.x, 172.16.x-172.31.x,
192.168.x, 169.254.x, fc00::/7 of fd00::/8 niet als publicUrl.
Voor een stabiele publieke URL:
voicecall smoke controleert standaard alleen de gereedheid. Om een proefuitvoering voor een specifiek nummer te doen:
--yes alleen toe wanneer je bewust een live uitgaande meldingsoproep wilt
plaatsen:
Twilio-oproep start maar komt nooit in de vergadering
Controleer of het Meet-evenement telefonische inbelgegevens beschikbaar stelt. Geef het exacte inbelnummer en de PIN of een aangepaste DTMF-reeks door:w of komma’s in --dtmf-sequence als de provider een pauze nodig heeft
voordat de PIN wordt ingevoerd.
Als de telefoongesprek wordt aangemaakt maar de Meet-deelnemerslijst nooit de ingebelde
deelnemer toont:
- Voer
openclaw googlemeet doctor <session-id>uit om de gedelegeerde Twilio oproep-ID te bevestigen, of DTMF in de wachtrij is gezet en of de introductiebegroeting is aangevraagd. - Voer
openclaw voicecall status --call-id <id>uit en controleer of de oproep nog actief is. - Voer
openclaw voicecall tailuit en controleer of Twilio-webhooks bij de Gateway aankomen. - Voer
openclaw logs --followuit en zoek naar de Twilio Meet-reeks: Google Meet delegeert het deelnemen, Voice Call slaat pre-connect DTMF TwiML op en serveert deze, Voice Call serveert realtime TwiML voor de Twilio-oproep, waarna Google Meet introductiespraak aanvraagt metvoicecall.speak. - Voer
openclaw googlemeet setup --transport twilioopnieuw uit; een groene setupcontrole is vereist, maar bewijst niet dat de PIN-reeks voor de vergadering klopt. - Controleer of het inbelnummer bij dezelfde Meet-uitnodiging en regio hoort als de PIN.
- Verhoog
voiceCall.dtmfDelayMsvanaf de standaardwaarde van 12 seconden als Meet traag opneemt of als het oproeptranscript nog steeds de prompt toont waarin om een PIN wordt gevraagd nadat pre-connect DTMF is verzonden. - Als de deelnemer wel toetreedt maar je de begroeting niet hoort, controleer dan
openclaw logs --followop het post-DTMFvoicecall.speak-verzoek en ofwel media-stream TTS-weergave of de Twilio<Say>-fallback. Als het oproeptranscript nog steeds “enter the meeting PIN” bevat, is de telefoonverbinding nog niet toegetreden tot de Meet-ruimte, dus vergaderdeelnemers zullen geen spraak horen.
plugins.entries.voice-call.config.publicUrl of de geconfigureerde tunnel kunnen bereiken.
Zie Probleemoplossing voor spraakoproepen.
Notities
De officiële media-API van Google Meet is gericht op ontvangen, dus spreken in een Meet- oproep heeft nog steeds een deelnemerspad nodig. Deze Plugin houdt die grens zichtbaar: Chrome verwerkt browserdeelname en lokale audioroutering; Twilio verwerkt telefonische inbeldeelname. Chrome-terugspraakmodi hebbenBlackHole 2ch nodig plus een van beide:
chrome.audioInputCommandpluschrome.audioOutputCommand: OpenClaw beheert de bridge en pipe’t audio inchrome.audioFormattussen die commando’s en de geselecteerde provider. Agentmodus gebruikt realtime transcriptie plus reguliere TTS; bidi-modus gebruikt de realtime spraakprovider. Het standaard Chrome-pad is 24 kHz PCM16 metchrome.audioBufferBytes: 4096; 8 kHz G.711 mu-law blijft beschikbaar voor verouderde commandoparen.chrome.audioBridgeCommand: een extern bridgecommando beheert het volledige lokale audiopad en moet afsluiten nadat het zijn daemon heeft gestart of gevalideerd. Dit is alleen geldig voorbidi, omdatagent-modus directe toegang tot commandoparen nodig heeft voor TTS.
google_meet-tool in agentmodus aanroept, forkt de vergaderconsultant-
sessie het huidige transcript van de aanroeper voordat er op deelnemersspraak wordt geantwoord.
De Meet-sessie blijft nog steeds afzonderlijk (agent:<agentId>:subagent:google-meet:<sessionId>)
zodat vervolgacties voor de vergadering het aanroepertranscript niet direct wijzigen.
Voor schone duplexaudio routeer je Meet-uitvoer en de Meet-microfoon via afzonderlijke
virtuele apparaten of een virtuele apparaatgrafiek in Loopback-stijl. Een enkel gedeeld
BlackHole-apparaat kan andere deelnemers terug de oproep in echoën.
Met de Chrome-bridge met commandoparen kan chrome.bargeInInputCommand naar een
afzonderlijke lokale microfoon luisteren en assistentweergave wissen wanneer de mens begint
te praten. Hierdoor blijft menselijke spraak vóór de assistentuitvoer, zelfs wanneer de gedeelde
BlackHole-loopback-invoer tijdelijk wordt onderdrukt tijdens assistentweergave.
Net als chrome.audioInputCommand en chrome.audioOutputCommand is dit een
door de operator geconfigureerd lokaal commando. Gebruik een expliciet vertrouwd commandopad of
argumentenlijst, en wijs het niet naar scripts uit onvertrouwde locaties.
googlemeet speak activeert de actieve terugspraak-audiobridge voor een Chrome-
sessie. googlemeet leave stopt die bridge. Voor Twilio-sessies die via de
Voice Call-Plugin zijn gedelegeerd, hangt leave ook de onderliggende spraakoproep op.
Gebruik googlemeet end-active-conference wanneer je ook de actieve
Google Meet-conferentie voor een door de API beheerde ruimte wilt sluiten.