google-meet Plugin, bir OpenClaw aracısı adına açıkça belirtilen Meet URL’lerine katılır. Kapsamı bilinçli olarak dardır:
- Yalnızca
https://meet.google.com/...URL’lerine katılır; kendi bulduğu bir telefon numarasından toplantıyı asla aramaz. googlemeet create, Google Meet API’si (veya tarayıcı yedek yolu) aracılığıyla yeni bir Meet URL’si oluşturabilir ve varsayılan olarak bu URL’ye katılabilir.- Chrome katılımı, isteğe bağlı olarak eşleştirilmiş bir Node üzerinde, oturum açılmış bir Chrome profili kullanır. Twilio katılımı, Sesli arama Plugin’i aracılığıyla bir telefon numarasını ve PIN/DTMF’yi tuşlar; doğrudan bir Meet URL’sini arayamaz.
mode: "agent"(varsayılan), katılımcı konuşmalarını gerçek zamanlı bir sağlayıcıyla yazıya döker, yapılandırılmış OpenClaw aracısına yönlendirir ve yanıtı normal OpenClaw TTS ile seslendirir.mode: "bidi", gerçek zamanlı bir ses modelinin doğrudan yanıt vermesini sağlar.mode: "transcribe", geri konuşma olmadan yalnızca gözlem için katılır.- Plugin bir aramaya katıldığında otomatik bir onay duyurusu yapılmaz.
- CLI komutu
googlemeet;meetise daha geniş aracı telekonferans iş akışları için ayrılmıştır.
Hızlı başlangıç
Plugin’i ve yerel ses bağımlılıklarını yükleyin, ardından gerçek zamanlı bir sağlayıcı anahtarı ayarlayın. OpenAI,agent modu için varsayılan yazıya dökme sağlayıcısıdır; Google Gemini Live, bidi modu için ses sağlayıcısı olarak kullanılabilir:
blackhole-2ch, Chrome’un sesi yönlendirdiği BlackHole 2ch sanal ses aygıtını yükler. Homebrew yükleyicisi, macOS aygıtı kullanıma sunmadan önce yeniden başlatma gerektirir:
openclaw plugins disable google-meet komutunu çalıştırın.
Kurulumu denetleyin, ardından katılın:
setup çıktısı aracı tarafından okunabilir ve mod/taşıma yöntemine duyarlıdır: Chrome profilini, Node sabitlemesini ve gerçek zamanlı Chrome katılımları için BlackHole/SoX ses köprüsünü ve gecikmeli giriş kontrolünü bildirir. Yalnızca gözlem amaçlı katılımlar gerçek zamanlı ön koşulları atlar:
setup, ayrıca voice-call, Twilio kimlik bilgilerinin ve genel Webhook erişiminin hazır olup olmadığını bildirir. Bir aracı katılmadan önce tüm ok: false kontrollerini ilgili taşıma yöntemi/mod için engelleyici kabul edin. Makine tarafından okunabilir çıktı için --json, belirli bir taşıma yöntemini önceden ön kontrolden geçirmek için --transport chrome|chrome-node|twilio kullanın:
google_meet aracı üzerinden katılmasını sağlayın:
google_meet; yapıt, takvim, kurulum, yazıya dökme, Twilio ve chrome-node eylemleri için görünür kalır ancak yerel Chrome geri konuşması (mode: "agent" veya "bidi" ile transport: "chrome") ses köprüsüne ulaşmadan engellenir; çünkü bu yol şu anda macOS BlackHole 2ch bileşenine bağlıdır. Bunun yerine mode: "transcribe", Twilio çevirmeli katılımı veya bir macOS chrome-node ana makinesi kullanın.
Toplantı oluşturma
create, sonuçtaki source alanında bildirilen iki yola sahiptir:
api: Google Meet OAuth kimlik bilgileri yapılandırıldığında kullanılır. Belirlenimlidir; tarayıcı arayüzünün durumuna bağlı değildir.browser: OAuth kimlik bilgileri olmadan kullanılır. OpenClaw, sabitlenmiş Chrome Node’undahttps://meet.google.com/newöğesini açar ve Google’ın gerçek bir toplantı kodu URL’sine yönlendirmesini bekler; söz konusu Node’daki OpenClaw Chrome profilinde Google oturumu önceden açılmış olmalıdır. Hem katılma hem de oluşturma işlemi, yeni bir sekme açmadan önce mevcut bir Meet sekmesini (veya devam eden bir.../new/ Google hesabı istemi sekmesini) yeniden kullanır; sekme eşleştirmesiauthusergibi zararsız sorgu dizelerini yok sayar.
create varsayılan olarak katılır ve joined: true ile katılım oturumunu döndürür. Yalnızca URL’yi oluşturmak için --no-join (CLI) veya "join": false (araç) iletin.
API ile oluşturulan odalarda Google hesabının varsayılanını devralmak yerine açık bir erişim politikası belirleyin:
Bu yalnızca API ile oluşturulan odalara uygulanır; dolayısıyla OAuth yapılandırılmalıdır. Bu seçenek mevcut olmadan önce kimlik doğrulaması yaptıysanız OAuth onay ekranınıza
meetings.space.settings kapsamını ekledikten sonra openclaw googlemeet auth login --json komutunu yeniden çalıştırın.
Tarayıcı yedek yolu bir Google oturum açma veya Meet izin engelleyicisiyle karşılaşırsa araç; manualActionReason, manualActionMessage ve browser.nodeId/browser.targetId/browserUrl ile birlikte manualActionRequired: true döndürür. Bu mesajı bildirin ve operatör tarayıcı adımını tamamlayana kadar yeni Meet sekmeleri açmayı durdurun.
Yalnızca gözlem amaçlı katılım
Çift yönlü gerçek zamanlı köprüyü atlamak için"mode": "transcribe" ayarını belirleyin (BlackHole/SoX gereksinimi ve geri konuşma yoktur). Yazıya dökme modundaki Chrome katılımları da OpenClaw’ın mikrofon/kamera izin verme adımını ve Meet’teki Use microphone yolunu atlar; Meet ses seçimi ara ekranını gösterirse otomasyon önce Continue without microphone seçeneğini dener. Yönetilen Chrome taşıma yöntemleri, canlı aracıya danışma yolunu değiştirmeden kalıcı notların kullanılabilmesi için her modda en iyi çaba esaslı bir Meet altyazı gözlemcisi kurar. googlemeet status --json ve googlemeet doctor; captioning, captionsEnabledAttempted, transcriptLines, lastCaptionAt, lastCaptionSpeaker, lastCaptionText ve bir recentTranscript kuyruğu bildirir.
Sınırlandırılmış oturum dökümü için izlenen Meet sekmesinin tam kaydını okuyun:
nextIndex kaydedildiğinde daha sonraki bir metin genişlemesi atlanamaz. Ayrılma işlemi, anlık görüntüden önce görünür satırları sonlandırır. Sınır aşıldığında droppedLines, baştan kaybolan satırları bildirir. Sınırlandırılmış googlemeet transcript kuyruğu hâlâ yalnızca en son sona eren dört oturumu tutar ve Gateway ile birlikte sıfırlanır. OpenClaw ayrıca toplantı boyunca tamamlanan altyazı satırlarını paylaşılan durum veritabanına ekler ve ayrılma sırasında türetilmiş bir özet yazar. Bu kalıcı notları incelemek veya dışa aktarmak için openclaw transcripts kullanın.
Otomatik notlar varsayılan olarak etkindir. Kalıcı notları genel olarak
devre dışı bırakmak için transcripts.enabled: false ayarını belirleyin; açık transcribe modu yine de yalnızca
sınırlandırılmış canlı kuyruğunu gösterir. Twilio katılımlarında tarayıcı altyazı akışı yoktur ve
bu yol tarafından kaydedilmez.
Evet/hayır dinleme yoklaması için:
listenVerified, listenTimedOut, elle yapılacak işlem alanları ve mevcut altyazı sağlığını döndürür.
Gerçek zamanlı oturum sağlığı
Geri konuşmalı oturumlar sırasındagoogle_meet durumu Chrome/ses köprüsü sağlığını bildirir: inCall, manualActionRequired, providerConnected, realtimeReady, audioInputActive, audioOutputActive, son giriş/çıkış zaman damgaları, bayt sayaçları ve köprünün kapalı olma durumu. Yönetilen Chrome oturumları, giriş/test ifadesini yalnızca sağlık durumu inCall: true bildirdikten sonra seslendirir; aksi takdirde speechReady: false ve konuşma girişimi sessizce hiçbir şey yapmamak yerine engellenir.
Yerel Chrome katılımları, oturum açılmış OpenClaw tarayıcı profili üzerinden gerçekleşir ve mikrofon/hoparlör yolu için BlackHole 2ch gerektirir. İlk duman testi için tek bir BlackHole aygıtı yeterlidir ancak yankı yapabilir; temiz çift yönlü ses için ayrı sanal aygıtlar veya Loopback tarzı bir grafik kullanın.
Yerel Gateway + Parallels Chrome
Yalnızca Chrome sağlamak için macOS sanal makinesinin içinde tam bir Gateway veya model API anahtarı gerekmez. Gateway’i ve aracıyı yerel olarak, Node ana makinesini ise sanal makinede çalıştırın.
Sanal makine bağımlılıklarını yükleyin, yeniden başlatın ve doğrulayın:
<gateway-host>, TLS içermeyen bir LAN IP’siyse bu güvenilir özel ağ için açıkça izin verin:
openclaw.json ayarı değildir):
googlemeet.chrome hem de tarayıcı yeteneğini/browser.proxy sunduğunu doğrulayın:
manualActionReason ve manualActionMessage ile birlikte manualActionRequired: true bildirir. Yeniden denemeyi durdurun, bu mesajı browserUrl/browserTitle ile birlikte bildirin ve yalnızca manuel işlem tamamlandıktan sonra yeniden deneyin.
chromeNode.node belirtilmezse OpenClaw, yalnızca tam olarak bir bağlı Node hem googlemeet.chrome hem de tarayıcı denetimi sunduğunda otomatik seçim yapar; birden fazla uygun Node bağlı olduğunda chromeNode.node değerini (Node kimliği, görünen ad veya uzak IP) sabitleyin.
Yaygın hata kontrolleri
Yükleme notları
Chrome geri konuşma varsayılanı, OpenClaw’ın paketlemediği veya yeniden dağıtmadığı iki harici araç kullanır; bunları Homebrew aracılığıyla ana sistem bağımlılıkları olarak yükleyin:sox: komut satırı ses yardımcı programı. Plugin, varsayılan 24 kHz PCM16 ses köprüsü için açık CoreAudio aygıt komutları gönderir.blackhole-2ch: Chrome/Meet’in yönlendirildiğiBlackHole 2chaygıtını sağlayan macOS sanal ses sürücüsü.
LGPL-2.0-only AND GPL-2.0-only kapsamında lisanslanmıştır; BlackHole GPL-3.0 kapsamındadır. BlackHole’u OpenClaw ile paketleyen bir yükleyici veya cihaz oluşturursanız BlackHole’un üst kaynak lisanslamasını inceleyin ya da Existential Audio’dan ayrı bir lisans alın.
Aktarımlar
Chrome
Meet URL’sini OpenClaw tarayıcı denetimi aracılığıyla açar ve oturum açılmış OpenClaw tarayıcı profili olarak katılır. macOS’ta Plugin, başlatmadan önceBlackHole 2ch denetimi yapar ve yapılandırılmışsa Chrome’u açmadan önce bir ses köprüsü sağlık/başlatma komutu çalıştırır. Yerel Chrome için profili browser.defaultProfile ile seçin; bunun yerine chrome.browserProfile, chrome-node ana sistemlerine iletilir.
BlackHole 2ch yüklü değilse katılım, ses yolu olmadan katılmak yerine bir kurulum hatasıyla başarısız olur.
Twilio
Voice Call Pluginine devredilen katı bir arama planıdır. Telefon numaraları için Meet sayfalarını ayrıştırmaz; Google Meet, toplantı için telefonla katılım numarası ve PIN sunmalıdır. Voice Call’u Chrome Node’da değil, Gateway ana sisteminde etkinleştirin:openclaw.json dışında tutmak için Twilio kimlik bilgilerini ortam üzerinden sağlayın:
realtime.provider: "openai" ile OPENAI_API_KEY kullanın.
voice-call etkinleştirildikten sonra Gateway’i yeniden başlatın veya yeniden yükleyin; Plugin yapılandırması değişiklikleri yeniden yüklemeye kadar etkili olmaz. Doğrulayın:
googlemeet setup, twilio-voice-call-plugin, twilio-voice-call-credentials ve twilio-voice-call-webhook kontrollerini içerir.
--dtmf-sequence kullanın; PIN’den önce duraklama için başına w veya virgül ekleyin:
OAuth ve ön kontrol
Meet bağlantısı oluşturmak için OAuth isteğe bağlıdır çünkügooglemeet create tarayıcı otomasyonuna geri dönebilir. Resmî API ile oluşturma, alan çözümleme veya Meet Media API ön kontrolü için OAuth’u yapılandırın. Chrome/Chrome-node katılımları hiçbir zaman OAuth’a bağlı değildir; her iki durumda da oturum açılmış bir Chrome profili, BlackHole/SoX ve (chrome-node için) bağlı bir Node kullanırlar.
Google kimlik bilgileri oluşturma
Google Cloud Console’da:1
Bir proje oluşturun veya seçin
2
Google Meet REST API'yi etkinleştirin
3
OAuth izin ekranını yapılandırın
Bir Google Workspace kuruluşu için Internal en basit seçenektir. External, kişisel/test kurulumları için çalışır; uygulama Testing durumundayken yetkilendirme yapacak her Google hesabını test kullanıcısı olarak ekleyin.
4
İstenen kapsamları ekleyin
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.readonlyhttps://www.googleapis.com/auth/calendar.events.readonly(Takvim araması)https://www.googleapis.com/auth/drive.meet.readonly(transkript/akıllı not belge gövdesi dışa aktarımı)
5
Bir OAuth istemci kimliği oluşturun
Uygulama türü Web application. Yetkilendirilmiş yönlendirme URI’si:
6
İstemci kimliğini ve istemci gizli anahtarını kopyalayın
meetings.space.created, spaces.create için gereklidir. meetings.space.readonly, Meet URL’lerini/kodlarını alanlara çözümler. meetings.space.settings, OpenClaw’ın API ile oda oluşturma sırasında accessType gibi SpaceConfig ayarlarını iletmesini sağlar. meetings.conference.media.readonly, Meet Media API ön kontrolü ve medya çalışmaları içindir; Google, Media API’nin fiilî kullanımı için Developer Preview kaydı gerektirebilir. calendar.events.readonly yalnızca --today/--event takvim araması için gereklidir. drive.meet.readonly yalnızca --include-doc-bodies dışa aktarımı için gereklidir. Yalnızca tarayıcı tabanlı Chrome katılımlarına ihtiyacınız varsa OAuth’u tamamen atlayın.
Yenileme belirtecini oluşturma
oauth.clientId ve isteğe bağlı olarak oauth.clientSecret yapılandırın (veya bunları ortam değişkenleri olarak iletin), ardından şunu çalıştırın:
http://localhost:8085/oauth2callback üzerinde localhost geri çağrısıyla bir PKCE akışı çalıştırır ve yenileme belirteci içeren bir oauth yapılandırma bloğu yazdırır. Tarayıcı yerel geri çağrıya erişemediğinde kopyala/yapıştır akışı için --manual ekleyin:
oauth nesnesini Plugin yapılandırması altında saklayın:
openclaw googlemeet auth login --json komutunu yeniden çalıştırın.
OAuth’u doctor ile doğrulama
ok, configured, tokenSource, expiresAt, denetim mesajları) içerir ve erişim token’ını, yenileme token’ını veya istemci sırrını asla yazdırmaz.
Yan etkili oluşturma denetimiyle Meet API’nin etkinleştirildiğini ve
spaces.create kapsamını doğrulayın:
403 genellikle Meet REST API’nin devre dışı olduğu, yenileme token’ında gerekli kapsamın bulunmadığı veya Google hesabının bu alana erişemediği anlamına gelir. Yenileme token’ı hatası, openclaw googlemeet auth login --json komutunu yeniden çalıştırmanız ve yeni oauth bloğunu saklamanız gerektiği anlamına gelir.
Tarayıcı geri dönüşü için OAuth gerekmez; buradaki Google kimlik doğrulaması OpenClaw yapılandırmasından değil, seçilen Node üzerindeki oturum açılmış Chrome profilinden gelir.
Bu ortam değişkenleri geri dönüş olarak kabul edilir:
OPENCLAW_GOOGLE_MEET_CLIENT_IDveyaGOOGLE_MEET_CLIENT_IDOPENCLAW_GOOGLE_MEET_CLIENT_SECRETveyaGOOGLE_MEET_CLIENT_SECRETOPENCLAW_GOOGLE_MEET_REFRESH_TOKENveyaGOOGLE_MEET_REFRESH_TOKENOPENCLAW_GOOGLE_MEET_ACCESS_TOKENveyaGOOGLE_MEET_ACCESS_TOKENOPENCLAW_GOOGLE_MEET_ACCESS_TOKEN_EXPIRES_ATveyaGOOGLE_MEET_ACCESS_TOKEN_EXPIRES_ATOPENCLAW_GOOGLE_MEET_DEFAULT_MEETINGveyaGOOGLE_MEET_DEFAULT_MEETINGOPENCLAW_GOOGLE_MEET_PREVIEW_ACKveyaGOOGLE_MEET_PREVIEW_ACK
Çözümleme, ön denetim ve artefaktları okuma
--meeting ile artifacts ve attendance varsayılan olarak en son konferans kaydını kullanır; tutulan her kayıt için --all-conference-records parametresini iletin.
Takvim araması, artefaktları okumadan önce toplantı URL’sini Google Calendar’dan çözümler (Calendar etkinlikleri salt okunur kapsamını içeren bir yenileme token’ı gerektirir):
--today, Meet bağlantısı içeren bir etkinlik için bugünün primary takvimini arar; --event <query> eşleşen etkinlik metnini arar; --calendar <id> birincil olmayan bir takvimi hedefler. calendar-events eşleşen etkinliklerin önizlemesini gösterir ve latest/artifacts/attendance/export seçeneklerinin hangisini seçeceğini işaretler.
Konferans kaydı kimliğini zaten biliyorsanız doğrudan belirtin:
spaces.endActiveConference çağrısını yapar ve yetkilendirilmiş hesabın yönetebildiği bir alan için meetings.space.created kapsamına sahip OAuth gerektirir. Bir Meet URL’sini, toplantı kodunu veya spaces/{id} değerini kabul eder ve önce bunu API alan kaynağına çözümler. Bu, googlemeet leave işleminden ayrıdır: leave, OpenClaw’ın yerel/oturum katılımını durdurur; end-active-conference, Google Meet’ten alanın etkin konferansını sonlandırmasını ister.
Okunabilir bir rapor yazın:
artifacts, Google tarafından sunulduğunda konferans kaydı meta verileriyle birlikte katılımcı, kayıt, transkript, yapılandırılmış transkript girdisi ve akıllı not kaynağı meta verilerini döndürür. --no-transcript-entries, büyük toplantılarda girdi aramasını atlar. attendance, katılımcıları ilk/son görülme zamanlarını, toplam oturum süresini, geç kalma/erken ayrılma bayraklarını içeren katılımcı oturumu satırlarına genişletir ve yinelenen katılımcı kaynaklarını oturum açmış kullanıcıya veya görünen ada göre birleştirir; --no-merge-duplicates ham kaynakları ayrı tutar, --late-after-minutes/--early-before-minutes eşikleri ayarlar.
export; summary.md, attendance.csv, transcript.md, artifacts.json, attendance.json ve manifest.json içeren bir klasör yazar. manifest.json, seçilen girdiyi, dışa aktarma seçeneklerini, konferans kayıtlarını, çıktı dosyalarını, sayıları, token kaynağını, kullanılan Calendar etkinliğini ve kısmi alma uyarılarını kaydeder. --zip, klasörün yanına taşınabilir bir arşiv de yazar. --include-doc-bodies, bağlantılı transkript/akıllı not Google Docs metnini Drive files.export aracılığıyla dışa aktarır (Drive Meet salt okunur kapsamını gerektirir); bu olmadan dışa aktarımlar yalnızca Meet meta verilerini ve yapılandırılmış transkript girdilerini içerir. Kısmi bir artefakt hatası (akıllı not listeleme, transkript girdisi veya belge gövdesi hatası), tüm dışa aktarımın başarısız olmasına neden olmak yerine uyarıyı özette/manifestte tutar. --dry-run, aynı verileri getirir ve klasörü veya ZIP’i oluşturmadan manifest JSON’unu yazdırır.
Aracılar aynı eylemleri google_meet aracı üzerinden kullanır (export, accessType ile create, end_active_conference, test_listen); bkz. Araç.
Canlı duman testi
Temel artefakt/katılım duman testi
meetings.space.readonly ve meetings.conference.media.readonly gerektirir. Calendar araması calendar.events.readonly gerektirir. Drive belge gövdesi dışa aktarımı drive.meet.readonly gerektirir.
Oluşturma örnekleri
google_meet, düz bir dize yerine yapılandırılmış ayrıntılar döndürür:
manualActionRequired: true veya bir tarayıcı geri dönüşü hatası bildirir ve yeniden denemeden önce operatörden Google oturum açma işlemini tamamlamasını ister.
preview.enrollmentAcknowledged: true değerini yalnızca Cloud projenizin, OAuth sorumlusunun ve toplantı katılımcılarının Meet medya API’leri için Google Workspace Developer Preview Program’a kayıtlı olduğunu doğruladıktan sonra ayarlayın.
Yapılandırma
Yaygın Chrome aracı yolu yalnızca Plugin’in etkinleştirilmesini, BlackHole’u, SoX’u, gerçek zamanlı bir sağlayıcı anahtarını ve yapılandırılmış bir OpenClaw TTS sağlayıcısını gerektirir:Varsayılanlar
chrome.audioBridgeCommand ve chrome.audioBridgeHealthCommand, chrome.audioInputCommand/chrome.audioOutputCommand yerine harici bir köprünün yerel ses yolunun tamamını yönetmesine olanak tanır; bunları hangi modun kullanabileceğine ilişkin kısıtlama için Notlar bölümüne bakın.
Eski realtime.provider: "google" biçimi için bir openclaw doctor --fix geçişi vardır: bu alanlar henüz ayarlanmamışsa söz konusu amacı realtime.voiceProvider: "google" ile realtime.transcriptionProvider: "openai" alanlarına taşır.
İsteğe bağlı geçersiz kılmalar
tts.providers.elevenlabs.speakerVoiceId kaynağından gelir. TTS modeli geçersiz kılmaları etkinleştirildiğinde ajan yanıtları, yanıt başına [[tts:speakerVoiceId=... model=eleven_v3]] yönergelerini de kullanabilir; ancak toplantılar için yapılandırma belirlenimci varsayılandır. Katılım sırasında günlüklerde transcriptionProvider=elevenlabs gösterilir ve söylenen her yanıt provider=elevenlabs model=eleven_v3 speakerVoiceId=<voiceId> olarak günlüğe kaydedilir.
Yalnızca Twilio yapılandırması:
voiceCall.enabled: true (varsayılan) ve Twilio aktarımı kullanıldığında Voice Call, gerçek zamanlı medya akışını açmadan önce DTMF dizisini gönderir, ardından kaydedilmiş giriş metnini ilk gerçek zamanlı selamlama olarak kullanır. voice-call etkin değilse Google Meet, arama planını yine de doğrulayıp kaydedebilir ancak Twilio aramasını gerçekleştiremez.
Yerel güvenilir Gateway çalışma zamanını kullanmak için voiceCall.gatewayUrl ayarını yapmayın; bu çalışma zamanı, çağrıyı
başlatan agent’ı çağrının tamamı boyunca korur. Yapılandırılmış bir Gateway URL’si açık bir WebSocket hedefi olarak kalır ve
plugin kaynağının kimliğini doğrulayamaz; varsayılan olmayan agent katılımları, sessizce
başka bir agent kullanmak yerine güvenli biçimde başarısız olur. Agent başına
yönlendirme gerektiğinde Google Meet ve Voice Call’u aynı Gateway işleminde çalıştırın.
Araç
Agent’largoogle_meet aracını kullanır:
test_speech her zaman mode: "agent" veya "bidi" kullanımını zorunlu kılar ve yalnızca gözlem oturumları konuşma üretemediğinden mode: "transcribe" içinde çalıştırılması istendiğinde başarısız olur. speechOutputVerified, hem yeni gerçek zamanlı çıkış baytlarının hem de bu çıkış sırasında köprünün mikrofon yakalama yoluna dönen yeni ve sessiz olmayan sesin bulunmasını gerektirir. Yeniden kullanılan bir oturumun eski çıkışı veya geri döngü sinyali hesaba katılmaz ve yalnızca alıcı baytlarındaki artış artık konuşmanın doğrulandığını bildirmez.
Chrome aktarımlarında leave, Meet’in Ayrıl düğmesine tıklandıktan sonra yeniden kullanılan ve kullanıcıya ait olan sekmeyi açık tutar. OpenClaw tarafından açılan sekmeler ayrılmanın ardından kapatılır.
Chrome Gateway ana makinesinde çalıştığında transport: "chrome", eşleştirilmiş bir Node üzerinde çalıştığında transport: "chrome-node" kullanın. Her iki durumda da model sağlayıcıları ve openclaw_agent_consult Gateway ana makinesinde çalışır; böylece model kimlik bilgileri orada kalır. Agent modu günlükleri, köprü başlangıcında çözümlenen transkripsiyon sağlayıcısını/modelini ve sentezlenen her yanıttan sonra TTS sağlayıcısını/modelini/sesini/çıkış biçimini/örnekleme hızını içerir. Ham mode: "realtime", mode: "agent" için eski bir uyumluluk diğer adı olarak hâlâ kabul edilir, ancak artık aracın mode enum’unda gösterilmez.
API destekli bir oda ve açık erişim politikasıyla create:
status, kullanılabildiğinde Chrome durumunu içerir:
Agent ve çift yönlü modlar
agent modu: Gerçek zamanlı transkripsiyon sağlayıcısı toplantı sesini dinler, nihai katılımcı transkriptleri yapılandırılmış OpenClaw agent’ı üzerinden yönlendirilir ve yanıt normal OpenClaw TTS aracılığıyla seslendirilir. Yakın nihai transkript parçaları danışma öncesinde birleştirilir; böylece tek bir konuşma sırası, birkaç eski kısmi yanıt üretmez. Kuyruktaki asistan sesi oynatılmaya devam ederken gerçek zamanlı giriş engellenir ve BlackHole geri döngüsünün agent’ın kendi konuşmasına yanıt vermesine yol açmaması için yakın tarihli, asistana benzer transkript yankıları danışma öncesinde yok sayılır.
bidi modu: Gerçek zamanlı ses modeli doğrudan yanıt verir ve daha derin akıl yürütme, güncel bilgiler veya normal OpenClaw araçları için openclaw_agent_consult çağrısı yapabilir. Danışma aracı, arka planda normal OpenClaw agent’ını yakın tarihli toplantı transkripti bağlamıyla çalıştırır ve kısa, seslendirilebilir bir yanıt döndürür; agent modunda OpenClaw bu yanıtı doğrudan TTS’ye gönderir, bidi modunda ise gerçek zamanlı ses modeli yanıtı seslendirebilir. Voice Call ile aynı paylaşılan danışma mekanizmasını kullanır.
Danışmalar varsayılan olarak main agent’ı üzerinde çalışır; bir Meet hattını özel bir agent çalışma alanına, model varsayılanlarına, araç politikasına, belleğe ve oturum geçmişine yönlendirmek için realtime.agentId ayarlayın. Agent modu danışmaları, takip sorularının normal agent politikasını devralırken toplantı bağlamını koruması için toplantı başına bir agent:<id>:subagent:google-meet:<session> oturum anahtarı kullanır. Bir agent, agent modunda google_meet çağrısı yaptığında danışman oturumu, katılımcı konuşmasını yanıtlamadan önce çağıranın geçerli transkriptinden çatallanır; Meet oturumu ayrı kalır, böylece toplantıdaki takip soruları çağıranın transkriptini doğrudan değiştirmez.
realtime.toolPolicy, danışma çalıştırmasını denetler:
Danışma oturum anahtarı Meet oturumu başına kapsamlandırılır; bu nedenle takip eden danışma çağrıları aynı toplantı sırasında önceki danışma bağlamını yeniden kullanır.
Chrome tamamen katıldıktan sonra sesli bir hazır olma kontrolünü zorunlu kılın:
Canlı test kontrol listesi
Bir toplantıyı gözetimsiz bir agent’a devretmeden önce:googlemeet setuptamamen yeşildir ve Chrome-node varsayılan aktarım olduğunda veya bir node sabitlendiğindechrome-node-connectediçerir.nodes status, seçili node’un bağlı olduğunu ve hemgooglemeet.chromehem debrowser.proxyözelliklerini duyurduğunu gösterir.- Meet sekmesi katılır ve
test-speech,inCall: trueile Chrome durumunu döndürür.
googlemeet setup; yeşiltwilio-voice-call-plugin,twilio-voice-call-credentialsvetwilio-voice-call-webhookdenetimlerini içerir.voicecall, Gateway yeniden yüklendikten sonra CLI’da kullanılabilir.- Döndürülen oturumda
transport: "twilio"ve birtwilio.voiceCallIdbulunur. openclaw logs --follow, gerçek zamanlı TwiML’den önce DTMF TwiML’in sunulduğunu, ardından ilk karşılamanın kuyruğa alındığı bir gerçek zamanlı köprüyü gösterir.googlemeet leave <sessionId>, devredilen sesli aramayı sonlandırır.
Sorun giderme
Temsilci Google Meet aracını göremiyor
Plugin’in etkin olduğunu doğrulayın ve Gateway’i yeniden yükleyin; çalışan temsilci yalnızca mevcut Gateway işlemi tarafından kaydedilmiş Plugin araçlarını görür:google_meet görünür kalır, ancak yerel Chrome geri konuşma eylemleri ses köprüsüne ulaşmadan engellenir. Varsayılan yerel Chrome temsilcisi yolu yerine mode: "transcribe", Twilio telefonla katılımı veya macOS chrome-node ana makinesi kullanın.
Bağlı, Google Meet özellikli node yok
Node ana makinesinde:googlemeet.chrome ile browser.proxy öğelerini listelemelidir; Gateway yapılandırması her ikisine de izin vermelidir:
googlemeet setup, chrome-node-connected denetiminde başarısız olursa veya Gateway günlüğü gateway token mismatch bildirirse node’u güncel Gateway token’ı ile yeniden kurun ya da yeniden başlatın:
Tarayıcı açılıyor ancak temsilci katılamıyor
Yalnızca gözlem amaçlı katılımlar içingooglemeet test-listen, gerçek zamanlı katılımlar için googlemeet test-speech çalıştırın; ardından döndürülen Chrome durumunu inceleyin. Bunlardan biri manualActionRequired: true bildirirse operatöre manualActionMessage gösterin ve tarayıcı eylemi tamamlanana kadar yeniden denemeyi bırakın.
Yaygın manuel eylemler: Chrome profiline giriş yapın; konuğu Meet ana makine hesabından kabul edin; yerel istem göründüğünde Chrome mikrofon/kamera izinlerini verin; takılı kalan Meet izin iletişim kutusunu kapatın veya düzeltin.
Meet yalnızca “Do you want people to hear you in the meeting?” diye sorduğu için “oturum açılmamış” bildiriminde bulunmayın; bu, Meet’in ses seçimi ara ekranıdır. OpenClaw, kullanılabilir olduğunda tarayıcı otomasyonu aracılığıyla Use microphone öğesine tıklar ve gerçek toplantı durumunu beklemeye devam eder; yalnızca oluşturma amaçlı tarayıcı geri dönüşünde bunun yerine Continue without microphone öğesine tıklayabilir çünkü URL oluşturmak için gerçek zamanlı ses yolu gerekmez.
Toplantı oluşturma başarısız oluyor
googlemeet create, OAuth yapılandırılmışsa Meet API spaces.create öğesini, aksi takdirde sabitlenmiş Chrome node tarayıcısını kullanır. Şunları doğrulayın:
- API ile oluşturma:
oauth.clientIdveoauth.refreshToken(veya eşleşenOPENCLAW_GOOGLE_MEET_*ortam değişkenleri) mevcuttur ve yenileme token’ı oluşturma desteği eklendikten sonra üretilmiştir; eski token’lardameetings.space.createdbulunmayabilir, bu nedenleopenclaw googlemeet auth login --jsonkomutunu yeniden çalıştırın. - Tarayıcı geri dönüşü:
defaultTransport: "chrome-node"vechromeNode.node,browser.proxyilegooglemeet.chromeözelliklerine sahip bağlı bir node’u gösterir; bu node’daki OpenClaw Chrome profilinde oturum açılmıştır ve profilhttps://meet.google.com/newöğesini açabilir. - Tarayıcı geri dönüşü yeniden denemeleri: yeni bir sekme açmadan önce mevcut bir
.../newveya Google hesabı istem sekmesini yeniden kullanın; manuel olarak başka bir sekme açmak yerine araç çağrısını yeniden deneyin. - Manuel eylem: araç
manualActionRequired: truedöndürürse operatörü yönlendirmek içinbrowser.nodeId,browser.targetId,browserUrlvemanualActionMessagekullanın; döngü içinde yeniden denemeyin. - Ses seçimi ara ekranı: Meet “Do you want people to hear you in the meeting?” mesajını gösterirse sekmeyi açık bırakın. OpenClaw, Use microphone veya (yalnızca oluşturma için) Continue without microphone öğesine tıklayıp oluşturulan URL’yi beklemeye devam etmelidir; bunu yapamazsa hata
google-login-requireddeğil,meet-audio-choice-requiredbelirtmelidir.
Temsilci katılıyor ancak konuşmuyor
mode: "agent", doğrudan gerçek zamanlı ses geri dönüşü için mode: "bidi" kullanın. mode: "transcribe" kasıtlı olarak geri konuşma köprüsü başlatmaz. Yalnızca gözlem amaçlı hata ayıklamada katılımcılar konuştuktan sonra openclaw googlemeet status --json <session-id> çalıştırın ve captioning, transcriptLines, lastCaptionText öğelerini denetleyin. inCall doğruysa ancak transcriptLines, 0 olarak kalıyorsa Meet altyazıları devre dışı olabilir, gözlemci kurulduğundan beri kimse konuşmamış olabilir, Meet kullanıcı arayüzü değişmiş olabilir veya toplantı dili/hesabı için canlı altyazılar kullanılamıyor olabilir.
googlemeet test-speech her zaman gerçek zamanlı yolu denetler ve bu çağrı için köprü çıkış baytlarının gözlemlenip gözlemlenmediğini bildirir. speechOutputVerified yanlış ve speechOutputTimedOut doğruysa gerçek zamanlı sağlayıcı ifadeyi kabul etmiş olabilir ancak OpenClaw, Chrome ses köprüsüne ulaşan yeni çıkış baytlarını görmemiştir.
Şunları da doğrulayın: Gateway ana makinesinde bir gerçek zamanlı sağlayıcı anahtarı (OPENAI_API_KEY veya GEMINI_API_KEY) kullanılabilir; Chrome ana makinesinde BlackHole 2ch görünür; orada sox bulunur; Meet mikrofonu/hoparlörü sanal ses yolu üzerinden yönlendirilir (doctor, yerel Chrome gerçek zamanlı katılımları için meet output routed: yes göstermelidir).
googlemeet doctor [session-id]; oturumu, node’u, aramadaki durumu, manuel eylem nedenini, gerçek zamanlı sağlayıcı bağlantısını, realtimeReady, ses giriş/çıkış etkinliğini, son ses zaman damgalarını, bayt sayaçlarını ve tarayıcı URL’sini yazdırır. Ham JSON için googlemeet status [session-id] --json, token’ları açığa çıkarmadan OAuth yenilemesini doğrulamak için googlemeet doctor --oauth (--meeting veya --create-space ekleyin) kullanın.
Bir temsilci zaman aşımına uğradıysa ve bir Meet sekmesi zaten açıksa başka bir sekme açmadan inceleyin:
recover_current_tab’dir: seçili aktarım için mevcut bir Meet sekmesine odaklanır ve sekmeyi (chrome için yerel tarayıcı denetimi, chrome-node için yapılandırılmış node) yeni bir sekme veya oturum açmadan inceler ve mevcut engeli (giriş, kabul, izinler, ses seçimi durumu) bildirir. CLI komutu, çalışıyor olması gereken yapılandırılmış Gateway ile iletişim kurar; chrome-node ayrıca node’un bağlı olmasını gerektirir.
Twilio kurulum denetimleri başarısız oluyor
voice-call izinli veya etkin olmadığında twilio-voice-call-plugin başarısız olur: bunu plugins.allow öğesine ekleyin, plugins.entries.voice-call öğesini etkinleştirin ve Gateway’i yeniden yükleyin.
Twilio arka ucunda hesap SID’si, kimlik doğrulama token’ı veya arayan numarası eksik olduğunda twilio-voice-call-credentials başarısız olur:
voice-call herkese açık Webhook erişimine sahip olmadığında veya publicUrl geri döngü/özel ağ alanını gösterdiğinde twilio-voice-call-webhook başarısız olur. publicUrl olarak 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 veya fd00::/8 kullanmayın; operatör geri çağrıları bunlara ulaşamaz. plugins.entries.voice-call.config.publicUrl değerini herkese açık bir URL olarak ayarlayın veya bir tünel/Tailscale erişimi yapılandırın:
voicecall smoke varsayılan olarak yalnızca hazır olma durumunu denetler. Belirli bir numara için deneme çalıştırması yapın:
--yes ekleyin:
Twilio araması başlıyor ancak toplantıya hiç girmiyor
Meet etkinliğinin telefonla katılım bilgilerini sunduğunu doğrulayın ve tam katılım numarasıyla birlikte PIN’i veya özel bir DTMF dizisini iletin:--dtmf-sequence içinde başta w veya virgüller kullanın.
Arama oluşturulduğu hâlde Meet katılımcı listesinde telefonla katılan kişi hiç görünmüyorsa:
openclaw googlemeet doctor <session-id>: devredilen Twilio arama kimliğini, DTMF’nin kuyruğa alınıp alınmadığını ve giriş karşılamasının istenip istenmediğini doğrulayın.openclaw voicecall status --call-id <id>: aramanın hâlâ etkin olduğunu doğrulayın.openclaw voicecall tail: Twilio Webhook’larının Gateway’e ulaştığını doğrulayın.openclaw logs --follow: Twilio Meet sırasını arayın: Google Meet katılımı devreder, Voice Call bağlantı öncesi DTMF TwiML’i depolayıp sunar, Voice Call Twilio araması için gerçek zamanlı TwiML sunar, ardından Google Meetvoicecall.speakile giriş konuşmasını ister.openclaw googlemeet setup --transport twiliokomutunu yeniden çalıştırın; yeşil kurulum denetimi gereklidir ancak toplantı PIN dizisinin doğru olduğunu kanıtlamaz.- Telefonla katılım numarasının PIN ile aynı Meet davetine ve bölgesine ait olduğunu doğrulayın.
- Meet yavaş yanıt veriyorsa veya bağlantı öncesi DTMF gönderildikten sonra arama dökümü hâlâ PIN istemini gösteriyorsa
voiceCall.dtmfDelayMsdeğerini 12 saniyelik varsayılandan artırın. - Katılımcı katıldığı hâlde karşılamayı duymuyorsanız DTMF sonrası
voicecall.speakisteği ve medya akışı TTS oynatımı ya da Twilio<Say>geri dönüşü içinopenclaw logs --followöğesini denetleyin. Döküm hâlâ “enter the meeting PIN” gösteriyorsa telefon bağlantısı henüz Meet odasına katılmamıştır; bu nedenle katılımcılar konuşmayı duymaz.
plugins.entries.voice-call.config.publicUrl adresine veya yapılandırılmış tünele erişebilmesi gerekir. Bkz. Sesli arama sorunlarını giderme.
Notlar
Google Meet’in resmi medya API’si alım odaklıdır; bu nedenle bir aramada konuşmak için yine de bir katılımcı yolu gerekir. Bu plugin, söz konusu sınırı görünür tutar: Chrome, tarayıcı katılımını ve yerel ses yönlendirmesini; Twilio ise telefonla katılımı yönetir. Chrome geri konuşma modları içinBlackHole 2ch ile birlikte aşağıdakilerden biri gerekir:
chrome.audioInputCommandvechrome.audioOutputCommand: Köprünün sahibi OpenClaw’dur ve sesi bu komutlarla seçilen sağlayıcı arasındachrome.audioFormatbiçiminde aktarır.agentmodu, gerçek zamanlı transkripsiyon ile normal TTS’yi;bidimodu ise gerçek zamanlı ses sağlayıcısını kullanır. Varsayılan yol,chrome.audioBufferBytes: 4096ile 24 kHz PCM16’dır; eski komut çiftleri için 8 kHz G.711 mu-law seçeneği kullanılabilir durumda kalır.chrome.audioBridgeCommand: Harici bir köprü komutu, yerel ses yolunun tamamının sahibidir ve arka plan programını başlattıktan veya doğruladıktan sonra sonlanmalıdır. Yalnızcabidiiçin geçerlidir; çünküagentmodu, TTS için komut çiftine doğrudan erişim gerektirir.
chrome.bargeInInputCommand, ayrı bir yerel mikrofonu dinleyebilir ve bir kişi konuşmaya başladığında asistan oynatımını temizleyebilir. Böylece paylaşılan BlackHole geri döngü girişi, asistan oynatımı sırasında geçici olarak bastırılsa bile insan konuşmasına asistan çıktısından önce öncelik verilir. chrome.audioInputCommand/chrome.audioOutputCommand gibi bu da operatör tarafından yapılandırılan yerel bir komuttur: açıkça belirtilmiş, güvenilir bir komut yolu veya bağımsız değişken listesi kullanın; güvenilmeyen bir konumdaki betiği asla kullanmayın.
Temiz çift yönlü ses için Meet çıkışını ve Meet mikrofonunu ayrı sanal cihazlar ya da Loopback tarzı bir sanal cihaz grafiği üzerinden yönlendirin; tek bir paylaşılan BlackHole cihazı, diğer katılımcıların sesini aramaya geri yansıtabilir.
googlemeet speak, bir Chrome oturumu için etkin geri konuşma ses köprüsünü tetikler; googlemeet leave bunu durdurur (ve Voice Call üzerinden devredilen Twilio oturumlarında temel aramayı sonlandırır). API tarafından yönetilen bir alanın etkin Google Meet konferansını da kapatmak için googlemeet end-active-conference kullanın.