Openfire is a real time collaboration (RTC) server licensed under the Open Source Apache License. It uses the only widely adopted open protocol for instant messaging, XMPP (also called Jabber). Openfire is incredibly easy to setup and administer, but offers rock-solid security and performance.
Now that Firefox Beta has WebRTC enabled by default, it was time to upgrade the WebRTC audio/video demo to support Firefox. Even though changes were minimal and I could do Firefox<->Firefox as well as Chrome<->Firefox, there is still an outstanding issue that is a show stopper for me.
Firefox does not yet support trickle ICE candidates and consequently does not work with Jingle Relay Nodes. This means we cannot use Openfire to act as a media bridge and relay media when both WebRTC peers cannot connect directly with each other as we can do with Chrome.
I am hoping this will be fixed before formal release in June. In the meantime, you can test it at http://redfire.4ng.net/webrtc. Just make sure you have Firefox beta or latest Chrome browsers. As usual, source code is attached for those curious to see or reuse in their own applications.
A new version of the Jappix plugin for Openfire is available with support for WebRTC restored back. It only supports Chrome version 26+ and is compatible with the WebRTC plugin for Spark. It uses The Openfire JingleNodes plugin for media relaying via Openfire server when WebRTC peers can connect directly with each other.
Group Video Chat
Click on the webcam icon to share video in an active chat/groupchat.
With chats, the other party receives a prompt to share their audio/video.
Groupchat does not prompt and auto shares audio and video with all participants.
For those following the use of Openfire for audio and video communication, The Jitsi project released very recently, the. If you use Jitsi with Openfire, you find it very useful for creating both audio and video conferences with multiple people. I am hoping someone will try and make a Spark plugin for it
In the meantime, I did a quick experiment to see if I could convert the Redfire plugin for Spark to use WebRTC instead of RTMP/RTMFP
Guess what!!. It worked
It works the same way as the Redfire plugin for Spark. Click on the webrtc button to share audio and video with the person you are chatting with. On the other side, that person will receive a prompt to accept or reject the offer.
So here it is attached, if you want to play with it. It does not depend on any Openfire plugin, but will use the JingleNodes plugin if available to relay WebRTC audio/video media when a direct connection cannot be made between two Spark clients..
It needs Google Chrome version 26+ running on the client desktop as the default browser. It supports Google Chrome frame for Internet Explorer. The source code is in there as well. When Firexfox WebRTC support becomes stable, I will probably add support for that too.
*** UPDATE ***
I finally got multi-user video conferencing working in group chat like Redfire. Please note that there is no prompt. Each participant MUST click on the webrtc button to join the video conference and the plugin ensures a webrtc peer-connection is made between each and every participant. This should be done after everyone joins the groupchat.
If a new person enters the room and wishes to join the video-conference, each participant should close their browser windows and click on the webrtc button again.
The Ignite Realtime community is happy to announce the release of version 3.8.1 of Openfire! Downloads for various platforms are available here.
Openfire is a real time collaboration (RTC) server licensed under the Open Source Apache license. It uses the only widely adopted open protocol for instant messaging, XMPP (also called Jabber). Openfire is incredibly easy to setup and administer, but offers rock-solid security and performance.
This release is primarily a bugfix release that addresses issues that were reported after the release of 3.8.0, a few weeks ago. Release 3.8.1 includes fixes for, amongst others, shared groups and pubsub-related issues. The release also improves the robustness of loading the Multi-User Chat service at start-up. The changelog lists these and other changes in more detail.
As always, we welcome your feedback, suggestions, tips, hints, questions and other contributions in the Ignite Realtime Community pages.
WebRTC is on the march
With a stable implementation in Chrome since ver 23, applications are appearing as fast as flowers blooming in Spring. The nightly and developer builds (ver 25+) have more features including full desktop screen capture and ability to send it as a video stream over a peer connection. By adding DTLS encryption to Chrome nightly build, Google have achieved interoperability with Firefox nightly build.
Back in 2007 at ignite realtime, we built the first open source Flash to SIP gateway for SparkWeb and followed that up a few months later with Red5phone, the first open source web soft phone. Red5phone has now evolved into Apache OpenMeetings Red5Sip.
Fast-forward to today and we now have the iNum initiative from Voxbone which enables us to have a new geographical independent phone number for free phone calls on the Internet. iNums are global, supported by most telephone carriers including my former employer BT in the UK. Combine WebRTC with iNum and you can send and recieve free phone calls anywhere in the world provided you have a web browser and an iNum.
That was all the incentive I needed to get started on webrtc-phone.
The prime purpose is to make and recieve free phone calls with iNums. It can also make SIP calls with domains that accept them.
For more details go to the project page.
Calls from iNum to/from the public PSTN still costs money. If you divert your iNum to a mobile or landline, your voice service provider will charge you for diverting the call. You will be paying for all calls from your iNum to your mobile or landline phone.
Calls from the public PSTN to your iNum cannot be intercepted and are therfore are not supported by webrtc-phone. If your iNum is dialed from a regular phone, the call will end up on whatever device you have forwarded it to. It is only when the number is dialed from a webrtc-phone elsewhere that it will be re-mapped to your webrtc-phone session.
Live demo is hosted at https://webrtc.free-solutions.org:8443/webrtc-phone by the very kind folks at free-solutions.ch who are also members of the ignite realtime community.
Project source code is hosted on a Git repository at http://code.google.com/p/webrtc-phone/source/checkout, so go ahead and clone