Native Microsoft Teams Call Recording Configuration

Requirements

Configuration Overview

To allow the recording of MS Teams users' conversations, you must associate each user to a Recording Policy, in turns connected to an Azure BOT, in turns connected to an Azure Application (App Registrations).

To enable an MS Teams user to leverage Imagicle Call Recording, the following tasks should be accomplished:

  1. Add a custom domain
  2. Add an Azure Application (App Registrations)
  3. Send App Registration and custom domain data to Imagicle team
  4. Imagicle team confirms domain entry creation and returns a webhook URL.
  5. Define an Azure BOT (associated to above app)
  6. Define a Recording Policy (associated to above app)
  7. Associate above Recording Policy to all Call Recording users

Please bear in mind that Silence Suppression is not supported.

Configurations from MS Azure/Entra Web Portal

Custom Domain

Azure App Registration

Client Secret

Authentication

API Permissions

https://login.microsoftonline.com/<tenant-id>/adminconsent?client_id=<application-id>&state=12345&redirect_uri=https://www.imagicle.com

API Authorization

To allow the Imagicle Teams Application to leverage SSO and providing best experience for enduser, some API exposure roles must be set.

  1. Complete the scope name by : Recording.ReadWrite.All (2) 
  2. Change value of who can consent to : Admins and Users (3) 
  3. Change Admin consent display name and description to a value you want explaining the goal of the scope (4 and 5) 
  4. Validate by clicking on "Add scope" button (6)

Azure BOT

Connect Bot to MS Teams Channel

Configurations from MS Teams PowerShell

Recording Policy Creation

New-CsOnlineApplicationInstance -UserPrincipalName <imagicle_call_recording@tenant.com> -DisplayName "Imagicle Call Recording" -ApplicationId <app-id>

Sync-CsOnlineApplicationInstance -ObjectId <object-id> -ApplicationId <app-id>
New-CsTeamsComplianceRecordingPolicy -Identity <Recording-policy-imagicle>
Set-CsTeamsComplianceRecordingPolicy -Identity <Recording-policy-imagicle> -Description "Imagicle Recorder CRP" -Enabled $true -ComplianceRecordingApplications @(New-CsTeamsComplianceRecordingApplication -Parent <Recording-policy-imagicle> -Id <object-id> -RequiredBeforeMeetingJoin 0 -RequiredBeforeCallEstablishment 0 -RequiredDuringMeeting 0 -RequiredDuringCall 0)
Get-CsTeamsComplianceRecordingPolicy Recording-policy-imagicle

Grant-CsTeamsComplianceRecordingPolicy -Identity <user@tenant.com> -PolicyName recording-policy-imagicle
Get-CsOnlineUser <user@tenant.com> | ft sipaddress, tenantid, TeamsComplianceRecordingPolicy

Pay attention: if you need to create a valid Recording Policy to be used for both Imagicle Call Recording AND Attendant Console, please refer to this KB article.

Configurations from Imagicle UC Cloud Suite web portal

Actual Native Call Recording Enablement in Imagicle Cloud

At the end of whole above procedure, please collect the following data:

You can send above data to Imagicle team, who is going to establish the connection between MS Teams Cloud and Imagicle Cloud.

Troubleshooting

If calls are not recorded, likely something went wrong in BOT configuration. You can easily test proper BOT association to MS Teams user by directly calling it from MS Teams client itself. If BOT doesn't answer the call, it means BOT is misconfigured.

To call BOT, just select "Calls" tab in MS Teams client and search for it by App's “Display name”, as shown in below screenshot:

If BOT correctly answers the call and calls are still not recorded, then please double check Recording Policy and make sure it is correctly associated to the user.

Other useful commands

Get-CsOnlineUser -Filter {TeamsComplianceRecordingPolicy -eq "Recording-policy-imagicle"} | Select UserPrincipalName 
Grant-CsTeamsComplianceRecordingPolicy -Identity user@tenant.com -PolicyName $null



Article ID: 865
Last updated: 12 Apr, 2024
Revision: 27
Imagicle AppSuite for MS Teams -> Call Recording -> Administration Guide -> Native Microsoft Teams Call Recording Configuration
https://kbp.imagicle.com/kb/entry/865/