Connect to propsody from custom built service

I am trying to build a component and hook it as a reguar jitsi component like jicofo, jibri, etc.

The goal is to capture events like user activities like joined, left, jibri events along with others like getting stats about the jibri, jvb etc.

It is quite similar to JaaS but for our own app. We may used JaaS but it has some limitation like monthly active uses etc so due to our budjet we decided to build our own.

We already had built a module which is hooked for occupant joined, left etc and requirements went further and we have to extend it further by writing our custom service which will connect to prosody.

I’m quite new to xmpp and prosody things so any guide to the subject will be very helpful.

Thanks, it is similar to what we have built.

Is there a way to proxy jibri record start event, so that my custom service receives the request and proxies back to the jibri with custom file_recording_metadata, we achieved that by modyfying the react app but we are trying to manimise the efforts as much as possible so that we don’t have to manage it our own such big project.

I didn’t understand the goal. Could you clarify it?

When recording finishes, jibri writes metadata to the metadata.json file.
What I’m trying to achive is to write extra data for our purpose to it without modifying any service.

Those recorded file along with metadata goes to processing service for streaming purposes and that extra attributes are contextual metadata for our app to provide back to the users.

For example:

which goes to jibri for writing:

You can modify metadata.json using finalize script if the extra data is accessible for it

Yeah we use finalize script to upload it to the media convert tool but finalize script does not pass any information other than filepath in its argument while jibri executes it so there is not much infomation we can grab through jibri.

The goal is to intercept start recording iq and make call to jibri with extra information like {"file_recording_metadata":{"share":true, "id": 123, "user_id": 567}} on jibri start call body.

You may want to check