Versions Compared

Key

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

Table of Contents

Overview

...

  • Event/webhook, DLP API based integration, where the Teams platform sends all updates once the recorder subscribes
  • Support for on-prem, cloud, and hybrid deployments
  • Supports always-on recording mode only
  • Supports all instant message scenarios, teams, channels, P2P, and meeting chats
  • Supports all formatting options, emojis, giphys, stickers, and other apps
  • Limitation: no selective capturing/archiving support, only tenant-wide capturing
  • Limitation: chat sessions initiated from external domains won't be captured
  • Limitation: labeling and case rules are not supported

Version support

*Based on Slack usage statistics

**Based on Cisco IM/P sizing

Based on the statistics above, if the daily IM message rate has to be processed within 8 hours, then a single recorder core can handle 13K users.
If it is enough to process the messages within 16 hours, then a single recorder core can handle 26K users.
For more real-time processing during peak hours, extra CPU cores can be added:

  • In the case of the real-time processing of the low message rate, a single CPU core can handle 8K users.
  • In the case of a medium message rate, a single CPU core can handle 5K users.
  • In the case of a high message rate, a single CPU core can handle 3K users.

For requirements for other components and server roles, see Server sizing and requirements

Load-balancing and Failover

Large deployments may require multiple VMs and other Azure components.

Voice, video, and screen/application share recording

For the failover and load-balancing options for voice, video, and screen/application window share recording, see: 

Microsoft Teams Recording Failover and Load-balancing Design

Instant message and attachment recording

In the case of IM and attachment recording, multiple Media Recorders can be deployed behind the Recording Director(s). If multiple Recording Directors are required, then a load-balancer has to be placed in front of them.

image2020-11-30_16-17-8.pngImage Removed

Preparation

The Microsoft Teams integration requires additional prerequisites and configuration on Azure and O365, see Configuring Microsoft Teams Recording for more information.

Make sure that all the required prerequisites are installed on each server prior to the installation.

For guidance on configuring the necessary firewall port, visit Firewall configuration for Microsoft Teams recording deployments

Installation

The following articles contain all the steps for installing the various server roles:

Configuration

For the configuration guide for voice / video / screen share recording, see Configuring Microsoft Teams Recording.

For chat and attachment recording, see Microsoft Teams Chat Recording.

Microsoft Teams metadata for voice, video and screen & application share recordings

The system captures the following metadata specific to Microsoft Teams voice/video/screen recordings.

Yes
Metadata FieldDescriptionTemplateAvailable
Start DateStart date of the conversationStandardYes
Start TimeStart time on the conversationStandardYes
End DateEnd date of the conversationStandardYes
End TimeEnd time of the conversationStandardYes
DurationLength of the conversationStandardYes
UserName of the recorded userStandardYes
FromPhone number, Button name, User nameStandardYes
From InfoUser / contact nameStandardYes
ToPhone number, Button name, User nameStandardYes
To InfoUser / contact nameStandardYes
DirectionDirection of the call from the system perspective requires configuring internal number/domain patternsStandardYes
Direction (User)Direction of the call from the recorded user perspectiveStandardYes
From (Verba)Name of the Verba user associated with the calling partyStandardYes
To (Verba)Name of the Verba user associated with the called partyStandardYes
LocationHostname of the recording serverStandardYes
End CauseNormal, Hold, Transfer, Conference, Device Change, From Terminated, To TerminatedStandardYes
Audio CodecAudio codec of the recorded streamsStandardYes
Video codecVideo codec of the recorded streamsStandardYes
Platform Call IDUnique conversation identifier received from the recorded platformStandardYes
Silence RatioRatio of silence in the conversationStandardYes
Talkover RatioTalkover ratio of the conversationStandardYes
Longest SilenceLength of the longest silence present in the conversationStandardYes
User ID / Agent IDAzure AD Object ID for the recorded userStandardYes
From DeviceDevice ID of the calling partyStandardNo
To DeviceDevice ID of the called partyStandardNo
Dialed NumberOriginal dialed numberStandardNo
From IPDefaults to 127.0.0.1 as the IP address of the devices are not availableStandardYes
To IPDefaults to 127.0.0.1 as the IP address of the devices are not availableStandardYes
From Proxy IPIP address of the proxy server associated with the caller partyStandardNo
To Proxy IPIP address of the proxy server associated with the called partyStandardNo
Source PlatformMicrosoft TeamsStandardYes
Conversation TypeVoice, Video, Screen ShareStandardYes
Forward ReasonForward reason for the conversation (e.g. forwarded, transferred, team call, delegated, etc.) StandardNo
Recording failedIndicates if the recording has failed and the metadata was imported during CDR reconciliationStandardNo
Media LengthLength of the media file related to the conversation in hh:mm:ss formatStandardYes
Media ErrorShows the media processing errors during recordingStandardYes
Voice QualityOverall voice quality check score for the conversationStandardYes
Record TypeStandardStandardYes
2N SourceIn case of duplicate (2N) recording, records are marked as primary or secondaryStandardNo
Meeting SubjectSubject of the recorded meetingMicrosoft TeamsYes
Meeting Organizer IDAzure AD Object ID of the recorded meeting organizerMicrosoft TeamsYes
Meeting Organizer NameName of the recorded meeting organizerMicrosoft TeamsYes
Compliance PolicyName of the compliance policy configured in Microsoft Teams for the recorded user which triggered the recording of the call or meetingMicrosoft Teams

Switch Name & Model

Microsoft Teams

Supported Microsoft Teams Versions
for voice, video, and screen/application window share recording

Voice, video, and screen/application window share recording (Compliance Recording) are available to all:

  • Microsoft 365 A3/A5/E3/E5/Business Premium and
  • Office 365 A3/A5/E3/E5 users
  • with no additional consumption charge.

For more information, see https://docs.microsoft.com/en-us/microsoftteams/teams-recording-policy

Supported Microsoft Teams Versions
for instant message, attachment capture and archiving
Instant message, and attachment capture and archiving require requires one of the following user licenses for bot Webhook/DLP and Export API deployments for all archived users:
  • Office 365 A5/E5
  • Microsoft 365 A5/E5
  • Microsoft 365 Information Protection and Governance
  • Office 365 Advanced Compliance

For more information, see see https://docs.microsoft.com/en-us/office365/graphservicedescriptions/teams-licenses

Supported Endpoint / DeviceTypes

All

If you are on a different version, contact your Microsoft representative for more information.

Deploying Microsoft Teams recording

The following section contains all the necessary steps for setting up a Microsoft Teams recording infrastructure.

Server sizing

Recording Server on Azure virtual machine for voice, video, and screen/application share recording

According to the Microsoft requirements, the Microsoft Teams Bot service must run on an Azure Virtual Machine. Requirements for the Recording Server role, which will host the Verba Microsoft Teams Bot service and the Unified Call Recorder service are:

  • ILPIP (Instance Level Public IP Address) for the Recording Servers
    Private IP addresses are not recommended by Microsoft, due to potential performance limitation caused by the Azure NAT, although will work
  • For resilient and/or high volume configurations, multiple virtual machines (running the Recording Server role) have to be deployed. In order to distribute the load across multiple Verba Microsoft Teams Bot services, an Azure Application Gateway has to be deployed in front of the VMs.
    https://docs.microsoft.com/en-us/azure/application-gateway/overview

Due to performance limitations in the Microsoft Local Media SDK, the Recording Server sizing for Microsoft Teams recording is different from other integrations. The following table summarizes the server sizing for Microsoft Teams recording:

...

per vCPU

...

Voice and Screen & Application Share

Up to x1 1080p stream / call

...

Voice and Video

Up to x4 360p video streams / call

...

The values indicate the number of maximum simultaneous calls for the specified modalities per vCPU.

Testing was done with mixed audio on Azure D3v2 (4 cores), D4v2 (8 cores), and D5v2 (16 cores) virtual machines.

Recording Server for instant message and attachment recording

The IM recording architecture includes two server roles: Recording Director and Media Recorder. These roles have different sizing numbers and different factors have to be taken into account.

Recording Director

Image Removed

The Recording Director component has to be sized based on the real-time incoming load. The minimum CPU requirement is 4 CPU cores. It can process 1500 messages every second with a single CPU core, and 6000 messages every second with 4 cores.

In the case of higher incoming loads, the network bandwidth also has to be considered. 1000 messages per second incoming load generate 48 Mbps traffic (or 6 MB/s) between the Teams side and the Recording Director, and 42 Mbps traffic (or 5.2 MB/s) between the Recording Director and the file queue storage.

Media Recorder and SQL Server

Image Removed

The Media Recorder component does not have to be sized for real-time processing, since the recorded data is stored already in the file queue storage. Instead, the Media Recorder can be sized based on the overall message count a day. If there are more incoming messages than the real-time processing capacity of the Media Recorder(s), then the messages will be inserted into the database later, so they will be also available for search and replay through the web interface later. However, sufficient processing capacity should be provided so it can process the daily message load at least within 16 hours.

The minimum CPU requirement is 4 CPU cores. It can process 22 messages every second with a single CPU core. In the case of multiple Media Recorder servers, all servers have to have the same number of cores.

The Recorder Director and the Media Recorder components can be co-located on the same server. In this case, the resources will be shared between them.

The SQL Server has to be sized based on the fully utilized CPU cores of the Media Recorder server(s). The SQL Server needs to have one and a half times more CPU cores than the Media Recorder server(s). On the SQL Server physical disk, every fully utilized Media Recorder CPU cores generate 100 IOPS.

The following table shows the expected incoming message rates at different user numbers:

...

microsoft-365-service-descriptions/microsoft-365-tenantlevel-services-licensing-guidance/microsoft-365-security-compliance-licensing-guidance#microsoft-graph-apis-for-teams-data-loss-prevention-dlp-and-for-teams-export

In addition to the user license requirements above, the owner of the application registration must define the licensing model for the deployment. Model A is required for Security and Compliance (S+C) and general usage scenarios. The licensing model is configurable in the VFC system.

For more information about seeded capacity and consumption fees, see https://docs.microsoft.com/en-us/graph/teams-licenses.

Supported Endpoint / DeviceTypes

All

If you are on a different version, contact your Microsoft representative for more information.

Deploying Microsoft Teams recording and archiving

For more information about deploying Microsoft Teams voice, video and screen share recording, see Microsoft Teams voice, video and screen share recording.

For more information about deploying Microsoft Teams chat and channel archiving, see Microsoft Team chat and channel archiving