На этой странице объясняется, как использовать локальный API Google Meet Enterprise Content Delivery Network (eCDN) для потоковой передачи Google Meet в режиме реального времени.
Описанное здесь API-решение позволяет клиентам использовать полный набор функций Meet eCDN, не раскрывая Google информацию о частном IP-адресе. Вы можете создать в своей сети новый локальный веб-сервис, который будет передавать идентификатор вместо информации о частном IP-адресе.
Знакомьтесь с обзором eCDN
eCDN встроена в Meet и автоматически запускается во время прямых трансляций после настройки администратором Google Workspace. При включении eCDN зрители прямой трансляции Meet в локальной сети могут обмениваться медиаконтентом с другими участниками сети посредством однорангового обмена (P2P). Большинство устройств получают потоковое видео от ближайших участников и им не нужно загружать его с серверов Google. Это снижает общую пропускную способность, используемую зрителями. Подробнее о настройке и использовании eCDN Meet см. в разделе « Размещение больших прямых трансляций» .
eCDN требует, чтобы зрители прямой трансляции Meet были объединены в пиринговые группы. Пиринговая группа — это совокупность узлов, которым разрешено обмениваться медиаконтентом друг с другом. Устройствам в пиринговой группе либо разрешено пиринговое взаимодействие, либо оно запрещено. Устройства, которым разрешено пиринговое взаимодействие, могут подключаться только к другим устройствам в той же пиринговой группе. Подробнее о пиринговых группах см. в разделе «Прежде чем начать проводить масштабные прямые трансляции» .
Когда использовать API
eCDN может формировать пиринговые группы, используя несколько различных политик пиринговых сетей: random
, subnet
и custom rules
. В последнем случае таблица диапазонов частных сетей используется совместно с сервером отслеживания eCDN Google для сопоставления частных IP-адресов каждого узла пиринговой группы. Политика custom rules
является предпочтительным решением и подходит для большинства производственных сред.
Однако политика custom rules
требует, чтобы вы предоставили Google доступ к значительной части структуры вашей частной сети. Кроме того, отдельные пользователи предоставляют Google свои локально обнаруженные частные IP-адреса при использовании eCDN. В некоторых организациях правила безопасности могут не разрешать обмен информацией о частных IP-адресах.
Разработка с использованием локального API Meet eCDN
Локальный API Meet eCDN предоставляет спецификацию веб-сервера, которую вы можете реализовать и разместить локально в сети вашей организации. Вы можете создать собственный веб-сервис, совместимый с этим API, для выполнения всех задач, зависящих от информации о частном IP-адресе, чтобы эта информация не передавалась в Google.
API охватывает два важных этапа сопоставления частных IP-адресов, которые обычно обрабатываются сервером отслеживания eCDN: сопоставление частных IP-адресов с пиринговой группой и обмен данными «предложение-ответ» по протоколу описания сеанса (SDP) во время сигнализации WebRTC.
После завершения настройки веб-службы необходимо настроить консоль администратора для использования политики пиринга On-premises service
и включить URL-адрес вашей пользовательской веб-службы.
Требования
Если вам необходимо включить какое-либо из этих требований для своей организации, обратитесь к администратору Google Workspace:
Любой веб-сервер, использующий HTTPS, может реализовать этот API.
Используйте HTTPS для предотвращения сбоев смешанного контента.
Принимайте и возвращайте данные JSON. Используйте любую кодировку контента, поддерживаемую вашим браузером.
Обслуживайте конечные точки по маршруту
/v n
, гдеn
— выбранная версия API. Например,/v1/get-peering-group
.Зрители трансляций Meet Live Streaming могут узнать URL-адрес вашего веб-сервиса через консоль администратора Google. URL-адрес можно задать глобально, для подразделения организации или для группы. Убедитесь, что зрители могут подключаться к назначенному им экземпляру сервиса. Подробнее см. в разделе «Настройка консоли администратора» .
Ваш сервис должен вернуть ответ в течение двух секунд. В противном случае клиент eCDN отключается, и зритель продолжает смотреть прямую трансляцию как обычный пользователь, не использующий eCDN, что лишает его возможности экономить пропускную способность.
Ваша служба должна установить следующие заголовки Cross-Origin Resource Sharing (CORS):
-
Access-Control-Allow-Origin: meet.google.com
-
Access-Control-Allow-Headers: GET, POST, OPTIONS
-
Access-Control-Allow-Credentials: true
-
Сопоставьте частные IP-адреса с пиринговой группой
Клиент eCDN совершает вызов каждый раз при попытке повторного подключения к серверу трекера eCDN. После того, как устройство обнаружит частный IP-адрес, этот адрес должен быть сопоставлен с соответствующей пиринговой группой. Вам необходимо отправить частный IP-адрес на сервер в вашей сети и вручную разрешить его в пиринговой группе с помощью метода get-peering-group()
. В ответе возвращается идентификатор пиринговой группы. При взаимодействии с Google вместо частных IP-адресов передаётся полученный идентификатор пиринговой группы.

В следующем примере кода показано, как вызвать метод get-peering-group()
вместе с потенциальным ответом об ошибке и ожидаемым телом ответа:
POST /v1/get-peering-group
Content-Type: application/json
Request body:
{
"availableIPs": []{
"format": "ipv4"|"ipv6",
"address": "DETECTED_ADDRESS"
}
}
Error response:
{
"result": null,
"error": "ERROR_MESSAGE",
}
Response body:
{
"result": "PEERING_GROUP_ID",
"error": null,
}
В следующей таблице показаны ожидаемые форматы ответов:
HTTP-статус | Ошибка | Идентификатор пиринговой группы | Реакция клиента |
---|---|---|---|
200 | нулевой | Непустая строка | Клиент должен быть отсортирован в пиринговую группу и приступить к подключению к серверу трекера eCDN. |
200 | нулевой | NOT_FOUND | Клиент завершает сеанс eCDN. |
200 | нулевой | BLOCKED | Клиент завершает сеанс eCDN. |
200 | Другая непустая строка | нулевой | Клиент завершает сеанс eCDN. |
302 (Найдено) | Клиент следует перенаправлению на новый URL-адрес, указанный в заголовке Location тела ответа. | ||
Любой другой код статуса | Любая строка | Любая строка | Клиент завершает сеанс eCDN. |
Обмен данными SDP-предложения и ответа
Для установления соединения WebRTC устройства должны обменяться предложениями и ответами SDP, включая кандидаты интерактивного установления соединения (ICE), содержащие информацию о частном IP-адресе. Это происходит в рамках процесса сигнализации WebRTC.
Клиенты должны шифровать своих кандидатов ICE внутри своей сети через API Meet eCDN On-Premises с помощью метода encrypt-sdp()
. Этот метод использует ключ, который никогда не раскрывается Google. Зашифрованное предложение SDP затем отправляется одноранговому узлу с помощью сервера трекера eCDN. Затем одноранговый узел клиента расшифровывает полученную информацию внутри своей сети с помощью метода decrypt-sdp()
. После этого Google пересылает предложения и ответы между подключенными одноранговыми узлами.
После установки соединения с использованием API Meet eCDN On-Premises сеть eCDN работает в обычном режиме. Одноранговые устройства направляют медиаданные через обычную пиринговую сеть, и медиатрафик не проходит через API и не использует его.

В следующем примере кода показано, как вызвать метод encrypt-sdp()
вместе с потенциальным ответом об ошибке и ожидаемым телом ответа:
POST /v1/encrypt-sdp
Content-Type: application/json
Request body:
{
"data": "SDP_DATA" // raw SDP data
},
Error response:
{
"result": null,
"error": "ERROR_MESSAGE", // error message
}
Response body:
{
"result": "ENCRYPTED_DATA_STRING", // encrypted data as string
"error": null,
}
В следующем примере кода показано, как вызвать метод decrypt-sdp()
вместе с потенциальным ответом об ошибке и ожидаемым телом ответа:
POST /v1/decrypt-sdp
Content-Type: application/json
Request body:
{
"data": "ENCRYPTED_DATA_STRING", // encrypted data as string (size limit: 1 MB)
},
Error response:
{
"result": null,
"error": "ERROR_MESSAGE", // error message
}
Response body:
{
"result": "SDP_DATA" // raw SDP data
"error": null,
}
В следующей таблице показаны ожидаемые форматы ответов:
HTTP-статус | Ошибка | Идентификатор пиринговой группы | Реакция клиента |
---|---|---|---|
200 | нулевой | Непустая строка | Клиент ожидает использования правильно закодированных или декодированных данных SDP. |
200 | Любая непустая строка | нулевой | Клиент завершает сеанс eCDN. |
302 (Найдено) | Клиент следует перенаправлению на новый URL-адрес, указанный в заголовке Location тела ответа. | ||
Любой другой код статуса | Любое значение | Любое значение | Клиент завершает сеанс eCDN. |
Настройте консоль администратора
Чтобы использовать API Meet eCDN On-Premises, необходимо настроить eCDN в консоли администратора , включив URL-адрес вашей пользовательской веб-службы.
Чтобы настроить eCDN, создайте политику пиринга с помощью On-premises service
, чтобы вручную сопоставлять IP-адреса с группами пиринга. Вы также можете указать номер порта, если не используете порт по умолчанию 443. URL-адрес должен иметь следующий формат: WEB_SERVICE.example.com:8080
, где WEB_SERVICE
— имя вашей веб-службы.
Дополнительные сведения о настройке политики пиринга см. в разделе Настройка сетевой группировки .
Похожие темы
Чтобы узнать, как использовать Meet eCDN, следуйте инструкциям в разделе Организация больших прямых трансляций .
Чтобы узнать, как настроить eCDN, ознакомьтесь с разделом Перед началом проведения масштабных прямых трансляций .
Чтобы узнать, как настроить сеть, ознакомьтесь со статьей Подготовка сети для встреч Meet и прямых трансляций .
Чтобы войти в консоль администратора Google в качестве администратора, см. раздел Вход в консоль администратора .