In one of our current projects we are trying to build a video/audio-conferencing solution, which should support WebRTC, so that users can simply use their browsers.
For the server-side we are considering using Jitsi, as it already provide a very extensive support for multi-party audio/video conferences.
We tried out the out-of-the-box solutions provided by Jitsi and everything seems to work OK at the first glance.
But there is an issue which we would like to understand better:
- Right now Jitsi/libjitsi/videobridge seems to trigger/control conferences by means of XMPP (and some of its extensions like Colibri). Is it a correct understanding?
- In our own existing solution, which already provides audio conferences (though not WebRTC-based) and some other features, we do not use XMPP so far and there are no plans to do it in the near feature. Therefore, we are wondering how we can still make use of libjitsi/videobridge.
I can see different alternatives:
- When using libjitsi APIs/videobridge, we could try to map/convert our own way of identifying users and controlling/triggering conferences into XMPP/Colibri format and vice versa. I'm not sure yet if it is easily done. It is also not quite clear for me, if it would mean that we need to implicitly provision/register all our users in XMPP server that we would need to deploy.
- Another alternative could be to develop our own "control plane" for Jitsi videobridge conferencing. This "control plane" would use our own control commands instead of XMPP/Colibri. It would be very helpful, if someone could provide some indication about the complexity of such an undertaking.
Is it feasible with a reasonable effort?
Or would it need rewriting/customizing pretty big parts of libjitsi/videobridge?
Where should we start looking at? Which sub-systems? Which classes?
Could you provide us with a link to the code that currently handles (video) conferences control plane, e.g. establishment, joining, leaving conferences, negotiation of parameters (ports, security, encryption, codecs, resolutions, etc).
Which of these two alternatives would be better? Which is easier to implement? May be there are further possibilities to achieve the same? Or may be someone already has experience controlling jitsi/videobridge without using XMPP?
Any help or advice are very appreciated!