Zoom Meeting and Phone


Zoom Meeting and Phone recordings can be archived into the system, using the import service framework.

For general information about Zoom recording and archiving, see Zoom.

Configure Zoom compliance archiving

Enable and configure compliance recording for Zoom users

Refer to the Zoom documentation to enable and configure meeting and phone call archiving.

For more information on meeting archiving setup, see https://support.zoom.us/hc/en-us/articles/4405656451213

Create a Zoom application

In order to allow access to the Zoom APIs, an application has to be created on the Zoom portal. The system is integrated using either the JWT based or the Server-to-server OAuth 2.0 based authentication option which is suitable for the server-to-server type of integrations.

Server-to-server OAuth 2.0 app

For information on creating a Server-to-server OAuth 2.0 app, refer to https://marketplace.zoom.us/docs/guides/build/server-to-server-oauth-app/
The created application should have the following roles:

  • recording:read:admin
  • dashboard_meetings:read:admin
  • dashboard_webinars:read:admin
  • phone:read:admin
  • phone_call_log:read:admin
  • phone_recording:read:admin

(As of October, 2022, a know bug in Zoom APIs invalidates every Server-to-server OAuth tokens upon requesting a new one, so a single OAuth app can ONLY be used by one server. If you plan to use multiple servers, create an app for each of them!)

Make a note of the Account ID, Client ID, Client secret of your app, because these will be required for the import source configuration.

Configure Zoom import

The configuration includes the following steps:

  • Enabling the Import Service on a server (if not enabled before)
  • Creating a Zoom Meeting and/or Zoom Phone import source(s)
  • Creating the corresponding import policies where CDR reconciliation can be optionally enabled
  • Adding users and recorded extensions for Zoom users
  • Optionally change the Zoom specific settings for the Import Service

The system includes 2 separate import sources for Zoom:

  • Zoom Meeting: imports Zoom Meeting archives and optionally reconciles Zoom meeting logs with recordings
  • Zoom Phone: imports Zoom Phone archives and optionally reconciles Zoom call logs with recordings

If you want to archive both Zoom Meeting and Zoom Phone, both import sources have to be configured separately.

It is not recommended to enable the import source on more than 1 server because the 2 servers will separately query the same data using the Zoom APIs. The system will eventually import only one copy of the same call and meeting, but the API usage will be doubled.

Enabling the Verba Import Service

Step 1 - In the Verba Web Interface go to System \ Servers

Step 2 - Select the server from the list where you want to enable the Import Service which will integrate with the Zoom APIs. The Import Service can be enabled on the following Server roles: Recording Server, Media Repository, Media Repository and Recording Server. 

Step 3 - Activate the Verba Import Service by clicking on the  icon.

Step 4 - Click on the Service Control tab.

Step 5 - Start the Verba Import Service by clicking on the  icon.

Creating a Zoom Meeting or Zoom Phone import source

Follow the steps below to create a new Verba Import source for Zoom: 

Step 1 - Open the Verba Web interface then select Data / Import Sources from the top menu

Step 2 - Click on the Add New Import Source link on the top right

Step 3 - Complete the configuration according to the requirements in the following table:

API KeyThe Zoom API key associated with the Zoom application registered earlier
API SecretThe Zoom API secret associated with your Zoom application registered earlier
Forward Proxy Address

IP of the forward proxy server. If left empty, no attempt is made for establishing a forward proxy connection.

Forward Proxy PortPort for the forward proxy connection.
Forward Proxy UserUsername for authenticating with the Forward Proxy. If left empty, authentication is omitted.
Forward Proxy PasswordPassword for authenticating with the Forward Proxy.
API AddressThe base URL of the Zoom API

TLS Certificate File / Thumbprint

Specify the certificate file / certificate thumbprint that is being used for the Zoom API connection. If left empty then the Verba default certificate will be used.

TLS Key File

Specify the file where the certificate key is stored if not in the windows certificate store.

TLS Key Password

Specify the password for the file that contains the certificate keys.

TLS Trust List

Specify the list of certificates that Verba trusts from a 3rd-party connection. Available options:

  • .pem file with a list of certificates
  • comma separated certificate thumbprints
  • comma separated CA thumbprints

Step 4 - Click Save to save the settings

Creating an import policy

Once the import sources are created, a  new import policy has to be created. For more information, refer to Data Import policy.

Optionally, CDR reconciliation can be enabled in the policy. For more information, see CDR reconciliation.

Adding users for archiving

In order to enable Zoom archiving create the users and the extensions on the Verba side. This can also be done via Active Directory Synchronization

  • Zoom Phone: to control which user recordings have to be downloaded and archived, and to match the imported conversations to an extension (and to a user account) you need to add the Zoom user phone extension numbers (not the Zoom user ID) as extensions with type User / Agent ID.
  • Zoom Meeting: to control which user recordings have to be downloaded and archived, and to match the imported conversations to an extension (and to a user account) you need to add the Zoom user ID as extensions with type User / Agent ID.

Changing the Zoom import specific settings for the Import Service

To change the server/service level settings from the Zoom integration, follow the steps below:

Step 1 - In the Verba Web Interface go to System / Servers

Step 2 - Select the server from the list where you have the Import Service enabled for the Zoom integration.

Step 3 - Expand the Import / Zoom Phone or Import / Zoom Meeting node.

Step 4 - Change the settings based on the description below:

Give Up Timeout In Minutes

The number of minutes before finally abandoning a repeatedly failing import.

Default value: 10080 → a week

Maximum Number Of Entries To Import

The maximum number of meetings/phone calls to try and import from the Zoom API before throttling them in one import cycle. This will limit the maximal memory usage of the Import Source. This is not a hard limit, as sometimes to preserve the integrity of the imported data the application has to overstep it. If this has to happen it will be only done to the degree it is absolutely necessary.

Maximum Page Size

The page_size argument for the Zoom API requests. The value should be between 30-100. It defines how many results should be returned per API request. More should be desirable as it reduces the number of API calls that are to be made.

Default value: 100.

Working Directory

The working directory where intermediate files will be stored. These describe where the files will be downloaded as well. The folders will be cleaned regularly, preventing their growth.

Default value: [verba install directory]\work\cdrimport\zoom\phone

Worker Thread Count

How many worker threads should be used to concurrently download media and import them. An exceedingly big number can be given, but that will be overridden if the underlying machine does not support the necessary number of cores. This way an invalid config cannot starve the system of resources.

Default value: 4

Step 5 - Save the changes by clicking on the  icon.

Step 6 - A notification banner will appear on the top. Click on the click here link, so you will be redirected to the Configuration Tasks tab. Click on the Execute button in order to execute the changes.