docker-jitsi-meet icon indicating copy to clipboard operation
docker-jitsi-meet copied to clipboard

not getting recordingLinkAvailable event

Open iasbm opened this issue 2 years ago • 11 comments

We have installed JITSI (including JIBRI) on K8S cluster and we are able to successfully record the calls. But as per recordingLinkAvailable mentioned here we have registered for the event recordingLinkAvailable and expect to receive with notification with Recorded file link. But we are not getting any notification for that.
Our customized JIBRI configuration in values.custom.yaml is

### JIBRI specific configurations
jibri:
  enabled: true

  replicaCount: 1

  # If replicate count > 1, need set on true. Persistent Jibri services turn off
  singleUseMode: false

  # Add mode deployment or statefulset
  mode: "statefulset"

  # Persistence pvc per pod
  persistence:
    enabled: false
    accessModes:
      - ReadWriteOnce

are we missing any further JIBRI config settings to be customized or do we need to write a finalize.sh to get that event notification. I think the finalizeScript.sh to let JIBRI execute the script, after every recording, to upload the file to our custom location by using that finalize.sh

So not sure why we are not getting the recordingLinkAvailable event triggered? Any help is appreciated.

iasbm avatar Apr 13 '23 19:04 iasbm

Have you configured recordingSharingUrl in config.js? That is a service that based on a sessionID is returning the link for the recording, as service you need to implement?

damencho avatar Apr 13 '23 19:04 damencho

That feature works when the tenant starts with 'vpaas-magic-cookie-'.

damencho avatar Apr 13 '23 19:04 damencho

i just took a look at https://github.com/jitsi/jitsi-meet/blob/master/config.js but i don't see any property like recordingSharingUrl for us to configure through configOverwrite option.

iasbm avatar Apr 14 '23 13:04 iasbm

Yep this is something that was implemented exclusively for jaas and maybe that's why the docs are missing. As it also depends on the tenant of the meeting.

damencho avatar Apr 14 '23 13:04 damencho

Ok, thanks @damencho for insights. SO let me put my understanding....

  1. the recordingLinkAvailable event as mentioned here will get triggered only if we start the conference using JaaS Meeting using vpaas-magic-cookie- (i.e. 8x8.vc) as mentioned here? and configure recordingSharingUrl in config.js . Am i correct?
  2. But we intend to use our own K8S self-hosted JITSI with our custom domain as mentioned here . So if we want to use our K8S hosted custom domain based JITSI then the event notification of recordingLinkAvailable is not applicable. So in this case, if we want to upload the recorded file to our custom location (say our AWS s3) then we need create the Finalize.sh script to upload the recordings to our custom location.

To summarise the recordingLinkAvailable is not applicable for Custom Domain self hosted JITSi but applicable only if we use JaaS. Is my understanding correct?

iasbm avatar Apr 14 '23 13:04 iasbm

It will work and for your domain if you use tenants named as the jaas one. Or you can modify the code and skip the jaas check in the logic there...

damencho avatar Apr 14 '23 15:04 damencho

ok we tried the option of naming our JITSI Tenant as JaaS one as follows... also we registered event Listener for recordingLinkAvailable With the below configuration we tried both the options of passing recordingSharingUrl attribute in configOverwrite and also commented out passing the recordingSharingUrl attribute as well But in both the cases we didn't get notification to our event listener for recordingLinkAvailable

Are we missing any config here ?

<JitsiMeeting
    roomName={localStorage.getItem("chatRoomId")}
    appId={"vpaas-magic-cookie-rest of the id"}
    domain={"http://staging-jitsi.mycustomdomain.com"}
    // parentNode
    getIFrameRef={handleJaaSIFrameRef}
    jwt={localStorage.getItem("jitsi_token")}
    interfaceConfigOverwrite={{
        SHOW_CHROME_EXTENSION_BANNER: false,
        SHOW_BRAND_WATERMARK: false,
        SHOW_JITSI_WATERMARK: false,
        SHOW_WATERMARK_FOR_GUESTS: false,
        SHOW_POWERED_BY: false,
        SHOW_PROMOTIONAL_CLOSE_PAGE: false,
        MOBILE_APP_PROMO: false,
    }}
    configOverwrite={{
        startWithAudioMuted: true,
        prejoinPageEnabled: false,
        recordingSharingUrl: "https://devdocker1-api.mycustomdomain.com/api/sessionservice.saveRecording",
        toolbarButtons: [
            "chat",
            "camera",
            "fullscreen",
            "hangup",
            "invite",
            "microphone",
            "mute-everyone",
            "mute-video-everyone",
            "recording",
            "select-background",
            "settings",
        ],
    }}
    onReadyToClose={handleReadyToClose}
    onApiReady={externalApi => handleApiReady(externalApi)}
/>

iasbm avatar Apr 18 '23 10:04 iasbm

You cannot pass that config with URL as overwrite, that config is not whitelisted to be overwritten https://github.com/jitsi/jitsi-meet/blob/master/react/features/base/config/configWhitelist.ts

You need to configure it on the server-side in the config.js there.

damencho avatar Apr 18 '23 11:04 damencho

We have deployed JITSI HELM CHART on K8S cluster and not sure if we can do this kind of overwrite thorough values.custom.yaml as part of K8S manifests. So unless i am mistaken, the option of server side Overwriting in configWhitelist.ts is out of option for by the looks of it given our K8S deployment of JITSI Helm charts. But happy to be corrected or any other suggestion given that we deployed JITSI HELM chart on k8S.

Worst case i think we have to create finalize.sh to create shell script to read and upload the files from recordingDir to location to our custom location. But appreciate any other suggestions pls.

iasbm avatar Apr 18 '23 11:04 iasbm

The helm chart in jitsi-contrib/ is definitely just a starting point for a basic jitsi deployment. For the customizations you have in mind it should be fairly simple to fork the repo and add an additional ConfigMap to web/configmap.yaml with your additions, and add to the web/deployment.yaml as a volume mount to /config/custom-config.js which gets appended to the bottom of the config.js on each web deployment as seen here: https://github.com/jitsi/docker-jitsi-meet/blob/35685424e14d44102b03e4897e7188f560e01d91/web/rootfs/etc/cont-init.d/10-config#L105

aaronkvanmeerten avatar Apr 18 '23 12:04 aaronkvanmeerten

Ah, and for those interface_config.js overrides, you'd want to mount another ConfigMap at /config/custom-interface_config.js

aaronkvanmeerten avatar Apr 18 '23 12:04 aaronkvanmeerten