

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 联系人控制面板（CCP）如何利用 WebRTC
<a name="ccp-leverages-webrtc"></a>

本高级主题适用于可能对联系人控制面板（CCP）如何传递语音通话感兴趣的 IT 管理员。其中还提供了一些网络细节。

CCP 使用 WebRTC 作为底层技术，以实现联络中心座席和客户之间的实时通信。它使座席能够直接从其 Web 浏览器管理入站和出站呼叫以及视频会议。

**Topics**
+ [WebRTC 是什么？](#whatis-webrtc)
+ [术语](#ccp-leverages-webrtc-terminology)
+ [WebRTC 的工作原理](#how-webrtc-works)
+ [STUN、TURN 和 ICE 如何协同工作](#how-stun-turn-ice-works)
+ [最佳实践](#webrtc-ccp-bp)

## WebRTC 是什么？
<a name="whatis-webrtc"></a>

WebRTC 是一项开源技术规范，用于通过简单的方式实现浏览器和移动应用程序之间的实时通信 (RTC)。 APIs

WebRTC 使用对等互连技术在连接的对等点之间进行实时数据交换。它提供 human-to-human交互所需的低延迟媒体流。

WebRTC规范包括一组IETF协议，包括建立[交互式连接](https://www.ietf.org/rfc/rfc5245.txt)[、使用NAT周围的中继进行遍历（TURN）[和用于建立连接的NAT会话遍历实用程序](https://www.ietf.org/rfc/rfc5389.txt)（](https://datatracker.ietf.org/doc/html/rfc5766)STUN）。 peer-to-peer除此之外，还包括用于可靠和安全的实时媒体和数据流的协议规范。

因为 Amazon Connect 使用 WebRTC，所以您无需为实时通信构建和维护复杂的基础设施。它使您能够通过Amazon Connect快速部署全渠道客户参与解决方案，同时受益于WebRTC提供的低延迟、高质量 peer-to-peer的媒体流和安全连接。

## 术语
<a name="ccp-leverages-webrtc-terminology"></a>

NAT 的会话遍历实用工具 (STUN)  
一种协议，用于发现您的公有地址并确定路由器中阻止与对等方直接连接的任何限制。  
管理 STUN 端点的组件。这些端点使应用程序能够在其位于 NAT 或防火墙后面时发现其公有 IP 地址。

使用中继绕过 NAT 的遍历 (TURN)  
通过打开与 TURN 服务器的连接并通过该服务器中继所有信息来绕过对称 NAT 限制的服务器。  
管理 TURN 端点的组件。当应用程序无法流式传输媒体时，端点通过使用云来启用媒体中继 peer-to-peer。

会话描述协议（SDP）  
一种描述连接的多媒体内容的标准，例如分辨率、格式、编解码器、加密等，以便一旦传输数据，两个对等方就可以相互理解。

SDP 提议  
由代理发送的 SDP 消息，代理生成会话描述以创建或修改会话。它描述所需媒体通信的各个方面。

SDP 应答  
应答者响应从提议人收到的提议而发送的 SDP 消息。应答指出了已接受的各个方面。例如，提议中的所有音频和视频流是否都被接受。

交互式连接建立 (ICE)  
允许您的 Web 浏览器与对等方连接的框架。

ICE 候选项  
发送对等方能够用于通信的方法。

对等  
任何配置为与 WebRTC 进行实时、双向通信的设备或应用程序（例如移动或 Web 应用程序）。

正在发送信号  
信令组件管理WebRTC信令端点，这些端点允许应用程序安全地相互连接以进行实时媒体流。 peer-to-peer

## WebRTC 的工作原理
<a name="how-webrtc-works"></a>

WebRTC 使用信令协议， JavaScript 例如浏览器的会话建立协议 (JSEP) 或基于 /XMPP 构建的自定义协议，来 WebSockets启动和管理通信会话。它还使用编解码器对音频和视频数据进行编码和解码，使用安全实时传输协议 (SRTP) 来加密媒体流以确保隐私，并使用ICE、STUN和TURN协议在NAT网关和防火墙之间导航和建立 peer-to-peer连接。

## STUN、TURN 和 ICE 如何协同工作
<a name="how-stun-turn-ice-works"></a>

让我们考虑这样一个场景：座席 CCP（联系人控制面板）是对等体 A，Amazon Connect 是对等 B，使用 WebRTC 进行双向媒体流（例如，语音通话）。

以下是座席 CCP 想要与 Amazon Connect 建立连接时会发生的情况：

1. 座席 CCP 生成一个 SDP 选件，其中包含有关所需会话的信息，例如要使用的编解码器、是音频还是视频会话等。它还包括一个 ICE 候选列表，Amazon Connect 可以尝试使用这些 IP/port 配对来连接代理 CCP。

1. 为了收集 ICE 候选项，CCP 向 STUN 服务器发出了一系列请求。STUN 服务器返回发起请求的公有 IP 地址和端口对。座席 CCP 还为 Amazon Connect 的 TURN 服务创建了一个 TURN 通道，以获取媒体中继地址。此中继地址是一 IP/port 对，可以在代理 CCP 和 Amazon Connect 中的其他媒体服务之间转发数据包。代理CCP将每 IP/port 对添加到ICE候选列表中。接下来，代理 CCP 通过信令通道将 SDP 报价发送给 Amazon Connect。 WebSocket

1. Amazon Connect 按照相同的过程生成 SDP 答案：它收集 ICE 候选者，然后通过将他们与 SDP 答案一起发送给代理 CCP。 WebSocket交换后 SDPs，代理 CCP 和 Amazon Connect 会执行一系列连接检查。双方都从 IP/port 对方的 SDP 中选出一对候选人并向其发出 STUN 请求。如果收到响应，则该 IP/port 对将被标记为有效的 ICE 候选对。

1.  完成所有 IP/port 配对的连接检查后，代理 CCP 和 Amazon Connect 协商并决定其中一个用于媒体流的有效配对。

下图演示 CCP 和 Amazon Connect 之间使用 WebRTC 进行的通信。

![\[CCP 和 Amazon Connect 之间使用 WebRTC 的通信流。\]](http://docs.aws.amazon.com/zh_cn/connect/latest/adminguide/images/webrtc-diagram.png)


## 最佳实践
<a name="webrtc-ccp-bp"></a>
+ 为了获得最可靠和最佳的音频体验，强烈建议确保代理工作站和代理工作站之间的媒体流量直接交换， AWS 并且不会通过网络加速器跳跃 VPNs 或其他网络加速器跳跃。
+ 为确保您的企业能够成功促进 WebRTC 连接并缓解错误行为，请确保将端口 3478（发送/接收）上的传入 UDP 流量列入允许列表。有关更多信息，请参阅 [选项 1（推荐）：将 Amazon EC2 和 CloudFront IP 范围要求替换为域名许可名单](ccp-networking.md#option1)。在表中，查阅 `TurnNlb-*.elb.region.amazonaws.com` 那行。
+ 如果您使用的是 [选项 2（不推荐）：允许 IP 地址范围](ccp-networking.md#option2)，建议您使用以下方法来缓解错误行为：
  + 监控您的企业为 Amazon Connect 所设置的 IP 范围允许列表。
  + 确保监控 IP 范围内的变化。
  + 确保列表中的任何新增内容都附有 3478 (UDP) 端口和协议允许流量。 SEND/RECEIVE 
+ 迁移到生产环境之前，请执行以下操作
  + 使用 [Amazon Connect 端点连接测试工具](check-connectivity-tool.md)测试 WebRTC 连接。此工具可帮助您确定能否从座席工作站访问 Amazon Connect WebRTC 媒体端点。
  + 测试和跟踪[网络环境和本地网络](network-ts.md#investigate-ndc)架构（例如防火墙更新、边缘路由器和 VPNs）的变化。
+ 如果您使用的是无状态防火墙，请确保已按照[无状态防火墙](ccp-networking.md#stateless-firewalls)中所述将临时端口范围添加到允许列表中。