From 0d517f11ddb5f0b43b0164f650bdad98e249e474 Mon Sep 17 00:00:00 2001 From: "openclaw-docs-i18n[bot]" Date: Fri, 1 May 2026 05:47:20 +0000 Subject: [PATCH] chore(i18n): refresh uk translations --- docs/uk/plugins/google-meet.md | 575 +++++++++++++++++---------------- 1 file changed, 298 insertions(+), 277 deletions(-) diff --git a/docs/uk/plugins/google-meet.md b/docs/uk/plugins/google-meet.md index a0c538fbd..cc061b540 100644 --- a/docs/uk/plugins/google-meet.md +++ b/docs/uk/plugins/google-meet.md @@ -1,33 +1,33 @@ --- read_when: - Ви хочете, щоб агент OpenClaw приєднався до виклику Google Meet - - Ви хочете, щоб агент OpenClaw створив новий дзвінок Google Meet + - Ви хочете, щоб агент OpenClaw створив новий виклик Google Meet - Ви налаштовуєте Chrome, вузол Chrome або Twilio як транспорт Google Meet -summary: 'Plugin Google Meet: приєднання до явних URL-адрес Meet через Chrome або Twilio зі стандартними налаштуваннями голосу в реальному часі' +summary: 'Google Meet Plugin: приєднання до явних URL Meet через Chrome або Twilio зі типовими налаштуваннями голосу в реальному часі' title: Plugin Google Meet x-i18n: - generated_at: "2026-05-01T04:46:32Z" + generated_at: "2026-05-01T05:44:37Z" model: gpt-5.5 provider: openai - source_hash: 7eb6e48964d9592562fad1cebeadd765f2a2bcea9bfe887153e65438bfeaa617 + source_hash: ad42eb664c3dcffe261c2bd7f5d8a3cd87a31e5a1b030d1a6f68c0259ffa53c6 source_path: plugins/google-meet.md workflow: 16 --- -Підтримка учасника Google Meet для OpenClaw — Plugin навмисно працює явно: +Підтримка учасника Google Meet для OpenClaw — Plugin навмисно вимагає явного вибору: - Він приєднується лише до явно вказаної URL-адреси `https://meet.google.com/...`. - Він може створити новий простір Meet через Google Meet API, а потім приєднатися до поверненої URL-адреси. -- `realtime` голос є режимом за замовчуванням. -- Голос у реальному часі може викликати повного агента OpenClaw, коли потрібні глибші +- `realtime` voice є режимом за замовчуванням. +- Realtime voice може викликати повного агента OpenClaw, коли потрібні глибші міркування або інструменти. - Агенти вибирають поведінку приєднання за допомогою `mode`: використовуйте `realtime` для живого прослуховування/відповіді голосом або `transcribe`, щоб приєднатися/керувати браузером без - голосового мосту реального часу. -- Автентифікація починається як особистий Google OAuth або вже виконаний вхід у профілі Chrome. + realtime voice bridge. +- Автентифікація починається як персональний Google OAuth або вже виконаний вхід у профіль Chrome. - Автоматичного оголошення згоди немає. -- Стандартний аудіобекенд Chrome — `BlackHole 2ch`. +- Аудіобекенд Chrome за замовчуванням — `BlackHole 2ch`. - Chrome може працювати локально або на спареному вузловому хості. - Twilio приймає номер для дзвінка плюс необов’язковий PIN або послідовність DTMF. - Команда CLI — `googlemeet`; `meet` зарезервовано для ширших агентських @@ -35,8 +35,8 @@ x-i18n: ## Швидкий старт -Установіть локальні аудіозалежності та налаштуйте бекенд-провайдер голосу -реального часу. OpenAI є стандартним; Google Gemini Live також працює з +Установіть локальні аудіозалежності та налаштуйте бекенд-провайдера realtime voice. +OpenAI використовується за замовчуванням; Google Gemini Live також працює з `realtime.provider: "google"`: ```bash @@ -46,14 +46,14 @@ export OPENAI_API_KEY=sk-... export GEMINI_API_KEY=... ``` -`blackhole-2ch` встановлює віртуальний аудіопристрій `BlackHole 2ch`. Інсталятор -Homebrew потребує перезавантаження, перш ніж macOS покаже пристрій: +`blackhole-2ch` установлює віртуальний аудіопристрій `BlackHole 2ch`. Інсталятор Homebrew +потребує перезавантаження, перш ніж macOS покаже пристрій: ```bash sudo reboot ``` -Після перезавантаження перевірте обидві частини: +Після перезавантаження перевірте обидва компоненти: ```bash system_profiler SPAudioDataType | grep -i BlackHole @@ -81,22 +81,23 @@ command -v sox openclaw googlemeet setup ``` -Вивід налаштування призначений бути читабельним для агента та враховувати режим. Він повідомляє про профіль Chrome, -закріплення вузла і, для приєднань Chrome у реальному часі, аудіоміст BlackHole/SoX -та перевірки відкладеного вступу в реальному часі. Для приєднань лише для спостереження перевірте той самий -транспорт із `--mode transcribe`; цей режим пропускає передумови аудіо реального часу, -оскільки він не слухає й не говорить через міст: +Вивід налаштування призначений для читання агентом і враховує режим. Він повідомляє про профіль Chrome, +прив’язку вузла та, для realtime-приєднань через Chrome, аудіоміст BlackHole/SoX +і відкладені перевірки realtime-вступу. Для приєднань лише для спостереження перевірте той самий +транспорт із `--mode transcribe`; цей режим пропускає передумови realtime audio, +бо не слухає через міст і не говорить через нього: ```bash openclaw googlemeet setup --transport chrome-node --mode transcribe ``` -Коли делегування Twilio налаштовано, налаштування також повідомляє, чи готові -Plugin `voice-call` і облікові дані Twilio. Сприймайте будь-яку перевірку `ok: false` -як блокер для перевіреного транспорту й режиму, перш ніж просити агента -приєднатися. Використовуйте `openclaw googlemeet setup --json` для скриптів або машинно-читабельного -виводу. Використовуйте `--transport chrome`, `--transport chrome-node` або `--transport twilio`, -щоб попередньо перевірити конкретний транспорт до того, як агент його спробує. +Коли налаштовано делегування Twilio, налаштування також повідомляє, чи готові +Plugin `voice-call`, облікові дані Twilio і публічний Webhook. +Будь-яку перевірку `ok: false` вважайте блокером для перевірених транспорту й режиму, +перш ніж просити агента приєднатися. Використовуйте `openclaw googlemeet setup --json` для +скриптів або машинозчитуваного виводу. Використовуйте `--transport chrome`, +`--transport chrome-node` або `--transport twilio`, щоб попередньо перевірити конкретний +транспорт, перш ніж агент спробує його. Приєднайтеся до зустрічі: @@ -133,21 +134,21 @@ openclaw googlemeet create --no-join найдетермінованіший шлях, який не залежить від стану інтерфейсу браузера. - Резервний шлях через браузер: використовується, коли облікові дані OAuth відсутні. OpenClaw використовує закріплений вузол Chrome, відкриває `https://meet.google.com/new`, чекає, доки Google - перенаправить на справжню URL-адресу з кодом зустрічі, а потім повертає цю URL-адресу. Цей шлях потребує, - щоб у профілі Chrome OpenClaw на вузлі вже було виконано вхід у Google. - Автоматизація браузера обробляє власний початковий запит Meet на мікрофон; цей запит + перенаправить на реальну URL-адресу з кодом зустрічі, а потім повертає цю URL-адресу. Цей шлях вимагає, + щоб профіль OpenClaw Chrome на вузлі вже був увійшов у Google. + Автоматизація браузера обробляє власний перший запит Meet на доступ до мікрофона; цей запит не вважається помилкою входу в Google. - Потоки приєднання та створення також намагаються повторно використати наявну вкладку Meet перед відкриттям - нової. Зіставлення ігнорує нешкідливі рядки запиту URL, як-от `authuser`, тому - повторна спроба агента має сфокусувати вже відкриту зустріч замість створення другої - вкладки Chrome. + Потоки приєднання й створення також намагаються повторно використати наявну вкладку Meet перед відкриттям + нової. Зіставлення ігнорує нешкідливі рядки запиту URL, як-от `authuser`, тож повторна спроба + агента має сфокусувати вже відкриту зустріч, а не створювати другу + вкладку Chrome. Вивід команди/інструмента містить поле `source` (`api` або `browser`), щоб агенти могли пояснити, який шлях було використано. `create` за замовчуванням приєднується до нової зустрічі та повертає `joined: true` плюс сеанс приєднання. Щоб лише створити URL-адресу, використовуйте `create --no-join` у CLI або передайте `"join": false` інструменту. -Або скажіть агенту: "Створи Google Meet, приєднайся до нього з голосом у реальному часі та надішли +Або скажіть агенту: "Створи Google Meet, приєднайся до нього з realtime voice і надішли мені посилання." Агент має викликати `google_meet` з `action: "create"`, а потім поділитися поверненим `meetingUri`. @@ -160,44 +161,44 @@ openclaw googlemeet create --no-join ``` Для приєднання лише для спостереження/керування браузером установіть `"mode": "transcribe"`. Це -не запускає дуплексний міст моделі реального часу, не потребує BlackHole або SoX -і не відповідатиме голосом у зустрічі. Приєднання Chrome у цьому режимі також уникає -надання OpenClaw дозволу на мікрофон/камеру та обходить шлях Meet **Use +не запускає дуплексний міст realtime-моделі, не потребує BlackHole або SoX +і не відповідатиме голосом у зустрічі. Приєднання Chrome у цьому режимі також уникають +надання OpenClaw дозволів на мікрофон/камеру та обходять шлях Meet **Use microphone**. Якщо Meet показує проміжний екран вибору аудіо, автоматизація намагається -вибрати шлях без мікрофона, а інакше повідомляє про ручну дію замість відкриття +вибрати шлях без мікрофона, а інакше повідомляє про потрібну ручну дію замість відкриття локального мікрофона. -Під час сеансів реального часу статус `google_meet` містить стан браузера й аудіомосту, +Під час realtime-сеансів статус `google_meet` містить стан браузера й аудіомоста, зокрема `inCall`, `manualActionRequired`, `providerConnected`, -`realtimeReady`, `audioInputActive`, `audioOutputActive`, останні позначки часу вводу/виводу, -лічильники байтів і стан закриття мосту. Якщо з’являється безпечний запит сторінки Meet, +`realtimeReady`, `audioInputActive`, `audioOutputActive`, останні часові мітки +вводу/виводу, лічильники байтів і стан закриття моста. Якщо з’являється безпечний запит сторінки Meet, автоматизація браузера обробляє його, коли може. Вхід, допуск хостом і запити дозволів браузера/ОС повідомляються як ручна дія з причиною та -повідомленням, яке агент має передати. Керовані сеанси Chrome відтворюють вступ або +повідомленням, яке агент має передати. Керовані сеанси Chrome видають вступ або тестову фразу лише після того, як стан браузера повідомляє `inCall: true`; інакше статус повідомляє `speechReady: false`, а спроба мовлення блокується замість удавання, що агент говорив у зустріч. -Локальні приєднання Chrome використовують браузерний профіль OpenClaw із виконаним входом. Режим реального часу +Локальні приєднання Chrome виконуються через профіль браузера OpenClaw із виконаним входом. Realtime-режим потребує `BlackHole 2ch` для шляху мікрофона/динаміка, який використовує OpenClaw. Для -чистого дуплексного аудіо використовуйте окремі віртуальні пристрої або граф у стилі Loopback; одного -пристрою BlackHole достатньо для першого smoke-тесту, але він може створювати відлуння. +чистого дуплексного аудіо використовуйте окремі віртуальні пристрої або граф у стилі Loopback; +одного пристрою BlackHole достатньо для першого smoke-тесту, але він може створювати відлуння. ### Локальний Gateway + Parallels Chrome Вам **не** потрібен повний OpenClaw Gateway або ключ API моделі всередині macOS VM лише для того, щоб VM володіла Chrome. Запустіть Gateway і агента локально, а потім запустіть -вузловий хост у VM. Один раз увімкніть комплектний Plugin на VM, щоб вузол +вузловий хост у VM. Один раз увімкніть bundled Plugin на VM, щоб вузол оголошував команду Chrome: Що де працює: -- Хост Gateway: OpenClaw Gateway, робочий простір агента, ключі моделі/API, провайдер - реального часу та конфігурація Google Meet Plugin. +- Хост Gateway: OpenClaw Gateway, робочий простір агента, ключі моделі/API, realtime + provider і конфігурація Google Meet Plugin. - Parallels macOS VM: OpenClaw CLI/вузловий хост, Google Chrome, SoX, BlackHole 2ch - і профіль Chrome із виконаним входом у Google. + і профіль Chrome із входом у Google. - Не потрібно у VM: служба Gateway, конфігурація агента, ключ OpenAI/GPT або налаштування - провайдера моделі. + provider моделі. Установіть залежності VM: @@ -218,7 +219,7 @@ system_profiler SPAudioDataType | grep -i BlackHole command -v sox ``` -Установіть або оновіть OpenClaw у VM, а потім увімкніть там комплектний Plugin: +Установіть або оновіть OpenClaw у VM, а потім увімкніть bundled Plugin там: ```bash openclaw plugins enable google-meet @@ -230,8 +231,8 @@ openclaw plugins enable google-meet openclaw node run --host --port 18789 --display-name parallels-macos ``` -Якщо `` — це LAN IP і ви не використовуєте TLS, вузол відмовляється від -незашифрованого WebSocket, якщо ви явно не дозволите це для цієї довіреної приватної мережі: +Якщо `` — це LAN IP і ви не використовуєте TLS, вузол відхиляє +незашифрований WebSocket, якщо ви явно не погодитеся на це для цієї довіреної приватної мережі: ```bash OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 \ @@ -309,65 +310,65 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij openclaw googlemeet test-speech https://meet.google.com/abc-defg-hij ``` -Під час приєднання в реальному часі автоматизація браузера OpenClaw заповнює ім’я гостя, натискає +Під час realtime-приєднання автоматизація браузера OpenClaw заповнює ім’я гостя, натискає Join/Ask to join і приймає перший вибір Meet "Use microphone", коли цей запит з’являється. Під час приєднання лише для спостереження або створення зустрічі лише через браузер вона проходить той самий запит без мікрофона, коли такий вибір доступний. -Якщо в профілі браузера не виконано вхід, Meet очікує допуску хостом, -Chrome потребує дозволу на мікрофон/камеру для приєднання в реальному часі, або Meet застряг +Якщо профіль браузера не увійшов у систему, Meet чекає на допуск хостом, +Chrome потребує дозволу на мікрофон/камеру для realtime-приєднання або Meet завис на запиті, який автоматизація не змогла вирішити, результат join/test-speech повідомляє `manualActionRequired: true` з `manualActionReason` і -`manualActionMessage`. Агенти мають припинити повторювати приєднання, повідомити саме це -повідомлення плюс поточні `browserUrl`/`browserTitle` і повторювати спробу лише після завершення +`manualActionMessage`. Агенти мають припинити повторювати приєднання, повідомити це точне +повідомлення плюс поточні `browserUrl`/`browserTitle` і повторити спробу лише після завершення ручної дії в браузері. Якщо `chromeNode.node` пропущено, OpenClaw автоматично вибирає вузол лише тоді, коли рівно один -підключений вузол оголошує як `googlemeet.chrome`, так і керування браузером. Якщо -підключено кілька здатних вузлів, задайте `chromeNode.node` як id вузла, +підключений вузол оголошує і `googlemeet.chrome`, і керування браузером. Якщо +підключено кілька придатних вузлів, установіть `chromeNode.node` на ідентифікатор вузла, відображуване ім’я або віддалену IP-адресу. Поширені перевірки збоїв: - `Configured Google Meet node ... is not usable: offline`: закріплений вузол - відомий Gateway, але недоступний. Агенти мають трактувати цей вузол як - діагностичний стан, а не як придатний хост Chrome, і повідомляти про блокер - налаштування замість переходу на інший транспорт, якщо користувач не просив - про це. + відомий Gateway, але недоступний. Агенти мають розглядати цей вузол як + діагностичний стан, а не як придатний до використання хост Chrome, і повідомляти + про блокер налаштування замість переходу на інший транспорт, якщо користувач + цього не просив. - `No connected Google Meet-capable node`: запустіть `openclaw node run` у VM, підтвердьте сполучення та переконайтеся, що `openclaw plugins enable google-meet` і `openclaw plugins enable browser` були виконані у VM. Також підтвердьте, що хост Gateway дозволяє обидві команди вузла через `gateway.nodes.allowCommands: ["googlemeet.chrome", "browser.proxy"]`. - `BlackHole 2ch audio device not found`: установіть `blackhole-2ch` на хості, - який перевіряється, і перезавантажте його перед використанням локального аудіо Chrome. + який перевіряється, і перезавантажтеся перед використанням локального аудіо Chrome. - `BlackHole 2ch audio device not found on the node`: установіть `blackhole-2ch` у VM і перезавантажте VM. - Chrome відкривається, але не може приєднатися: увійдіть у профіль браузера всередині VM або - залиште `chrome.guestName` заданим для гостьового приєднання. Автоматичне гостьове приєднання використовує - браузерну автоматизацію OpenClaw через проксі браузера вузла; переконайтеся, що конфігурація браузера - вузла вказує на потрібний профіль, наприклад + залиште `chrome.guestName` заданим для гостьового приєднання. Гостьове автоприєднання використовує + браузерну автоматизацію OpenClaw через браузерний проксі вузла; переконайтеся, що конфігурація + браузера вузла вказує на потрібний профіль, наприклад `browser.defaultProfile: "user"` або іменований профіль наявного сеансу. -- Дубльовані вкладки Meet: залиште `chrome.reuseExistingTab: true` увімкненим. OpenClaw - активує наявну вкладку для тієї самої URL-адреси Meet перед відкриттям нової, а - створення браузерної зустрічі повторно використовує вкладку `https://meet.google.com/new` - або запиту облікового запису Google, що вже виконується, перед відкриттям іншої. +- Дублікати вкладок Meet: залиште `chrome.reuseExistingTab: true` увімкненим. OpenClaw + активує наявну вкладку для того самого URL Meet перед відкриттям нової, а + створення браузерної зустрічі повторно використовує відкриту вкладку `https://meet.google.com/new` + або вкладку запиту облікового запису Google перед відкриттям іншої. - Немає аудіо: у Meet спрямуйте мікрофон/динамік через шлях віртуального аудіопристрою, - який використовує OpenClaw; використовуйте окремі віртуальні пристрої або маршрутизацію - в стилі Loopback для чистого двостороннього аудіо. + який використовує OpenClaw; використовуйте окремі віртуальні пристрої або маршрутизацію у стилі Loopback + для чистого дуплексного аудіо. -## Примітки щодо встановлення +## Нотатки щодо встановлення -Стандартна конфігурація Chrome realtime використовує два зовнішні інструменти: +Типовий режим Chrome realtime використовує два зовнішні інструменти: -- `sox`: утиліта командного рядка для аудіо. Plugin використовує явні команди - пристрою CoreAudio для стандартного аудіомоста PCM16 24 кГц. -- `blackhole-2ch`: віртуальний аудіодрайвер macOS. Він створює аудіопристрій - `BlackHole 2ch`, через який Chrome/Meet може маршрутизувати аудіо. +- `sox`: утиліта командного рядка для аудіо. Plugin використовує явні команди пристрою CoreAudio + для стандартного аудіомоста PCM16 24 кГц. +- `blackhole-2ch`: віртуальний аудіодрайвер macOS. Він створює аудіопристрій `BlackHole 2ch`, + через який Chrome/Meet може маршрутизувати аудіо. -OpenClaw не постачає й не розповсюджує жоден із цих пакетів. Документація просить користувачів -установити їх як залежності хоста через Homebrew. SoX ліцензовано як -`LGPL-2.0-only AND GPL-2.0-only`; BlackHole має ліцензію GPL-3.0. Якщо ви створюєте -інсталятор або appliance, який постачає BlackHole разом з OpenClaw, перегляньте +OpenClaw не вбудовує й не розповсюджує жоден із цих пакетів. Документація просить користувачів +установлювати їх як залежності хоста через Homebrew. SoX ліцензовано як +`LGPL-2.0-only AND GPL-2.0-only`; BlackHole має ліцензію GPL-3.0. Якщо ви збираєте +інсталятор або appliance, який постачається з BlackHole разом з OpenClaw, перегляньте умови ліцензування upstream BlackHole або отримайте окрему ліцензію від Existential Audio. ## Транспорти @@ -375,33 +376,33 @@ OpenClaw не постачає й не розповсюджує жоден із ### Chrome Транспорт Chrome відкриває URL Meet через керування браузером OpenClaw і приєднується -як профіль браузера OpenClaw із виконаним входом. На macOS Plugin перевіряє наявність +як виконаний вхід профіль браузера OpenClaw. На macOS Plugin перевіряє наявність `BlackHole 2ch` перед запуском. Якщо налаштовано, він також виконує команду перевірки стану аудіомоста й команду запуску перед відкриттям Chrome. Використовуйте `chrome`, коли Chrome/аудіо працюють на хості Gateway; використовуйте `chrome-node`, коли Chrome/аудіо працюють -на сполученому вузлі, наприклад VM Parallels macOS. Для локального Chrome виберіть -профіль за допомогою `browser.defaultProfile`; `chrome.browserProfile` передається -хостам `chrome-node`. +на сполученому вузлі, наприклад Parallels macOS VM. Для локального Chrome виберіть +профіль через `browser.defaultProfile`; `chrome.browserProfile` передається на +хости `chrome-node`. ```bash openclaw googlemeet join https://meet.google.com/abc-defg-hij --transport chrome openclaw googlemeet join https://meet.google.com/abc-defg-hij --transport chrome-node ``` -Маршрутизуйте аудіо мікрофона й динаміків Chrome через локальний аудіоміст OpenClaw. +Спрямуйте аудіо мікрофона й динаміка Chrome через локальний аудіоміст OpenClaw. Якщо `BlackHole 2ch` не встановлено, приєднання завершується помилкою налаштування замість тихого приєднання без аудіошляху. ### Twilio -Транспорт Twilio — це суворий план набору, делегований Plugin Voice Call. Він -не аналізує сторінки Meet для пошуку телефонних номерів. +Транспорт Twilio — це строгий план набору, делегований Plugin голосових викликів. Він +не аналізує сторінки Meet на наявність телефонних номерів. Використовуйте це, коли участь через Chrome недоступна або потрібен резервний -телефонний дозвін. Google Meet має надати номер дозвону та PIN для +телефонний вхід. Google Meet має надати телефонний номер для набору та PIN для зустрічі; OpenClaw не виявляє їх зі сторінки Meet. -Увімкніть Plugin Voice Call на хості Gateway, а не на вузлі Chrome: +Увімкніть Plugin голосових викликів на хості Gateway, а не на вузлі Chrome: ```json5 { @@ -426,8 +427,8 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij --transport chrome } ``` -Надайте облікові дані Twilio через середовище або конфігурацію. Середовище -не дає секретам потрапити в `openclaw.json`: +Надайте облікові дані Twilio через середовище або конфігурацію. Середовище тримає +секрети поза `openclaw.json`: ```bash export TWILIO_ACCOUNT_SID=AC... @@ -435,7 +436,7 @@ export TWILIO_AUTH_TOKEN=... export TWILIO_FROM_NUMBER=+15550001234 ``` -Перезапустіть або перезавантажте Gateway після ввімкнення `voice-call`; зміни конфігурації Plugin +Перезапустіть або перезавантажте Gateway після ввімкнення `voice-call`; зміни конфігурації plugin не з’являються в уже запущеному процесі Gateway, доки він не перезавантажиться. Потім перевірте: @@ -446,8 +447,9 @@ openclaw plugins list | grep -E 'google-meet|voice-call' openclaw googlemeet setup ``` -Коли делегування Twilio під’єднане, `googlemeet setup` містить успішні перевірки -`twilio-voice-call-plugin` і `twilio-voice-call-credentials`. +Коли делегування Twilio підключено, `googlemeet setup` містить успішні перевірки +`twilio-voice-call-plugin`, `twilio-voice-call-credentials` і +`twilio-voice-call-webhook`. ```bash openclaw googlemeet join https://meet.google.com/abc-defg-hij \ @@ -465,22 +467,22 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij \ --dtmf-sequence ww123456# ``` -## OAuth і попередня перевірка +## OAuth і preflight -OAuth необов’язковий для створення посилання Meet, оскільки `googlemeet create` може -перейти на браузерну автоматизацію. Налаштуйте OAuth, коли потрібні офіційне створення -через API, визначення простору або попередні перевірки Meet Media API. +OAuth є необов’язковим для створення посилання Meet, оскільки `googlemeet create` може +відступити до браузерної автоматизації. Налаштуйте OAuth, коли вам потрібне офіційне створення через API, +розв’язання space або preflight-перевірки Meet Media API. -Доступ до Google Meet API використовує OAuth користувача: створіть OAuth-клієнт Google Cloud, -запросіть потрібні області доступу, авторизуйте обліковий запис Google, а потім збережіть +Доступ до Google Meet API використовує користувацький OAuth: створіть OAuth-клієнт Google Cloud, +запросіть потрібні scopes, авторизуйте обліковий запис Google, а потім збережіть отриманий refresh token у конфігурації Plugin Google Meet або надайте змінні середовища `OPENCLAW_GOOGLE_MEET_*`. -OAuth не замінює шлях приєднання Chrome. Транспорти Chrome і Chrome-node -все одно приєднуються через профіль Chrome із виконаним входом, BlackHole/SoX і під’єднаний +OAuth не замінює шлях приєднання через Chrome. Транспорти Chrome і Chrome-node +все одно приєднуються через профіль Chrome із виконаним входом, BlackHole/SoX і підключений вузол, коли ви використовуєте участь через браузер. OAuth призначений лише для офіційного -шляху Google Meet API: створення просторів зустрічей, визначення просторів і виконання -попередніх перевірок Meet Media API. +шляху Google Meet API: створення просторів зустрічей, розв’язання просторів і виконання +preflight-перевірок Meet Media API. ### Створення облікових даних Google @@ -490,15 +492,15 @@ OAuth не замінює шлях приєднання Chrome. Транспор 2. Увімкніть **Google Meet REST API** для цього проєкту. 3. Налаштуйте екран згоди OAuth. - **Internal** — найпростіший варіант для організації Google Workspace. - - **External** працює для особистих/тестових налаштувань; поки застосунок перебуває в Testing, + - **External** підходить для особистих/тестових налаштувань; доки застосунок перебуває в Testing, додайте кожен обліковий запис Google, який авторизуватиме застосунок, як тестового користувача. -4. Додайте області доступу, які запитує OpenClaw: +4. Додайте scopes, які запитує OpenClaw: - `https://www.googleapis.com/auth/meetings.space.created` - `https://www.googleapis.com/auth/meetings.space.readonly` - `https://www.googleapis.com/auth/meetings.conference.media.readonly` -5. Створіть ідентифікатор OAuth-клієнта. +5. Створіть OAuth client ID. - Тип застосунку: **Web application**. - - Авторизований URI перенаправлення: + - Авторизований redirect URI: ```text http://localhost:8085/oauth2callback @@ -506,23 +508,23 @@ OAuth не замінює шлях приєднання Chrome. Транспор 6. Скопіюйте client ID і client secret. -`meetings.space.created` потрібен Google Meet `spaces.create`. -`meetings.space.readonly` дає OpenClaw змогу визначати URL/коди Meet як простори. -`meetings.conference.media.readonly` призначений для попередньої перевірки Meet Media API та роботи з медіа; -Google може вимагати реєстрації в Developer Preview для фактичного використання Media API. -Якщо вам потрібні лише браузерні приєднання через Chrome, повністю пропустіть OAuth. +`meetings.space.created` потрібен для Google Meet `spaces.create`. +`meetings.space.readonly` дає OpenClaw змогу розв’язувати URL/коди Meet у простори. +`meetings.conference.media.readonly` призначений для preflight і медіароботи Meet Media API; +Google може вимагати реєстрацію в Developer Preview для фактичного використання Media API. +Якщо вам потрібні лише приєднання Chrome на основі браузера, повністю пропустіть OAuth. ### Створення refresh token Налаштуйте `oauth.clientId` і, за потреби, `oauth.clientSecret`, або передайте їх як -змінні середовища, а потім виконайте: +змінні середовища, потім виконайте: ```bash openclaw googlemeet auth login --json ``` -Команда виводить конфігураційний блок `oauth` із refresh token. Вона використовує PKCE, -callback localhost на `http://localhost:8085/oauth2callback` і ручний +Команда друкує конфігураційний блок `oauth` з refresh token. Вона використовує PKCE, +localhost callback на `http://localhost:8085/oauth2callback` і ручний потік копіювання/вставлення з `--manual`. Приклади: @@ -577,14 +579,14 @@ openclaw googlemeet auth login --json --manual } ``` -Надавайте перевагу змінним середовища, коли не хочете зберігати refresh token у конфігурації. -Якщо присутні і значення конфігурації, і значення середовища, Plugin спочатку -використовує конфігурацію, а потім fallback до середовища. +Віддавайте перевагу змінним середовища, коли не хочете зберігати refresh token у конфігурації. +Якщо присутні і значення конфігурації, і значення середовища, Plugin спершу використовує конфігурацію, +а потім fallback із середовища. -Згода OAuth охоплює створення просторів Meet, доступ на читання просторів Meet і доступ +Згода OAuth включає створення просторів Meet, доступ на читання просторів Meet і доступ на читання медіа конференцій Meet. Якщо ви автентифікувалися до появи підтримки створення зустрічей, повторно виконайте `openclaw googlemeet auth login --json`, щоб refresh -token мав область доступу `meetings.space.created`. +token мав scope `meetings.space.created`. ### Перевірка OAuth через doctor @@ -594,22 +596,22 @@ token мав область доступу `meetings.space.created`. openclaw googlemeet doctor --oauth --json ``` -Це не завантажує runtime Chrome і не потребує під’єднаного вузла Chrome. Воно +Це не завантажує runtime Chrome і не потребує підключеного вузла Chrome. Воно перевіряє, що конфігурація OAuth існує і що refresh token може створити access -token. Звіт JSON містить лише поля стану, такі як `ok`, `configured`, -`tokenSource`, `expiresAt`, і повідомлення перевірок; він не виводить access +token. Звіт JSON містить лише поля стану, як-от `ok`, `configured`, +`tokenSource`, `expiresAt`, і повідомлення перевірок; він не друкує access token, refresh token або client secret. -Типові результати: +Поширені результати: | Перевірка | Значення | | -------------------- | --------------------------------------------------------------------------------------- | -| `oauth-config` | `oauth.clientId` плюс `oauth.refreshToken` або кешований access token присутній. | -| `oauth-token` | Кешований access token досі чинний або refresh token створив новий access token. | -| `meet-spaces-get` | Необов’язкова перевірка `--meeting` визначила наявний простір Meet. | -| `meet-spaces-create` | Необов’язкова перевірка `--create-space` створила новий простір Meet. | +| `oauth-config` | Наявний `oauth.clientId` плюс `oauth.refreshToken` або кешований access token. | +| `oauth-token` | Кешований access token досі чинний або refresh token створив новий access token. | +| `meet-spaces-get` | Необов’язкова перевірка `--meeting` розв’язала наявний простір Meet. | +| `meet-spaces-create` | Необов’язкова перевірка `--create-space` створила новий простір Meet. | -Щоб також довести ввімкнення Google Meet API і область доступу `spaces.create`, запустіть +Щоб також довести ввімкнення Google Meet API і scope `spaces.create`, запустіть перевірку створення з побічним ефектом: ```bash @@ -617,9 +619,9 @@ openclaw googlemeet doctor --oauth --create-space --json openclaw googlemeet create --no-join --json ``` -`--create-space` створює тимчасову URL-адресу Meet. Використовуйте це, коли потрібно підтвердити, +`--create-space` створює одноразовий URL Meet. Використовуйте його, коли потрібно підтвердити, що в проєкті Google Cloud увімкнено Meet API і що авторизований -обліковий запис має область доступу `meetings.space.created`. +обліковий запис має scope `meetings.space.created`. Щоб довести доступ на читання для наявного простору зустрічі: @@ -630,16 +632,16 @@ openclaw googlemeet resolve-space --meeting https://meet.google.com/abc-defg-hij `doctor --oauth --meeting` і `resolve-space` доводять доступ на читання до наявного простору, до якого авторизований обліковий запис Google має доступ. `403` від цих перевірок -зазвичай означає, що Google Meet REST API вимкнено, refresh token зі згодою -не має потрібної області доступу або обліковий запис Google не може отримати доступ до цього простору -Meet. Помилка refresh-token означає, що потрібно повторно виконати `openclaw googlemeet auth login +зазвичай означає, що Google Meet REST API вимкнено, погоджений refresh token +не має потрібного scope або обліковий запис Google не має доступу до цього простору Meet. +Помилка refresh-token означає, що потрібно повторно виконати `openclaw googlemeet auth login --json` і зберегти новий блок `oauth`. -Для браузерного fallback облікові дані OAuth не потрібні. У цьому режимі автентифікація Google +Для browser fallback облікові дані OAuth не потрібні. У цьому режимі автентифікація Google надходить із профілю Chrome із виконаним входом на вибраному вузлі, а не з конфігурації OpenClaw. -Ці змінні середовища приймаються як fallback: +Ці змінні середовища приймаються як fallbacks: - `OPENCLAW_GOOGLE_MEET_CLIENT_ID` або `GOOGLE_MEET_CLIENT_ID` - `OPENCLAW_GOOGLE_MEET_CLIENT_SECRET` або `GOOGLE_MEET_CLIENT_SECRET` @@ -650,19 +652,19 @@ Meet. Помилка refresh-token означає, що потрібно пов - `OPENCLAW_GOOGLE_MEET_DEFAULT_MEETING` або `GOOGLE_MEET_DEFAULT_MEETING` - `OPENCLAW_GOOGLE_MEET_PREVIEW_ACK` або `GOOGLE_MEET_PREVIEW_ACK` -Визначте Meet URL, код або `spaces/{id}` через `spaces.get`: +Розв’яжіть Meet URL, код або `spaces/{id}` через `spaces.get`: ```bash openclaw googlemeet resolve-space --meeting https://meet.google.com/abc-defg-hij ``` -Запустіть попередню перевірку перед роботою з медіа: +Запустіть preflight перед роботою з медіа: ```bash openclaw googlemeet preflight --meeting https://meet.google.com/abc-defg-hij ``` -Після створення записів конференції Meet виведіть артефакти зустрічі та відвідуваність: +Перелічіть артефакти зустрічі та відвідуваність після того, як Meet створить записи конференції: ```bash openclaw googlemeet artifacts --meeting https://meet.google.com/abc-defg-hij @@ -670,9 +672,9 @@ openclaw googlemeet attendance --meeting https://meet.google.com/abc-defg-hij openclaw googlemeet export --meeting https://meet.google.com/abc-defg-hij --output ./meet-export ``` -З `--meeting` команди `artifacts` і `attendance` за замовчуванням використовують найновіший запис конференції. Передайте `--all-conference-records`, якщо потрібні всі збережені записи для цієї зустрічі. +З `--meeting` команди `artifacts` і `attendance` типово використовують останній запис конференції. Передайте `--all-conference-records`, коли потрібні всі збережені записи для цієї зустрічі. -Пошук у календарі може визначити URL зустрічі з Google Calendar перед читанням артефактів Meet: +Пошук у Calendar може визначити URL зустрічі з Google Calendar перед читанням артефактів Meet: ```bash openclaw googlemeet latest --today @@ -681,9 +683,9 @@ openclaw googlemeet artifacts --event "Weekly sync" openclaw googlemeet attendance --today --format csv --output attendance.csv ``` -`--today` шукає в сьогоднішньому календарі `primary` подію Calendar із посиланням Google Meet. Використовуйте `--event ` для пошуку відповідного тексту події та `--calendar ` для неосновного календаря. Пошук у календарі потребує свіжого входу OAuth, який включає readonly-область для подій Calendar. `calendar-events` попередньо показує відповідні події Meet і позначає подію, яку виберуть `latest`, `artifacts`, `attendance` або `export`. +`--today` шукає в сьогоднішньому календарі `primary` подію Calendar із посиланням Google Meet. Використовуйте `--event ` для пошуку відповідного тексту події, а `--calendar ` — для неосновного календаря. Пошук у Calendar потребує нового входу OAuth, який включає readonly scope подій Calendar. `calendar-events` попередньо показує відповідні події Meet і позначає подію, яку виберуть `latest`, `artifacts`, `attendance` або `export`. -Якщо ви вже знаєте ідентифікатор запису конференції, звертайтеся до нього напряму: +Якщо ви вже знаєте id запису конференції, зверніться до нього напряму: ```bash openclaw googlemeet latest --meeting https://meet.google.com/abc-defg-hij @@ -706,11 +708,11 @@ openclaw googlemeet export --conference-record conferenceRecords/abc123 \ --include-doc-bodies --dry-run ``` -`artifacts` повертає метадані запису конференції, а також метадані ресурсів учасників, записів, транскриптів, структурованих записів транскрипту та розумних нотаток, коли Google надає їх для зустрічі. Використовуйте `--no-transcript-entries`, щоб пропустити пошук записів для великих зустрічей. `attendance` розгортає учасників у рядки сесій учасників із часом першої й останньої появи, загальною тривалістю сесії, прапорцями запізнення/раннього виходу та об’єднанням дубльованих ресурсів учасників за користувачем, що ввійшов, або відображуваним іменем. Передайте `--no-merge-duplicates`, щоб залишити сирі ресурси учасників окремо, `--late-after-minutes`, щоб налаштувати визначення запізнення, і `--early-before-minutes`, щоб налаштувати визначення раннього виходу. +`artifacts` повертає метадані запису конференції, а також метадані ресурсів учасників, записів, транскриптів, структурованих записів транскрипту та smart-note, коли Google відкриває їх для зустрічі. Використовуйте `--no-transcript-entries`, щоб пропустити пошук записів для великих зустрічей. `attendance` розгортає учасників у рядки participant-session із часом першої й останньої появи, загальною тривалістю сесії, прапорцями запізнення/раннього виходу та дубльованими ресурсами учасників, об’єднаними за зареєстрованим користувачем або відображуваним іменем. Передайте `--no-merge-duplicates`, щоб залишити необроблені ресурси учасників окремо, `--late-after-minutes` — щоб налаштувати виявлення запізнення, і `--early-before-minutes` — щоб налаштувати виявлення раннього виходу. -`export` записує папку, що містить `summary.md`, `attendance.csv`, `transcript.md`, `artifacts.json`, `attendance.json` і `manifest.json`. `manifest.json` фіксує вибраний вхід, параметри експорту, записи конференції, вихідні файли, лічильники, джерело токена, подію Calendar, якщо її було використано, і будь-які попередження про часткове отримання. Передайте `--zip`, щоб також записати переносний архів поруч із папкою. Передайте `--include-doc-bodies`, щоб експортувати текст пов’язаних транскриптів і розумних нотаток Google Docs через Google Drive `files.export`; для цього потрібен свіжий вхід OAuth, який включає readonly-область Drive Meet. Без `--include-doc-bodies` експорти містять лише метадані Meet і структуровані записи транскрипту. Якщо Google повертає часткову помилку артефакту, наприклад помилку списку розумних нотаток, запису транскрипту або тіла документа Drive, зведення й manifest зберігають попередження замість збою всього експорту. Використовуйте `--dry-run`, щоб отримати ті самі дані артефактів/відвідуваності та вивести JSON manifest без створення папки чи ZIP. Це корисно перед записом великого експорту або коли агенту потрібні лише лічильники, вибрані записи та попередження. +`export` записує папку, що містить `summary.md`, `attendance.csv`, `transcript.md`, `artifacts.json`, `attendance.json` і `manifest.json`. `manifest.json` фіксує вибраний вхід, параметри експорту, записи конференцій, вихідні файли, лічильники, джерело токена, подію Calendar, якщо її було використано, і будь-які попередження про часткове отримання. Передайте `--zip`, щоб також записати портативний архів поруч із папкою. Передайте `--include-doc-bodies`, щоб експортувати пов’язаний текст транскриптів і smart-note Google Docs через Google Drive `files.export`; для цього потрібен новий вхід OAuth, який включає readonly scope Drive Meet. Без `--include-doc-bodies` експорт містить лише метадані Meet і структуровані записи транскрипту. Якщо Google повертає часткову помилку артефакту, наприклад помилку списку smart-note, transcript-entry або тіла документа Drive, summary і manifest зберігають попередження замість того, щоб провалити весь експорт. Використовуйте `--dry-run`, щоб отримати ті самі дані артефактів/відвідуваності та надрукувати JSON manifest без створення папки чи ZIP. Це корисно перед записом великого експорту або коли агенту потрібні лише лічильники, вибрані записи та попередження. -Агенти також можуть створити той самий пакет через інструмент `google_meet`: +Агенти також можуть створити такий самий пакет через інструмент `google_meet`: ```json { @@ -722,9 +724,9 @@ openclaw googlemeet export --conference-record conferenceRecords/abc123 \ } ``` -Установіть `"dryRun": true`, щоб повернути лише manifest експорту й пропустити запис файлів. +Встановіть `"dryRun": true`, щоб повернути лише manifest експорту та пропустити запис файлів. -Запустіть захищену живу перевірку на реальній збереженій зустрічі: +Запустіть захищений live smoke проти реальної збереженої зустрічі: ```bash OPENCLAW_LIVE_TEST=1 \ @@ -732,15 +734,21 @@ OPENCLAW_GOOGLE_MEET_LIVE_MEETING=https://meet.google.com/abc-defg-hij \ pnpm test:live -- extensions/google-meet/google-meet.live.test.ts ``` -Середовище живої перевірки: +Середовище live smoke: -- `OPENCLAW_LIVE_TEST=1` вмикає захищені живі тести. -- `OPENCLAW_GOOGLE_MEET_LIVE_MEETING` вказує на збережений Meet URL, код або `spaces/{id}`. -- `OPENCLAW_GOOGLE_MEET_CLIENT_ID` або `GOOGLE_MEET_CLIENT_ID` надає ідентифікатор клієнта OAuth. -- `OPENCLAW_GOOGLE_MEET_REFRESH_TOKEN` або `GOOGLE_MEET_REFRESH_TOKEN` надає refresh token. -- Необов’язково: `OPENCLAW_GOOGLE_MEET_CLIENT_SECRET`, `OPENCLAW_GOOGLE_MEET_ACCESS_TOKEN` і `OPENCLAW_GOOGLE_MEET_ACCESS_TOKEN_EXPIRES_AT` використовують ті самі резервні назви без префікса `OPENCLAW_`. +- `OPENCLAW_LIVE_TEST=1` вмикає захищені live-тести. +- `OPENCLAW_GOOGLE_MEET_LIVE_MEETING` вказує на збережений Meet URL, код або + `spaces/{id}`. +- `OPENCLAW_GOOGLE_MEET_CLIENT_ID` або `GOOGLE_MEET_CLIENT_ID` надає OAuth + client id. +- `OPENCLAW_GOOGLE_MEET_REFRESH_TOKEN` або `GOOGLE_MEET_REFRESH_TOKEN` надає + refresh token. +- Необов’язково: `OPENCLAW_GOOGLE_MEET_CLIENT_SECRET`, + `OPENCLAW_GOOGLE_MEET_ACCESS_TOKEN` і + `OPENCLAW_GOOGLE_MEET_ACCESS_TOKEN_EXPIRES_AT` використовують ті самі fallback-імена + без префікса `OPENCLAW_`. -Базова жива перевірка артефактів/відвідуваності потребує `https://www.googleapis.com/auth/meetings.space.readonly` і `https://www.googleapis.com/auth/meetings.conference.media.readonly`. Пошук у календарі потребує `https://www.googleapis.com/auth/calendar.events.readonly`. Експорт тіла документа Drive потребує `https://www.googleapis.com/auth/drive.meet.readonly`. +Базовий live smoke артефактів/відвідуваності потребує `https://www.googleapis.com/auth/meetings.space.readonly` і `https://www.googleapis.com/auth/meetings.conference.media.readonly`. Пошук у Calendar потребує `https://www.googleapis.com/auth/calendar.events.readonly`. Експорт тіла документа Drive потребує `https://www.googleapis.com/auth/drive.meet.readonly`. Створіть новий простір Meet: @@ -748,9 +756,9 @@ pnpm test:live -- extensions/google-meet/google-meet.live.test.ts openclaw googlemeet create ``` -Команда виводить новий `meeting uri`, джерело та сесію приєднання. З обліковими даними OAuth вона використовує офіційний Google Meet API. Без облікових даних OAuth вона використовує профіль браузера Chrome node із виконаним входом як резервний варіант. Агенти можуть використовувати інструмент `google_meet` з `action: "create"`, щоб створити зустріч і приєднатися одним кроком. Для створення лише URL передайте `"join": false`. +Команда друкує нові `meeting uri`, джерело та join session. З обліковими даними OAuth вона використовує офіційний Google Meet API. Без облікових даних OAuth вона використовує профіль браузера із виконаним входом pinned Chrome node як fallback. Агенти можуть використовувати інструмент `google_meet` з `action: "create"`, щоб створити та приєднатися за один крок. Для створення лише URL передайте `"join": false`. -Приклад JSON-виводу з резервного браузерного варіанта: +Приклад JSON-виводу з browser fallback: ```json { @@ -770,7 +778,7 @@ openclaw googlemeet create } ``` -Якщо резервний браузерний варіант натрапляє на вхід Google або блокування дозволів Meet до того, як зможе створити URL, метод Gateway повертає відповідь із помилкою, а інструмент `google_meet` повертає структуровані деталі замість звичайного рядка: +Якщо browser fallback натрапляє на вхід Google або блокер дозволів Meet до того, як може створити URL, метод Gateway повертає невдалу відповідь, а інструмент `google_meet` повертає структуровані деталі замість простого рядка: ```json { @@ -790,7 +798,7 @@ openclaw googlemeet create Коли агент бачить `manualActionRequired: true`, він має повідомити `manualActionMessage` разом із контекстом browser node/tab і припинити відкривати нові вкладки Meet, доки оператор не завершить крок у браузері. -Приклад JSON-виводу створення через API: +Приклад JSON-виводу зі створення через API: ```json { @@ -811,13 +819,13 @@ openclaw googlemeet create } ``` -Створення Meet за замовчуванням виконує приєднання. Транспорт Chrome або Chrome-node все одно потребує профілю Google Chrome із виконаним входом, щоб приєднатися через браузер. Якщо з профілю виконано вихід, OpenClaw повідомляє `manualActionRequired: true` або помилку резервного браузерного варіанта й просить оператора завершити вхід Google перед повторною спробою. +Створення Meet типово приєднує до зустрічі. Транспорту Chrome або Chrome-node усе ще потрібен профіль Google Chrome із виконаним входом, щоб приєднатися через браузер. Якщо з профілю виконано вихід, OpenClaw повідомляє `manualActionRequired: true` або помилку browser fallback і просить оператора завершити вхід Google перед повторною спробою. -Установлюйте `preview.enrollmentAcknowledged: true` лише після підтвердження, що ваш Cloud project, OAuth principal і учасники зустрічі зареєстровані в Google Workspace Developer Preview Program для Meet media APIs. +Встановлюйте `preview.enrollmentAcknowledged: true` лише після підтвердження, що ваш Cloud-проєкт, OAuth principal і учасники зустрічі зареєстровані в Google Workspace Developer Preview Program для Meet media APIs. ## Конфігурація -Спільний шлях Chrome у реальному часі потребує лише ввімкненого Plugin, BlackHole, SoX і ключа постачальника голосу backend у реальному часі. OpenAI є типовим; установіть `realtime.provider: "google"`, щоб використовувати Google Gemini Live: +Спільний realtime-шлях Chrome потребує лише ввімкненого Plugin, BlackHole, SoX і ключа backend realtime voice provider. OpenAI є типовим; встановіть `realtime.provider: "google"`, щоб використовувати Google Gemini Live: ```bash brew install blackhole-2ch sox @@ -826,7 +834,7 @@ export OPENAI_API_KEY=sk-... export GEMINI_API_KEY=... ``` -Установіть конфігурацію Plugin у `plugins.entries.google-meet.config`: +Встановіть конфігурацію Plugin у `plugins.entries.google-meet.config`: ```json5 { @@ -845,20 +853,27 @@ export GEMINI_API_KEY=... - `defaultTransport: "chrome"` - `defaultMode: "realtime"` -- `chromeNode.node`: необов’язковий ідентифікатор/ім’я/IP вузла для `chrome-node` +- `chromeNode.node`: необов’язковий node id/name/IP для `chrome-node` - `chrome.audioBackend: "blackhole-2ch"` -- `chrome.guestName: "OpenClaw Agent"`: ім’я, що використовується на гостьовому екрані Meet без входу -- `chrome.autoJoin: true`: best-effort заповнення імені гостя та натискання Join Now через браузерну автоматизацію OpenClaw на `chrome-node` +- `chrome.guestName: "OpenClaw Agent"`: ім’я, що використовується на гостьовому екрані Meet без виконаного входу +- `chrome.autoJoin: true`: best-effort заповнення імені гостя та натискання Join Now через автоматизацію браузера OpenClaw на `chrome-node` - `chrome.reuseExistingTab: true`: активувати наявну вкладку Meet замість відкриття дублікатів -- `chrome.waitForInCallMs: 20000`: чекати, доки вкладка Meet повідомить про перебування у виклику, перед запуском вступу в реальному часі -- `chrome.audioFormat: "pcm16-24khz"`: аудіоформат пари команд. Використовуйте `"g711-ulaw-8khz"` лише для застарілих/користувацьких пар команд, які все ще видають телефонне аудіо. -- `chrome.audioInputCommand`: команда SoX, що читає з CoreAudio `BlackHole 2ch` і записує аудіо у `chrome.audioFormat` -- `chrome.audioOutputCommand`: команда SoX, що читає аудіо у `chrome.audioFormat` і записує в CoreAudio `BlackHole 2ch` +- `chrome.waitForInCallMs: 20000`: чекати, доки вкладка Meet повідомить in-call, перш ніж буде запущено realtime intro +- `chrome.audioFormat: "pcm16-24khz"`: аудіоформат command-pair. Використовуйте + `"g711-ulaw-8khz"` лише для legacy/custom command pairs, які все ще видають + telephony audio. +- `chrome.audioInputCommand`: команда SoX, що читає з CoreAudio `BlackHole 2ch` + і записує аудіо у `chrome.audioFormat` +- `chrome.audioOutputCommand`: команда SoX, що читає аудіо у `chrome.audioFormat` + і записує до CoreAudio `BlackHole 2ch` - `realtime.provider: "openai"` - `realtime.toolPolicy: "safe-read-only"` -- `realtime.instructions`: короткі усні відповіді, з `openclaw_agent_consult` для глибших відповідей -- `realtime.introMessage`: коротка усна перевірка готовності, коли міст реального часу підключається; установіть `""`, щоб приєднатися мовчки -- `realtime.agentId`: необов’язковий ідентифікатор агента OpenClaw для `openclaw_agent_consult`; за замовчуванням `main` +- `realtime.instructions`: короткі усні відповіді, з + `openclaw_agent_consult` для глибших відповідей +- `realtime.introMessage`: коротка усна перевірка готовності, коли realtime bridge + під’єднується; встановіть значення `""`, щоб приєднатися мовчки +- `realtime.agentId`: необов’язковий OpenClaw agent id для + `openclaw_agent_consult`; типово `main` Необов’язкові перевизначення: @@ -907,7 +922,7 @@ export GEMINI_API_KEY=... } ``` -`voiceCall.enabled` за замовчуванням має значення `true`; з транспортом Twilio він делегує фактичний PSTN-виклик і DTMF до Plugin Voice Call. Якщо `voice-call` не ввімкнено, Google Meet усе ще може перевірити й записати план набору, але не може виконати Twilio-виклик. +`voiceCall.enabled` типово має значення `true`; з транспортом Twilio він делегує фактичний PSTN-дзвінок і DTMF до Voice Call plugin. Якщо `voice-call` не ввімкнено, Google Meet усе ще може перевірити й записати план набору, але не може здійснити Twilio-дзвінок. ## Інструмент @@ -924,32 +939,32 @@ export GEMINI_API_KEY=... Використовуйте `transport: "chrome"`, коли Chrome працює на хості Gateway. Використовуйте `transport: "chrome-node"`, коли Chrome працює на спареному вузлі, наприклад Parallels -VM. В обох випадках модель реального часу й `openclaw_agent_consult` працюють на хості -Gateway, тому облікові дані моделі залишаються там. +VM. В обох випадках модель реального часу й `openclaw_agent_consult` працюють на +хості Gateway, тому облікові дані моделі залишаються там. Використовуйте `action: "status"`, щоб перелічити активні сеанси або перевірити ID сеансу. Використовуйте `action: "speak"` із `sessionId` і `message`, щоб агент реального часу -заговорив негайно. Використовуйте `action: "test_speech"`, щоб створити або повторно використати сеанс, -запустити відому фразу й повернути стан справності `inCall`, коли хост Chrome може +негайно заговорив. Використовуйте `action: "test_speech"`, щоб створити або повторно використати сеанс, +запустити відому фразу й повернути стан `inCall`, коли хост Chrome може повідомити його. `test_speech` завжди примусово встановлює `mode: "realtime"` і завершується помилкою, якщо його просять -працювати в `mode: "transcribe"`, оскільки сеанси лише для спостереження навмисно не можуть +працювати в `mode: "transcribe"`, тому що сеанси лише для спостереження навмисно не можуть відтворювати мовлення. Його результат `speechOutputVerified` базується на збільшенні байтів аудіовиходу реального часу під час цього тестового виклику, тому повторно використаний сеанс зі старішим аудіо -не рахується як свіжа успішна перевірка мовлення. Використовуйте `action: "leave"`, щоб позначити +не зараховується як нова успішна перевірка мовлення. Використовуйте `action: "leave"`, щоб позначити сеанс завершеним. -`status` містить стан справності Chrome, коли доступно: +`status` містить стан Chrome, коли він доступний: - `inCall`: Chrome, схоже, перебуває всередині виклику Meet -- `micMuted`: найкраща доступна оцінка стану мікрофона Meet +- `micMuted`: приблизний стан мікрофона Meet - `manualActionRequired` / `manualActionReason` / `manualActionMessage`: профіль - браузера потребує ручного входу, допуску хостом Meet, дозволів або + браузера потребує ручного входу, допуску від організатора Meet, дозволів або відновлення керування браузером, перш ніж мовлення зможе працювати - `speechReady` / `speechBlockedReason` / `speechBlockedMessage`: чи - кероване мовлення Chrome дозволене зараз. `speechReady: false` означає, що OpenClaw не - надіслав вступну/тестову фразу в аудіоміст. -- `providerConnected` / `realtimeReady`: стан голосового моста реального часу -- `lastInputAt` / `lastOutputAt`: останнє аудіо, отримане з моста або надіслане до нього + кероване мовлення Chrome зараз дозволене. `speechReady: false` означає, що OpenClaw + не надіслав вступну/тестову фразу в аудіоміст. +- `providerConnected` / `realtimeReady`: стан голосового мосту реального часу +- `lastInputAt` / `lastOutputAt`: останнє аудіо, отримане з мосту або надіслане до нього ```json { @@ -961,39 +976,39 @@ Gateway, тому облікові дані моделі залишаються ## Консультація агента реального часу -Режим реального часу Chrome оптимізований для живого голосового циклу. Голосовий +Режим Chrome у реальному часі оптимізований для живого голосового циклу. Голосовий провайдер реального часу чує аудіо зустрічі й говорить через налаштований аудіоміст. -Коли моделі реального часу потрібні глибше міркування, поточна інформація або звичайні +Коли моделі реального часу потрібне глибше міркування, актуальна інформація або звичайні інструменти OpenClaw, вона може викликати `openclaw_agent_consult`. -Інструмент консультації запускає звичайного агента OpenClaw у фоновому режимі з контекстом нещодавньої -стенограми зустрічі й повертає стислу усну відповідь у голосовий сеанс реального часу. -Після цього голосова модель може промовити цю відповідь назад у зустріч. +Інструмент консультації запускає звичайного агента OpenClaw у фоновому режимі з нещодавнім +контекстом транскрипту зустрічі й повертає стислу усну відповідь у голосовий сеанс +реального часу. Потім голосова модель може вимовити цю відповідь назад у зустріч. Він використовує той самий спільний інструмент консультації реального часу, що й Voice Call. -За замовчуванням консультації виконуються для агента `main`. Задайте `realtime.agentId`, коли -лінія Meet має консультуватися з окремим робочим простором агента OpenClaw, типовими моделями, -політикою інструментів, пам’яттю та історією сеансів. +За замовчуванням консультації виконуються для агента `main`. Встановіть `realtime.agentId`, коли +лінія Meet має звертатися до окремого робочого простору агента OpenClaw, типових налаштувань моделі, +політики інструментів, пам’яті й історії сеансу. `realtime.toolPolicy` керує запуском консультації: -- `safe-read-only`: надає інструмент консультації й обмежує звичайного агента до +- `safe-read-only`: відкрити інструмент консультації й обмежити звичайного агента до `read`, `web_search`, `web_fetch`, `x_search`, `memory_search` і `memory_get`. -- `owner`: надає інструмент консультації й дозволяє звичайному агенту використовувати звичайну +- `owner`: відкрити інструмент консультації й дозволити звичайному агенту використовувати звичайну політику інструментів агента. -- `none`: не надає інструмент консультації голосовій моделі реального часу. +- `none`: не відкривати інструмент консультації для голосової моделі реального часу. -Ключ сеансу консультації обмежений окремим сеансом Meet, тому наступні виклики консультації +Ключ сеансу консультації обмежений окремим сеансом Meet, тому подальші виклики консультації можуть повторно використовувати попередній контекст консультації під час тієї самої зустрічі. -Щоб примусово запустити усну перевірку готовності після повного входу Chrome у виклик: +Щоб примусово виконати усну перевірку готовності після того, як Chrome повністю приєднався до виклику: ```bash openclaw googlemeet speak meet_... "Say exactly: I'm here and listening." ``` -Для повної перевірки join-and-speak: +Для повної перевірки smoke із приєднанням і мовленням: ```bash openclaw googlemeet test-speech https://meet.google.com/abc-defg-hij \ @@ -1017,13 +1032,13 @@ openclaw googlemeet test-speech https://meet.google.com/abc-defg-hij \ - `googlemeet setup` повністю зелений. - `googlemeet setup` містить `chrome-node-connected`, коли Chrome-node є - типовим транспортом або вузол закріплено. -- `nodes status` показує, що вибраний вузол підключено. + стандартним транспортом або вузол закріплено. +- `nodes status` показує, що вибраний вузол під’єднано. - Вибраний вузол оголошує і `googlemeet.chrome`, і `browser.proxy`. -- Вкладка Meet приєднується до виклику, а `test-speech` повертає стан справності Chrome з +- Вкладка Meet приєднується до виклику, а `test-speech` повертає стан Chrome з `inCall: true`. -Для віддаленого хоста Chrome, такого як Parallels macOS VM, це найкоротша +Для віддаленого хоста Chrome, наприклад Parallels macOS VM, це найкоротша безпечна перевірка після оновлення Gateway або VM: ```bash @@ -1035,11 +1050,11 @@ openclaw nodes invoke \ --params '{"action":"setup"}' ``` -Це доводить, що Plugin Gateway завантажено, вузол VM підключено з +Це доводить, що plugin Gateway завантажено, вузол VM під’єднано з поточним токеном, а аудіоміст Meet доступний до того, як агент відкриє справжню вкладку зустрічі. -Для перевірки Twilio використовуйте зустріч, яка надає дані телефонного набору: +Для smoke-перевірки Twilio використовуйте зустріч, що надає деталі телефонного підключення: ```bash openclaw googlemeet setup @@ -1051,8 +1066,8 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij \ Очікуваний стан Twilio: -- `googlemeet setup` містить зелені перевірки `twilio-voice-call-plugin` і - `twilio-voice-call-credentials`. +- `googlemeet setup` містить зелені перевірки `twilio-voice-call-plugin`, + `twilio-voice-call-credentials` і `twilio-voice-call-webhook`. - `voicecall` доступний у CLI після перезавантаження Gateway. - Повернений сеанс має `transport: "twilio"` і `twilio.voiceCallId`. - `googlemeet leave ` завершує делегований голосовий виклик. @@ -1061,7 +1076,7 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij \ ### Агент не бачить інструмент Google Meet -Підтвердьте, що Plugin увімкнено в конфігурації Gateway, і перезавантажте Gateway: +Підтвердьте, що plugin увімкнено в конфігурації Gateway, і перезавантажте Gateway: ```bash openclaw plugins list | grep google-meet @@ -1069,9 +1084,10 @@ openclaw googlemeet setup ``` Якщо ви щойно редагували `plugins.entries.google-meet`, перезапустіть або перезавантажте Gateway. -Запущений агент бачить лише інструменти Plugin, зареєстровані поточним процесом Gateway. +Запущений агент бачить лише інструменти plugin, зареєстровані поточним процесом +Gateway. -### Немає підключеного вузла з підтримкою Google Meet +### Немає під’єднаного вузла з підтримкою Google Meet На хості вузла виконайте: @@ -1090,7 +1106,7 @@ openclaw devices approve openclaw nodes status ``` -Вузол має бути підключений і перелічувати `googlemeet.chrome` разом із `browser.proxy`. +Вузол має бути під’єднаний і перелічувати `googlemeet.chrome` плюс `browser.proxy`. Конфігурація Gateway має дозволяти ці команди вузла: ```json5 @@ -1116,7 +1132,7 @@ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 \ --force ``` -Потім перезавантажте сервіс вузла й повторно виконайте: +Потім перезавантажте службу вузла й повторно виконайте: ```bash openclaw googlemeet setup @@ -1125,52 +1141,52 @@ openclaw nodes status --connected ### Браузер відкривається, але агент не може приєднатися -Запустіть `googlemeet test-speech` і перегляньте повернений стан справності Chrome. Якщо він +Запустіть `googlemeet test-speech` і перевірте повернений стан Chrome. Якщо він повідомляє `manualActionRequired: true`, покажіть `manualActionMessage` оператору -й припиніть повторні спроби, доки дія в браузері не буде завершена. +й припиніть повторювати спроби, доки дія в браузері не буде завершена. -Типові ручні дії: +Поширені ручні дії: -- Увійти в профіль Chrome. -- Допустити гостя з облікового запису хоста Meet. -- Надати Chrome дозволи на мікрофон/камеру, коли з’явиться нативний запит дозволу +- Увійдіть у профіль Chrome. +- Допустіть гостя з облікового запису організатора Meet. +- Надайте Chrome дозволи на мікрофон/камеру, коли з’явиться нативний запит дозволу Chrome. -- Закрити або відновити застряглий діалог дозволів Meet. +- Закрийте або відновіть завислий діалог дозволів Meet. Не повідомляйте "not signed in" лише тому, що Meet показує "Do you want people to hear you in the meeting?" Це проміжний екран вибору аудіо Meet; OpenClaw -натискає **Use microphone** через автоматизацію браузера, коли доступно, і продовжує -чекати справжнього стану зустрічі. Для браузерного резервного режиму лише створення OpenClaw +натискає **Use microphone** через автоматизацію браузера, коли це доступно, і продовжує +очікувати на справжній стан зустрічі. Для резервного варіанта браузера лише для створення OpenClaw може натиснути **Continue without microphone**, тому що створення URL не потребує шляху аудіо реального часу. -### Не вдалося створити зустріч +### Не вдається створити зустріч `googlemeet create` спочатку використовує endpoint Google Meet API `spaces.create`, -коли облікові дані OAuth налаштовані. Без облікових даних OAuth він переходить до резервного -браузера на закріпленому вузлі Chrome. Підтвердьте: +коли налаштовано облікові дані OAuth. Без облікових даних OAuth він переходить +до закріпленого браузера вузла Chrome. Підтвердьте: -- Для створення через API: `oauth.clientId` і `oauth.refreshToken` налаштовані, - або наявні відповідні змінні середовища `OPENCLAW_GOOGLE_MEET_*`. -- Для створення через API: refresh token був створений після додавання підтримки створення. - У старіших токенах може бракувати scope `meetings.space.created`; повторно виконайте - `openclaw googlemeet auth login --json` і оновіть конфігурацію Plugin. -- Для браузерного резервного режиму: `defaultTransport: "chrome-node"` і - `chromeNode.node` вказують на підключений вузол із `browser.proxy` і +- Для створення через API: налаштовано `oauth.clientId` і `oauth.refreshToken`, + або присутні відповідні змінні середовища `OPENCLAW_GOOGLE_MEET_*`. +- Для створення через API: refresh token було створено після додавання підтримки створення. + Старішим токенам може бракувати scope `meetings.space.created`; повторно виконайте + `openclaw googlemeet auth login --json` і оновіть конфігурацію plugin. +- Для резервного варіанта браузера: `defaultTransport: "chrome-node"` і + `chromeNode.node` вказують на під’єднаний вузол із `browser.proxy` і `googlemeet.chrome`. -- Для браузерного резервного режиму: профіль Chrome OpenClaw на цьому вузлі виконано вхід +- Для резервного варіанта браузера: профіль Chrome OpenClaw на цьому вузлі виконано вхід у Google і він може відкрити `https://meet.google.com/new`. -- Для браузерного резервного режиму: повторні спроби повторно використовують наявну вкладку - `https://meet.google.com/new` або вкладку запиту облікового запису Google перед відкриттям нової вкладки. Якщо в агента спливає час очікування, +- Для резервного варіанта браузера: повторні спроби повторно використовують наявну вкладку + `https://meet.google.com/new` або вкладку запиту облікового запису Google, перш ніж відкривати нову вкладку. Якщо час очікування агента сплив, повторіть виклик інструмента замість ручного відкриття ще однієї вкладки Meet. -- Для браузерного резервного режиму: якщо інструмент повертає `manualActionRequired: true`, використовуйте +- Для резервного варіанта браузера: якщо інструмент повертає `manualActionRequired: true`, використовуйте повернені `browser.nodeId`, `browser.targetId`, `browserUrl` і `manualActionMessage`, щоб скерувати оператора. Не повторюйте спроби в циклі, доки ця дія не буде завершена. -- Для браузерного резервного режиму: якщо Meet показує "Do you want people to hear you in the +- Для резервного варіанта браузера: якщо Meet показує "Do you want people to hear you in the meeting?", залиште вкладку відкритою. OpenClaw має натиснути **Use microphone** або, для - резервного режиму лише створення, **Continue without microphone** через автоматизацію - браузера й продовжити чекати згенерований URL Meet. Якщо він не може, помилка + резервного створення лише URL, **Continue without microphone** через автоматизацію + браузера й продовжити чекати на згенерований URL Meet. Якщо не може, помилка має згадувати `meet-audio-choice-required`, а не `google-login-required`. ### Агент приєднується, але не говорить @@ -1182,12 +1198,12 @@ openclaw googlemeet setup openclaw googlemeet doctor ``` -Використовуйте `mode: "realtime"` для прослуховування/відповіді мовленням. `mode: "transcribe"` навмисно +Використовуйте `mode: "realtime"` для прослуховування/відповіді голосом. `mode: "transcribe"` навмисно не запускає дуплексний голосовий міст реального часу. `googlemeet test-speech` -завжди перевіряє шлях реального часу й повідомляє, чи були помічені байти виходу моста -для цього виклику. Якщо `speechOutputVerified` має значення false, а -`speechOutputTimedOut` має значення true, провайдер реального часу міг прийняти -висловлювання, але OpenClaw не побачив, щоб нові байти виходу дійшли до аудіомоста +завжди перевіряє шлях реального часу й повідомляє, чи було помічено вихідні байти мосту +для цього виклику. Якщо `speechOutputVerified` є false і +`speechOutputTimedOut` є true, провайдер реального часу міг прийняти +висловлювання, але OpenClaw не побачив, щоб нові вихідні байти дійшли до аудіомосту Chrome. Також перевірте: @@ -1196,19 +1212,19 @@ Chrome. `OPENAI_API_KEY` або `GEMINI_API_KEY`. - `BlackHole 2ch` видимий на хості Chrome. - `sox` існує на хості Chrome. -- Мікрофон і динамік Meet маршрутизуються через віртуальний аудіошлях, який використовує +- Мікрофон і динамік Meet маршрутизовано через віртуальний аудіошлях, який використовує OpenClaw. `googlemeet doctor [session-id]` друкує сеанс, вузол, стан перебування у виклику, причину ручної дії, підключення провайдера реального часу, `realtimeReady`, активність -вхідного/вихідного аудіо, останні часові мітки аудіо, лічильники байтів і URL браузера. -Використовуйте `googlemeet status [session-id] --json`, коли потрібен сирий JSON. Використовуйте -`googlemeet doctor --oauth`, коли потрібно перевірити оновлення OAuth Google Meet -без розкриття токенів; додайте `--meeting` або `--create-space`, коли також потрібен -доказ Google Meet API. +аудіовходу/виходу, останні часові позначки аудіо, лічильники байтів і URL браузера. +Використовуйте `googlemeet status [session-id] --json`, коли потрібен необроблений JSON. Використовуйте +`googlemeet doctor --oauth`, коли потрібно перевірити оновлення Google Meet OAuth +без розкриття токенів; додайте `--meeting` або `--create-space`, коли вам також потрібне +підтвердження Google Meet API. -Якщо в агента сплив час очікування й ви бачите вже відкриту вкладку Meet, перевірте цю вкладку -без відкриття ще однієї: +Якщо час очікування агента сплив, а ви бачите вже відкриту вкладку Meet, перевірте цю вкладку +без відкриття нової: ```bash openclaw googlemeet recover-tab @@ -1221,16 +1237,16 @@ openclaw googlemeet recover-tab https://meet.google.com/abc-defg-hij вузол Chrome. Вона не відкриває нову вкладку й не створює новий сеанс; вона повідомляє поточний блокер, наприклад вхід, допуск, дозволи або стан вибору аудіо. Команда CLI звертається до налаштованого Gateway, тому Gateway має бути запущений; -`chrome-node` також потребує підключеного вузла Chrome. +`chrome-node` також потребує, щоб вузол Chrome був під’єднаний. -### Перевірки налаштування Twilio завершуються помилкою +### Перевірки налаштування Twilio не проходять -`twilio-voice-call-plugin` дає збій, коли `voice-call` не дозволено або не ввімкнено. +`twilio-voice-call-plugin` завершується помилкою, коли `voice-call` не дозволено або не ввімкнено. Додайте його до `plugins.allow`, увімкніть `plugins.entries.voice-call` і перезавантажте Gateway. -`twilio-voice-call-credentials` дає збій, коли в бекенді Twilio немає SID -облікового запису, токена автентифікації або номера абонента. Налаштуйте їх на хості Gateway: +`twilio-voice-call-credentials` завершується помилкою, коли у бекенді Twilio бракує +SID облікового запису, токена автентифікації або номера абонента, що телефонує. Задайте їх на хості Gateway: ```bash export TWILIO_ACCOUNT_SID=AC... @@ -1238,6 +1254,11 @@ export TWILIO_AUTH_TOKEN=... export TWILIO_FROM_NUMBER=+15550001234 ``` +`twilio-voice-call-webhook` завершується помилкою, коли `voice-call` не має публічної +експозиції Webhook або коли `publicUrl` вказує на local loopback чи простір приватної мережі. +Задайте `plugins.entries.voice-call.config.publicUrl` як публічну URL-адресу провайдера або +налаштуйте тунель/Tailscale-експозицію для `voice-call`. + Потім перезапустіть або перезавантажте Gateway і виконайте: ```bash @@ -1259,10 +1280,10 @@ openclaw voicecall smoke --to "+15555550123" openclaw voicecall smoke --to "+15555550123" --yes ``` -### Виклик Twilio починається, але не входить у зустріч +### Виклик Twilio починається, але ніколи не входить у зустріч -Переконайтеся, що подія Meet надає дані для телефонного підключення. Передайте точний номер -для набору та PIN або власну послідовність DTMF: +Переконайтеся, що подія Meet надає дані телефонного входу. Передайте точний номер +для набору та PIN або власну DTMF-послідовність: ```bash openclaw googlemeet join https://meet.google.com/abc-defg-hij \ @@ -1276,30 +1297,30 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij \ ## Примітки -Офіційний медіа-API Google Meet орієнтований на приймання, тому для мовлення у виклик Meet -усе одно потрібен шлях учасника. Цей Plugin робить цю межу явною: +Офіційний медіа-API Google Meet орієнтований на отримання, тому для мовлення в +дзвінок Meet усе ще потрібен шлях учасника. Цей Plugin робить цю межу видимою: Chrome обробляє участь у браузері та локальну маршрутизацію аудіо; Twilio обробляє -участь через телефонне підключення. +участь через телефонний набір. -Режим реального часу Chrome потребує `BlackHole 2ch` і одного з таких варіантів: +Режиму реального часу Chrome потрібен `BlackHole 2ch` плюс один із варіантів: - `chrome.audioInputCommand` плюс `chrome.audioOutputCommand`: OpenClaw володіє - мостом моделі реального часу й передає аудіо у форматі `chrome.audioFormat` між цими - командами та вибраним провайдером голосу реального часу. Стандартний шлях Chrome — + мостом моделі реального часу й передає аудіо у `chrome.audioFormat` між цими + командами та вибраним голосовим провайдером реального часу. Типовий шлях Chrome — 24 кГц PCM16; 8 кГц G.711 mu-law залишається доступним для застарілих пар команд. -- `chrome.audioBridgeCommand`: зовнішня команда мосту володіє всім локальним +- `chrome.audioBridgeCommand`: зовнішня команда моста володіє всім локальним аудіошляхом і має завершитися після запуску або перевірки свого демона. Для чистого дуплексного аудіо маршрутизуйте вихід Meet і мікрофон Meet через окремі віртуальні пристрої або граф віртуальних пристроїв у стилі Loopback. Один спільний -пристрій BlackHole може повертати звук інших учасників назад у виклик. +пристрій BlackHole може повертати інших учасників луною назад у дзвінок. `googlemeet speak` запускає активний аудіоміст реального часу для сеансу Chrome. -`googlemeet leave` зупиняє цей міст. Для сеансів Twilio, делегованих через Plugin -голосових викликів, `leave` також завершує базовий голосовий виклик. +`googlemeet leave` зупиняє цей міст. Для сеансів Twilio, делегованих через Plugin Voice Call, +`leave` також завершує базовий голосовий дзвінок. ## Пов’язане - [Plugin голосових викликів](/uk/plugins/voice-call) - [Режим розмови](/uk/nodes/talk) -- [Створення plugins](/uk/plugins/building-plugins) +- [Створення Plugin](/uk/plugins/building-plugins)