Conference calls recording is a key feature across video conferencing services, and VidyoPlaform provides a full set of API that will allow you to integrate any recording scenario into your solution.
Recording capabilities are provided by server component called VidyoReplay. Your VidyoPlatform tenant should contain VidyoReplay component configured in advance in order to make calls recording. All the API methods are SOAP based, and you can find entire API reference guide document here: https://www.vidyo.com/help/VidyoPlatform/4_Server-API/VidyoPlatform-Web-Services-API-Guide.pdf
In this article we will cover how to start and stop recording, how to ensure the recording process has been started successfully, and how to search and download recording file.
Start Recording
At first, in order to record the conference, you need to have a room created, and at least one participant connected to that room.
Create a Room
We will be using Scheduled type of rooms onwards. So let's create one using VidyoPortalUserService and CreateScheduledRoom API:
Response object will contain a lot of fields about the room you just created, but you will need the first one - entityID, that in this case is 4092486:
There is a Recording Profile - it basically specifies what and how to record - video tiles and content share, content share only or preferably, etc. So it's a mode that you select based on your needs.
Recording profiles are configured on a Tenant level, so in reality you will not need to retrieve the list of available recording profiles each time you start the recording. However, you can use GetRecordingProfiles API to be sure of available recording profiles configured on your system:
After sending above request you should expect an HTTP200-OK response.
StartRecordingResponse of HTTP200 doesn't necessarily mean that VidyoReplay actually started recording the conference. How to ensure the recording has been indeed started is covered later in this article.
Stop Recording
For stopping ongoing recording we will need to know ConferenceID and RecorderID values.
Get RecorderID
When the conference is being recorded by VidyoReplay it technically means that VidyoReplay has also joined the call, and you can think of it as of another participant in the call. Therefore, at this step we will get information about participants in the conference that is being recorded, and extract RecorderID. For this we will use GetParticipants API, passing in ConferenceID value:
For pausing and resuming ongoing recording you can use PauseRecording and ResumeRecording APIsaccordingly. Each of these requires the same ConferenceID and RecorderID parameters.
Search Recordings
Once the call has ended and recording has been completed, you typically may need to find this or any other recording file. All the recording are being stored on the VidyoReplay server, and it has its own set of APIs the allow search, update, and delete recordings. In cloud Vidyo environments the wsdl URI will look as the following:
The above request filters recordings on VidyoReplay and returns those which are made on the tenant with name containing "test", recorded by user "vova", then sorts results by date in ascending order, and finally limits results number to 100.
As you can see, there are more filters to apply in request body that allows you to construct your search really precisely if needed.
As you can see, the response contains some general information about total recording such as overall count and found number, as well as list of nodes - each for specific found recording.
Download Recording
There are two options of how you can download the recording. First is manual - you simply go to your VidyoReplay server Admin Manager (https://{TenantName}.replay.platform.vidyo.io/replay) and click a button to download.
Another options that you definitely will like better is to do this programmatically by simply using common tools such as wget or curl:
where first argument is a header with your Base64-encoded auth, second is fileLink field from the RecordsSearch response above, and finally an output file name.