CompanyOnwership_icon
OutSystems Lab
Created on 10 May 2021
icon_unfollowing
Login to follow
video-call-validation

Video Call Validation

Stable version 1.1.5 (Compatible with OutSystems 11)
Uploaded on 03 June 2022 by 
OutSystems Lab
video-call-validation

Video Call Validation

Documentation
1.1.4

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.

How to use the accelerator


To empower your app with video call capability you need to:

  1. Configure the Video Call Validation in Service Studio, and add it to your application.

  2. Configure the Site Properties in Service Center to be able to connect to the Amazon Kinesis Video Streams service.

1. In the Service Studio

  1. Install the Video Call Validation from the Forge.

  2. 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

2. In the Service Center

  1. In the Service Center, in the Factory tab, search for the Video Call Validator app and open it.

  2. Inside the app, open the AmazonKinesis_Lib (service) module.

  3. 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.

Participant block details

When consuming this block in your pages, you will be prompted to input the following information.

Input parameters

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)



Block events

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.

Placeholders

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

DefaultPlayer block

This block has the minimal elements and basic HTML structure necessary to display the participants' video feed on a video call.

Block event

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.

Permissions

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.


Support options
This asset is not supported by OutSystems. You may use the discussion forums to leave suggestions or obtain best-effort support from the community, including from  who created this asset.
Dependencies
See all 2 dependencies