Is it possible to setup Jitsi + FreeSwitch (or any other SIP Server) multi user video conference?

Hello,

Could anybody clarify is it possible to set up Jitsi+FreeSwitch multi user video?

As far as I understand Jigasi Gateway to SIP supports audio only.
See [jitsi-users] No video from SIP camera using Jigasi and Jitsi-meet

What about a multi user video call in Jitsi via SIP?

Is it possible to setup Jitsi Videobridge (+Jicofo) to provide multi user VIDEO conference via a SIP server?

If it is possible, could you please provide some instructions how to do this?
What API should I use, Jitsi and SIP server configuration settings, etc?

Are there any examples of such integration?

I would appreciate any help with this.

Thanks.

Are there any updates on this?

There are no examples. What you need is jibri in sipgateway mode. We are still working on it and clearing some stuff around it. https://github.com/jitsi/jibri/blob/master/doc/sip_gateway.md

Thank you for fast reply,

but the situation looks even more confused now (.

Could you please clarify my questions below:

Q1. I need only signaling (offer,answer,ice) between my WebRTC clients and Jitsi-videobridge via SIP.
Mixing of audio/video is not required.
Is it possible to turn off “launching a Chrome instance rendered in a virtual framebuffer and capturing and encoding the output with ffmpeg”
and use Jibry only for signaling via SIP? Is there “SIP gateway only” mode?

WebRtcClient_1<-->SIP_SERVER<-->Jibri<-->Jicofo<-->Jitsi-videobridge
                     ^   ^
WebRtcClient_2<------|   |
...                      |
WebRtcClient_n<----------|

Q2. Jibri is intended to be run on a separate machine.
If “SIP gateway only” mode is possible,
can I install Jibri on same machine with other jitsi components?

Q3. I’ve just installed Jibri on my Debian machine via “sudo apt-get install jibri” command.
I couldn’t find “sip_control_muc” field in /etc/jitsi/jibri/config.json.
But this key exists in the source code.
Could you advise me what settings should be specified via this field?
I suppose there should be something like SIP server address, password,…etc?

Thanks.

I don’t get this. What do you mean by Mixing of audio/video is not required. ? Who will be doing that for you …you say you have a sip client managing multiple streams and want to use that alternative to enter a conference?

That is a separate component and you use one instance per session, so it should be scalable, separate VM so you can spin up the number you need.

By default jibri is used for recording, I’m afraid we do not have docs for installing the sipgw mode.

That mode can be started vide the xmpp side or via the http side using a REST API (this is how we are using it today).
sip_control_muc is the muc connfigured in jicofo org.jitsi.jicofo.jibri.SIP_BREWERY=SipBrewery@internal.auth.example.net. This is if you want to start it from the xmpp side. You can implement and the invite service, so you can invite rooms it will return a list of sip-devices you can choose and call from the UI: https://github.com/jitsi/jitsi-meet/blob/master/doc/sipgw-config.md
In this mode there is no sip user or password it just calls the sip address returned for that room.
However for the rest method, we had added sip authentication which is passed with the http request and also auto-answer mode, where it waits for few seconds and answers the first call.
You also need the pjsua part installed: https://github.com/jitsi/pjproject/tree/jibri-2.9-dev2
After doing all the other jibri configs about the kernel and audio devices …
So this is still work in progress and there is no documentation for most of it …

I’d like to clarify my question Q1:

Let’s suppose we have an invite service based on SIP server and Jitsi-videobridge.

It is supposed:

  • using Jitsi-videobridge as SFU
  • using SIP server ONLY FOR delivering SIGNALING messages (offer, answer, ice) but not audio/video.

There signaling and streaming states during a WebRTC conference:

  1. Signaling
    In order to establish an audio/video conference it is required to exchange offer, answer and ice
    messages between webrtc clients. On this step mixing of audio/video is not required:
[WebRtcClient_1]<--offer,answer,ice-->[SIP_SERVER]<-sip->???<-xmpp->[Jitsi-videobridge]
                                        ^   ^
[WebRtcClient_2]<--offer,answer,ice-----|   |
...                                         |
[WebRtcClient_n]<--offer,answer,ice---------|

2.Streaming

Once the signaling process has completed successfully, audio/video can be streamed.
I suppose on this step mixing of audio/video is not required too
and Jitsi-videobridge acts as SFU.

[WebRtcClient_1]<--audio/video-->Jitsi-videobridge
                                   ^   ^
[WebRtcClient_2]<--audio/video-----|   |
...                                    |
[WebRtcClient_n]<--audio/video---------|

In case of two participants Jitsi-videobridge is not required and webrtc clients establish
direct connection:

[WebRtcClient_1]<--audio/video-->[WebRtcClient_2]

So my question is:
How to configure Jitsi and a SIP server to provide multi user video conference?

Please correct me if I misunderstand anything

Thanks.

In diagram 1. you have ??? this is where you need to implement your signaling so you can talk with the xmpp server and you will get the jingle offers from jicofo which you can convert to webrtc compatible sdp and use it with your webrtc sip client. This way your webrtc sip client will receive multiple streams from jvb and will be sending its media so it will see the other participants and will be seen.

As we want to be able to use a legacy sip devices to enter a conference we use jibri for that, pjsua communicating with the sip device/service with audio/video, the web client running in chrome communicating with the xmpp part and chrome running in frame buffer we use as video mixing to be shown as one stream to the sip side …

Could you advise me on the java library for converting sdp to jingle (colibri) and vice versa?
Thanks.

Please clarify Is there a clear and understandable Java library for converting SDP to JIngle and vice versa?
I stuck (
Thanks.