Recording Management

This guide will show you how to manage the recordings of your sessions using the Meetings API.

Enabling Recording

There are two ways to enable recording for a meeting room. You can either enable recording in the UI to allow participants to start / stop recording, or set the meeting to automatically record. You can also configure recording to only record the owner of a room and any screen sharing during the meeting.

Allow participants to start recording using the meeting UI

First, you can enable the recording option in the UI of a meeting using is_recording_available. This can be enabled for both instant and long term rooms - for example, this request will create an instant room called 'New Meeting Room' that allows participants of a session to turn on recording:

curl -X POST 'https://api-eu.vonage.com/v1/meetings/rooms' \ -H 'Authorization: Bearer '$JWT \ -H 'content-type: application/json' \ -d '{ "display_name": "New Meeting Room", "available_features": { "is_recording_available": true } }'

Pre-configured recording options

The recording_options object can be used to set enable / disable these options:

  • auto_record: Automatically record all sessions in this room. Recording cannot be stopped when this is set to true.
  • record_only_owner: Record only the owner screen or any share screen of the video.

For example, this will create a long term room that is automatically recorded, but only the room owner and any shared screens will be shown in the recording:

curl -X POST 'https://api-eu.vonage.com/v1/meetings/rooms' \ -H 'Authorization: Bearer '$JWT \ -H 'Content-Type: application/json' \ -d '{ "display_name": "New Meeting Room", "type": "long_term", "expires_at": "'$EXPIRY_DATE'", "recording_options": { "auto_record": true, "record_only_owner": true } }'

Recording Callbacks

There are three callbacks you will receive when recording a session using the Meetings API. You should take note of the recording_id and session_id, as these will be used to retrieve and manage your recordings later.

Recording Started

A notification that recording has started for a session.

Recording Ended

A notification that recording has ended for a session.

Recording Uploaded

A notification that a recording of a session has been uploaded, and can be accessed via the url.

Retrieving Recordings

Recordings are associated with the session in which they occurred. To retrieve or manage recordings you'll need the session_id, which can be found in the callbacks, or the recording_id, which can be retrieved using the session ID or can also be found in the callbacks.

Note: recordings are retained for 30 days.

Retrieve All Recordings From A Session

GET
: https://api-eu.vonage.com/v1/meetings/sessions/:session_id/recording

To get all recordings for a session, you can send a

GET
request to the sessions endpoint using the session_id:

Example Request

curl -X GET 'https://api-eu.vonage.com/v1/meetings/sessions/2_MX40NjMwODczMn5-MTU3NTgyODEwNzQ2MH5OZDJrVmdBRUNDbG5MUzNqNX20yQ1Z-fg/recordings' \-H 'Authorization: Bearer '$JWT

Example Response

Retrieve Individual Recording

GET
: https://api-eu.vonage.com/v1/meetings/recordings/:recording_id

Once you have the recording_id, you can use the recordings endpoint to retrieve a recording:

Example Request

curl -X GET 'https://api-eu.vonage.com/v1/meetings/recordings/9f6fe8ae-3458-4a72-b532-8276d5533e97' \-H 'Authorization: Bearer '$JWT

Example Response

Delete A Recording

DELETE
: https://api-eu.vonage.com/v1/meetings/recordings/:recording_id

You can delete a recording with a

DELETE
action using the recording_id on the recordings endpoint:

Example Request

curl -X DELETE 'https://api-eu.vonage.com/v1/meetings/recordings/9f6fe8ae-3458-4a72-b532-8276d5533e97'-H 'Authorization: Bearer '$JWT

Recording Encryption

All recordings are stored in Amazon S3 and are automatically encrypted on upload as outlined in the Amazon documentation:

Amazon S3 now applies server-side encryption with Amazon S3 managed keys (SSE-S3) as the base level of encryption for every bucket in Amazon S3. Starting January 5, 2023, all new object uploads to Amazon S3 are automatically encrypted at no additional cost and with no impact on performance. The automatic encryption status for S3 bucket default encryption configuration and for new object uploads is available in AWS CloudTrail logs, S3 Inventory, S3 Storage Lens, the Amazon S3 console, and as an additional Amazon S3 API response header in the AWS Command Line Interface and AWS SDKs. For more information, see Default encryption FAQ.