Jitsi Videobridge with Openfire and WebRTC

The Jitsi project have just announced that Jitsi Videobridge is now compatible with WebRTC and can be used as a central relaying point for web video conferences (or web+Jitsi). You can check out shot of a first prototype here. A big thank you to @Emil Ivov, Philipp Hancke (estos.de) and Lyubomir Marinov (jitsi.org) for making this happen and sharing it with the rest of us

I was keen to see this in action with Openfire as Jitsi Videobridge works fine as an Openfire plugin and it will add the much needed and anticipated video streams forwarding/relaying feature to WebRTC applications as Red5 does to Flash Player. I copied all the required files to my Openfire server, made some minor adjustments for Openfire and as you can see below, it works!!

Image2.jpg

However it is early days. This is all leading edge code still in development. Jitsi Videobridge as an internal component from an Openfire plugin does not yet work because the bouncycastle library in Openfire needs an upgrade to the latest version that supports DTLS-SRTP. It only worked as an external component. I will try to get this fixed for Openfire 3.9.0 which is currently in alpha.

** UPDATE **

Jitsi Videobridge plugin for Openfire is now available here at igniterealtime.org with the webrtc-based video conferencing application embedded as a web service. A complete web muti-person video conference solution in one box. You will need Openfire 3.9.0 to try it out.

In the meantime, Claude Stabile has generously made a live version available for us to try at https://webrtc.free-solutions.org:8443/videobridge.html

** FURTHER UPDATE **

The first draft of the COnferences with LIght BRIdging (Colibri) XEP that is used to manage video conferences with Jitsi Videobridge is now out. You can find it here. All we need now is a volunteer to setp forward and add it to Smack/aSmack and Spark using the Java bells library

** YET MORE UPDATE***

The first version of the Jitsi jitmeet web conferencing application is now out and has replaced the demo web application in the Jitsi Videobridge plugin. It has MUC chat with some other needed features like mute audio/video. Expect some more before Openfire 3.9.0 is released. As usual, you can checkout the latest code in the ignite realtime VCS, build and try it out yourself.

To help those cannot build openfire 3.9.0 from source. Do the following

Grab Openfire 3.9.0 nightly build from here

Download jitsivideobridge.jar file from here

Image2.jpg

** LAST UPDATE **

There is now a dedicated ignite space for jitsi-videobridge plugin. Please post any issues, questions and contributions here. I have also posted a blog about the changes I have made to the plugin to support a server-side focus agent.

7 Likes

amazing work as always…

I have now upgraded to OF 3.9.1 and installed jitsi videobridge.

Feel free to experiment jitsivideobridge and test

Videobridge conferencing is here :

https://webrtc.free-solutions.org:8443/jitsi/apps/ofmeet

No login required, just chrome + Cam

You can also create your account @free-solutions.org and use a jitsi clients

Feel free to report availability issues claude@stabile.com, code/software related questions to ignite community.

Many thanks to Dele and Jitsi people efforts to make this possible and working well.

two of us at work tried it today. we could hear each other but only see ourselfs. If the video works as well as the audio it should be pretty good.

As Jason said, we only saw ourselves. Is it expected for now?

No, If you want a better user experience, checkout the Openfire 3.9.0 source, build and run your own server on your own local network with the jitsi voicebridge plugin.

The really cool part of this solution is that the audio for all participants is mixed, saving on banwidth and ensuring you can always hear each other even when video frames are being dropped

I set up one in my local network. It’s really so cool on video and audio.

Hey Dele,

One more update if I may: the JavaScript application from Philipp Hancke is now available here: https://github.com/jitsi/jitmeet (and we are about to push a number of UI fixes and improvements). It also allows MUC chats now.

Testable here: https://meet.jit.si

Cheers,

Emil

Nice. I will keep it synched with ignite realtime VCS

Thanks

Follow the standard rules for installing a web service plugin in Openfire.

  1. make sure your openfire and plugin versions are compatible

  2. stop openfire

  3. copy new plugin to plugins folder

  4. restart openfire

  5. check openfire to confirm plugin is installed

  6. test plugin

  7. if plugin does not work, look at openfire log files and paste the errors here at ignite realtime for advice

Hi Dele,

thanks for your great job ! What a nice project and I am folowing Jitsi project too (big up to Emil). One question, when do you think openfire 3.9.0 with jitsi bridge 'webrtc) will be released officially ? I have a production environment and want to update to 3.9.0 with the new plugin, what do you think ?

Thanks to all of you guys !

Hopefully soon. There are a few blocking issues to be fixed.

http://www.igniterealtime.org/builds/openfire/docs/latest/documentation/upgrade- guide.html

It will only work with Chrome for now :slight_smile:

Check your chrome browser log

Hi Dele,

do you know what is the maximum participant number on videobridge webrtc in this openfire version ?

i also tried with the nightly build from Nov 30th, (the builds since then seems to have a issue with some security keys (http://community.igniterealtime.org/message/234592#234592)

i can only seem my self as others have described. there is no errors on openfire logs, browser log is posted below

init app.js:303

This appears to be Chrome strophejingle.bundle.js:27

status 1 app.js:38

Resource interpreted as Font but transferred with MIME type text/plain: “chrome-extension://pioclpoplcdbaefihamjohnefbikjilc/fonts/GothamSSm-Medium.otf”. filing_tools.html:1

Resource interpreted as Font but transferred with MIME type text/plain: “chrome-extension://pioclpoplcdbaefihamjohnefbikjilc/fonts/GothamSSm-Bold.otf”. email_sharing.html:1

connected app.js:33

Resource interpreted as Font but transferred with MIME type text/plain: “chrome-extension://pioclpoplcdbaefihamjohnefbikjilc/fonts/GothamSSm-Book.otf”. global_tools.html:1

onUserMediaSuccess strophejingle.bundle.js:139

  1. …

onPresError muc.js:91
event.returnValue is deprecated. Please use the standard event.preventDefault() instead. jquery-1.8.0.min.js:2

9lf26mg01h7rdx6r@conference.192.168.1.33/a28fac14" type=“error”>

This error keeps repeating itself everytime here at ignite realtime.

IP addresses do not work as domain names in openfire unless you have explicity given your IP address as your domain name when you did the openfire setup

Thanks for the reply Dele, i will try it out when i get home today.

EDIT

I tried meet.jit.si from work with a co-worker and we experienced the same issue where we see only our self. Here is the browser console log

on jingle session-initiate strophejingle.bundle.js?v=2:353

emuc data for rvye41mdgiyn9udi@meet.jit.si/23c65d41-c897-46a4-a561-15a5c5a0250e Object {show: “”, status: “”, affiliation: “owner”, role: “moderator”} app.js?v=3:166

RTCSessionDescription {sdp: “v=0 ↵o=- 7407330723085101164 2 IN IP4 127.0.0.1 ↵s…rtpmap:116 red/90000 ↵a=rtpmap:117 ulpfec/90000 ↵”, type: “answer”}

strophejingle.bundle.js?v=2:1940

Have we encountered any srflx candidates? false strophejingle.bundle.js?v=2:1700

Have we encountered any relay candidates? false

I have replaced jitmeet with ofmeet in jitsi-videobridge plugin for openfire, see blog for more details. To continue to use jitmeet, visit https://github.com/jitsi/jitmeet

and pull latest changes.

If you have issues with ofmeet, please post them here