Zoom

AVAILABLE IN VERSION 9.6.13 OR LATER

Overview

The Zoom integration enables you to archive recorded Zoom Meetings and Zoom Phone calls into the system. The recording takes place within the Zoom platform, and the audio and video from completed meetings and calls are downloaded from Zoom and then ingested into the system using the Zoom Meeting and/or Zoom Phone import sources.

Supported features

The Zoom integration provides the following features:

  • Archiving Zoom Meetings and Zoom Phones recordings for configured users
  • Integration with public Zoom APIs: https://marketplace.zoom.us/docs/api-reference/introduction
  • Support for voice, video, and screen & application share modalities
  • Unaltered download and import of media files (MP3, M4A, MP4)
  • Import of meeting and phone call metadata
  • CDR reconciliation with Zoom call/meeting logs to identify not recorded or archived calls
  • Configurable query intervals through import policy schedule
  • Multi-tenant support, the ability to configure any number of Zoom tenants as separate import sources in any environment/tenant
  • Support for forward proxy based configurations

Known limitations and considerations

The Zoom integration has the following known limitations currently:

  • Meetings chat archiving is not supported
  • Webinars are not supported
  • Video files for Meeting recordings might not match the time interval defined by the join and leave events of the recorded users. The Zoom recording process currently starts when the first recorded user joins and ends when the meeting ends. The recording system creates CDRs for each recorded user based on their join/leave events but will link the full video files to these records. Audio files are created individually for each recorded participant (individual recording has to be enabled on the Zoom side) and are not affected by this limitation.
  • The APIs published by Zoom are tenant/account level APIs (not user level), which means that the API response will include information about recordings for all configured users in the tenant. The system filters the response based on the configured users and does not attempt to download recordings for users not configured in the system. When multiple systems are deployed to allow data segregation, this approach introduces some overhead as unnecessary data is downloaded (and discarded).
  • Due to Zoom API rate limits and lack of filtering for specific users, large tenants might unable to use the CDR reconciliation feature for Zoom Meetings, because the process requires to call resource-intensive APIs for every meeting in the tenant.
  • Meetings hosted by external users (users outside of the customer tenant/account) can only be archived with limitations. The participant information is limited to the recorded users in the customer tenant, no external participants or non-recorded internal participants will be stored.
  • Meeting recordings always include an MP4 video file (in addition to the M4A audio file) even if no camera was used or screens sharing was not enabled. The video contains a black screen with the name of the users in the center. When the recorded user is configured for voice-only recording/archiving, the system only imports the M4A audio file. If the recorded user is configured for video and/or screen share recording, the system imports the MP4 file as well and sets the modality to Screen & Application Share (regardless if video and screen share was used).
  • Redundant deployments are supported but multiple servers will run independently and attempt to import the same recordings and multiplicate the Zoom API usage. The system will eventually import only one copy of the same call and meeting. For the same reasons, load balancing is not recommended, while supported.
  • The Zoom Phone API does not support Archiving time for filtering which introduces an overhead in querying the data and the system has to query the same time interval multiple times.
  • The reconciliation process for Zoom Phones only queries records where the recording_id is set. 
  • CDR reconciliation is not supported for breakout rooms.

Version support

Switch Name & Model

Zoom Meetings

Zoom Phone

Supported Versions

Contact Zoom

Supported Endpoint / DeviceTypes

All

Deploying Zoom recording

The following section contains the necessary steps for setting up a Zoom recording infrastructure.

Server sizing

Allocating the appropriate resources to the different servers is crucial. For guidance, see Server sizing and requirements

For storage sizing, see the table below showing the information available for media files created by the Zoom platform:


File FormatCodecSize
Zoom PhoneMP3

MP3 (48 KHz, Mono, VBR)

40-75 Kbps
Zoom Meeting AudioM4A

AAC-LC (32 KHz, Mono, CBR)

128 Kbps
Zoom Meeting Audio + Video + Screen ShareMP4

AAC-LC (32 KHz, Mono, CBR)

H.264 AVC

Audio: 128 Kbps

Video: entirely depends on the screen resolution, the content shared, and the variable bitrate control in Zoom. It is recommended to make test calls with the usual content and length and use it as a baseline for the calculations.


Preparation

Make sure that all the required prerequisites are installed on each server prior to the installation.

Installation

The following articles contain all the steps for installing the various server roles:

Configuration

The system supports both Zoom Meeting and Zoom Phone archiving via the import service framework:

Zoom API rate limits

The Zoom API enforces certain limitations on the number of requests sent by an application. These rate limits can limit the number of meetings or phone calls that are imported or reconciled by the system on a daily basis. When an API limit is reached, the Zoom platform will block any subsequent API request for the API category which exceeded the published rate limit. The system will need to wait until the rate limits are reset (at 00:00 UTC every day).

For more information, see https://marketplace.zoom.us/docs/api-reference/rate-limits.

The following table explains the current rate limits and provides guidance on how to estimate the API usage to avoid reaching the API limits. If you are planning to deploy the integration for a large tenant/account and you believe that the rate limits will be reached, please contact Zoom about further options.


API

Zoom API Limit (Business+)

Usage

Estimation

Phone

/phone/recordings

https://marketplace.zoom.us/docs/api-reference/zoom-api/phone/getphonerecordings

20 req. / secondImportUsed in every policy scheduling, multiple times if call count is high. Safe estimate per policy run: max(Recorded calls since last run / 300; 1) * 4

/phone/call_logs

https://marketplace.zoom.us/docs/api-reference/zoom-api/phone/accountcalllogs

40 req. / second

Daily limit of 60,000 requests/day shared by heavy & resource-intensive APIs.
CDR reconciliationUsed in every policy scheduling, multiple times if call count is high. Safe estimate: max(Total calls since last run / 300; 1) * 4
Meeting

/archive_files

https://marketplace.zoom.us/docs/api-reference/zoom-api/archiving/listarchivedfiles

60 req. / secondImportUsed in every policy scheduling, multiple times if Meeting count is high. Safe estimate per policy run: max(Recorded meetings since last run / 300; 1) * 4

/metrics/meetings/{meetingId}/participants

https://marketplace.zoom.us/docs/api-reference/zoom-api/dashboards/dashboardmeetingparticipants

20 req. / second

Daily limit of 60,000 requests/day shared by heavy & resource-intensive APIs.
Both import and CDR reconciliationImport: Used once per archived meeting on Zoom side, might call multiple times in rare cases, safe estimate: archived meeting * 2

Reconciliation: Used once per all meetings in the whole tenant (not just for recorded meetings), might call multiple times in rare cases, safe estimate: total meeting * 2

/metrics/meetings

https://marketplace.zoom.us/docs/api-reference/zoom-api/dashboards/dashboardmeetings
20 req. / second

Daily limit of 60,000 requests/day shared by heavy & resource-intensive APIs.
CDR reconciliationUsed in every policy scheduling, multiple times if Meeting count is high. Safe estimate per policy run: max(Total meetings since last run / 300; 1) * 4

Types of import that are subject to daily API limit:

  • Zoom Phones:  no
  • Zoom Phones with CDR reconciliation:  yes
  • Zoom Meetings:  yes
  • Zoom Meetings with CDR reconciliation:  yes

Some examples of how much volume of traffic a daily rate limit of 60 000 can safely handle when scheduling the import for every 5 minutes:

  • Zoom Phones: no limit
  • Zoom Phones with CDR reconciliation: 4.5 million calls daily
  • Zoom Meetings: 30 000 meetings daily
  • Zoom Meetings with CDR reconciliation: 29 000 meetings daily
  • Zoom Meetings and Zoom Phones: combined traffic of any amount of daily calls and 30 000 meetings
  • Zoom Meetings and Zoom Phones both with CDR reconciliation: combined traffic of 2.2 million daily calls and 14 500 meeting

Zoom Meeting metadata

The system captures the following metadata specific to Zoom meetings. 

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
FromRecorded User IDStandardYes
From InfoRecorded user display nameStandardYes
ToConferenceStandardYes
To InfoMeeting topicStandardYes
DirectionConferenceStandardYes
Direction (User)OutgoingStandardYes
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 TerminatedStandardNo
Audio CodecAudio codec of the recorded streamsStandardNo
Video codecVideo codec of the recorded streamsStandardNo
Platform Call IDUnique conversation identifier received from the recorded platformStandardYes
Silence RatioRatio of silence in the conversationStandardNo
Talkover RatioTalkover ratio of the conversationStandardNo
Longest SilenceLength of the longest silence present in the conversationStandardNo
User ID / Agent IDRecorded Zoom user IDStandardYes
From DeviceDevice ID of the calling partyStandardNo
To DeviceDevice ID of the called partyStandardNo
Dialed NumberOriginal dialed numberStandardNo
From IPIP address associated with the calling partyStandardNo
To IPIP address associated with the called partyStandardNo
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 PlatformZoom MeetingStandardYes
Conversation Type

Voice, Video, Screen & Application Share

If the recorded user is configured for video and/or screen share recording, the system sets the modality to Screen & Application Share (regardless if video and screen share was used).

StandardYes
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 reconciliationStandardYes
Media LengthLength of the media file related to the conversation in hhh:mm:ss formatStandardNo
Media ErrorShows the media processing errors during recordingStandardNo
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


Zoom Phone metadata

The system captures the following metadata specific to Zoom Phone 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 of the calling partyStandardYes
From InfoDisplay name of the calling partyStandardYes
ToPhone number of the called partyStandardYes
To InfoDisplay name of the called partyStandardYes
ParticipantsName of the participants of the call
Yes
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 TerminatedStandardNo
Audio CodecAudio codec of the recorded streamsStandardNo
Video codecVideo codec of the recorded streamsStandardNo
Platform Call IDUnique conversation identifier received from the recorded platform to correlate multiple call legsStandardYes
Silence RatioRatio of silence in the conversationStandardNo
Talkover RatioTalkover ratio of the conversationStandardNo
Longest SilenceLength of the longest silence present in the conversationStandardNo
User ID / Agent IDRecorded Zoom phone extension numberStandardYes
From DeviceDevice ID of the calling partyStandardNo
To DeviceDevice ID of the called partyStandardNo
Dialed NumberOriginal dialed numberStandardNo
From IPIP address of the recorded endpointStandardNo
To IPIP address of the recorded endpointStandardNo
From Proxy IPIP address of the proxy server associated with the calling partyStandardNo
To Proxy IPIP address of the proxy server associated with the calling partyStandardNo
Source PlatformZoom PhoneStandardYes
Conversation TypeVoiceStandardYes
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 reconciliationStandardYes
Media LengthLength of the media file related to the conversation in hhh: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