WebRTC和选择性转发单元
xAssist可以被配置为使用WebRTC作为通信协议,以实现点对点连接的实时通信。WebRTC是一个相当复杂的领域,使用实时传输协议来传输音频和视频。请确保你的网络基础设施不阻止WebRTC通信,并允许出站流量与返回流量的响应。
为了获得最佳的用户体验,我们建议使用最新的Google Chrome或Microsoft Edge(基于Chromium)浏览器。请确保网络浏览器能够访问计算机的网络摄像头、麦克风和扬声器,否则,xAssist将无法正常工作。
集团政策
在微软活动目录环境中,组策略可以拒绝对计算机的网络摄像头和麦克风的访问。请确保你可以访问你的网络摄像头。
- Google.Policy.Chrome::VideoCaptureAllowed
- Google.Policy.Chrome::AudioCaptureAllowed
所需带宽
xAssist不断适应可用的带宽。如果可用带宽很低,流媒体质量会自动降低。这主要适用于视频质量,但即使视频传输被中断,音频仍应能传输。
总的来说,xAssist取决于各种不同的因素,以确定使用xAssist需要多少带宽。一般来说,以下的带宽要求适用:
延迟
使用xAssist时,延迟也是一个重要因素。
一般信息
UDP比TCP更受欢迎
UDP比TCP更受欢迎,因为它减少了两个协议之间的差异所造成的数据包传输延迟。
代理人和包检查
没有浏览器支持通过代理的UDP,这意味着如果你想使用UDP,数据必须绕过代理。数据包检查是以更高的延迟为代价的。通常情况下,使用数据包检查时的延迟非常高,以至于无法建立视频通话。
WebRTC术语
STUN服务器
STUN服务器做了一个非常简单的工作,它告诉客户机在网络地址转换(NAT)服务后面它的真实公共IP地址和端口是什么。通过使用STUN服务器,我们可以推断出客户端是否接受互联网上其他客户端的点对点连接。
TURN服务器
TURN服务器为无法建立点对点连接的客户端提供后备解决方案,在两个对等体之间充当媒体服务器代理。
讯号
信令是用来启动客户之间的视频和音频流的。在xAssist中,正常呼叫的信令是通过Frontline 指挥中心完成的,会议呼叫的信令是通过选择性转发单元完成的。
互动连接建立(ICE)
WebRTC使用ICE来尝试找到客户端(网络和智能眼镜)在通话中相互通信的最佳方式:点对点,客户端之间有网络地址转换(NAT)的点对点(使用STUN服务器),或使用TURN服务器中继。
对于正常的通话(不是会议),客户端(智能眼镜和通过Web UI的专家)的第一个选项是直接点对点连接。这个选项被称为HOST 。
下一个选择是在客户端之间建立一个带有网络地址转换(NAT)的点对点连接。这个选项被称为REFLEXIVE。这意味着STUN服务器将尝试为客户机找到一个公共IP和端口,以允许他们在不同的本地网络之间进行点对点通信。
最后一个选项是使用TURN服务器,将视频和音频流转播。这个选项被称为RELAYED。
如果有HOST 或 REFLEXIVE选项,那么视频和音频流是点对点的(有端对端加密),应该与STUN/TURN服务器进行了非常有限的通信,以收集三个选项的各种候选人。
如果前两个选项都不可用(由于对称NAT、防火墙或其他问题),客户端将通过TURN服务器使用RELAYED通信(仍然有端到端加密)。
选择性转发单元(SFU)
在电话会议的情况下,每个客户与SFU而不是其他客户进行通信。然后,SFU将数据流发送给呼叫中的所有其他客户。与普通的1对1通话一样,SFU的通信选项将是HOST 、REFLEXIVE或RELAYED,每个客户端和SFU之间的视频和音频流将被端到端加密。这意味着SFU将对传入的数据流进行解密,并向客户发送新的加密数据流。因此,客户端之间的加密不是端到端的,而是逐跳的。
xAssist客户端的防火墙配置
对于提到的规则,如果你的NAT被配置为做独立于终端的映射,最好是地址依赖性过滤或独立于终端的过滤,你的NAT应该允许客户端(智能眼镜和专家通过Web UI)有出站流量,并有返回流量作为回应。
如果下面几节提到的规则不能全部实施(例如由于IT政策),WebRTC将自动选择交互式连接建立(ICE)一节中描述的最佳方案。
| Host/IP | Type | Protocol | Port | TCP/UDP |
|-----------------------------------|--------------------|-------------|------|---------|
| frontlineworker.com/[your domain] | Application Server | HTTPS/WSS | 443 | TCP |
Host-对host 通讯
必须允许入站和出站的UDP流量。端口范围可以通过网络浏览器的组策略进行配置。
| Purpose | Destination IP | Protocol | Port(s) |
|------------------------|--------------------|----------|---------------|
| WebRTC Peer Connection | remote peer's IP | UDP | 1025 to 65535 |
Frontline STUN和TURN服务器
TeamViewer 提供一个分布式STUN/TURN服务器的全球网络,包括一个负载平衡机制,自动将xAssist用户分配到其所在地区的最佳STUN/TURN服务器。
|Region| IP Range |Purpose| Destination IP |Protocol| Port(s) |
|------|------------------|-------|-----------------------------------------|--------|------------------|
|GLOBAL| * | TURN | turn.svc.frontlineworker.com | TCP |8080 |
|GLOBAL| * | STUN | turn.svc.frontlineworker.com | UDP |8080, 40000-45000 |
|EU | 20.54.230.192/29 | TURN | eu-{0..10}.turn.svc.frontlineworker.com | TCP |8080 |
|EU | 20.54.230.192/29 | STUN | eu-{0..10}.turn.svc.frontlineworker.com | UDP |8080, 40000-45000 |
|US | 20.84.226.80/29 | TURN | us-{0..10}.turn.svc.frontlineworker.com | TCP |8080 |
|US | 20.84.226.80/29 | STUN | us-{0..10}.turn.svc.frontlineworker.com | UDP |8080, 40000-45000 |
|SA | 20.201.68.120/29 | TURN | sa-{0..10}.turn.svc.frontlineworker.com | TCP |8080 |
|SA | 20.201.68.120/29 | STUN | sa-{0..10}.turn.svc.frontlineworker.com | UDP |8080, 40000-45000 |
|JP | 20.210.56.40/29 | TURN | jp-{0..10}.turn.svc.frontlineworker.com | TCP |8080 |
|JP | 20.210.56.40/29 | STUN | jp-{0..10}.turn.svc.frontlineworker.com | UDP |8080, 40000-45000 |
|IN | 52.140.81.48/29 | TURN | in-{0..10}.turn.svc.frontlineworker.com | TCP |8080 |
|IN | 52.140.81.48/29 | STUN | in-{0..10}.turn.svc.frontlineworker.com | UDP |8080, 40000-45000 |
*取决于地区/DNS解决以下之一的问题
注意:要获得TURN服务器凭证,还需要HTTPS/TCP 443访问webrtc.svc.frontlineworker.com。
Frontline 会议服务器 (SFU)
TeamViewer 提供一个分布式SFU的全球网络,包括一个负载平衡机制,根据xAssist用户的区域自动分配最佳SFU。
要启用电话会议,webrtc.svc.frontlineworker.com必须可以通过HTTPS / TCP 443进行信号传输。
|Region| IP Range | Host | Type |Protocol | Port(s) |TCP/UDP|
|------|----------------|--------------------------------------|---------------------------------|---------|-----------|-------|
|GLOBAL|* |webrtc.svc.frontlineworker.com |Multicall Gateway Signaling |HTTPS/WSS|443 | TCP |
|EU |20.54.230.192/29|eu-webrtc.svc.frontlineworker.com |Multicall Gateway Signaling |HTTPS/WSS|443 | TCP |
|EU |20.54.230.192/29|eu-{0..10}.sfu.svc.frontlineworker.com|Multicall Gateway Video/Audio/RTP| RTP |40000-45000| UDP |
|US |20.84.226.80/29 |us-webrtc.svc.frontlineworker.com |Multicall Gateway Signaling |HTTPS/WSS|443 | TCP |
|US |20.84.226.80/29 |us-{0..10}.sfu.svc.frontlineworker.com|Multicall Gateway Video/Audio/RTP| RTP |40000-45000| UDP |
|SA |20.201.68.120/29|sa-webrtc.svc.frontlineworker.com |Multicall Gateway Signaling |HTTPS/WSS|443 | TCP |
|SA |20.201.68.120/29|sa-{0..10}.sfu.svc.frontlineworker.com|Multicall Gateway Video/Audio/RTP| RTP |40000-45000| UDP |
|JP |20.210.56.40/29 |jp-webrtc.svc.frontlineworker.com |Multicall Gateway Signaling |HTTPS/WSS|443 | TCP |
|JP |20.210.56.40/29 |jp-{0..10}.sfu.svc.frontlineworker.com|Multicall Gateway Video/Audio/RTP| RTP |40000-45000| UDP |
|IN |52.140.81.48/29 |in-webrtc.svc.frontlineworker.com |Multicall Gateway Signaling |HTTPS/WSS|443 | TCP |
|IN |52.140.81.48/29 |in-{0..10}.sfu.svc.frontlineworker.com|Multicall Gateway Video/Audio/RTP| RTP |40000-45000| UDP |
*取决于地区/DNS解决以下之一的问题
注意:还需要HTTPS/TCP 443访问webrtc.svc.frontlineworker.com,以便对SFU进行认证。
x协助安全信息
xAssist点对点(1对1通话)。
底层的WebRTC框架在所有连接上强制使用DTLS和SRTP,这意味着视频和音频是端到端加密的。
即使是Turn,数据包也只能由收件人解密,而不能由Turn服务器解密。
x协助会议
从对等方到SFU使用DTLS/SRTP进行强制的端对端加密。SFU解密并重新加密媒体,将其发送给收件人。对方的媒体不会被储存在持久性存储器中。
使用的密码套件是TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256。
外部来源
- https://webrtc-security.github.io/
- https://github.com/versatica/mediasoup