Cloud recording
Cloud recording is a feature that allows you to record participants' audio and video in both direct calls and group call rooms. For group calls only, you can download the recorded file from Sendbird Dashboard or copy the file from Sendbird's S3 storage to your S3 storage in the same region. You can also directly save the cloud recordings to your S3 storage whenever they're created.
To use this feature, you need to activate the feature on the dashboard first. For a detailed guide, refer to Cloud recording on the Group Call page of each SDK platform.
Note: Downloading recorded files is only available for group calls. If the recorded file is saved directly to your own S3 storage, it can't be downloaded or copied from the Sendbird server.
Cloud recording status
Status | Description |
---|---|
recording | Indicates that the recording of a direct call or group call is taking place. |
uploading | Indicates that the recording file is being uploaded to the cloud. |
completed | Indicates that the recording was successfully completed and ready for download from Sendbird Dashboard. |
failed | Indicates that the recording has encountered an error and has not completed successfully. |
Resource representation
The following tables show the list of properties in a cloud recording resource.
Property name | Type | Description |
---|---|---|
recording_id | string | The unique ID of the cloud recording file. |
target_event_type | string | The type of event to record. Valid values are |
room_id | string | A unique ID for the group call room. This property is only used when the value of |
call_id | string | A unique ID for the direct call. This property is only used when the value of |
status | string | The status of cloud recording. Valid values are |
started_at | long | The timestamp of when the recording was started, in Unix milliseconds. |
stopped_at | long | The timestamp of when the recording was stopped, in Unix milliseconds. |
duration | int | The total length of recording, measured in milliseconds. |
byte_size | int | The total size of recording file, measured in byte. |
media_type | string | The type of media that is recorded. Valid values are |
Actions
- API endpoints are relative to the base URL allocated to your application. In this page, the
/cloud-recordings
endpoint refers tohttps://api-{application_id}.calls.sendbird.com/v1/cloud-recordings
.
Note: To get your application ID, sign in to your dashboard, go to the Settings > Application > General, and then check the Application ID.
- It's recommended that the parameter values such as
{recording_id}
in API URLs be URL encoded.
List of actions
Action | HTTP request |
---|---|
|
Copy cloud recording
The API to copy a recording file to your AWS S3 storage is available. When you call this API, the file you would like to transfer will be copied to an AWS S3 storage you provide which must be in the same AWS region as your Sendbird application.
Only the files that are in Completed
status can be copied to your storage. You can check the file status on Group calls on Sendbird Dashboard.
Note: When a recording file is uploaded to the storage you specified, the total size of the file will be automatically split into 5MB per request for optimal data transfer. Charges incur per number of requests against the specified storage as listed on the Requests & data retrievals section.
Using AWS Storage
Before calling the following API to copy a recording file to your AWS storage, you need to create IAM policies in your AWS account to access the storage by setting s3:PutObject
and s3:ListBucket
as shown below. If you specify a storage without attaching the two permissions, an error will return.
To securely copy the file to the S3 storage, it is recommended that the AWS account only allows these two permissions. For a detailed guide, visit the Creating IAM policies (console) page.
HTTP request
Parameters
The following table lists the parameters that this action supports.
Parameters
Required | Type | Description |
---|---|---|
access_key | string | Specifies the access key of the AWS account to which you would like to copy the cloud recording file. |
secret_key | string | Specifies the secret key of the AWS account to which you would like to copy the cloud recording file. |
bucket | string | Specifies the name of the bucket to which you would like to copy the cloud recording file. |
region | string | Specifies the AWS region that the bucket is located. The value must match the region of the Sendbird application the recording file is in. Acceptable values are: |
Optional | Type | Description |
---|---|---|
recording_file_directory | string | Specifies the directory of the bucket. |
Response
If successful, this action returns information of a recording file that has been copied to your AWS storage in the response body.
List of response properties
Property name | Type | Description |
---|---|---|
recording_id | string | The unique ID of the cloud recording file. |
bucket | string | The name of the bucket to which the cloud recording file has been copied. |
key | string | The file directory, timestamp in |
Upload cloud recording
You can uploade a recorded file of a direct call or group call directly to your AWS S3 storage. Whenever a new recording file is created, it's automatically sent to the specified S3 bucket on your AWS account. Since Sendbird's storage doesn't store any recorded files, you can manage the files more securely and safely in your own storage.
Configure IAM role for cross account access
Cross account access allows you to grant permission for other users and services of another AWS account to use resources in your AWS account. This feature allows the Sendbird server to upload files directly to your S3 storage, which ensures seamless integration between accounts without compromising security.
To gain cross account access, you must create an IAM role with appropriate permissions. The IAM role needs to have the following actions in the target S3 storage in order to upload the recorded files.
Granting external ID makes it easy to control the conditions in which cross account access is permitted. This provides better security protection as described in the external ID guide.