Spark is an Open Source, cross-platform IM client optimized for businesses and organizations. It features built-in support for group chat, telephony integration, and strong security. It also offers a great end-user experience with features like in-line spell checking, group chat room bookmarks, and tabbed conversations.
Combined with the Openfire server, Spark is the easiest and best alternative to using un-secure public IM networks.
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.
I recently started a project called jitsi-jingle primarily to add Jingle support to an audio-conferencing engine I was developing. It was also an opportunity to provide a replacement for the outdated smack jingle extension library (smackx-jingle) using the Jingle implementation of the active Jitsi project. This however turned out to be more challenging than it sounded as the OSGI dependecies in Jitsi and the internal abstraction model to support multiple protocols like SIP and XMPP made the code extraction difficult. There is a soon to be released libjitsi which should make the task easier, but I am running out of valuable time (I do this stuff in my spare time), so I had to choose another option for my immediate first release.
Enter mini-jingle from Thiago Rocha, the original developer of smackx-jingle (while he was at Jivesoftware) and the architect of Jingle Nodes. Project mini-jingle is a simple, but working Jingle implementation minus the media engine which makes it a very good fit with phono-java-audio. By adding support for basic raw RTP UDP packets, the standard PCMU (ulaw) voice codec and the Openfire jingle-nodes plugin, I now have a working Jingle library for Smack that should work most of the time either directly peer to peer or via a Jingle nodes media relay plugin for Openfire. There will always be the exception cases of where UDP packets are completely blocked by a firewall.
In order to test the library and put into practical use, I created a Spark plugin for it as a replacement for the old outdated Jingle plugin for simple voice calls between Spark users. When it is used with the Candy plugin for Openfire, it offers Spark users, group and private audio-conferencing from MUCs with Candy web clients as well. Just click on the telephone icon in the chat room toolbar.
If you intend to use it, pick it up from here and remember to delete the old jingle plugin in both the Spark folder and User data folders. Both won't work at the same time
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.
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
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