WebRTCと選択型転送ユニット
xAssistは、通信プロトコルとしてWebRTCを使用するように設定することで、ピアツーピア接続でのリアルタイム通信を可能にします。WebRTCはかなり複雑なドメインで、音声とビデオの伝送にリアルタイムトランスポートプロトコルを使用します。ネットワークインフラが WebRTC 通信をブロックせず、応答トラフィックを含むアウトバウンドトラフィックを許可していることを確認してください。
最高のユーザーエクスペリエンスのために、最新のGoogle ChromeまたはMicrosoft Edge(Chromiumベース)のブラウザを使用することをお勧めします。ウェブブラウザがコンピュータのウェブカメラ、マイク、スピーカーにアクセスできることを確認してください。そうでない場合、xAssistは正しく動作しません。
グループポリシー
Microsoft Active Directory環境では、グループポリシーによってコンピュータのWebカメラやマイクへのアクセスを拒否することができます。Webカメラにアクセスできることを確認してください。
- Google.Policies.Chrome::VideoCaptureAllowed(ビデオキャプチャーアロウド
- Google.Policies.Chrome::AudioCaptureAllowed
必要な帯域幅
xAssistは、利用可能な帯域幅に継続的に適応します。利用可能な帯域幅が小さい場合、ストリーミングの品質は自動的に低下します。これは主にビデオ品質に適用されますが、ビデオフィードが中断された場合でも、オーディオはまだ送信できるはずです。
全体的に、xAssistは、xAssistを使用するために必要な帯域幅を決定するために、様々な異なる要因に依存します。一般的に、以下の帯域幅の要件が適用されます:
レイテンシー
xAssistを使用する際には、レイテンシーも重要な要素になります。
一般情報
TCPよりUDPが優先される
UDPがTCPより好まれるのは、2つのプロトコルの違いによるパケット転送の待ち時間を短縮するためです。
プロキシとパッケージの検査
つまり、UDPを使いたい場合、データはプロキシをバイパスしなければならない。パケット検査は、より高いレイテンシーという代償を伴います。パケット・インスペクションを使用すると、ビデオ通話が確立できないほど遅延が大きくなることがよくあります。
WebRTC関連用語一覧
STUNサーバー
STUNサーバーは、ネットワークアドレス変換(NAT)サービスの背後にある実際のパブリックIPアドレスとポートが何であるかをクライアントに伝えるという、非常に単純な仕事をします。STUNサーバーを使用することで、クライアントがインターネット上の他のクライアントからのピアツーピア接続を受け入れているかどうかを推測することができます。
TURNサーバー
TURNサーバーは、ピアツーピア接続を確立できないクライアントにフォールバックソリューションを提供し、2つのピア間のメディアサーバープロキシとして動作します。
シグナリング
シグナリングは、クライアント間のビデオおよびオーディオストリームを開始するために使用されます。xAssistでは、シグナリングは、通常の通話ではFrontline コマンドセンター経由で、会議通話では選択転送ユニット経由で行われます。
インタラクティブコネクティビティエスタブリッシュメント(ICE)
WebRTCはICEを使用して、クライアント(ウェブとスマートグラス)が通話で互いに通信するための最適な方法を探そうとします:ピアツーピア、クライアント間のネットワークアドレス変換(NAT)を伴うピアツーピア(STUNサーバーを使用)、またはTURNサーバーを使用した中継です。
通常の通話(会議ではない)の場合、クライアント(Smart GlassとWeb UI経由のExpert)の最初のオプションは、ピアツーピアの直接接続です。このオプションは、HOST と呼ばれています。
次のオプションは、クライアント間でネットワークアドレス変換(NAT)を使用してピアツーピア接続を確立することです。このオプションはREFLEXIVEと呼ばれます。つまり、STUNサーバーは、異なるローカルネットワーク間のピアツーピア通信を可能にするクライアントのパブリックIPとポートを見つけようとします。
最後のオプションは、ビデオとオーディオのストリームを中継するTURNサーバーを使用することです。このオプションはRELAYEDと呼ばれています。
HOST 、REFLEXIVEオプションが利用できる場合、ビデオとオーディオのストリームはピアツーピアであり(エンドツーエンドの暗号化が行われている)、3つのオプションの様々な候補を集めるためにSTUN/TURNサーバとの通信は非常に限られていたはずです。
最初の2つのオプションのどちらも利用できない場合(対称NAT、ファイアウォール、その他の問題による)、クライアントはTURNサーバーを介したRELAYED通信を使用します(やはりエンドツーエンドの暗号化が施されています)。
選択的転送ユニット(SFU)
会議通話の場合、各クライアントは、他のクライアントの代わりにSFUと通信します。その後、SFUは、通話中の他のすべてのクライアントにストリームを送信します。通常の1対1通話と同様に、SFUへの通信オプションは、HOST 、REFLEXIVE、またはRELAYEDとなり、各クライアントとSFU間のビデオおよびオーディオストリームはエンドツーエンドで暗号化されます。つまり、SFUは受信ストリームを復号化し、新しい暗号化ストリームをクライアントに送信する。したがって、クライアント間の暗号化はエンドツーエンドではなく、ホップバイホップである。
xAssistクライアントのファイアウォール設定
もしNATがエンドポイントに依存しないマッピングを行い、アドレス依存フィルタリングまたはエンドポイントに依存しないフィルタリングを行うように設定されているのであれば、NATはクライアント(スマートグラスとウェブUI経由のエキスパート)の発信トラフィックと、それに応答する返送トラフィックを許可する必要があります。
以下のセクションで言及されているすべてのルールが実装できない場合(ITポリシーのためなど)、WebRTCは、インタラクティブ接続確立(ICE)のセクションで説明されているように、可能な限り最良のオプションを自動的に選択します。
| Host/IP | Type | Protocol | Port | TCP/UDP |
|-----------------------------------|--------------------|-------------|------|---------|
| frontlineworker.com/[your domain] | Application Server | HTTPS/WSS | 443 | TCP |
Host-to -host 通信
インバウンドおよびアウトバウンドのUDPトラフィックが許可されている必要があります。ポート範囲は、Webブラウザのグループポリシーで設定することができます。
| Purpose | Destination IP | Protocol | Port(s) |
|------------------------|--------------------|----------|---------------|
| WebRTC Peer Connection | remote peer's IP | UDP | 1025 to 65535 |
Frontline STUNサーバー、TURNサーバー
TeamViewer は、xAssistユーザーを地域ごとに最適なSTUN/TURNサーバーに自動的に割り当てるロードバランシング機構を含め、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 |
*地域によって異なります。
注:TURNサーバーの認証情報を取得するためには、webrtc.svc.frontlineworker.comへのHTTPS/TCP 443アクセスも必要となります。
Frontline 会議用サーバー(SFU)
TeamViewer は、xAssistユーザーの地域に応じて最適なSFUを自動的に割り当てるロードバランシング機構を含む、分散型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 |
*地域によって異なります。
注:SFUに対して認証を行うには、webrtc.svc.frontlineworker.comへのHTTPS/TCP 443アクセスも必要である。
xAssist セキュリティ情報
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