Ignite Realtime is the community site for the users and developers of Jive Software's open source Real Time Communications projects. Your involvement is helping to change the open RTC landscape.

ROAP [6] is RTCWeb (different from WebRTC) protocol used to negotiate media between browsers or other compatible devices. This protocol provides the state machinery needed to implement the offer/answer model (RFC 3264), and defines the semantics and necessary attributes of messages that must be exchanged. The protocol uses an abstract transport in that it does not actually define how these messages are exchanged. Rather, such exchanges are handled through web-based transports like HTTP or WebSockets. The protocol focuses solely on media negotiation and does not handle call control, call processing, or other functions. The current implementation of WebRTC in the Google Chrome Web Browser uses ROAP.
Jingle [1] defines a framework for negotiating and managing out-of-band multimedia sessions over XMPP. In order to provide a flexible framework, the base Jingle specification omits data transport methods and media session types, requiring separate specifications. Typical peer-to-peer session types include voice chat (see Jingle Audio Content Description Format [2]) and video chat (see Jingle Video Content Description Format [3]) which are based on the Real-time Transport Protocol (RTP) and will be suitable for specifying ROAP.
Unfortunately, none of the existing transport mechanisms such as Jingle RTP-ICE Transport Method [4] or Jingle Raw UDP Transport Method [5] can directly support ROAP.
WebRTC has however proposed an alternative protocol called JavaScript Session Establishment Protocol (JSEP) [7] that pulls the media negotiation and signaling state machine out of the browser into Javascript, making it easier to use with existing Jingle transports.
While JSEP has a distintive advantage of separating session descriptions from transports and exposes the media negotiation to the application developer making it very compatible with the RTP-ICE Jingle Transport, it introduces more complex application code in JavaScript, requiring the developer to call the right APIs at the right times, convert the session desciptions and transport information into Jingle, instead of simply forwarding the ROAP messages emitted from the browser as Jingle transport payload messages.
When both paticipants of an audio/video call are both web browsers supporting WebRTC, ROAP offers a simpler and neater approach. This document defines a new Jingle transport method for establishing and managing WebRTC-ROAP media streams.
For the full proposed specification, please go here
For those who are following, WebRTC is a free, open project that enables web browsers with Real-Time Communications (RTC) capabilities via simple Javascript APIs and is now available for Chrome.
A while ago, I implemented a Websocket plugin for Openfire that uses Jetty 7.5. Work is already under way by community member Pat Santora to make it a core plugin for Openfire.
WebRTC with WebSockets when fully functional, will enable audio and video conferencing from a web browser without the need for a browser plugin like Flash and even a media server like Red5. The media connection will be peer to peer directly between browsers and the signaling can be SIP, Jingle or whatever over a WebSocket connection or HTTPRequest.
To see how WebRTC compares to Flash Player with RTMFP, I created a simple web page demo using the WebSockets plugin for Openfire and JavaScript and tested with the latest Chrome Canary 19.0.1041.
Performance is good, but it is still early days as the WebRTC specification is still evolving. There are active debates on signaling, device capability discovery and where to hide the the complex code; JavaScript libraries or the Browser. For those who want to see what's under the hood, I have attached the single web page. Run two instances from two different PCs. Change the JavaScript to suit your own Openfire server.
I think I have enough to get started on adding two-way Jingle Audio/Video to the OfChat web client using a WebRTC compatible transport.
The latest version of Smack is now available for download. There have been several bugfixes related to file transfer and minor improvements in this version.
Barring anything being broken specifically by this release, the next version of Smack will be 3.3, there are no plans for a 3.2.3 version.
Here is a list of issues resolved in this release.
NOTE: The documentation links have not been updated yet, but the jar files are available.
Dear Community,
after some more weeks of testing, debugging and developing, we would like to ask for your support and publish the first beta of Spark 2.7.0. Ultimately, we would like to move Spark to Java 7, but that is currently not implemented via the installers. This will change in January after an update to the lastest version von Install4j provided by ej-Technologies.
You can find the nightly build for Windows here: http://bamboo.igniterealtime.org/browse/SPARK-INSTALL4J-543/artifact/JOB1/Instal l4j
About Java 7: Spark 2.7.0 will run with Java 7. Please interchange the bundled JRE (located at Spark-install-folder\JRE) against a Java 7 JRE or use the installer named spark_2_6_3_12555_online.exe and install Java 7 as default on Windows. Using Java 7 will stop Spark from stealing the focus, when a new message is received.
Important Note: Oracle has introduced a bug in Java 1.6.0 u 25-27 that prevents Spark from closing automatically during the log-off on the Windows plattform. This is not Spark related. This affects all users that install the Spark version without an included JRE.
About file transfer: Spark 2.7.0 beta 1 is fixing an big bug with file transfer. Spark 2.6.x has an programmatic error that was making IBB file transfer very unstable. Tim Jentz deserves a big credit for finding this after weeks of debugging. Great job Tim!!!
Spark 2.7.0 will also move to a standard implementation for IBB file transfer. As a result of moving to the standard IBB implementation, you may have issues with transfer between Spark 2.7.0 and Spark 2.5.8 on IBB. This is an unavoidable result of obeying the standard. IBB is the fall back implementation, if Bytestream is not an option. Hence IBB is not the regular transfer method as it is much slower than Bytestream.
About plugins: There were large scale changes in the way Spark is dealing internally with plugins/extensions. All Plugin developers are kindly ask to review, if their plugins are still working. This applies also to Fastpath. Feedback regarding issues with this are highly appreciated.
About GUI: The Spark developers are only supporting JTattoo Luna. There are several reports that other skins are not working properly. This applies especially to Substance. If you are experiencing any GUI bug, please check if JTattoo Luna is also having this issue and report it.
As a general statement, I would urge all professional users to use the customizing options of Spark to get rid of Substance in corporate environments. The dev team may ultimately decide to remove Substance for 2.7x in a future release.
About Mac and Windows7 64 bit: The next Mac release is NOT secured. We are looking for a developer who can provide a Mac beta release. The integration to Windows7 64 bit is ok, but the flashing notification in the tray may or may not work. A tester and developer (MS C++ Code) for this is also needed.
The change log for this beta is:
SPARK-1465 Checkboxes appear bigger then normal since the jtattoo update
SPARK-1464 When user accepts group chat invitation, status is always online
SPARK-1460 No group context menu on a right click
SPARK-1459 Update to the latest JTattoo version (Nov 2011)
SPARK-1452 If conferences tab is hidden, then Fastpath tab is hidden also
SPARK-1451 Vcard popup is not always showing up on mouse hover
SPARK-1450 When network connection is lost, chat window cannot be closed
SPARK-1449 UNC Path does not link to folder
SPARK-1445 Selecting 'Start a chat' in a group chat room opens an incomplete chat window
SPARK-1444 Subscription dialog shows the id value instead of the nickname
SPARK-1443 Privacy plugins cannot be accessed if we log into Spark through the IP address of the server
SPARK-1465 Checkboxes appear bigger then normal since the jtattoo update
SPARK-1464 When user accepts group chat invitation, status is always online
SPARK-1460 No group context menu on a right click
SPARK-1459 Update to the latest JTattoo version (Nov 2011)
SPARK-1452 If conferences tab is hidden, then Fastpath tab is hidden also
SPARK-1451 Vcard popup is not always showing up on mouse hover
SPARK-1450 When network connection is lost, chat window cannot be closed
SPARK-1449 UNC Path does not link to folder
SPARK-1445 Selecting 'Start a chat' in a group chat room opens an incomplete chat window
SPARK-1444 Subscription dialog shows the id value instead of the nickname
SPARK-1443 Privacy plugins cannot be accessed if we log into Spark through the IP address of the server
SPARK-1442 JabberVersion.java uses hardcoded value "Spark IM Client" for version name
SPARK-1441 ContactItem in shared group - right click popup menu performs copy when move is selected
SPARK-1440 Bug in ConferenceUtils.java that can break smack communication
SPARK-1439 Plugins are loaded in random order - plugins with no dependency has to be loaded first
SPARK-1438 Avatars are not scaled in user login/logout notification dialog
SPARK-1437 Bug in PrivacyManager that can break smack communication
SPARK-1429 Update French translation
SPARK-1427 Default Appearance/Colors cannot be overwritten through plugin;Group-Chat colors are hard-coded
SPARK-1423 typo error in LayoutSettings.java
SPARK-1422 persist vcard may throw file not found exception when jid is empty
SPARK-1421 Application version and application name are hardcoded
SPARK-1420 The messages in the set status message window is not getting deleted
SPARK-1419 Chat room configuration shows wrong roles for which presence is broadcast
SPARK-1418 Update simplified Chinese translation
SPARK-1414 Chat window is not flashing when receiving new message on Windows 7 64 bit
SPARK-1413 Update build.xml to check for Java 7
SPARK-1411 Sometimes file transfer indication is not updated on the receiving side
SPARK-1408 Remove "#" character next to Accounts button on the login screen
SPARK-1405 Improved last activity recognition
SPARK-1403 Enhance ability to extend core classes like ContactItem, ContactGroup, etc through plugin
SPARK-1400 Update to latest version Exe4J
SPARK-1381 Group Chat - Actions/Start a conference menu: propose bookmarked room (if any) instead of adhoc (random) room name
SPARK-1379 Support for XEP-0147
SPARK-1326 Make tabs position optional: TOP or BOTTOM; make search input appearance optional
SPARK-1324 SparkToaster showing avatars in real size
SPARK-1313 Enhance ability to overwrite spark properties values through plugin
SPARK-1215 Log out doesn't log out, it shuts down spark
SPARK-891 Typing notifications would be easier to see if also displayed near typing area
The beta release also includes a new Smack library that is based on Smack 3.2.1 plus the following bugfixes:
SMACK-362 smack throw NoSuchElementException if the muc#roominfo_subject has no values
SMACK-354 Provide milliseconds in timestamp colum debugwindow
SMACK-353 Thread leak in the FaultTolerantNegotiator
SMACK-350 Bytestream is not working in Spark 2.6.3 from XP to W7
SMACK-349 Smack's IBB sends too much data in a packet
SMACK-348 Documentation error - broken link
SMACK-346 Bug in return code for rejection handling in FileTransferManager
SMACK-343 Make Smack jar an OSGi bundle.
SMACK-338 IBB filetransfer doesn't work as expected
SMACK-336 There is an empty element in a SASL response
SMACK-335 Need to set file size and name for outgoing file transfer from input stream
SMACK-324 Investigate SASL issue with jabberd2 servers
SMACK-322 NPE in XMPPConnection
SMACK-263 Set file info in all send* methods
Expect a second beta in the first quarter 2012 that will include the latest final release of Smack
Please report issues in the Developer Forum
Dear Community!
Another year has passed for this open source project and various developers have contributed significantly to nearly all of our projects. We were able to finally release Openfire 3.7 and Spark 2.6.3 under Apache 2.0 license. The most important Smack library has also seen several releases and last but not least the good old instant messaging gateway Kraken returned to us. Some great innovations were presented like SparkWeb/Redfire, Websocks and Candy. I really would like to thank all developers involved by contributing code and all users and system admins that went through this year. A very special thank you goes to Daryl Herzmann who keeps the servers healthy and Wroot for outstanding work in the forum. I would also like to single out Guus der Kinderen for his insights in Openfire architecture and the release of Openfire 3.7.
Merry Christmas to all of you and a happy, healthy and sucessful 2012
You are viewing a mobilized version of this site...
View original page here