chore(i18n): refresh uk translations
This commit is contained in:
parent
760cae3d80
commit
14c70bed7c
@ -1,39 +1,41 @@
|
||||
---
|
||||
read_when:
|
||||
- Ви хочете, щоб агент OpenClaw приєднався до дзвінка Google Meet
|
||||
- Ви налаштовуєте Chrome, Node Chrome або Twilio як транспорт Google Meet
|
||||
summary: 'Плагін Google Meet: приєднання до явних URL-адрес Meet через Chrome або Twilio з типовими параметрами голосового зв’язку в реальному часі'
|
||||
- Ви хочете, щоб агент OpenClaw приєднався до виклику Google Meet
|
||||
- Ви хочете, щоб агент OpenClaw створив новий виклик Google Meet
|
||||
- Ви налаштовуєте Chrome, вузол Chrome або Twilio як транспорт Google Meet
|
||||
summary: 'Плагін Google Meet: приєднання до явних URL-адрес Meet через Chrome або Twilio з типовими налаштуваннями голосу в реальному часі'
|
||||
title: Плагін Google Meet
|
||||
x-i18n:
|
||||
generated_at: "2026-04-24T19:55:51Z"
|
||||
generated_at: "2026-04-24T21:15:37Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 08d1bc95465cc1a6063d5ef6707babf69d16f7f244bd4a9e88a28e3f7a62b2f9
|
||||
source_hash: 8c109e07170601a81f1802bcfb1477d82ff22d69966f73c7811d4c158a1854d7
|
||||
source_path: plugins/google-meet.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
Підтримка учасника Google Meet для OpenClaw — Plugin є навмисно явним за дизайном:
|
||||
Підтримка учасників Google Meet для OpenClaw — плагін навмисно зроблено явним:
|
||||
|
||||
- Він приєднується лише за явною URL-адресою `https://meet.google.com/...`.
|
||||
- Голосовий режим `realtime` є типовим режимом.
|
||||
- Голосовий режим у реальному часі може звертатися назад до повного агента OpenClaw, коли потрібні глибші міркування або інструменти.
|
||||
- Агенти вибирають поведінку приєднання за допомогою `mode`: використовуйте `realtime` для живого прослуховування/відповіді голосом або `transcribe`, щоб приєднатися/керувати браузером без голосового мосту реального часу.
|
||||
- Автентифікація починається з персонального Google OAuth або вже виконаного входу в профіль Chrome.
|
||||
- Він приєднується лише до явного URL `https://meet.google.com/...`.
|
||||
- Він може створити новий простір Meet через API Google Meet, а потім приєднатися за поверненим URL.
|
||||
- `realtime` — це типовий режим голосу.
|
||||
- Голос у режимі реального часу може повертатися до повного агента OpenClaw, коли потрібні глибше міркування або інструменти.
|
||||
- Агенти вибирають поведінку приєднання через `mode`: використовуйте `realtime` для живого прослуховування/відповіді голосом або `transcribe`, щоб приєднатися/керувати браузером без голосового мосту реального часу.
|
||||
- Автентифікація починається як особистий Google OAuth або вже виконаний вхід у профіль Chrome.
|
||||
- Автоматичного оголошення згоди немає.
|
||||
- Типовим аудіобекендом Chrome є `BlackHole 2ch`.
|
||||
- Chrome може працювати локально або на підключеному вузлі host.
|
||||
- Twilio приймає номер для дзвінка плюс необов’язковий PIN або послідовність DTMF.
|
||||
- Команда CLI — `googlemeet`; `meet` зарезервовано для ширших сценаріїв агентської телеконференції.
|
||||
- Типовий аудіобекенд Chrome — `BlackHole 2ch`.
|
||||
- Chrome може працювати локально або на під’єднаному вузлі.
|
||||
- Twilio приймає номер для дозвону та необов’язковий PIN або послідовність DTMF.
|
||||
- Команда CLI — `googlemeet`; `meet` зарезервовано для ширших сценаріїв телеконференцій агента.
|
||||
|
||||
## Швидкий старт
|
||||
|
||||
Установіть локальні аудіозалежності та налаштуйте постачальника голосу в реальному часі для бекенда. OpenAI є типовим; Google Gemini Live також працює з `realtime.provider: "google"`:
|
||||
Установіть локальні аудіозалежності та налаштуйте постачальника голосу реального часу для бекенду. Типовим є OpenAI; Google Gemini Live також працює з `realtime.provider: "google"`:
|
||||
|
||||
```bash
|
||||
brew install blackhole-2ch sox
|
||||
export OPENAI_API_KEY=sk-...
|
||||
# or
|
||||
# або
|
||||
export GEMINI_API_KEY=...
|
||||
```
|
||||
|
||||
@ -71,7 +73,9 @@ command -v rec play
|
||||
openclaw googlemeet setup
|
||||
```
|
||||
|
||||
Вивід налаштування призначений для читання агентом. Він повідомляє про профіль Chrome, аудіоміст, прив’язку до Node, відкладений вступ у режимі реального часу, а також, коли налаштовано делегування Twilio, чи готові Plugin `voice-call` і облікові дані Twilio. Будь-яку перевірку `ok: false` слід вважати блокувальним фактором перед тим, як просити агента приєднатися. Використовуйте `openclaw googlemeet setup --json` для скриптів або машинозчитуваного виводу.
|
||||
Вивід налаштування призначено для читання агентом. Він повідомляє про профіль Chrome, аудіоміст, закріплення вузла, відкладений вступ у режимі реального часу та, якщо налаштовано делегування Twilio, чи готові плагін `voice-call` і облікові дані Twilio.
|
||||
Вважайте будь-яку перевірку `ok: false` блокером, перш ніж просити агента приєднатися.
|
||||
Для скриптів або машинозчитуваного виводу використовуйте `openclaw googlemeet setup --json`.
|
||||
|
||||
Приєднайтеся до зустрічі:
|
||||
|
||||
@ -90,18 +94,42 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij
|
||||
}
|
||||
```
|
||||
|
||||
Для приєднання лише для спостереження/керування браузером установіть `"mode": "transcribe"`. Це не запускає двонапрямний міст моделі реального часу, тому він не відповідатиме голосом у зустрічі.
|
||||
Створіть нову зустріч, а потім приєднайтеся до неї:
|
||||
|
||||
Chrome приєднується як профіль Chrome, у якому виконано вхід. У Meet виберіть `BlackHole 2ch` для шляху мікрофона/динаміка, який використовує OpenClaw. Для чистого двобічного аудіо використовуйте окремі віртуальні пристрої або граф типу Loopback; одного пристрою BlackHole достатньо для першого smoke test, але може бути луна.
|
||||
```bash
|
||||
openclaw googlemeet create
|
||||
openclaw googlemeet join https://meet.google.com/new-abcd-xyz --transport chrome-node
|
||||
```
|
||||
|
||||
Або скажіть агенту: «Створи Google Meet, приєднайся до нього з голосом у режимі реального часу і надішли мені посилання». Агент має викликати `google_meet` з `action: "create"`, скопіювати повернений `meetingUri`, а потім викликати `google_meet` з `action: "join"` і цим URL.
|
||||
|
||||
```json
|
||||
{
|
||||
"action": "create"
|
||||
}
|
||||
```
|
||||
|
||||
```json
|
||||
{
|
||||
"action": "join",
|
||||
"url": "https://meet.google.com/new-abcd-xyz",
|
||||
"transport": "chrome-node",
|
||||
"mode": "realtime"
|
||||
}
|
||||
```
|
||||
|
||||
Для приєднання лише для спостереження/керування браузером установіть `"mode": "transcribe"`. Це не запускає двобічний міст моделі реального часу, тому вона не буде відповідати голосом у зустрічі.
|
||||
|
||||
Chrome приєднується як профіль Chrome, у якому виконано вхід. У Meet виберіть `BlackHole 2ch` для шляху мікрофона/динаміка, який використовує OpenClaw. Для чистого двобічного аудіо використовуйте окремі віртуальні пристрої або граф у стилі Loopback; одного пристрою BlackHole достатньо для першого smoke-тесту, але він може створювати відлуння.
|
||||
|
||||
### Локальний Gateway + Parallels Chrome
|
||||
|
||||
Вам **не** потрібен повний OpenClaw Gateway або ключ API моделі всередині macOS VM лише для того, щоб VM володіла Chrome. Запустіть Gateway і агента локально, а потім запустіть вузол host у VM. Один раз увімкніть у VM вбудований Plugin, щоб вузол рекламував команду Chrome:
|
||||
Вам **не** потрібен повний OpenClaw Gateway або ключ API моделі всередині macOS VM лише для того, щоб VM володіла Chrome. Запустіть Gateway і агента локально, а потім запустіть вузол у VM. Увімкніть вбудований плагін у VM один раз, щоб вузол рекламував команду Chrome:
|
||||
|
||||
Що де працює:
|
||||
|
||||
- Host Gateway: OpenClaw Gateway, робочий простір агента, ключі моделі/API, постачальник реального часу та конфігурація Plugin Google Meet.
|
||||
- Parallels macOS VM: CLI/вузол host OpenClaw, Google Chrome, SoX, BlackHole 2ch і профіль Chrome з виконаним входом у Google.
|
||||
- Хост Gateway: OpenClaw Gateway, робочий простір агента, ключі моделі/API, постачальник режиму реального часу та конфігурація плагіна Google Meet.
|
||||
- macOS VM у Parallels: CLI/node host OpenClaw, Google Chrome, SoX, BlackHole 2ch і профіль Chrome з виконаним входом у Google.
|
||||
- Не потрібно у VM: служба Gateway, конфігурація агента, ключ OpenAI/GPT або налаштування постачальника моделі.
|
||||
|
||||
Установіть залежності у VM:
|
||||
@ -129,20 +157,20 @@ command -v rec play
|
||||
openclaw plugins enable google-meet
|
||||
```
|
||||
|
||||
Запустіть вузол host у VM:
|
||||
Запустіть вузол у VM:
|
||||
|
||||
```bash
|
||||
openclaw node run --host <gateway-host> --port 18789 --display-name parallels-macos
|
||||
```
|
||||
|
||||
Якщо `<gateway-host>` — це IP-адреса LAN і ви не використовуєте TLS, вузол відхилить незашифрований WebSocket, якщо ви явно не дозволите це для цієї довіреної приватної мережі:
|
||||
Якщо `<gateway-host>` — це IP-адреса LAN і ви не використовуєте TLS, вузол відхиляє незашифрований WebSocket, якщо ви явно не дозволите це для цієї довіреної приватної мережі:
|
||||
|
||||
```bash
|
||||
OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 \
|
||||
openclaw node run --host <gateway-lan-ip> --port 18789 --display-name parallels-macos
|
||||
```
|
||||
|
||||
Використовуйте ту саму змінну середовища під час встановлення вузла як LaunchAgent:
|
||||
Використовуйте ту саму змінну середовища, коли встановлюєте вузол як LaunchAgent:
|
||||
|
||||
```bash
|
||||
OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 \
|
||||
@ -152,20 +180,20 @@ openclaw node restart
|
||||
|
||||
`OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1` — це змінна середовища процесу, а не параметр `openclaw.json`. `openclaw node install` зберігає її в середовищі LaunchAgent, якщо вона присутня в команді встановлення.
|
||||
|
||||
Схваліть вузол з host Gateway:
|
||||
Підтвердьте вузол із хоста Gateway:
|
||||
|
||||
```bash
|
||||
openclaw devices list
|
||||
openclaw devices approve <requestId>
|
||||
```
|
||||
|
||||
Підтвердьте, що Gateway бачить вузол і що він рекламує і `googlemeet.chrome`, і можливість браузера/`browser.proxy`:
|
||||
Підтвердьте, що Gateway бачить вузол і що він рекламує як `googlemeet.chrome`, так і можливість браузера/`browser.proxy`:
|
||||
|
||||
```bash
|
||||
openclaw nodes status
|
||||
```
|
||||
|
||||
Маршрутизуйте Meet через цей вузол на host Gateway:
|
||||
Спрямуйте Meet через цей вузол на хості Gateway:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -195,7 +223,7 @@ openclaw nodes status
|
||||
}
|
||||
```
|
||||
|
||||
Тепер приєднуйтесь звичайним способом з host Gateway:
|
||||
Тепер приєднуйтеся як зазвичай із хоста Gateway:
|
||||
|
||||
```bash
|
||||
openclaw googlemeet join https://meet.google.com/abc-defg-hij
|
||||
@ -203,53 +231,54 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij
|
||||
|
||||
або попросіть агента використати інструмент `google_meet` з `transport: "chrome-node"`.
|
||||
|
||||
Для smoke test однією командою, який створює або повторно використовує сеанс, промовляє відому фразу та виводить стан сеансу:
|
||||
Для smoke-тесту однією командою, який створює або повторно використовує сеанс, вимовляє відому фразу та виводить стан сеансу:
|
||||
|
||||
```bash
|
||||
openclaw googlemeet test-speech https://meet.google.com/abc-defg-hij
|
||||
```
|
||||
|
||||
Якщо профіль браузера не має виконаного входу, Meet очікує допуску від host або Chrome потребує дозволу на мікрофон/камеру, результат join/test-speech повідомляє `manualActionRequired: true` з `manualActionReason` і `manualActionMessage`. Агенти мають припинити повторні спроби приєднання, повідомити оператору це повідомлення й повторити спробу лише після завершення ручної дії в браузері.
|
||||
Якщо в профілі браузера не виконано вхід, Meet очікує допуску хостом або Chrome потребує дозволу на мікрофон/камеру, результат join/test-speech повідомляє `manualActionRequired: true` разом із `manualActionReason` і `manualActionMessage`. Агенти мають припинити повторні спроби приєднання, повідомити це повідомлення оператору й повторити спробу лише після завершення ручної дії в браузері.
|
||||
|
||||
Якщо `chromeNode.node` пропущено, OpenClaw автоматично вибирає вузол лише тоді, коли рівно один підключений вузол рекламує і `googlemeet.chrome`, і керування браузером. Якщо підключено кілька сумісних вузлів, установіть `chromeNode.node` на id вузла, display name або віддалену IP-адресу.
|
||||
Якщо `chromeNode.node` пропущено, OpenClaw виконує автовибір лише тоді, коли рівно один підключений вузол рекламує і `googlemeet.chrome`, і керування браузером. Якщо підключено кілька придатних вузлів, установіть `chromeNode.node` на id вузла, відображуване ім’я або віддалену IP-адресу.
|
||||
|
||||
Поширені перевірки збоїв:
|
||||
Поширені перевірки помилок:
|
||||
|
||||
- `No connected Google Meet-capable node`: запустіть `openclaw node run` у VM, схваліть pairing і переконайтеся, що у VM було виконано `openclaw plugins enable google-meet` і `openclaw plugins enable browser`. Також підтвердьте, що host Gateway дозволяє обидві команди вузла через `gateway.nodes.allowCommands: ["googlemeet.chrome", "browser.proxy"]`.
|
||||
- `No connected Google Meet-capable node`: запустіть `openclaw node run` у VM, підтвердьте сполучення та переконайтеся, що у VM було виконано `openclaw plugins enable google-meet` і `openclaw plugins enable browser`. Також підтвердьте, що хост Gateway дозволяє обидві команди вузла через `gateway.nodes.allowCommands: ["googlemeet.chrome", "browser.proxy"]`.
|
||||
- `BlackHole 2ch audio device not found on the node`: установіть `blackhole-2ch` у VM і перезавантажте VM.
|
||||
- Chrome відкривається, але не може приєднатися: увійдіть у профіль браузера всередині VM або залиште встановленим `chrome.guestName` для гостьового приєднання. Автоматичне гостьове приєднання використовує автоматизацію браузера OpenClaw через browser proxy вузла; переконайтеся, що конфігурація браузера вузла вказує на потрібний профіль, наприклад `browser.defaultProfile: "user"` або іменований профіль наявної сесії.
|
||||
- Дубльовані вкладки Meet: залиште увімкненим `chrome.reuseExistingTab: true`. OpenClaw активує наявну вкладку для тієї самої URL-адреси Meet перед відкриттям нової.
|
||||
- Немає аудіо: у Meet маршрутизуйте мікрофон/динамік через шлях віртуального аудіопристрою, який використовує OpenClaw; для чистого двобічного аудіо використовуйте окремі віртуальні пристрої або маршрутизацію типу Loopback.
|
||||
- Chrome відкривається, але не може приєднатися: увійдіть у профіль браузера всередині VM або залиште `chrome.guestName` встановленим для гостьового приєднання. Автоприєднання гостя використовує автоматизацію браузера OpenClaw через проксі браузера вузла; переконайтеся, що конфігурація браузера вузла вказує на потрібний профіль, наприклад `browser.defaultProfile: "user"` або іменований профіль наявного сеансу.
|
||||
- Дубльовані вкладки Meet: залиште ввімкненим `chrome.reuseExistingTab: true`. OpenClaw активує наявну вкладку для того самого URL Meet перед відкриттям нової.
|
||||
- Немає аудіо: у Meet спрямовуйте аудіо мікрофона/динаміка через шлях віртуального аудіопристрою, який використовує OpenClaw; для чистого двобічного аудіо використовуйте окремі віртуальні пристрої або маршрутизацію в стилі Loopback.
|
||||
|
||||
## Примітки щодо встановлення
|
||||
|
||||
Типовий режим реального часу Chrome використовує два зовнішні інструменти:
|
||||
Типовий режим Chrome realtime використовує два зовнішні інструменти:
|
||||
|
||||
- `sox`: утиліта командного рядка для роботи з аудіо. Plugin використовує її команди `rec` і `play` для типового аудіомосту G.711 mu-law 8 кГц.
|
||||
- `blackhole-2ch`: віртуальний аудіодрайвер macOS. Він створює аудіопристрій `BlackHole 2ch`, через який можуть маршрутизуватися Chrome/Meet.
|
||||
- `sox`: утиліта командного рядка для аудіо. Плагін використовує її команди `rec` і `play` для типового аудіомосту G.711 mu-law 8 кГц.
|
||||
- `blackhole-2ch`: віртуальний аудіодрайвер macOS. Він створює аудіопристрій `BlackHole 2ch`, через який Chrome/Meet можуть маршрутизувати аудіо.
|
||||
|
||||
OpenClaw не постачає та не розповсюджує жоден із цих пакетів. У документації користувачам пропонується встановлювати їх як залежності host через Homebrew. SoX ліцензовано як `LGPL-2.0-only AND GPL-2.0-only`; BlackHole — GPL-3.0. Якщо ви збираєте інсталятор або appliance, що постачає BlackHole разом з OpenClaw, перегляньте умови ліцензування BlackHole від upstream або отримайте окрему ліцензію від Existential Audio.
|
||||
OpenClaw не включає й не розповсюджує жоден із цих пакетів. У документації користувачам пропонується встановлювати їх як залежності хоста через Homebrew. SoX ліцензовано як `LGPL-2.0-only AND GPL-2.0-only`; BlackHole має ліцензію GPL-3.0. Якщо ви збираєте інсталятор або appliance, що включає BlackHole разом з OpenClaw, перегляньте умови вихідної ліцензії BlackHole або отримайте окрему ліцензію від Existential Audio.
|
||||
|
||||
## Транспорти
|
||||
|
||||
### Chrome
|
||||
|
||||
Транспорт Chrome відкриває URL-адресу Meet у Google Chrome і приєднується як профіль Chrome, у якому виконано вхід. На macOS Plugin перевіряє наявність `BlackHole 2ch` перед запуском. Якщо налаштовано, він також виконує команду перевірки стану аудіомосту та команду запуску перед відкриттям Chrome. Використовуйте `chrome`, коли Chrome/аудіо працюють на host Gateway; використовуйте `chrome-node`, коли Chrome/аудіо працюють на підключеному Node, наприклад у Parallels macOS VM.
|
||||
Транспорт Chrome відкриває URL Meet у Google Chrome і приєднується як профіль Chrome, у якому виконано вхід. На macOS плагін перед запуском перевіряє наявність `BlackHole 2ch`.
|
||||
Якщо налаштовано, він також запускає команду перевірки стану аудіомосту та команду запуску перед відкриттям Chrome. Використовуйте `chrome`, коли Chrome/аудіо працюють на хості Gateway; використовуйте `chrome-node`, коли Chrome/аудіо працюють на під’єднаному вузлі, наприклад у macOS VM Parallels.
|
||||
|
||||
```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. Якщо `BlackHole 2ch` не встановлено, приєднання завершується помилкою налаштування замість тихого приєднання без аудіошляху.
|
||||
Спрямуйте аудіо мікрофона та динаміка Chrome через локальний аудіоміст OpenClaw. Якщо `BlackHole 2ch` не встановлено, приєднання завершується помилкою налаштування замість тихого приєднання без аудіошляху.
|
||||
|
||||
### Twilio
|
||||
|
||||
Транспорт Twilio — це строгий план набору, делегований Plugin Voice Call. Він не аналізує сторінки Meet у пошуку номерів телефону.
|
||||
Транспорт Twilio — це строгий план набору, делегований плагіну Voice Call. Він не аналізує сторінки Meet, щоб витягти телефонні номери.
|
||||
|
||||
Використовуйте його, коли участь через Chrome недоступна або коли вам потрібен резервний варіант телефонного набору. Google Meet має надавати номер для підключення телефоном і PIN для зустрічі; OpenClaw не знаходить їх на сторінці Meet.
|
||||
Використовуйте це, коли участь через Chrome недоступна або коли вам потрібен резервний варіант із телефонним дозвоном. Google Meet має показувати номер для телефонного дозвону та PIN для зустрічі; OpenClaw не визначає їх зі сторінки Meet.
|
||||
|
||||
Увімкніть Plugin Voice Call на host Gateway, а не на Chrome node:
|
||||
Увімкніть плагін Voice Call на хості Gateway, а не на вузлі Chrome:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -260,7 +289,7 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij --transport chrome
|
||||
enabled: true,
|
||||
config: {
|
||||
defaultTransport: "chrome-node",
|
||||
// or set "twilio" if Twilio should be the default
|
||||
// або встановіть "twilio", якщо Twilio має бути типовим
|
||||
},
|
||||
},
|
||||
"voice-call": {
|
||||
@ -282,7 +311,7 @@ export TWILIO_AUTH_TOKEN=...
|
||||
export TWILIO_FROM_NUMBER=+15550001234
|
||||
```
|
||||
|
||||
Перезапустіть або перезавантажте Gateway після ввімкнення `voice-call`; зміни конфігурації Plugin не з’являються в уже запущеному процесі Gateway, доки його не буде перезавантажено.
|
||||
Перезапустіть або перезавантажте Gateway після ввімкнення `voice-call`; зміни конфігурації плагіна не з’являються в уже запущеному процесі Gateway, доки він не буде перезавантажений.
|
||||
|
||||
Потім перевірте:
|
||||
|
||||
@ -292,7 +321,7 @@ 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`.
|
||||
|
||||
```bash
|
||||
openclaw googlemeet join https://meet.google.com/abc-defg-hij \
|
||||
@ -301,7 +330,7 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij \
|
||||
--pin 123456
|
||||
```
|
||||
|
||||
Використовуйте `--dtmf-sequence`, коли зустріч вимагає користувацької послідовності:
|
||||
Використовуйте `--dtmf-sequence`, коли зустріч потребує власної послідовності:
|
||||
|
||||
```bash
|
||||
openclaw googlemeet join https://meet.google.com/abc-defg-hij \
|
||||
@ -312,15 +341,23 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij \
|
||||
|
||||
## OAuth і попередня перевірка
|
||||
|
||||
Доступ до Google Meet Media API спочатку використовує персональний OAuth client. Налаштуйте `oauth.clientId` і, за потреби, `oauth.clientSecret`, а потім виконайте:
|
||||
Доступ до Google Meet Media API спочатку використовує особистий OAuth-клієнт. Налаштуйте
|
||||
`oauth.clientId` і за потреби `oauth.clientSecret`, а потім виконайте:
|
||||
|
||||
```bash
|
||||
openclaw googlemeet auth login --json
|
||||
```
|
||||
|
||||
Команда виводить блок конфігурації `oauth` з refresh token. Вона використовує PKCE, callback localhost на `http://localhost:8085/oauth2callback` і ручний потік копіювання/вставлення з `--manual`.
|
||||
Команда виводить блок конфігурації `oauth` з refresh token. Вона використовує PKCE,
|
||||
локальний callback на `http://localhost:8085/oauth2callback` і ручний
|
||||
потік копіювання/вставлення з `--manual`.
|
||||
|
||||
Як резервні варіанти приймаються такі змінні середовища:
|
||||
Згода OAuth включає створення просторів Meet, доступ на читання просторів Meet і
|
||||
доступ на читання медіаданих конференцій Meet. Якщо ви пройшли автентифікацію до того, як з’явилася
|
||||
підтримка створення зустрічей, повторно виконайте `openclaw googlemeet auth login --json`, щоб
|
||||
refresh token мав область доступу `meetings.space.created`.
|
||||
|
||||
Ці змінні середовища приймаються як резервні варіанти:
|
||||
|
||||
- `OPENCLAW_GOOGLE_MEET_CLIENT_ID` або `GOOGLE_MEET_CLIENT_ID`
|
||||
- `OPENCLAW_GOOGLE_MEET_CLIENT_SECRET` або `GOOGLE_MEET_CLIENT_SECRET`
|
||||
@ -331,32 +368,52 @@ openclaw googlemeet auth login --json
|
||||
- `OPENCLAW_GOOGLE_MEET_DEFAULT_MEETING` або `GOOGLE_MEET_DEFAULT_MEETING`
|
||||
- `OPENCLAW_GOOGLE_MEET_PREVIEW_ACK` або `GOOGLE_MEET_PREVIEW_ACK`
|
||||
|
||||
Визначте URL-адресу Meet, код або `spaces/{id}` через `spaces.get`:
|
||||
Розв’яжіть URL Meet, код або `spaces/{id}` через `spaces.get`:
|
||||
|
||||
```bash
|
||||
openclaw googlemeet resolve-space --meeting https://meet.google.com/abc-defg-hij
|
||||
```
|
||||
|
||||
Запустіть попередню перевірку перед роботою з медіа:
|
||||
Виконайте попередню перевірку перед роботою з медіа:
|
||||
|
||||
```bash
|
||||
openclaw googlemeet preflight --meeting https://meet.google.com/abc-defg-hij
|
||||
```
|
||||
|
||||
Установлюйте `preview.enrollmentAcknowledged: true` лише після підтвердження, що ваш Cloud project, принципал OAuth і учасники зустрічі зареєстровані в програмі Google Workspace Developer Preview Program для медіа-API Meet.
|
||||
Створіть новий простір Meet з тією самою конфігурацією OAuth:
|
||||
|
||||
```bash
|
||||
openclaw googlemeet create
|
||||
```
|
||||
|
||||
Команда виводить нові `meeting uri` і `space`. Агенти можуть використовувати
|
||||
інструмент `google_meet` з `action: "create"` для створення зустрічі, а потім викликати
|
||||
`action: "join"` з поверненим `meetingUri`.
|
||||
|
||||
Створення простору Meet створює лише URL зустрічі. Транспорт Chrome або Chrome-node
|
||||
усе одно потребує профілю Google Chrome з виконаним входом, щоб приєднатися через
|
||||
браузер. Якщо в профілі виконано вихід, OpenClaw повідомляє
|
||||
`manualActionRequired: true` і просить оператора завершити вхід у Google перед
|
||||
повторною спробою приєднання.
|
||||
|
||||
Установлюйте `preview.enrollmentAcknowledged: true` лише після підтвердження, що ваш Cloud
|
||||
project, OAuth principal і учасники зустрічі зареєстровані в програмі
|
||||
Google Workspace Developer Preview Program для медіа-API Meet.
|
||||
|
||||
## Конфігурація
|
||||
|
||||
Поширений шлях Chrome у режимі реального часу потребує лише увімкненого Plugin, BlackHole, SoX і ключа постачальника голосу в реальному часі для бекенда. OpenAI є типовим; установіть `realtime.provider: "google"`, щоб використовувати Google Gemini Live:
|
||||
Звичайному шляху Chrome realtime потрібні лише ввімкнений плагін, BlackHole, SoX
|
||||
і ключ постачальника голосу реального часу для бекенду. Типовим є OpenAI; установіть
|
||||
`realtime.provider: "google"`, щоб використовувати Google Gemini Live:
|
||||
|
||||
```bash
|
||||
brew install blackhole-2ch sox
|
||||
export OPENAI_API_KEY=sk-...
|
||||
# or
|
||||
# або
|
||||
export GEMINI_API_KEY=...
|
||||
```
|
||||
|
||||
Установіть конфігурацію Plugin у `plugins.entries.google-meet.config`:
|
||||
Установіть конфігурацію плагіна в `plugins.entries.google-meet.config`:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -377,16 +434,24 @@ export GEMINI_API_KEY=...
|
||||
- `defaultMode: "realtime"`
|
||||
- `chromeNode.node`: необов’язковий id/ім’я/IP вузла для `chrome-node`
|
||||
- `chrome.audioBackend: "blackhole-2ch"`
|
||||
- `chrome.guestName: "OpenClaw Agent"`: ім’я, що використовується на екрані гостьового входу Meet без входу в систему
|
||||
- `chrome.autoJoin: true`: заповнення імені гостя та натискання Join Now з найкращим зусиллям через автоматизацію браузера OpenClaw на `chrome-node`
|
||||
- `chrome.reuseExistingTab: true`: активувати наявну вкладку Meet замість відкриття дублікатів
|
||||
- `chrome.waitForInCallMs: 20000`: чекати, поки вкладка Meet повідомить про перебування в дзвінку, перш ніж буде запущено вступ у режимі реального часу
|
||||
- `chrome.audioInputCommand`: команда SoX `rec`, яка записує аудіо 8 кГц G.711 mu-law у stdout
|
||||
- `chrome.audioOutputCommand`: команда SoX `play`, яка читає аудіо 8 кГц G.711 mu-law зі stdin
|
||||
- `chrome.guestName: "OpenClaw Agent"`: ім’я, яке використовується на екрані
|
||||
гостя Meet без входу
|
||||
- `chrome.autoJoin: true`: заповнення імені гостя та натискання Join Now у
|
||||
режимі best-effort через автоматизацію браузера OpenClaw на `chrome-node`
|
||||
- `chrome.reuseExistingTab: true`: активувати наявну вкладку Meet замість
|
||||
відкриття дублікатів
|
||||
- `chrome.waitForInCallMs: 20000`: чекати, доки вкладка Meet не повідомить про стан in-call,
|
||||
перш ніж буде запущено вступ у режимі реального часу
|
||||
- `chrome.audioInputCommand`: команда SoX `rec`, що записує аудіо G.711 mu-law 8 кГц
|
||||
у stdout
|
||||
- `chrome.audioOutputCommand`: команда SoX `play`, що читає аудіо G.711 mu-law 8 кГц
|
||||
із stdin
|
||||
- `realtime.provider: "openai"`
|
||||
- `realtime.toolPolicy: "safe-read-only"`
|
||||
- `realtime.instructions`: короткі усні відповіді, з `openclaw_agent_consult` для глибших відповідей
|
||||
- `realtime.introMessage`: коротка усна перевірка готовності під час підключення мосту реального часу; установіть `""`, щоб приєднатися беззвучно
|
||||
- `realtime.instructions`: короткі усні відповіді, з
|
||||
`openclaw_agent_consult` для глибших відповідей
|
||||
- `realtime.introMessage`: коротка усна перевірка готовності, коли міст
|
||||
реального часу підключається; установіть `""`, щоб приєднуватися беззвучно
|
||||
|
||||
Необов’язкові перевизначення:
|
||||
|
||||
@ -406,7 +471,7 @@ export GEMINI_API_KEY=...
|
||||
realtime: {
|
||||
provider: "google",
|
||||
toolPolicy: "owner",
|
||||
introMessage: "Say exactly: I'm here.",
|
||||
introMessage: "Скажи рівно: I'm here.",
|
||||
providers: {
|
||||
google: {
|
||||
model: "gemini-2.5-flash-native-audio-preview-12-2025",
|
||||
@ -432,7 +497,10 @@ 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. Якщо `voice-call` не
|
||||
ввімкнено, Google Meet усе одно може перевірити й записати план набору, але не може
|
||||
виконати виклик Twilio.
|
||||
|
||||
## Інструмент
|
||||
|
||||
@ -447,47 +515,67 @@ export GEMINI_API_KEY=...
|
||||
}
|
||||
```
|
||||
|
||||
Використовуйте `transport: "chrome"`, коли Chrome працює на host Gateway. Використовуйте `transport: "chrome-node"`, коли Chrome працює на підключеному Node, наприклад у Parallels VM. В обох випадках модель реального часу та `openclaw_agent_consult` працюють на host Gateway, тому облікові дані моделі залишаються там.
|
||||
Використовуйте `transport: "chrome"`, коли Chrome працює на хості Gateway. Використовуйте
|
||||
`transport: "chrome-node"`, коли Chrome працює на під’єднаному вузлі, наприклад у Parallels
|
||||
VM. В обох випадках модель реального часу та `openclaw_agent_consult` працюють на
|
||||
хості Gateway, тому облікові дані моделі залишаються там.
|
||||
|
||||
Використовуйте `action: "status"`, щоб перелічити активні сеанси або перевірити id сеансу. Використовуйте `action: "speak"` з `sessionId` і `message`, щоб агент реального часу негайно заговорив. Використовуйте `action: "test_speech"`, щоб створити або повторно використати сеанс, запустити відому фразу й повернути стан `inCall`, коли host Chrome може його повідомити. Використовуйте `action: "leave"`, щоб позначити сеанс як завершений.
|
||||
Використовуйте `action: "status"`, щоб перелічити активні сеанси або перевірити ID сеансу. Використовуйте
|
||||
`action: "speak"` із `sessionId` і `message`, щоб змусити агента реального часу
|
||||
говорити негайно. Використовуйте `action: "test_speech"`, щоб створити або повторно використати сеанс,
|
||||
запустити відому фразу й повернути стан `inCall`, якщо хост Chrome може
|
||||
його повідомити. Використовуйте `action: "leave"`, щоб позначити сеанс завершеним.
|
||||
|
||||
`status` містить стан Chrome, коли він доступний:
|
||||
`status` включає стан Chrome, коли він доступний:
|
||||
|
||||
- `inCall`: Chrome, імовірно, перебуває всередині дзвінка Meet
|
||||
- `micMuted`: стан мікрофона Meet з найкращим зусиллям
|
||||
- `manualActionRequired` / `manualActionReason` / `manualActionMessage`: профілю браузера потрібен ручний вхід, допуск host Meet, дозволи, або виправлення керування браузером, перш ніж мовлення зможе працювати
|
||||
- `inCall`: Chrome, імовірно, перебуває всередині виклику Meet
|
||||
- `micMuted`: best-effort стан мікрофона Meet
|
||||
- `manualActionRequired` / `manualActionReason` / `manualActionMessage`: профіль
|
||||
браузера потребує ручного входу, допуску хостом Meet, дозволів або
|
||||
виправлення керування браузером, перш ніж мовлення зможе працювати
|
||||
- `providerConnected` / `realtimeReady`: стан голосового мосту реального часу
|
||||
- `lastInputAt` / `lastOutputAt`: останнє аудіо, отримане мостом або надіслане до нього
|
||||
- `lastInputAt` / `lastOutputAt`: час останнього аудіо, отриманого від мосту або надісланого до нього
|
||||
|
||||
```json
|
||||
{
|
||||
"action": "speak",
|
||||
"sessionId": "meet_...",
|
||||
"message": "Say exactly: I'm here and listening."
|
||||
"message": "Скажи рівно: I'm here and listening."
|
||||
}
|
||||
```
|
||||
|
||||
## Консультація агента в режимі реального часу
|
||||
|
||||
Режим реального часу Chrome оптимізовано для живого голосового циклу. Постачальник голосу в реальному часі чує аудіо зустрічі й говорить через налаштований аудіоміст. Коли моделі реального часу потрібні глибші міркування, актуальна інформація або звичайні інструменти OpenClaw, вона може викликати `openclaw_agent_consult`.
|
||||
Режим Chrome realtime оптимізовано для живого голосового циклу. Постачальник
|
||||
голосу реального часу чує аудіо зустрічі та говорить через налаштований
|
||||
аудіоміст. Коли моделі реального часу потрібні глибше міркування, актуальна
|
||||
інформація або звичайні інструменти OpenClaw, вона може викликати `openclaw_agent_consult`.
|
||||
|
||||
Інструмент консультації запускає звичайного агента OpenClaw у фоновому режимі з контекстом нещодавнього транскрипту зустрічі та повертає стислу усну відповідь до голосового сеансу реального часу. Потім голосова модель може озвучити цю відповідь назад у зустріч.
|
||||
Інструмент консультації у фоновому режимі запускає звичайного агента OpenClaw
|
||||
із контекстом нещодавньої розшифровки зустрічі й повертає стислу усну відповідь
|
||||
до голосового сеансу реального часу. Потім голосова модель може озвучити цю
|
||||
відповідь назад у зустріч.
|
||||
|
||||
`realtime.toolPolicy` керує запуском консультації:
|
||||
|
||||
- `safe-read-only`: надавати інструмент консультації та обмежувати звичайного агента інструментами `read`, `web_search`, `web_fetch`, `x_search`, `memory_search` і `memory_get`.
|
||||
- `owner`: надавати інструмент консультації та дозволяти звичайному агенту використовувати звичайну політику інструментів агента.
|
||||
- `none`: не надавати інструмент консультації голосовій моделі реального часу.
|
||||
- `safe-read-only`: показати інструмент консультації та обмежити звичайного агента
|
||||
інструментами `read`, `web_search`, `web_fetch`, `x_search`, `memory_search` і
|
||||
`memory_get`.
|
||||
- `owner`: показати інструмент консультації та дозволити звичайному агенту використовувати
|
||||
звичайну політику інструментів агента.
|
||||
- `none`: не показувати інструмент консультації моделі голосу реального часу.
|
||||
|
||||
Ключ сеансу консультації має область дії в межах кожного сеансу Meet, тому подальші виклики консультації можуть повторно використовувати попередній контекст консультації під час тієї самої зустрічі.
|
||||
Ключ сеансу консультації має область дії в межах одного сеансу Meet, тому
|
||||
наступні виклики консультації можуть повторно використовувати попередній контекст
|
||||
консультації під час тієї самої зустрічі.
|
||||
|
||||
Щоб примусово виконати усну перевірку готовності після того, як Chrome повністю приєднався до дзвінка:
|
||||
Щоб примусово виконати усну перевірку готовності після того, як Chrome повністю приєднався до виклику:
|
||||
|
||||
```bash
|
||||
openclaw googlemeet speak meet_... "Say exactly: I'm here and listening."
|
||||
```
|
||||
|
||||
Для повного smoke test приєднання та мовлення:
|
||||
Для повного smoke-тесту join-and-speak:
|
||||
|
||||
```bash
|
||||
openclaw googlemeet test-speech https://meet.google.com/abc-defg-hij \
|
||||
@ -495,9 +583,9 @@ openclaw googlemeet test-speech https://meet.google.com/abc-defg-hij \
|
||||
--message "Say exactly: I'm here and listening."
|
||||
```
|
||||
|
||||
## Контрольний список live test
|
||||
## Контрольний список live-тесту
|
||||
|
||||
Використовуйте цю послідовність перед передаванням зустрічі агенту без нагляду:
|
||||
Використовуйте цю послідовність перед передачею зустрічі агенту без нагляду:
|
||||
|
||||
```bash
|
||||
openclaw googlemeet setup
|
||||
@ -510,11 +598,12 @@ openclaw googlemeet test-speech https://meet.google.com/abc-defg-hij \
|
||||
Очікуваний стан Chrome-node:
|
||||
|
||||
- `googlemeet setup` повністю зелений.
|
||||
- `nodes status` показує, що вибраний вузол підключено.
|
||||
- `nodes status` показує, що вибраний вузол підключений.
|
||||
- Вибраний вузол рекламує і `googlemeet.chrome`, і `browser.proxy`.
|
||||
- Вкладка Meet приєднується до дзвінка, а `test-speech` повертає стан Chrome з `inCall: true`.
|
||||
- Вкладка Meet приєднується до виклику, а `test-speech` повертає стан Chrome з
|
||||
`inCall: true`.
|
||||
|
||||
Для smoke test Twilio використовуйте зустріч, яка надає деталі телефонного підключення:
|
||||
Для smoke-тесту Twilio використовуйте зустріч, яка показує деталі телефонного дозвону:
|
||||
|
||||
```bash
|
||||
openclaw googlemeet setup
|
||||
@ -526,27 +615,29 @@ 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`.
|
||||
- `voicecall` доступний у CLI після перезавантаження Gateway.
|
||||
- Повернений сеанс має `transport: "twilio"` і `twilio.voiceCallId`.
|
||||
- `googlemeet leave <sessionId>` завершує делегований голосовий дзвінок.
|
||||
- `googlemeet leave <sessionId>` завершує делегований голосовий виклик.
|
||||
|
||||
## Усунення несправностей
|
||||
|
||||
### Агент не бачить інструмент Google Meet
|
||||
|
||||
Підтвердьте, що Plugin увімкнено в конфігурації Gateway, і перезавантажте Gateway:
|
||||
Підтвердьте, що плагін увімкнено в конфігурації Gateway, і перезавантажте Gateway:
|
||||
|
||||
```bash
|
||||
openclaw plugins list | grep google-meet
|
||||
openclaw googlemeet setup
|
||||
```
|
||||
|
||||
Якщо ви щойно змінили `plugins.entries.google-meet`, перезапустіть або перезавантажте Gateway. Запущений агент бачить лише ті інструменти Plugin, які зареєстровані поточним процесом Gateway.
|
||||
Якщо ви щойно відредагували `plugins.entries.google-meet`, перезапустіть або перезавантажте Gateway.
|
||||
Запущений агент бачить лише інструменти плагінів, зареєстровані поточним процесом Gateway.
|
||||
|
||||
### Немає підключеного вузла з підтримкою Google Meet
|
||||
|
||||
На host вузла виконайте:
|
||||
На хості вузла виконайте:
|
||||
|
||||
```bash
|
||||
openclaw plugins enable google-meet
|
||||
@ -555,7 +646,7 @@ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 \
|
||||
openclaw node run --host <gateway-lan-ip> --port 18789 --display-name parallels-macos
|
||||
```
|
||||
|
||||
На host Gateway схваліть вузол і перевірте команди:
|
||||
На хості Gateway підтвердьте вузол і перевірте команди:
|
||||
|
||||
```bash
|
||||
openclaw devices list
|
||||
@ -563,7 +654,7 @@ openclaw devices approve <requestId>
|
||||
openclaw nodes status
|
||||
```
|
||||
|
||||
Вузол має бути підключений і містити `googlemeet.chrome` та `browser.proxy`.
|
||||
Вузол має бути підключений і перелічувати `googlemeet.chrome` та `browser.proxy`.
|
||||
Конфігурація Gateway має дозволяти ці команди вузла:
|
||||
|
||||
```json5
|
||||
@ -578,38 +669,58 @@ openclaw nodes status
|
||||
|
||||
### Браузер відкривається, але агент не може приєднатися
|
||||
|
||||
Запустіть `googlemeet test-speech` і перевірте повернений стан Chrome. Якщо він повідомляє `manualActionRequired: true`, покажіть оператору `manualActionMessage` і припиніть повторні спроби, доки дію в браузері не буде завершено.
|
||||
Запустіть `googlemeet test-speech` і перевірте повернений стан Chrome. Якщо він
|
||||
повідомляє `manualActionRequired: true`, покажіть `manualActionMessage` оператору
|
||||
та припиніть повторні спроби, доки дію в браузері не буде завершено.
|
||||
|
||||
Поширені ручні дії:
|
||||
|
||||
- Увійти в профіль Chrome.
|
||||
- Допустити гостя з облікового запису host Meet.
|
||||
- Допустити гостя з облікового запису хоста Meet.
|
||||
- Надати Chrome дозволи на мікрофон/камеру.
|
||||
- Закрити або виправити зависле діалогове вікно дозволів Meet.
|
||||
- Закрити або виправити завислий діалог дозволів Meet.
|
||||
|
||||
### Не вдається створити зустріч
|
||||
|
||||
`googlemeet create` використовує endpoint `spaces.create` API Google Meet. Підтвердьте:
|
||||
|
||||
- налаштовано `oauth.clientId` і `oauth.refreshToken`, або наявні відповідні
|
||||
змінні середовища `OPENCLAW_GOOGLE_MEET_*`.
|
||||
- refresh token було створено після додавання підтримки create. Старі токени можуть
|
||||
не мати області доступу `meetings.space.created`; повторно виконайте
|
||||
`openclaw googlemeet auth login --json` і оновіть конфігурацію плагіна.
|
||||
- Google Cloud project і OAuth principal мають право використовувати потрібні
|
||||
області доступу API Google Meet.
|
||||
|
||||
### Агент приєднується, але не говорить
|
||||
|
||||
Перевірте шлях реального часу:
|
||||
Перевірте шлях realtime:
|
||||
|
||||
```bash
|
||||
openclaw googlemeet setup
|
||||
openclaw googlemeet status
|
||||
```
|
||||
|
||||
Використовуйте `mode: "realtime"` для прослуховування/відповіді голосом. `mode: "transcribe"` навмисно не запускає двонапрямний голосовий міст реального часу.
|
||||
Використовуйте `mode: "realtime"` для прослуховування/відповіді голосом. `mode: "transcribe"` навмисно
|
||||
не запускає двобічний голосовий міст реального часу.
|
||||
|
||||
Також перевірте:
|
||||
|
||||
- На host Gateway доступний ключ постачальника реального часу, наприклад `OPENAI_API_KEY` або `GEMINI_API_KEY`.
|
||||
- `BlackHole 2ch` видно на host Chrome.
|
||||
- `rec` і `play` існують на host Chrome.
|
||||
- Мікрофон і динамік Meet маршрутизуються через віртуальний аудіошлях, який використовує OpenClaw.
|
||||
- На хості Gateway доступний ключ постачальника режиму реального часу, наприклад
|
||||
`OPENAI_API_KEY` або `GEMINI_API_KEY`.
|
||||
- `BlackHole 2ch` видимий на хості Chrome.
|
||||
- `rec` і `play` існують на хості Chrome.
|
||||
- Мікрофон і динамік Meet маршрутизовано через віртуальний аудіошлях, який використовує
|
||||
OpenClaw.
|
||||
|
||||
### Перевірки налаштування Twilio завершуються невдачею
|
||||
### Не проходять перевірки налаштування Twilio
|
||||
|
||||
`twilio-voice-call-plugin` завершується невдачею, коли `voice-call` не дозволено або не увімкнено. Додайте його до `plugins.allow`, увімкніть `plugins.entries.voice-call` і перезавантажте Gateway.
|
||||
`twilio-voice-call-plugin` завершується помилкою, коли `voice-call` не дозволено або не ввімкнено.
|
||||
Додайте його до `plugins.allow`, увімкніть `plugins.entries.voice-call` і перезавантажте
|
||||
Gateway.
|
||||
|
||||
`twilio-voice-call-credentials` завершується невдачею, коли в бекенді Twilio відсутні account SID, auth token або номер абонента. Установіть їх на host Gateway:
|
||||
`twilio-voice-call-credentials` завершується помилкою, коли в бекенді Twilio бракує account
|
||||
SID, auth token або номера абонента. Установіть це на хості Gateway:
|
||||
|
||||
```bash
|
||||
export TWILIO_ACCOUNT_SID=AC...
|
||||
@ -623,9 +734,10 @@ export TWILIO_FROM_NUMBER=+15550001234
|
||||
openclaw googlemeet setup
|
||||
```
|
||||
|
||||
### Дзвінок Twilio починається, але так і не входить у зустріч
|
||||
### Виклик Twilio починається, але ніколи не входить у зустріч
|
||||
|
||||
Підтвердьте, що подія Meet надає деталі телефонного підключення. Передайте точний номер для підключення та PIN або користувацьку послідовність DTMF:
|
||||
Підтвердьте, що подія Meet містить деталі телефонного дозвону. Передайте точний номер
|
||||
для дозвону та PIN або власну послідовність DTMF:
|
||||
|
||||
```bash
|
||||
openclaw googlemeet join https://meet.google.com/abc-defg-hij \
|
||||
@ -634,24 +746,34 @@ openclaw googlemeet join https://meet.google.com/abc-defg-hij \
|
||||
--dtmf-sequence ww123456#
|
||||
```
|
||||
|
||||
Використовуйте початковий `w` або коми в `--dtmf-sequence`, якщо постачальнику потрібна пауза перед введенням PIN.
|
||||
Використовуйте початковий `w` або коми в `--dtmf-sequence`, якщо постачальнику потрібна пауза
|
||||
перед введенням PIN.
|
||||
|
||||
## Примітки
|
||||
|
||||
Офіційний медіа-API Google Meet орієнтований на отримання, тому для мовлення в дзвінок Meet усе ще потрібен шлях учасника. Цей Plugin зберігає цю межу видимою: Chrome обробляє участь через браузер і локальну маршрутизацію аудіо; Twilio обробляє участь через телефонне підключення.
|
||||
Офіційний media API Google Meet орієнтований на отримання, тому для мовлення у виклику Meet
|
||||
усе одно потрібен шлях учасника. Цей плагін робить цю межу видимою:
|
||||
Chrome відповідає за участь через браузер і локальну маршрутизацію аудіо; Twilio відповідає за
|
||||
участь через телефонний дозвін.
|
||||
|
||||
Режиму реального часу Chrome потрібне одне з такого:
|
||||
Режиму Chrome realtime потрібне одне з такого:
|
||||
|
||||
- `chrome.audioInputCommand` плюс `chrome.audioOutputCommand`: OpenClaw керує мостом моделі реального часу та передає аудіо 8 кГц G.711 mu-law між цими командами та вибраним постачальником голосу реального часу.
|
||||
- `chrome.audioBridgeCommand`: зовнішня команда мосту керує всім локальним аудіошляхом і має завершитися після запуску або перевірки свого демона.
|
||||
- `chrome.audioInputCommand` плюс `chrome.audioOutputCommand`: OpenClaw керує
|
||||
мостом моделі реального часу та передає аудіо G.711 mu-law 8 кГц між цими
|
||||
командами й вибраним постачальником голосу реального часу.
|
||||
- `chrome.audioBridgeCommand`: зовнішня команда мосту керує всім локальним
|
||||
аудіошляхом і має завершитися після запуску або перевірки свого демона.
|
||||
|
||||
Для чистого двобічного аудіо маршрутизуйте вихід Meet і мікрофон Meet через окремі віртуальні пристрої або граф віртуальних пристроїв типу Loopback. Один спільний пристрій BlackHole може повертати голоси інших учасників луною назад у дзвінок.
|
||||
Для чистого двобічного аудіо маршрутизуйте вихід Meet і мікрофон Meet через окремі
|
||||
віртуальні пристрої або граф віртуальних пристроїв у стилі Loopback. Один спільний
|
||||
пристрій BlackHole може повертати в дзвінок відлуння інших учасників.
|
||||
|
||||
`googlemeet speak` запускає активний аудіоміст реального часу для сеансу Chrome.
|
||||
`googlemeet leave` зупиняє цей міст. Для сеансів Twilio, делегованих через Plugin Voice Call, `leave` також завершує базовий голосовий дзвінок.
|
||||
`googlemeet speak` запускає активний аудіоміст реального часу для сеансу
|
||||
Chrome. `googlemeet leave` зупиняє цей міст. Для сеансів Twilio, делегованих
|
||||
через плагін Voice Call, `leave` також завершує базовий голосовий виклик.
|
||||
|
||||
## Пов’язане
|
||||
|
||||
- [Plugin Voice Call](/uk/plugins/voice-call)
|
||||
- [Плагін Voice Call](/uk/plugins/voice-call)
|
||||
- [Режим розмови](/uk/nodes/talk)
|
||||
- [Створення Plugin](/uk/plugins/building-plugins)
|
||||
- [Створення плагінів](/uk/plugins/building-plugins)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user