The Video Call Validation accelerator enables an out-of-the-box video-call experience in Outsystems applications.
This component is constituted by two blocks:
Participant. This block easily integrates your application with Amazon Kinesis Video Streams to transport video and audio between participants.
DefaultPlayer. This block exemplifies the basic HTML structure needed.
Both blocks can be customized to your use case. You can create a different layout or add more functionality.
To empower your app with video call capability you need to:
Configure the Video Call Validation in Service Studio, and add it to your application.
Configure the Site Properties in Service Center to be able to connect to the Amazon Kinesis Video Streams service.
Install the Video Call Validation from the Forge.
Add the AmazonKinesis_CW as a dependency to your app:
3. Create a new screen in your app and drag the Participant block to the content of your new screen. Notice that 3 containers with elements are also placed with the block:
4. You need to define the parameters to the Participant’s block for your use case. See below all the Participants block parameters and events available.
5. You also need to specify the event handler in block DefaultPlayer for the ready event. To do it, select the player on the screen and the following properties will be available:
This event receives two parameters PlayerLocal_id and PlayerRemote_id that will be necessary to input to the Participant web block for the video call to be established.
To do this, create two local variables and assign them to the handler to be used as inputs to the Participant block.
6. If you want to add some logic for when the call is started or ended you can assign event handlers to the respective events raised by the Participant block (described in more detail below). This is an optional step
In the Service Center, in the Factory tab, search for the Video Call Validator app and open it.
Inside the app, open the AmazonKinesis_Lib (service) module.
Go to the Site Properties tab and add the Site Properties for AccessKeyId, SecretAccessKey, and Region
Note: Note that if this step is not completed the Video Call Validator returns an “Invalid credentials to the Amazon Kinesis Service." error and it will not be able to establish the calls.
With this, you are now able to have a simple app with video call capability. Don’t forget to check the sample app for more details of a working video call app.
When consuming this block in your pages, you will be prompted to input the following information.
The Participant block requires the following input information:
ChannelName (Text): The signaling channel to join or create for the call. It must be unique in the AWS account and region.
IsCaller (Boolean): Flag indicating the role of the video call participant.
CallSetup (Structure) (optional):
SendVideo (Boolean): Indicates if it should stream the user video in the call
SendAudio (Boolean): Indicates if it should stream the user audio in the call
NatTraversalDisabled (Boolean): Configures NatTraversal setting to resolve public IP. Check the official documentation for details.
ForceTURN (Boolean): Forces using TURN servers to resolve public IP. Check the AWS documentation for more information.
UseTrickleICE (Boolean): Indicates if it should use Trickle ICE strategy to optimize the video call connection.Note: If you don’t define the CallSetup structure, a default one with both SendAudio and SendVideo in True will be used.
Player_LocalVideoId (Text): Id of the HTML video element on the page for the local video feed
Player_RemoteVideoId (Text): Id of the HTML video element on the page for the remote video feed (hint: Default Player returns one on ready)
These are the events triggered by the Participant web block in the course of a video call:
ReadyForCalls: Triggered when all client-side scripts have finished loading and the block is ready for starting video calls.
CallStarted: The participant has clicked the button for starting or joining the call.
CallEnded: The participant has clicked the button to exit a call
Error: Dispatched whenever an error occurs on a video call starting/ending.
The block contains these three placeholders:
StartCallContainer: Contains the elements used on starting a video call
VideoContainer: Has the video elements to display both participants' video feed
StopCallContainer: On an ongoing call, this placeholder has the elements to terminate it
This block has the minimal elements and basic HTML structure necessary to display the participants' video feed on a video call.
The Ready event gets triggered when the block has finished loading. It outputs the runtime ID of each of the <video> HTML elements in it.
The minimum permissions an AWS user must have to host and join conversations using this connector are:
CreateSignalingChannel
DeleteSignalingChannel
DescribeSignalingChannel
GetIceServerConfig
GetSignalingChannelEndpoint
For in-depth information on these permissions, head over to this AWS documentation page.