Citrix Virtual Apps and Desktops

Microsoft Teams

Microsoft Teams dashboard in Citrix Director provides visibility into Microsoft Teams calls across users along with details on the participants and metrics that indicate call performance. The dashboard provides the ability to:

  • Assess Microsoft Teams usage summary
  • Filter and see details of Microsoft Teams calls for the selected duration
  • Assess individual calls using performance metrics

Microsoft Teams Dashboard

Prerequisites

Add Microsoft Graph Application Programming Interface (API) to the allow list in Citrix Director:

  • For Director to access call records, ensure outbound internet access is available on all the machines where Director is installed. Specifically, ensure the https://graph.microsoft.com URL is accessible
  • If you use a proxy server, ensure that the Microsoft Graph API : https://graph.microsoft.com URL is accessible.

Getting started

Connection to Microsoft Graph API

The Microsoft call details are fetched from the Microsoft Graph API. For Citrix Director to access the API, an app needs to be created in the Microsoft Entra ID with the required permissions. The Graph API URL needs to be added to the allow list in Director as well.

Perform the following steps to complete the connection:

Step 1: Application registration in Microsoft Entra ID

  1. Navigate to App registrations -> New registration in Microsoft Entra ID.

    New registration

  2. Perform the required steps for app registration.
  3. After registration, copy the Client ID and Tenant ID of the application.

Step 2: Adding Microsoft Graph Permissions in Microsoft Entra ID

  1. Navigate to API permissions -> Add a permission.
  2. Select Microsoft Graph and then Application permissions.

    Microsoft graph

  3. Add permissions to CallRecords.Read.All and User.Read.All

    Microsoft graph permissions

  4. Click Grant admin consent for MSFT. This action requires an Entra ID global administrator.

    Grant admin consent

Step 3: Creating a Client Secret

  1. In Microsoft Entra ID, navigate to Certificates & secrets -> Client secrets -> New client secret. You can also re-use an existing secret.

    New client secret

  2. Provide a name and expiration date for the secret. Ensure that the secret is renewed before expiration to maintain the connection.
  3. Copy the client secret for use in the Director UI.

For more information, see the official Azure documentation if you face any issues.

Step 4: Complete Connection on Director

  1. In Director, navigate to Settings -> Connect real-time communications apps.

    Settings

  2. Click Create connection and enter the copied Application ID, Directory ID, and Client Secret from the app registration.

    Create connection

    Connection is successfully established if valid credentials and permissions to fetch call details are available.

    Fetch details

  3. You can Edit and Delete the connection by clicking the ellipse at the end of the row.

Microsoft Teams dashboard

Navigate to Real time Communications tab in the Director UI. The Microsoft Teams dashboard is populated with the data collected from the Microsoft Graph connection established. Call details are available approximately 15 minutes after the call ends.

Call history

The table view provides the following details across all calls.

Column Name Description
Call ID A unique identifier for each call.
Call type Indicates whether the call is peer-to-peer or a group call.
Modality Indicates which modes are used during the call, such as audio, video, or screen share.
Start time The date and time the call began.
End time The date and time the call ended.
Duration (mm: ss) Duration of the call in minutes and seconds.

Click individual calls in the table to view the failure and performance details per user.

Individual call

In a group call, when a user disconnects and rejoins, it is considered as a separate session. This consideration helps to identify specific issues, such as higher latency when connected to a particular network.

Each row in the call details table contains the following information:

Column Name Description
Start time The date and time the call or participant’s segment began.
Round trip time (avg) Average round-trip time for data packets.
Packet loss rate (avg) Average percentage of packets lost during the call.
Jitter (avg) Average variation in the delay of received packets.
Failure stage Indicates the stage at which a call failure occurred, such as during setup or in the middle of the call.
End time Date and time the call or participant’s segment ended.
Caller Name of the participant in the call.
Bandwidth estimate (avg) Estimated average bandwidth used during the call.

You can filter users in two ways: by Citrix user name or by Microsoft Teams user name. You can switch between these options using the radio buttons at the top of the page.

  • Citrix user name: As you begin typing a user name, the system suggests matching users. You can then select the specific account to view details.
  • Microsoft Teams User name: Use this option if the email or User Principal Name (UPN) associated with the Microsoft Teams account differs from the Citrix account ID. When using this method, you must enter the complete and valid email address.

user name

Troubleshooting

  • Why did onboarding fail with the error “Azure API blocked. To create a connection, add Azure API to your allow list”?

    Azure api blocked

    Solution: Ensure that you have followed the prerequisites and added the Microsoft Graph API endpoint to your allow list.

  • Why do I see the error “Microsoft Graph API blocked” when viewing calls?

    Microsoft API blocked

    Solution: Make sure that you have followed the prerequisites and added the Microsoft Graph API endpoint to your allow list.

  • Why does the Connections screen show “Missing required application permissions in Microsoft Entra ID”?

    Missing permissions

    Solution: Verify that the application permissions CallRecords.Read.All and User.Read.All are assigned to the Entra ID application.

Microsoft Teams