Microsoft Teamsの最適化

注:

この機能はMicrosoft Teamsの今後のリリースによって変わる可能性があります。バージョンとリリース日に関する情報の公開に合わせてこの説明は更新されます。

シトリックスではCitrix Virtual Apps and DesktopsおよびCitrix Workspaceアプリを通じてデスクトップベースのMicrosoft Teamsの最適化を提供します。必要なコンポーネントはデフォルトでCitrix WorkspaceアプリとVirtual Delivery Agent(VDA)に付属しています。

Microsoft Teamsの最適化には、Microsoft Teamsのホストアプリとのインターフェイスとしてコマンドを受信する、VDA側のHDXサービスとAPIが含まれます。これらのコンポーネントによりCitrix Workspaceアプリ側のメディアエンジンにつながる制御用の仮想チャネルが開かれます。エンドポイントではマルチメディアがローカルでデコーディングされ、レンダリングされます。リバースシームレスの仕組みにより、Citrix WorkspaceアプリのローカルウィンドウはホストされているMicrosoft Teamsアプリにスナップインとして渡されます。

認証とシグナリングは他のMicrosoft Teamsサービス(チャットやコラボレーションなど)と同様に、Microsoft Teamsがホストされているアプリでネイティブに行われます。これらのアプリはオーディオやビデオのリダイレクトによる影響を受けません。

クライアント側で取得/クライアント側でレンダリングのみを利用できます。

アーキテクチャ

Microsoft Teamsの最適化のしくみ

このデモ動画をご覧いただければMicrosoft TeamsがCitrixの仮想環境でどのように機能するのかがお分かりいただけると思います。

Microsoft Teamsの最適化のデモ

通話の確立とメディアフローパス

可能であれば、Citrix WorkspaceアプリのHDXメディアエンジン(HdxTeams.exe)が、ピアツーピア通話でUDP上で直接ネットワークSRTP接続を確立しようとします。UDPポートがブロックされている場合、メディアエンジンはTCP 443にフォールバックします。

HDXメディアエンジンは、ICE、Session Traversal Utilities for NAT(STUN)、Traversal Using Relays around NAT(TURN)をサポートして、候補の検出と接続の確立を行います。ピア間に直接パスがない場合、またはユーザーがマルチパーティの通話や会議に参加している場合、HdxTeams.exeはAzureのMicrosoft Teamsトランスポートリレーサーバーを使用します。ユーザーのクライアントコンピューターが、複数のAzure IPアドレス範囲にアクセスできる必要があります。詳しくは「アーキテクチャセクション」および「Office 365のURLとIPアドレスの範囲 ID 11」の図を参照してください。

HdxTeams.exeは、エニーキャストIPとポート3478〜3481 UDP(ワークロードごとに異なるUDPポート、多重化によって発生する場合あり)、443 TCPを使用してMicrosoft Teamsトランスポートリレークラウドに接続します。通話品質は、基盤となるネットワークプロトコルによって異なります。UDPは常にTCPよりも推奨されるため、UDPトラフィックに対応するようネットワークを設計することをお勧めします。 通話のセットアップエラーのほとんどは、ICEエラーです。通話が完了できない場合は、まずその点を確認してください。ICE候補の収集プロセスの詳細については、「サポート」セクションの「ログの収集」を参照してください。

注:

エンドポイントにインターネットアクセスがない場合でも、ピアツーピア通話ができる可能性があります(会議は失敗します)。この場合、通話のセットアップが始まる前に30秒のタイムアウトがあります。

ネットワークの要件

Microsoft Teamsでは、会議、マルチパーティ通話、およびピアツーピア通話のピア間で直接接続できないシナリオで、Azureのトランスポートリレーサーバーが使用されます。そのため、ピアとOffice 365クラウドの間のネットワークの状態が通話のパフォーマンスを左右します。

環境を評価し、クラウド全体のオーディオおよびビデオ環境に影響を与える可能性のあるリスクと要件を特定することをお勧めします。 Skype for Businessネットワーク評価ツールを使用して、ネットワークがMicrosoft Teamsに対応できるかどうかをテストします。サポート情報については、「サポート」セクションを参照してください。

測定基準 エンドポイントからOffice 365
遅延(片道) 50ミリ秒未満
遅延(RTT) 100ミリ秒未満
パケット損失 15秒間隔で1%未満
パケット到着間ジッタ― 15秒間隔で30ミリ秒未満

詳しくは、「Microsoft Teams用に組織のネットワークを準備する」を参照してください。

帯域幅の要件に関して、Microsoft Teams用の最適化では、オーディオ(G.722/OPUS/PCM)およびビデオ(H264/VP9)用にさまざまなコーデックを使用できます。 ピアは、セッション記述プロトコル(SDP)のオファー/アンサーを使用して、通話の確立プロセス中にこれらのコーデックをネゴシエートします。 シトリックスの最低推奨要件は次のとおりです:

種類 帯域幅 コーデック
オーディオ(片道) 最大90 kbps G.722
ビデオ(片道) 最大700 kbps H264 360p @ 30 fps 16:9
画面共有 最大150 kbps H264 @ 15 fps

システム要件

最小バージョン - WindowsデスクトップOS用Virtual Delivery Agent(VDA)1906:

以下のオペレーティングシステムがサポートされています:

  • Windows 10 64ビット 最小バージョン1607からバージョン1903まで。

要件:

  • Microsoft .NET Framework 4.7.1以降がインストールされていない場合は、自動的にインストールされます。
  • Microsoft Visual C++ 2013および2015 Runtime(32ビットおよび64ビット)。
  • BCR_x64.msi - Microsoft Teamsの最適化コードが格納されたMSIファイルです。自動的にGUIで起動します。VDAのインストールにコマンドラインインターフェイスを使用する場合は、このファイルを除外しないでください。

最小バージョン - サーバーOS用Virtual Delivery Agent(VDA)1906:

以下のオペレーティングシステムがサポートされています:

  • Windows Server 2019、2016および2012 R2のStandardおよびDatacenterエディション

以下の項目は、インストーラーにより自動的にインストールされます。これらのソフトウェアは、シトリックスが提供するインストールメディアのSupportフォルダーに収録されています:

  • Microsoft .NET Framework 4.7.1以降がインストールされていない場合は、自動的にインストールされます。
  • Microsoft Visual C++ 2013および2015 Runtime(32ビットおよび64ビット)。
  • BCR_x64.msi - Microsoft Teamsの最適化コードが格納されたMSIファイルです。自動的にGUIで起動します。VDAのインストールにコマンドラインインターフェイスを使用する場合は、このファイルを除外しないでください。

リモートデスクトップサービスの役割をインストールしておらず、従って有効になっていない場合は、インストーラーによって自動的に役割がインストールされ有効化されます。

最小バージョン - Windows向けCitrix Workspaceアプリバージョン1905:

  • Windows 7、8、および10 32ビット版および64ビット版(Embeddedエディションを含む)
  • エンドポイントの要件:1.8から2.0GHz程度のクアッドコアCPUを搭載し、ピアツーピアのビデオ会議通話で360p VGAの解像度に対応していること。
  • Citrix Workspaceアプリでは、少なくとも600MBのディスクスペースと1GBのRAMが必要です。
  • Microsoft .NET Frameworkの最小要件はバージョン4.6.2です。システムに.NET Frameworkが導入されていない場合は、Citrix Workspaceアプリにより自動的にダウンロードとインストールが行われます。
  • このバージョンのCitrix Workspaceアプリはオーディオとビデオのリダイレクト(ピアツーピアまたは会議)と受信画面共有をサポートしています。Windows向けCitrix Workspaceアプリ1905では、発信画面共有はサポートされていません。バージョン1907以降では、発信画面共有がサポートされています。

Microsoft Teamsの最適化を有効にする

Microsoft Teamsの最適化を有効にするには、「Microsoft Teamsのリダイレクトポリシー」で説明されているStudio用ポリシーを使用します。HDXはこのポリシーが有効になっていることと、Citrix Workspaceアプリのバージョンが最低限必要とされるバージョンよりも新しいことを確認します。ポリシーが有効でCitrix Workspaceアプリがサポート対象のバージョンである場合は、VDAでレジストリキーHKEY_CURRENT_USER\Software\Citrix\HDXMediaStream\MSTeamsRedirSupportの値が1に自動的に設定されます。Microsoft TeamsアプリケーションはこのレジストリキーをVDIモードで読み取ってロードします。

Microsoft Teamsの周辺機器

Microsoft Teamsの最適化がアクティブな場合、Citrix Workspaceアプリは周辺機器に(ヘッドセット、マイク、カメラ、スピーカーなど)アプリにアクセスします。その後、周辺機器はMicrosoft Teams UIに正しく列挙されます(設定 > デバイス)。

Microsoft Teamsの最適化モード

Microsoft Teamsはデバイスに直接アクセスしません。メディアの取得、キャプチャ、処理には、代わりにHdxTeams.exeが使用されます。Microsoft Teamsでは、ユーザーが選択できるデバイスが一覧表示されます。

注:

エコー キャンセルが内蔵されたMicrosoft Teams認定ヘッドセットをお勧めします。マイクとスピーカーが別のデバイスにある複数周辺機器のセットアップ(マイクがWebカメラに内蔵されており、スピーカーがモニターに搭載されている場合など)では、エコーが発生する可能性があります。外部スピーカーを使用する場合は、マイクと、マイクに音を屈折させる可能性のある面から可能な限り離れた場所に配置します。

HDXテクノロジは、周辺機器のマッピングに次のいずれかの方法を使用できます:

  • Microsoft Teamsの最適化(推奨モード)
  • 最適化されたVDIモードでMicrosoft Teamsが読み込めない場合、VDAは、Webカメラリダイレクトやクライアントの音声とマイクのリダイレクトのような従来のHDXテクノロジを使用します。非最適化モードでは、周辺機器がVDAにマップされます。周辺機器は、Microsoft Teamsアプリには仮想デスクトップにローカルで接続されているように表示されます。

    最も重要な違いはカメラ名です。最適化されていないモードでMicrosoft Teamsが読み込まれた場合、従来のHDXテクノロジが起動し、Webカメラの名前に「Citrix HDX」というサフィックスが付きます(下図参照)。スピーカーとマイクのデバイス名は、最適化モードと比べてわずかに異なる場合があります。

Microsoft Teamsの非最適化モード

従来のHDXテクノロジを使用する場合、Microsoft Teamsはオーディオ、ビデオ、および画面共有処理をエンドポイントのCitrix WorkspaceアプリWebRTCメディアエンジンにオフロードしません。代わりに、HDXテクノロジでサーバー側でのレンダリングが使用されます。ビデオをオンにすると、VDAのCPU消費量が高くなることが予想されます。リアルタイムのオーディオパフォーマンスは最適ではない場合があります。

トラブルシューティング

このセクションでは、Microsoft Teamsの最適化を実施する際に想定される問題に対処するためのヒントを提供します。 詳しくは、CTX253754を参照してください。

Virtual Delivery Agentの状態

BCR_x64.msi.により4つのサービスがインストールされています。そのうちの2つが、VDAでのMicrosoft Teamsのリダイレクトを担当します。

ブラウザーコンテンツのリダイレクトによりインストールされる4つのサービス

  • Citrix HDX TeamsリダイレクトサービスはMicrosoft Teamsが使用する仮想チャネルを確立します。このサービスはCtxSvcHost.exeに依存します。

  • Citrix HDX HTML 5ビデオリダイレクトサービスはWebSocketService.exeとして実行され、127.0.0.1のTCPポート9002をリッスンします。WebSocketService.exeには主に2つの機能があります。

    i. Microsoft Teamsアプリのコンポーネントとして組み込まれているvdiCitrixPeerConnection.jsから WebSocketのセキュリティを確保するTLSターミネーションに対して、安全なWebSocket接続が渡されます。この接続はプロセスモニターで追跡可能です。証明書の詳細については、「ControllerとVDAの間の通信」の「TLSおよびHTML5ビデオリダイレクション、およびブラウザーコンテンツリダイレクト」を参照してください。

    プロセスモニター

    ii.ユーザーセッションのマッピング。Microsoft Teamsアプリケーションが起動すると、WebSocketService.exeはVDAのユーザーセッションでWebSocketAgent.exeプロセスを起動します。WebSocketService.exeはLocalSystemアカウントの動作として、セッション0で実行されます。

    WebSocketAgent.exeサービス

    netstatを使用して、WebSocketService.exeサービスがVDAでアクティブなリッスン状態であるかどうかを確認できます。

    管理者特権でのコマンドプロンプトウィンドウからnetstat -anob -p tcpを実行します:

    netstatの実行の例

    接続が成功すると、状態がESTABLISHEDに変わります:

    成功したnetstatの例

重要:

WebSocketService.exeは127.0.0.1:9001と127.0.0.1:9002の2つのTCPソケットでリッスンします。ポート9001はブラウザーコンテンツのリダイレクトとHTML5ビデオのリダイレクトに、ポート9002はMicrosoft Teamsのリダイレクトにそれぞれ使用されます。VDAのWindows OSに、Teams.exeとWebSocketService.exeの間の直接通信を妨げる可能性があるプロキシ構成がないことを確認してください。Internet Explorer 11で明示的なプロキシを構成すると、接続は割り当てられたプロキシサーバーを経由する場合があります。[ローカルアドレスではプロキシサーバーを使用しない] をオンにすると、この状況が発生することがあります。localhostをバイパスするには、プロキシ例外リストで127.0.0.1アドレスを指定します。例外リストは、[Internet Explorer 11]>[ツール]>[インターネットオプション]>[接続]>[LANの設定]>[詳細]>[例外] にあります。

サービスの場所と説明

サービス 実行可能ファイルのパス ログオン名 説明
Citrix HTML5ビデオリダイレクトサービス “C:\Program Files (x86)\Citrix\System32\WebSocketService.exe” /service ローカルシステムアカウント 仮想デスクトップとエンドポイントデバイス間でメディアのリダイレクトを実行する場合に必要な、複数のHDXマルチメディアサービスの初期のフレームワークを提供します。
Citrix HDXブラウザーリダイレクトサービス “C:\Program Files (x86)\Citrix\System32\CtxSvcHost.exe” -g BrowserRedirSvcs 使用アカウント(ローカルサービス) エンドポイントデバイスと仮想デスクトップ間でWebブラウザーコンテンツのリダイレクトを実行します。
Citrixポート フォワーディングサービス “C:\Program Files (x86)\Citrix\System32\CtxSvcHost.exe” -g PortFwdSvcs 使用アカウント(ローカルサービス) エンドポイントデバイスと仮想デスクトップ間でWebブラウザーコンテンツのリダイレクトのポート フォワーディングを実行します。
Citrix HDX Teamsリダイレクトサービス “C:\Program Files (x86)\Citrix\System32\CtxSvcHost.exe” -g TeamsSvcs ローカルシステムアカウント エンドポイントデバイスと仮想デスクトップ間でMicrosoft Teamsのリダイレクトを実行します。

Citrix Workspaceアプリ

Windows向けCitrix Workspaceアプリは、ユーザーのエンドポイント上でHdxTeams.exeという名前の新しいサービスをインスタンス化します。これは、VDAでMicrosoft Teamsが起動し、ユーザーがセルフプレビューで環境の周辺機器を呼び出すとき、またはアクセスしようとしたときに実行されます。このサービスが表示されない場合は、次の点を確認してください:

  1. Windows向けWorkspaceアプリのバージョン1905以上がインストールされていることを確認します。WorkspaceアプリのインストールパスにHdxTeams.exeとwebrpc.dllバイナリがあるかを確認します。
  2. 手順1の確認ができたら、次の手順を実行してHdxTeams.exeが起動するかを確認してください。
    1. VDAでMicrosoft Teamsを終了します。
    2. VDAでservices.mscを起動します。
    3. Citrix HDX Teamsリダイレクトサービスを停止します。
    4. ICAセッションを切断します。
    5. ICAセッションを接続します。
    6. Citrix HDXチームリダイレクトサービスを起動します。
    7. Citrix HDX HTML5ビデオリダイレクトサービスを再起動します。
    8. VDAでMicrosoft Teamsを起動します。
  3. これでもクライアントエンドポイントでHdxTeams.exeが起動しない場合は、次の手順を実行してください:
    1. VDAを再起動します。
    2. クライアントエンドポイントを再起動します。

サポート

シトリックスとMicrosoftはCitrix Virtual Apps and DesktopsでのMicrosoft Teamsの提供について、Microsoft Teamsの最適化を通じて共同でサポートしています。この共同サポートは両社の緊密な協力関係により実現したものです。サポート契約の有効期間にこのソリューションで問題が発生した場合は、原因と考えられるコードの担当ベンダーのサポートチケットを開いてください。つまりTeamsの場合はMicrosoftの、最適化コンポーネントの場合はシトリックスのサポートチケットを開きます。

シトリックまたはMicrosoftはチケットを受け取ると問題の優先度を判断し、必要に応じてエスカレーションします。管理者が各社のサポートチームに連絡する必要はありません。

ログの収集

HDXTeams.exeログは、ユーザーのマシンの%TEMP%にあるHDXTeamsフォルダー(AppData/Local/Temp)内にあります。「webrpc_Day_Month_timestamp_Year.txt」という名称の.txtファイルを探します。

HdxTeams.exeログでは、以下のエントリが呼び出しのセットアップに必要な関連Interactive Connectivity Establishment(ICE)エントリです(このサンプルスニペット参照):

RPCStubs Info: -> device id = \\?\display#int3470#4&1835d135&0&uid13424#{65e8773d-8f56-11d0-a3b9-00a0c9223196}{bf89b5a5-61f7-4127-a279-e187013d7caf} label = Microsoft Camera Front groupId =

RTCPeerConnection::createOffer. audio = 1 video = 1
RTCPeerConnection::OnSignalingChange. signaling state = HaveLocalOffer
video_element::connectTo
RTCPeerConnection::OnIceGatheringChange. state = Gathering

[…]
candidate:840548147 1 udp 2122194687 10.108.124.215 56927 typ host generation 0 ufrag oVk6 network-id 1
[…]
candidate:4271145120 1 udp 1685987071 66.165.176.60 55839 typ srflx raddr 10.108.124.215 rport 55839 generation 0 ufrag uAVH network-id 1
[…]

RTCPeerConnection::OnIceGatheringChange. state = Complete
RTCPeerConnection::setRemoteDescription

RTCPeerConnection::OnSignalingChange. signaling state = HaveRemoteOffer

発生した問題に再現性がある場合は、CDFトレースを収集してからサポートにお問い合わせいただくことをお勧めします。詳しくは、Knowledge CenterのCDFcontrolを参照してください。

CDFトレースを収集する際の推奨事項については、Knowledge Centerの記事(Recommendations for Collecting the CDF Traces)を参照してください。

VDA側のCDFトレース - 次のCDFトレースプロバイダーを有効にします:

VDA側のCDFトレース

Workspaceアプリ側のCDFトレース - 次のCDFトレースプロバイダーを有効にします:

Workspaceアプリ側のCDFトレース