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:
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 totrue.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:
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
https://api-eu.vonage.com/v1/meetings/sessions/:session_id/recording
To get all recordings for a session, you can send a
sessions endpoint using the session_id:Example Request
This will return an object of the Vonage::Meetings::Sessions::ListResponse class.
This class defines an each method, allowing you to iterate through the recordings array returned in ther response. For example:
The class also includes Enumerable, so you can call any instance method from that module on the object. For example:
Example Response
Retrieve Individual Recording
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
This will return a generic Vonage::Response object.
The Vonage::Response object de-serializes the returned JSON data into Vonage::Entity objects, and provides getter methods for the top level properties of that JSON data, for example:
For properties in the JSON data where the value is a JSON object, this is itself de-serialized into a Vonage::Entity object, with its own getter methods. For example, the _links getter returns a Vonage::Entity object with a url getter, which itself returns a Vonage::Entity object with a href getter. You can chain these getter method invocations to get to the data you need:
Example Response
Delete A Recording
https://api-eu.vonage.com/v1/meetings/recordings/:recording_id
You can delete a recording with a
recording_id on the recordings endpoint:Example Request
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.