Microsoft Teams voice, video and screen share recording

Deploying Microsoft Teams voice, video, and screen share recording

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

Server sizing

According to 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 limitations 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 maximum number of simultaneous calls or meetings supported for Microsoft Teams recording on the specified Azure VM server configurations:

Recording scenarioModality

Standard_D4ds_v4

vCPUs: 4

Memory: 16 GiB

Standard_D8ds_v4

vCPUs: 8

Memory: 32 GiB

Standard_D16ds_v4

vCPUs: 16

Memory: 64 GiB

Peer-to-peer calls *Audio only100 calls250 calls250 calls
Audio + video40 calls, both participants with video on70 calls, both participants with video on70 calls, both participants with video on
Audio + screen70 callsN/AN/A
Meetings without bot grouping **Audio only***1 meeting with 40 participants1 meeting with 40 participants1 meeting with 40 participants
Audio + video****1 meeting with 35 participants, 4 participants with video on1 meeting with 35 participants, 4 participants with video on1 meeting with 35 participants, 4 participants with video on
Audio + video + screen****1 meeting with 30 participants, 4 participants with video on1 meeting with 30 participants, 4 participants with video on1 meeting with 30 participants, 4 participants with video on
Audio + video + separate screen recording****1 meeting with 30 participants, 4 participants with video on1 meeting with 30 participants, 4 participants with video on1 meeting with 30 participants, 4 participants with video on
Audio + Large Gallery View (LGV)1 meeting with 30 participants1 meeting with 30 participants1 meeting with 30 participants
Meetings with bot grouping**Audio only***1 meeting with 55 participants1 meeting with 55 participants1 meeting with 55 participants
Audio + video****1 meeting with 55 participants, 4 participants with video on1 meeting with 55 participants, 4 participants with video on1 meeting with 55 participants, 4 participants with video on
Audio + video + screen****1 meeting with 50 participants, 4 participants with video on1 meeting with 55 participants, 4 participants with video on1 meeting with 55 participants, 4 participants with video on
Audio + video + separate screen recording****1 meeting with 50 participants, 4 participants with video on1 meeting with 55 participants, 4 participants with video on1 meeting with 55 participants, 4 participants with video on
Audio + Large Gallery View (LGV)1 meeting with 55 participants1 meeting with 55 participants1 meeting with 55 participants

* In peer-to-peer scenarios, calls were established sequentially in one second each, but continued to run simultaneously.

** All users joined the meetings in a 10-second period, and the meetings lasted 2 minutes.

*** Enabling encryption does not impact recording performance.

**** The number of recorded video channels in meetings is specified by the Number of Recorded Video Participants server configuration setting. The default value is 4 participants. Increase the value of this parameter with caution, as it impacts recording performance.

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.

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

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.

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.

Metadata Field

Description

Template

Available

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 IDMicrosoft Entra (formerly Azure 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 SubjectThe subject of the recorded meetingMicrosoft TeamsYes
Meeting Organizer IDMicrosoft Entra (formerly Azure 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 TeamsYes