Some organizations using Microsoft Teams in telephone/voice scenarios need the ability to record every call. Microsoft has opened up the ability to address this scenario by giving Microsoft Teams Administrators the ability to assign a policy to users that adds a Microsoft Teams Calling Bot to every call they take. In short, the PowerShell assigned policy lets you define an App ID that is invited to the calls the target user makes. 3rd Party ISVs can build these bots that are invited to the calls.

Create & Assign Compliance Recording Policy to User(s)

Create Application Instance

  • New-CsOnlineApplicationInstance -UserPrincipalName <upn@contoso.com> -DisplayName <displayName> -ApplicationId <your_botappId>
  • Sync-CsOnlineApplicationInstance -ObjectId <objectId>
Note: <Your_botappId> will be an ID your Compliance Recording vendor will give you, unless you are a developer making your own.


Create a Compliance Recording Policy: Requires the application instance ID created above. Continue your PowerShell session and run the following commands.

  • New-CsTeamsComplianceRecordingPolicy -Tenant <tenantId> -Enabled $true -Description “Test policy created by <yourName>” <policyIdentity>
  • Set-CsTeamsComplianceRecordingPolicy -Tenant <tenantId> -Identity <policyIdentity> -ComplianceRecordingApplications ` @(New-CsTeamsComplianceRecordingApplication -Tenant <tenantId> -Parent <policyIdentity> -Id <objectId>)
After 30-60 seconds, the policy should show up. To verify your policy was created correctly:
  • Get-CsTeamsComplianceRecordingPolicy <policyIdentity>
Assign the Compliance Recording Policy
Requires the policy identity created above. Continue your PowerShell session and run the following commands.
  • Grant-CsTeamsComplianceRecordingPolicy -Identity <userUnderCompliance@contoso.com> -PolicyName <policyIdentity> -Tenant <tenantId>

Compliance Recording Policy Settings

Priority
RequiredBeforeMeetingJoin
RequiredBeforeCallEstablishment
RequiredDuringMeeting
RequiredDuringCall
ConcurrentInvitationCount

Some Other Notes & Discoveries

Here are a few other interesting facts about the Compliance Recording Bot functionality:

  • This ability to add a bot to every call is not limited to “call recording” functionality and it could be used for other functionality an organization wants to apply to call calls of a set of users.
  • The bot that is invited into the call does not show up on the roster of the user in the Teams client. If a call is recording the ISV will utilize API functionality to display a banner message in the Teams conversation window “Recording Started”.
  • Is there a notification for PSTN callers? As far as I can tell there is no audible notification to PSTN callers that a compliance recording bot is in a call. This would presumably be the responsibility of the organization via an auto attendant or 3rd party IVR.
  • Another note: bots more generally do not currently show up in reports in the Teams Admin Panel. (You can ask Microsoft to mark your tenant so they do, but by default they do not)
  • Since its server-side, the bot works with all clients: Desktop/Web, Mobile, Teams IP Phones & Teams Rooms.
  • Only available for Office 365 Phone System users (via E5 or E3 addon)
  • When is a compliance recording bot invited to a conversation?
    • It seems like when there is a media call: audio call, PSTN Call, joining a meeting or a chat with desk share going.

Landis Contact Center for Microsoft Teams Call Recording

We are glad that Microsoft is providing this mechanism to hook into calls as we are utilizing the compliance recording bot in our native Microsoft Teams contact center to do customer service  callrecordings and sentiment analysis. Below is a demonstration of how sentiment analysis looks on a live call in the Landis Contact Center for Microsoft Teams.

If there is anything more you know about Compliance Recording bots, I’d be glad to hear it, so comment.

Source:

Github
https://github.com/microsoftgraph/microsoft-graph-comms-samples/tree/master/Samples/BetaSamples/LocalMediaSamples/ComplianceRecordingBot

Microsoft Ignite 2019 VCE40
https://myignite.techcommunity.microsoft.com/sessions/83184?source=sessions