Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

In order to complete the steps below, you must have a System Administrator role in Verba. The registration consists of the following steps:

Table of Contents

Recording architecture

Architecture

The following diagrams shows show the connections in a highly available Microsoft Teams IM recording chat and channel archiving environment when using the Webhook/DLP API (left), and Export API (right).

File

queue setup for failover and load

Queue Setup for Load-balancing and Failover

When there is only a single recorder, the value of the "Number of Processing Queues Owned by Recorder Role" and the "Number of Receiving Queues Owned by Director Role" settings will  settings will be the same, and it will be equal to the total number of cores of the server multiplied by two. 

When there are multiple Recording Servers, and there is load-balancing between them, then the value of these settings will be different. 

The "Number of Receiving Queues Owned by Director Role" setting has to be the same on all Recording Servers Recording Servers (Recording Directors). This setting has to be the same as the total active Recording Server (Media Recorder) cores multiplied by two.

Code Block
Number of Receiving Queues Owned by Director Role = Total Active Recording Server cores * 2
or
Number of Receiving Queues Owned by Director Role = Number of Processing Queues Owned by Recorder Role setting * number of recorders

The "Number of Processing Queues Owned by Recorder Role" setting also has to be the same on all Recording Servers (Media Recorder). But instead of the toal total active cores, this setting is always equals equal to the number of CPU cores of the the individual Recording  Recording Servers (Media Recorders) multiplied by two.

Code Block
Number of Processing Queues Owned by Recorder Role = Individual Recording Server cores * 2

For example, if there are two Recording Servers with 4 CPU cores each, then the "Number of Processing Queues Owned by Recorder Role" setting will be 8 on each servers (Media Recorders), and the Number the "Number of Receiving Queues Owned by Director Role" setting will be 16 on each servers (Recording Directors).

If there are three Recording Servers with 4 CPU cores each, and one fo of them is standby (N+1), then the numbers will be the same. The "Number of Processing Queues Owned by Recorder Role" setting will be 8 on each servers server (Media RecordersRecorder), and the Number the "Number of Receiving Queues Owned by Director Role" setting will be 16 on each servers server (Recording DirectorsDirector).

Configuration

Prerequisites

  • The APIs used for MS Chat and Channel Archiving 
  • Assigning a Public IP Address
  • (Webhook/DLP API only): For a single non-HA setup, the Recording Server (Recording Director) needs to have a public IP address. In the case of a highly-available setup, the public IP address has to be assigned to the
loal
  • load-
balacer
  • balancer.
  • Creating an App Registration in Azure
  • Before configuring the Verba Recording Server(s) for Microsoft Teams Chat recording, an App Registration has to be created in Azure. For the configuration steps, see: 
    Registering an App for
Mirosoft
  • A root folder has to be created for the processing queues. In the case of
a
  • single-recorder
setup
  •  setup, this folder can be created on the
local
  •  local disk
of
  •  of the server (recommended path: [APPLICAION_FOLDER]\
media\
  • processing_queue). In the case of a HA setup, the processing queue folder cannot be created on the local disk of the Recording Server. Instead, it has to be created on a
seperate 
  • separate network
location
  • location accessible from all servers.
  • Assigning Certificates
publicly signed certificate is required
  • (Webhook/DLP API only, optional): For the connection encryption certificate, both publicly signed and locally generated certificate worksOnly CSP certificates are supported (CNG/KSP certificates are not supported). The SAN configuration of the certificate must include the public address of the Recording Server, or the load-balancer in the case of multiple Recording Servers. Using an asterisk in the SAN is accepted. The private key of the certificate has to be exportable.

Configuring

a single-recorder setupThe configrauin steps of the single-recorder setup

Microsoft Teams chat and channel archiving with Webhook/DLP API

The configuration steps for the Webhook/DLP API can be found here:

Configuring the Verba Unified IM Recorder Service for Microsoft Teams chat and channel archiving with DLP/Webhook API

Configuring Microsoft Teams chat and channel archiving with Export API

The configuration steps for the Export API can be found here:

 Configuring the Verba Unified IM Recorder Service for Microsoft Teams Chat Recording

Configuring a highly-available setup

chat and channel archiving with Export API

Configuring Separated Recording Director and Media Recorder roles

Warning

Separating the Recording Director and Media Recorder roles is not recommended.

In the case of the Webhook/DLP API, it is possible to separate the Recording Server roles. 

The following configuration steps needs need to be done when the Recording Director and the Media Recorder roles are separated:

Step 1 - Configuring the Verba Unified IM Recorder Service on the Recording Director Servers

Step 2 - Configuring the Verba Unified IM Recorder Service on the Media Recorder Servers

Co-located Recording Directors and Media Recorders in a highly available setup

Alternatively, the Recording Director and the Media Recorder servers can be co-located. In this case, do the single-recorder setup for each servers, but use the file queues on the network location instead of creating them on the local disks, and use the common certificate for the Teams connections.

Image Removed

In order to complete the steps below, you must have System Administrator role in Verba. 

The registration consists of the following steps:

Table of Contents

Recording architecture

The following diagrams shows the connections in a highly available Microsoft Teams IM recording environment when using the Webhook/DLP API (left), and Export API (right).

Image Removed

Image Removed

File queue setup for failover and load-balancing

In the case of the Webhook/DLP API, only one of the Recording Director components is writing into the file queues at once, depending on which one receives the events from the Application Gateway. In the case of the Export API however, the Recording Director components distribute the user list amongs each other equally, and only query the chats of their own portion of the user list.

The "Number of Receiving Queues Owned by Director Role" setting has to be the same on all Recording Director servers. This setting has to be the same as the total Media Recorder cores (without redundancy) multiplied by two.

Code Block
Number of Receiving Queues Owned by Director Role = Total Recording Server cores * 2

The Media Recorder component works the same way reagrdless of the API being used. In the service configuration, the "Number of Processing Queues Owned by Recorder Role" setting has to be specified, and it has to be the same on all the Recording (Media Recorder) servers. This setting is always equals to the number of CPU cores of the individual Recording (Media Recorder) servers multiplied by two.

Code Block
Number of Processing Queues Owned by Recorder Role = Individual Recording Server cores * 2

For example, if there are two 4-cores Recording Servers, then the "

Number of Processing Queues Owned by Recorder Role

When there is no load-balancing (1+1 servers), then the "Number of Processing Queues Owned by Recorder Role" configuration will be equal to the total number of file queues. When load-balancing is being used (N+1), the file queues have to be distributed between the (active or N) Media Recorders, so the "Number of Processing Queues Owned by Recorder Role" configuration will be the quantity of the file queues divided by the quantity of the (active or N) recorders.

In the case of N+1 setup, an extra Media Recorder has to be added. When a Media Recorder (N) is started, it will pick up X queues depending on its "Number of Processing Queues Owned by Recorder Role" configuration. When the last Media Recorder (+1) is starting up, all the file queues will be taken already, so the last recorder will be the standby recorder. If a Media Recorder goes down, the standby recorder picks up its queues, and becomes an active recorder. When the Media Recorder comes back, it will be the new standby recorder.

Highly available setup with load-balancing:

Image Removed

Highly available setup without load-balancing:

Image Removed

Configuration

Prerequisites

Assigning a Public IP Address

For a single non-HA setup, the Recording Server (Recording Director) needs to have a public IP address. In the case of a highly-available setup, the public IP address has to be assigned to the loal-balacer.

Creating an App Registration in Azure

Before configuring the Verba Recording Server(s) for Microsoft Teams Chat recording, an App Registration has to be created in Azure. For the configuration steps, see: 

Registering an App for Mirosoft Teams Chat Recording in Azure

Creating the File Queue folder

A root folder has to be created for the processing queues. In the case of a single-recorder setup, this folder can be created on the local disk of the server (recommended path: [APPLICAION_FOLDER]\media\processing_queue). In the case of a HA setup, the processing queue folder cannot be created on the local disk of the Recording Server. Instead, it has to be created on a seperate network location accessible from all servers.

Assigning Certificates

publicly signed certificate is required. Only CSP certificates are supported (CNG/KSP certificates are not supported). The SAN configuration of the certificate must include the public address of the Recording Server, or the load-balancer in the case of multiple Recording Servers. Using asterisk in the SAN is accepted. The private key of the certificate has to be exportable.

Configuring a single-recorder setup

The configrauin steps of the single-recorder setup can be found here:

 Configuring the Verba Unified IM Recorder Service for Microsoft Teams Chat Recording

Configuring a highly-available setup

The following configuration steps needs to be done when the Recording Director and the Media Recorder roles are separated:

Step 1 - Configuring the Verba Unified IM Recorder Service on the Recording Director Servers

Step 2 - Configuring the Verba Unified IM Recorder Service on the Media Recorder Servers

Co-located Recording Directors and Media Recorders in a highly available setup

Alternatively, the Recording Director and the Media Recorder servers can be co-located. In this case, do the single-recorder setup for each servers, but use the file queues on the network location instead of creating them on the local disks, and use the common certificate for the Teams connections.

Image Removed

Configuring multi tenant Microsoft Teams chat and channel archiving

To configure Microsoft Teams chat and channel archiving in a multi tenant system:

Configuring multi tenant Microsoft chat and channel archiving

Adding users for chat and channel archiving

Chat archiving

When using either the DLP/Webhook or the Export API-based integrations, in order to enable chat archiving for specific users, create the users and the extensions in VFC. This can also be done using Active Directory Synchronization.

The extensions must:

  • Be of User/Agent ID type.
  • Match the Microsoft Entra (formerly Azure AD) Object ID of the users (not the User Principal Name or email address).

Channel archiving

Using the DLP/Webhook integration

To enable channel archiving for specific users using the DLP/Webhook integration, create the users and the extensions in VFC. This can also be done using Active Directory Synchronization.

The extensions must:

  • Be of User/Agent ID type.
  • Match the Microsoft Entra (formerly Azure AD) Object ID of the users (not the User Principal Name or email address).

Using the Export API integration

Due to limitations in the Microsoft Export API, channel archiving using the Export API can only be enabled on a Microsoft Teams team-level (group in Microsoft Entra), not on a user-level. To enable this functionality, add the teams to VFC as recorded extensions.

The extensions must:

  • Be of Team type.
  • Match the Microsoft Entra (formerly Azure AD) Object ID of the team/group.

You can also import teams using Active Directory Synchronization, under Users / Import Teams / Channels.

Warning

If configuring channel archiving using the Export API in a multi-tenant environment, you must add the Tenant ID of the Microsoft Teams tenant to any environments for which you configure channel archiving under System / Environments.