WorkWithPlus for VideoCall Online Training

About this training

This course introduces you to WorkWithPlus for VideoCall, so you will learn how to add video calls in both a web and mobile application.

This course is intended for developers who already know the GeneXus´s basics concepts. 

The training provides a step-by-step explanation of how to create a web application using WorkWithPlus for Video Call and GeneXus 17 using .NET  and SQLServer. If you are using another generator (Java) or DBMS, the steps are quite similar. 

If you perform the hands-on exercises, this course will take you approximately 2 hours to complete.

Before we start

For this example you will need:

What Are We Building?

This example was built to solve the following scenario:

  • A user can log in to a video call using a name or identifier in the mobile application or the web application.
  • Once logged in, the user can enter the name of any user and place a call.

This example allows the user the place calls in any direction:

  • Web -> Web
  • Web -> Native Mobile
  • Native Mobile-> Web
  • Native Mobile -> Native Mobile

To use this example follow these steps:

  1. Create a new KB, selecting the option to "Deploy to Cloud". Is mandatory to deploy the application in the GeneXus Cloud (or in an https server) as this is a requirement for the product to work
  2. Setup VideoCall on your KB: WorkWithPlus-> for VideoCall -> Setup

    • videocall_startup

    • This process will automatically import:

      • Required GeneXus modules (SecurityAPICommons and GeneXusJWT)

      • VideoCall APIs

      • VideoCall example objects

  3. In the procedure 'VideoCallSampleGetAPIData', set up the user control with the API key and secret obtained from Sinch:
    &APIKey = !"<YOUR_API_KEY>"
    &APISecret = !"<YOUR_API_SECRET>"
  4. To allow video calls on Android, set up your Google's Firebase project, and set the "VC Firebase Android File" property in your application's main object: Android Notifications

  5. From a mobile device ("device1"), run the VideoCallP2PAppLogin panel:

    a) Write the "user1" name in the "Local User Id" field
    b) Press the "Enter Videocall" button.
    c) The 'VideoCallP2PPanel' panel will be opened, where you will have to enter the user ("user2") that you'll be calling.
    d) Don't press the "Place Call" button yet.

  6. From a computer browser, run the 'VideoCallP2PLogin' web panel:

    a) Write the "user2" name in the "Local User Id" field
    b) Press the "Enter Videocall" button.

  7. From the "device1" press the "Place Call" button. 
  8. In the "device2" you will receive the incoming call and the call will be established.
  9. Finally, run the 'VideoCallExamplesHome' main object and follow the analogous steps explained in steps 4 to 7.

Recording session

A sample "RecordingSession" transaction can be downloaded at the following link.

This Transaction can be used to store and view recorded videos on the server, when "Remote Recording" is used.

This transaction can be used combined with previous examples to enable video call recording on the web. To complete the sample, the user must include the following code on the web app:

Event DVSinchClientWeb1.onCallEstablished    
    DVSinchClientWeb1.StartRecording()
    StartRecordingSession(&DVRecordingSession)
EndEvent

Event DVSinchClientWeb1.onRecordingRemoteUploadEnded
    EndRecordingSession(&DVRecordingSession)
    msg(!"Recording Upload Success")
    msg(&DVRecordingSession.Session.RemoteResponse.resourceUrl)
EndEvent

Event DVSinchClientWeb1.onRecordingRemoteUploadFailed
    EndRecordingSession(&DVRecordingSession)
    msg(!"Recording Failed")
EndEvent

Check "Video call recording on web" for more information.