Microsoft Teamsの最適化

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

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

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

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

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

アーキテクチャ

Microsoft Teamsの最適化のしくみ

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

Microsoft Teamsの最適化のデモ

システム要件

最小バージョン - 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 - 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 - Teamsの最適化コードが格納されたMSIファイルです。自動的にGUIで起動します。VDAのインストールにコマンドラインインターフェイスを使用する場合は、このファイルを除外しないでください。

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

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

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

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

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

トラブルシューティング

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

Virtual Delivery Agentの状態

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

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

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

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

    i. Teamsアプリのコンポーネントとして組み込まれているvdiCitrixPeerConnection.jsから WebSocketのセキュリティを確保するTLSターミネーションに対して、安全なWebSocket接続が渡されます。この接続はプロセスモニターで追跡可能です。次に例を示します:

    プロセスモニター

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

    WebSocketService.exeサービスがVDAでアクティブなリッスン状態であるかどうかを確認する方法は2つあります。

    方法1: Webブラウザーのタブを開いて「https://127.0.0.1:9002」を入力します。サービスとの通信が正常であれば、サービスはアクティブなリッスン状態です。

    方法2: DevToolsコンソールを使用すれば方法1よりも詳しい情報を得られます。

    1. 次のテキストをワンライナーで入力します:

      var exampleSocket = new WebSocket('wss://127.0.0.1:9002'); exampleSocket.onmessage = function(messageEvent) { console.log(JSON.stringify(messageEvent)); };

    2. 数秒待ってから、次のように入力します:

      exampleSocket.readyState

ステップ2の出力として1の数字が返ってくれば期待通りです。1はWebSocket接続が正常に確立されたことを示します。

プロセスモニター

出力される数字とその意味は以下のとおりです:

-  0(接続中)まだ接続が開かれていない状態です。
-  1(オープン)接続が開かれ通信準備ができた状態です。
-  2(クローズ中)接続がクローズ処理中です。
-  3 (クローズ)接続が閉じられているか、開けない状態です。

このエラーか3の数字が表示される場合は、Citrix HDX Teamsリダイレクトサービスが起動していることを確認し、必要に応じて再起動します:

プロセスモニター

vdiCitrixPeerConnection.js は、コンソールでは HdxWebRTC.js という名前で記録されます。

注:

WebSocketService.exeは127.0.0.1:9001と127.0.0.1:9002の2つのTCPソケットでリッスンします。ポート9001はブラウザーコンテンツのリダイレクトとHTML5ビデオのリダイレクトに、ポート9002はTeamsのリダイレクトにそれぞれ使用されます。

サービスの場所と説明

サービス 実行可能ファイルのパス ログオン名 説明
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でTeamsが起動し、ユーザーがセルフプレビューで環境の周辺機器を呼び出すとき、またはアクセスしようとしたときに実行されます。このサービスが表示されない場合は、次の点を確認してください:

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

サポート

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

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

ログの収集

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

HdxTeams.exeログには、呼び出しのセットアップに必要な関連ICE(Interactive Connectivity Establishment)エントリが記載されている必要があります(以下のサンプルスニペット参照):

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トレース