Skip to main content
CallTower Solutions Center

MS Teams Atmos Call Recording - Configure Office 365 for Compliance Recording

UPDATE 02/07/2023:

The below instructions have been deprecated. Please login to your Atmos Portal and download the Teams' installer and follow the instructions outlined in the following link:
    How to use the CallCabinet for Microsoft Teams Installer | Call Recording

You can download the installer script from the Call Cabinet portal by browsing to Settings > Site Management tab and clicking on "Provision Microsoft Teams":
    CallCabinet Atmos Teams Installer

Once you've followed the above instructions, you can use the following guide to setup which users need to be recorded:
    How to set up Microsoft Teams users for CallCabinet | Call Recording


Legacy Configuration

The below documentation is for informational purposes if you are configured the legacy way.


This document will take you through the installation and set up instructions to both install and configure the Atmos Teams recording policy and bot


  • Access to PowerShell ISE in Admin mode
  • Microsoft Teams Powershell 5.1 or higher.
  • Teams Admin (or Global Admin) permissions to your Microsoft 365 Tenant.
  • A Microsoft Azure account with an active subscription is required but it is a free service. Microsoft will ask for you to enter your credit card information when creating a new Azure subscription. However, the bot will be created using the free tier. Recordings are stored on the CallCabinets service and not within your Azure environment.

Create the Atmos Teams Bot

Note: because this installation takes place in a browser, some of the page elements can be obscured if the browser window is too small.. We recommend you maximize your browser window size before proceeding.

Register the bot Channel.

Log into Azure ( using the same domain \ admin account that you use to administer.

Teams (Note: the bot must reside within the same domain)

Search for and select Bot Services, then Click "+ Create":


Scroll to the bottom of the list and find "Azure Bot" (Note: click "Load More" if it doesn't appear)


Click on "Create"


Fill out the form with the following values:

  • Bot Handle: AtmosTeamsBot<<Customer Name>>
  • Select your "Subscription" and "Resource group" or "Create new" resource group. (*NOTE: your subscription may have a different name)
  • Change the Pricing Tier to "Free" and the Type of App to "Single Tenant"
  • Select "Create New Microsoft App ID". Then Click "Review + Create"


Make sure the validation passes and click "Create"


Once created, go to the resource then Channels (deprecated), and Connect to the Teams channel


Select Channels, then Click on the Teams Channel

Click "Save" and accept the "Terms and Conditions"

Click "Calling," then select "Enable Calling," and enter a webhook for calling.


Enter the appropriate regional webhook URL and click "Save," and accept the terms of use.

Click "Configuration" from the left menu.


Copy the "Microsoft App ID" to a separate document; you will need this later during the setup process.

Click "Manage" (in blue next to the Microsoft App ID, above the actual App ID)

Add a "New Client Secret"


Click on "New client secret." give it a description, set it to 24 months expire, and click add:


Copy the Secret Value to a separate document for later use. The secret value will be needed by the Atmos Teams Recorder.

Note: The secret key value will not be available after saving, so it MUST be saved to an external document.

Click "Authentication" on the left-hand menu


Click "Add a platform"


Select "Web"


Enter "" as the Redirect URI and Click "Configure"

Configure API Permissions


Select API Permissions, then click on "Add a permission" and Select "Microsoft Graph"


Select Application Permissions. This will expand the permissions menu.


Open the "CallRecords" permission and click the checkbox:


Open the "Calls" permission and click on the selected checkboxes:clipboard_edb53436083af527255a489b04b6ae49d.png

Open the "OnlineMeetings" permission and click on the checkboxes:clipboard_efea2344695f8be829a9add3c6de6913c.png

Open the "User" permissions, then click the selected checkbox: clipboard_e074b46e27a8a098ebcccad13b4da8a30.png

Click "Add permissions" to add the permissions.


Ensure the API/Permission names match the previous steps. then click "Grant admin consent for ....". You will be prompted to confirm the grant of admin consent. Click Yes. It may be necessary to refresh your screen to update the Microsoft Graph Status column.


Grant Admin Consent, In order to grant admin consent, you will need to construct the admin consent URL. It will help you to have a simple text application like Notepad open for copying and pasting the text strings involved in the following steps. When you're ready to continue:

Go to the Azure Active Directory where the bot was created and copy the "Tenant ID"

Construct the following URL: Directory (tenant)ID/adminconsent?client_id=Insert Application (client) ID&state=12345&redirect_uri=


Copy the URL into a web browser and grant permissions using an admin account on the tenant.


Click Accept

Setup the Atmos Teams Application and Recording Policy

In Azure Active Directory, go to Groups and create a Recording group, "Atmos Teams Recording"


Open the group and Make a note of the Object ID for the Group.


run the following PowerShell after replacing the key values at the start of the script

#Get Connected to Microsoft Teams PowerShell
Install-Module MicrosoftTeams
Import-Module MicrosoftTeams

### New Atmos Bot + Policies
### Important please update the following values for your environment.

# the application ID for the bot from azure subscription
$applicationid = "<< Paste Application ID Here >>" 
# Group ID for assigning recording policy.
$securitygroupid = "<< Paste Security Group Object ID Here >>" 
# your primary domain for the bot (i.e.
$domain = "<< Your Domain Name Here >>" 
# Bot Username
$botname = "atmosteamsbot" 
# Bot Display Name
$botdisplayname = "Atmos Bot App" 
# Recording Policy Policy Name
$policyname = "AtmosTeamsRecordingPolicy" 

# Create Atmos Bot
New-CsOnlineApplicationInstance `
    -UserPrincipalName "$botname@$domain" `
    -DisplayName $botdisplayname `
    -ApplicationId $applicationid

$appinstance = Get-CsOnlineApplicationInstance "$botname@$domain"
Start-Sleep -Seconds 15
Sync-CsOnlineApplicationInstance -ObjectId $appinstance.ObjectId

# Create Compliance Recording Policy on Tenant.
New-CsTeamsComplianceRecordingPolicy -Enabled $true `
    -Description $policyname `
    -Identity $policyname
Start-Sleep -Seconds 15

Set-CsTeamsComplianceRecordingPolicy `
    -Identity $policyname `
    -ComplianceRecordingApplications @(New-CsTeamsComplianceRecordingApplication `
    -Parent $policyname -id $appinstance.ObjectId)
Start-Sleep -Seconds 15

Set-CsTeamsComplianceRecordingApplication `
    -Identity "Tag:AtmosTeamsRecordingPolicy/$($appinstance.ObjectId)" `
    -RequiredBeforeCallEstablishment $false `
    -RequiredDuringCall $false `
    -RequiredBeforeMeetingJoin $false `
    -RequiredDuringMeeting $false
Start-Sleep -Seconds 15

# Assign Compliance Policy to Security Group
New-CsGroupPolicyAssignment `
    -GroupId $securitygroupid `
    -PolicyType TeamsComplianceRecordingPolicy `
    -PolicyName $policyname -Rank 1


If you want to disable the audio notification for calls run this command:

Set-CsTeamsComplianceRecordingPolicy -Idenity "AtmosTeamsRecordingPolicy" -DisableComplianceRecordingAudioNotificationForCalls $true

Final Steps

Send an email to your CallTower IPM with the following information:

  • The Bot Name (Bot handle)
  • The Bot Microsoft App Id       
  • The Client Secret (secret key)
  • The Directory Tenant ID
  • Customer Name (as shown on the CallCabinet activation email)
  • Customer ID (as shown on the CallCabinet activation email)
  • Site name (of your initial site as shown on the CallCabinet activation email)
  • Site ID (as shown on the CallCabinet activation email)
  • Webhook used in the Register the Bot Channel section above

Add Users to the group and begin testing once you get confirmation that the recording setup is completed.