Custom logic to conferences control


#1

Hello. I have a high-level question.

I know Jitsi is built around the idea of online video conferences (jitsi meet), but I need primarily it as an SFU + custom logic. I can apply the conferences layout for my application, but I need more constraints. To say simpler, I need to control who is allowed to stream at this moment, by custom logic. I suspect, jicofo does similar stuff, but I didn’t find a way to extend it. I think it’s not a way to replace it, since it contains core features such as XMPP -> SDP conversion etc.

Also, I don’t want to implement such logic on the front-end using lib-jitsi-meet, since it can be fooled easily (you can’t trust code on front-end).

I see this as a standalone service, which is similar to jicofo, that moderates each conference room with own logic. But I don’t clearly understand how should I integrate it:

  • should it communicate directly with an XMPP server (prosody)?
  • should it communicate with jicofo?
  • should I fork jicofo and implement my logic there?
  • should I drop jicofo and replace it with my controller?

Jitsi video bridge is advertised as a WebRTC media relay (SFU), but I found it’s kind of hard to use apart of jitsi-meet. They are too integrated. Or I just don’t understand something.

Thanks


#2

You are right that Jicofo modifications is what you need, as it sees participants joining the xmpp muc and talks with the bridge to open channels there and invites participants to start streaming and receiving the streams.

You can always use jitsi-videobridge alone just as SFU, but you need to write your controlling logic and inviting participants and the client logic and the UI of course. There is an option where you can control jvb using REST API.


#3

Thanks for quick response, I appreciate it.

Can I write a service that will run along jicofo and communicate only with XMPP.

Are the needed terms for me, such as conference, participant, moderator, muted channel part of XMPP or custom terms invented by Jitsi?


#4

Currently, Jicofo doesn’t have any way to be influenced in a way to not offer some streams to participants and stuff like that, so I don’t see how an external service can do that at the moment without extending Jicofo.

Well, conference and participant are generic words, everyone, use. But about moderator, I think is something we use in the jitsi components, a moderator is basically an owner in xmpp muc room (https://xmpp.org/extensions/xep-0045.html)…


#5

Then it seems like forking jicofo is my way. Thank you, it’s helpful