Microsoft Teams
Overview
Microsoft Teams recording features
- Voice, video and screen/application share recording
- Integration with the official Teams Compliance Recording API
- Bot based integration, where the Teams platform is able to automatically invite the recorder bot into P2P calls or meetings for the configured users
- Fail-close configuration option (in case of recorder failure, the recorded user cannot join the call or )
- Supports always-on, selective and on-demand recording
- Supports all call scenarios where the recorded user is a participant
- Supports all type of Teams endpoints and devices
- Built-in announcement and notification (provided by the Teams platform)
- Support for load balancing and failover
- Support for Azure cloud and hybrid on-prem deployments
Version support
Switch Name & Model | Microsoft Teams |
---|---|
Supported Microsoft Teams Versions | Microsoft is currently revising subscription/licensing requirements for the APIs used by the integration |
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
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:
- Azure Compute Unit (ACU) should be 200 or higher and 1:1 ratio for vCPU:Core
https://docs.microsoft.com/en-us/azure/virtual-machines/acu
- We recommend using the Dv2 series virtual machines, Standard_D3_v2 or above
https://docs.microsoft.com/en-us/azure/virtual-machines/dv2-dsv2-series#dv2-series
- 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) has 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:
Modality | per vCPU w 60% avg. load | per vCPU w 80% avg. load | Notes |
---|---|---|---|
Voice | 50 | 65 | - |
Voice and Screen & Application Share Up to x1 1080p stream / call | 30 | 40 | The total number of video streams (including both video and screen sharing streams) per virtual machine cannot exceed 100 due to Microsoft SDK limitation. |
Voice and Video Up to x4 360p video streams / call | 15 | 18 |
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.
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 more information, see:
Preparation
The Microsoft Teams integration requires additional prerequisites and configuration on Azure and O365, contact support, 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 step for installing the various server roles:
- Installing a Verba Single Server solution
- Installing a Verba Media Repository
- Installing a Verba Recording Server
Configuration
For the configuration guide, see Configuring Microsoft Teams Recording.
Microsoft Teams metadata
The system captures the following metadata specific to Microsoft Teams recordings.
Metadata Field | Description | Template | Available |
---|---|---|---|
Start Date | Start date of the conversation | Standard | Yes |
Start Time | Start time on the conversation | Standard | Yes |
End Date | End date of the conversation | Standard | Yes |
End Time | End time of the conversation | Standard | Yes |
Duration | Length of the conversation | Standard | Yes |
User | Name of the recorded user | Standard | Yes |
From | Phone number, Button name, User name | Standard | Yes |
From Info | User / contact name | Standard | Yes |
To | Phone number, Button name, User name | Standard | Yes |
To Info | User / contact name | Standard | Yes |
Direction | Direction of the call from the system perspective, requires configuring internal number/domain patterns | Standard | Yes |
Direction (User) | Direction of the call from the recorded user perspective | Standard | Yes |
From (Verba) | Name of the Verba user associated with the calling party | Standard | Yes |
To (Verba) | Name of the Verba user associated with the called party | Standard | Yes |
Location | Hostname of the recording server | Standard | Yes |
End Cause | Normal, Hold, Transfer, Conference, Device Change, From Terminated, To Terminated | Standard | Yes |
Audio Codec | Audio codec of the recorded streams | Standard | Yes |
Video codec | Video codec of the recorded streams | Standard | Yes |
Platform Call ID | Unique conversation identifier received from the recorded platform | Standard | Yes |
Silence Ratio | Ratio of silence in the conversation | Standard | Yes |
Talkover Ratio | Talkover ratio of the conversation | Standard | Yes |
Longest Silence | Length of the longest silence present in the conversation | Standard | Yes |
User ID / Agent ID | Azure AD Object ID for the recorded user | Standard | Yes |
From Device | Device ID of the calling party | Standard | No |
To Device | Device ID of the called party | Standard | No |
Dialed Number | Original dialed number | Standard | No |
From IP | IP address of the recording bot | Standard | Yes |
To IP | IP address of the recording bot | Standard | Yes |
From Proxy IP | IP address of the proxy server associated with the caller party | Standard | No |
To Proxy IP | IP address of the proxy server associated with the called party | Standard | No |
Source Platform | Microsoft Teams | Standard | Yes |
Conversation Type | Voice, Video, Screen Share | Standard | Yes |
Forward Reason | Forward reason for the conversation (e.g. forwarded, transferred, team call, delegated, etc.) | Standard | No |
Recording failed | Indicates if the recording has failed and the metadata was imported during CDR reconciliation | Standard | No |
Media Length | Length of the media file related to the conversation in hhh:mm:ss format | Standard | Yes |
Media Error | Shows the media processing errors during recording | Standard | Yes |
Voice Quality | Overall voice quality check score for the conversation | Standard | Yes |
Record Type | Standard | Standard | Yes |
2N Source | In case of duplicate (2N) recording, records are marked as primary or secondary | Standard | No |