Using recording in 8x8

8x8 allows meetings to be recorded. When recording is enabled, 8x8 stores the recording in the cloud and calls the "host" application using a webhook after the meeting ends.

It is possible to integrate this feature to GeneXus applications using callyou, following the steps detailed below.

1 - Enable recording in the JWT token used to authenticate with 8x8

Only users with moderator privileges and the "recording" feature enabled may start recording a meeting.

The application should determine which users should have these rights when generating the JWT token based on its business logic.

If all users should have these rights, the developer may use the TokenAllowRecording and TokenSetAllUsersAsModerators flags in the "LoadJitsiConfiguration" procedure.

If that's not the case the developer should modify the GetJitsiTokenForRoom procedure to check the user's rights and configure the token accordingly. The changes should be focused on the conditions of these If statements:

If &JitsiConfiguration.TokenSetAllUsersAsModerators
   &UserClaims.SetClaim(!"moderator", !"true")
EndIf

...

If not &JitsiConfiguration.TokenAllowRecording
   &FeaturesClaims.SetClaim(!"recording", !"false")
EndIf

2 - Create a webhook to receive the recordings after the meeting is ended

When the meeting ends 8x8 stores the video file in the cloud for 24 hours. The application should download it before that time expires.

After storing the file, 8x8 calls the application using a webhook. This webhook should be implemented in the GeneXus KB as a procedure that receives the information of each recording and processes it. The procedure will receive an SDT that contains (among other things) the name of the meeting room and the URL where the file's located.

The procedure should be a Main Program with Call Protocol = HTTP. The SDT should be read from the request body.

To see the details of how this webhook is called by 8x8 and the meaning of the JSON structure received, see https://developer.8x8.com/jaas/docs/webhooks-payload#recording_uploaded

You can download a sample implementation of this webhook here.

3 - Configure the webhook in 8x8

In the 8x8 backend go to the "Webhooks" section and execute the "Add endpoint" action.

The "Endpoint URL" field should contain the URL to the procedure created in the second step, the event should be set to RECORDING_UPLOADED.