Feasibility of server-side forwarding of conference events

We are running a custom external server application, that needs to monitor the status of individual video conferences and their participants in real-time (who is participating for how long etc). Therefore we came up with the approach to grab the events from the JS iFrame API and have the client send them to our custom REST API. This has the downside, that no events are sent when users join via mobile app because our custom event forwarding logic is not implemented there.

Thus we are looking for a clean, maintainable way (ideally no forking of Jitsi components) to grab those events server-side and have the responsible jitsi server component directly send it to our custom REST API. However we are not quite sure which component we can actually grab those events from. We are running prosody with JWT authentication and it would be great if those events could be combined with some custom claims from the JWT.

I would really appreciate some comments about the general feasibility of this idea as well as some pointers in the right direction.

Maybe this will help prosody-plugins/event_sync at main · jitsi-contrib/prosody-plugins · GitHub

Thanks for the reply! This is a great start! Do you know if there is a good way to distinguish whether a muc-occupant-left event is caused by a user clicking the red end call button or connection loss?

I’m assuming not all events listed here

are passing through prosody. Is there any central point in any of the jitsi server components, where all (or most) of them go through?

I’m not aware of any. You can use inspect printing the whole event coming and see whether there is some indication that this is because of a timeout or of normal clearing: participant sending presence-unavailable on leave.

All that concerns the user and its presence in the muc goes through prosody.

Thanks for your help, it’s much appreciated :slight_smile:

I’ll play around with the muc events and see how far I get with them.

I have another follow-up question:
If I want to use the event_sync module I need to modify the prosody config in
/etc/prosody/conf.d/meet.mydomain.com.cfg.lua.
Is there a known way to use the unmodified jitsi prosody image from https://hub.docker.com/r/jitsi/prosody, or is there no way around forking and building my own image?