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.
Video Chat
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.
Fortunately, there are alternatives. I had used phono from labs.voxeo.com on the inspired-social project. It has a Java applet which first started life as the IAX applet and is now the backbone to the phono java library. It has an excellent media engine and even supports Jingle internally, but from Javascript. I on the other hand, needed a simple Java Jingle library.
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
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