Jitsi Videobridge standalone setup


#1

Hi,

I’m validating if we could use the Jitsi Videobridge in our project where we need to share video data of multiple IP camera’s to multiple clients. I’m trying to use the REST/Websocket API of the videobridge but I can’t find a lot of documentation about this part. Do you have some tutorials or demo apps that use the videobridge standalone and make use of the REST API and websockets? Or could you point me to some documentation regarding this?

Thanks in advance!

Tom


#2

This is the documentation with a simple example steps https://github.com/jitsi/jitsi-videobridge/blob/master/doc/rest-colibri.md This is all we have.
I know that there are people in the community using, so maybe someone can share their experience for that.


#3

Hi @damencho

Thanks for the reply, I already followed the steps in that documentation but I got stuck on step 5:

“5. We take that response and translate it into SDP to create an offer for the new client.”

Not sure what I need to do here? Could you explain this a bit further?

It would be great if somebody in de community could share his experience with running the Videobridge standalone as this would be really helpful.

Kind regards
Tom


#4

So, how things work without the rest is that jicofo opens the channels on the videobridge (you can do that by using rest API), gets the answer and construct some jingle messages which are sent to clients, client receive those and convert it to SDP (this is all in lib-jitsi-meet) and uses those SDP to create the PeerConnections.
When using the rest API you will open the channels, get the result send it to the clients so they can create the SDP to create the PR connections or you can create the SDP and send it to the clients that they will use to create the PR connection.


#5

Hi @damencho

Thanks for the clarification, I also found a good tutorial about how webrtc is working: https://codelabs.developers.google.com/codelabs/webrtc-web/#0

This already made it more clear for me, what I still don’t see is how I should convert the colibri response from the rest API to an SDP which can be used to create an offer?
Can you point to which library I should use for this? I already found following 2 javascript files but I don’t think they are used currently in the jitsi-meet application:


#6

Colibri is the xmpp protocol which is used between jicofo and videobridge. That protocol is xmpp and jicofo talks with clients using xmpp and clients convert xmpp to sdp, so what you want is not available, the things I’m describing are in https://github.com/jitsi/lib-jitsi-meet.
What do you want to achieve? Why don’t you use a full deployment it will be easier for you or at least a working starting point which you can explore?

If you want to check the client xmpp messages exchanged, open a conference on meet.jit.si and in one of the clients console do APP.conference.saveLogs() and you will have a log file with all bosh/xmpp messages and I think the sdp conversions, also in jicofo you can enable smack debug and you can see the xmpp messages between jicofo and jvb.


#7

If I understand it correct, I need to create the translation to SDP which is described in step 5 my self? No code is available to do this when using the REST API? I indeed found some code in the lib-jitsi-meet project which does the conversion from XMPP to SDP. Still it’s hard to see in the Jitse-meet application where this code is exactly used. Otherwise I could debug this to better understand the flows.
I’ve installed the jitsi-meet application locally and it’s working but I now want to use my own clients to talk with the JVB. It’s correct that I talk directly with the JVB via REST toch achieve this right?


#8

Jitsi-meet uses lib-jitsi-meet and there is where this magic happens.

Well talking directly to the jvb from the clients it may work, but there are two problems there:

  1. It will work, but must happen in a controlled environment, if you clients are not public and only those have access to the jvb. The rest interface does not have any protection, opening it to the world you open your jvb to be used by everybody.
  2. There were times when there was no focus component (jicofo) where on of the clients is the focus and it orchestrates the conference. Know about all the connected clients and when a new joins, re-invites all others to send to him streams and to start receiving streams from him, but this was a problem with the case when this one looses connection. I don’t know details about your case, but normally you need a component that will take care of talking with the clients and jvb an will orchestrate the conference.

These are my thoughts on the subject, feel free to ignore :slight_smile: or if someone can step in and share their REST usage, also feel free.