使用 Meet eCDN 本地 API

本页介绍了如何使用 Google Meet 企业内容分发网络 (eCDN) On-Premises API 进行 Google Meet 直播。

此处介绍的 API 解决方案可让客户使用 Meet eCDN 的完整功能集,而无需向 Google 透露专用 IP 信息。 您可以在自己的网络中定义一个新的本地 Web 服务,该服务会传递 ID 而不是专用 IP 地址信息。

Meet eCDN 概览

eCDN 内置于 Meet 中,在 Google Workspace 管理员进行相关设置后,会在直播期间自动启动。启用 Meet eCDN 后,本地网络中的直播观看者可以通过对等互连 (P2P) 共享与网络中的其他对等方共享直播媒体。大多数设备将从附近的对等设备接收直播媒体,而无需从 Google 的服务器中提取。这样可以降低观看者使用的总带宽。如需详细了解如何设置和使用 Meet eCDN,请参阅举办大型直播

eCDN 要求 Meet 直播的观看者按对等组进行排序。对等互连组是指一组允许彼此共享媒体的节点。对等互连组中的设备要么允许对等互连,要么禁止对等互连。允许对等互连的设备只能连接到同一对等互连组中的其他设备。如需详细了解对等互连群组,请参阅举办大型直播之前的准备工作

何时使用 API

eCDN 可以使用以下几种不同的对等互连政策来形成对等互连群组:randomsubnetcustom rules。后者与 Google 的 eCDN 跟踪器服务器共享一个专用网络范围表,以将每个对等节点的专用 IP 地址映射到对等组。custom rules 政策是首选解决方案,适用于大多数生产环境。

不过,custom rules 政策要求您与 Google 分享大部分私有网络结构。此外,个别用户在使用 eCDN 时,会向 Google 暴露其本地检测到的专用 IP 地址。对于某些组织,其安全准则可能不允许共享专用 IP 信息。

使用 Meet eCDN 本地 API 进行开发

Meet eCDN 本地 API 提供了一个 Web 服务器规范,您可以在组织的网络中本地实现和托管该规范。您可以构建与该 API 兼容的自定义 Web 服务,以执行所有依赖于私有 IP 信息的任务,这样一来,相应信息就不会与 Google 共享。

该 API 涵盖了匹配专用 IP 地址的两个关键步骤,这两个步骤通常由 eCDN 跟踪器服务器处理:将专用 IP 地址映射到对等组,以及在 WebRTC 信令期间进行会话描述协议 (SDP) 提议-应答数据交换

Web 服务完成后,您必须配置管理控制台以使用 On-premises service 对等互连政策,并添加自定义 Web 服务的网址。

要求

如果您需要为组织启用以下任何要求,请咨询您的 Google Workspace 管理员:

  • 任何使用 HTTPS 的 Web 服务器都可以实现此 API。

  • 使用 HTTPS 可防止出现混合内容故障。

  • 接受并返回 JSON 数据。使用浏览器支持的任何内容编码。

  • /vn 路由下提供端点,其中 n 是所选的 API 版本。例如 /v1/get-peering-group

  • Meet 直播观看者可以通过 Google 管理控制台了解您的 Web 服务的网址。网址可以全局设置,也可以按组织部门或群组设置。确保观看者可以连接到其分配的服务实例。如需了解详情,请参阅配置管理控制台

  • 您的服务应在两秒内返回响应。否则,eCDN 客户端会关闭,观看者会继续以常规的非 eCDN 用户身份观看直播活动,从而无法节省任何带宽。

  • 您的服务必须设置以下跨源资源共享 (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() 方法手动将其解析为对等互连组。响应中会返回对等互连组 ID。 与 Google 通信时,系统会传递生成的对等互连组 ID,而不是专用 IP 地址。

专用 IP 地址如何映射到对等互连组。
图 1. 将专用 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 状态 错误 对等互连组 ID 客户反应
200 null 非空字符串 客户端应归入对等互连组,然后继续连接到 eCDN 跟踪器服务器。
200 null NOT_FOUND 客户端结束 eCDN 会话。
200 null BLOCKED 客户端结束 eCDN 会话。
200 其他非空字符串 null 客户端结束 eCDN 会话。
302(已找到) 客户端会按照重定向指令重定向到响应正文的 Location 标头中指定的新网址。
任何其他状态代码 任意字符串 任意字符串 客户端结束 eCDN 会话。

SDP 提议-应答数据交换

若要发起 WebRTC 连接,设备必须交换其 SDP 提议和回答,包括包含专用 IP 信息的交互式连接建立 (ICE) 候选对象。它们会在 WebRTC 信令流程中执行此操作。

客户端必须通过 Meet eCDN On-Premises API 使用 encrypt-sdp() 方法加密其网络中的 ICE 候选。该方法使用的密钥绝不会透露给 Google。然后,使用 eCDN 跟踪器服务器将加密的 SDP offer 发送给对等方。然后,客户端对等方使用 decrypt-sdp() 方法解密其网络中收到的信息。然后,Google 会在已连接的对等方之间转发 offer 和 answer。

使用 Meet eCDN On-Premises API 建立连接后,eCDN 会正常运行。对等方通过常规对等网络路由媒体,媒体流量不会通过或使用 API。

SDP offer 和 answer 数据的加密和解密方式。
图 2. 加密和解密 SDP 提议和应答数据。

以下代码示例展示了如何调用 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 状态 错误 对等互连组 ID 客户反应
200 null 非空字符串 客户端需要使用正确编码或解码的 SDP 数据。
200 任何非空字符串 null 客户端结束 eCDN 会话。
302(已找到) 客户端会按照重定向指令重定向到响应正文的 Location 标头中指定的新网址。
任何其他状态代码 任意值 任意值 客户端结束 eCDN 会话。

配置管理控制台

如需使用 Meet eCDN On-Premises API,您必须在 管理控制台中配置 eCDN,以包含自定义 Web 服务的网址。

如需设置 eCDN,请使用 On-premises service 创建对等互连政策,以手动将 IP 信息与对等组匹配。如果您未使用默认的 443 端口,也可以添加端口号。网址应采用以下格式:WEB_SERVICE.example.com:8080,其中 WEB_SERVICE 是您的 Web 服务名称。

如需详细了解如何设置对等互连政策,请参阅配置网络分组