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.
This blogpost doubles as a GSoC update, as well as a version release blog post.
I have the honour to announce the latest release of Smack! Version 4.2.1 brings among bug fixes and additional features like Explicit Message Encryption (XEP-0380) and Message Processing Hints (XEP-0334) support for OMEMO Multi-End-Message-and-Object encryption (XEP-0384). The OMEMO protocol was developed by Andreas Straub for the Conversations messenger (also as a Google Summer of Code project) in 2015. Since then it got quite popular and drew a lot of attention for XMPP in the media. My hope is that my efforts to develop an easy to use Smack module will result in an even broader adoption.
The new Smack release is available from the Maven snapshot repository.
OMEMO is a protocol for multi-end to multi-end encrypted communication, which utilizes the so called Double Ratchet algorithm. It fulfills amongst the basic requirements of encrypted communication (confidentiality, authenticity and integrity) also the properties of deniability and forward secrecy as well as future secrecy. Smacks implementation brings support for encrypted single and group chats including identity management and session renegotiation.
Current implementations (as well as this one) are based upon the libsignal library developed by OpenWhisperSystems for their popular Signal (formerly TextSecure) messenger. Smack's OMEMO support is structured in two modules. There is smack-omemo (APL licensed), which contains the logic specified in the XEP, as well as some basic cryptographic code. The other module smack-omemo-signal (GPLv3 licensed) implements some abstract methods defined by smack-omemo and encapsulates all function calls to libsignal.
Currently smack-omemo-signal is the only module available that implements the double ratchet functionality, but there has been a lot of discussion on the XMPP Standards Foundations mailing list regarding the use of alternative (more permissively licensed) libraries for OMEMO (like for example Olm, a double ratchet implementation from our friends over at the [matrix] project). So once there is a new specification that enables the use of other libraries, it should be pretty easy to write another module for smack-omemo enabling OMEMO support for clients that are not GPLv3 compatible as well.
Smack’s OMEMO modules are my first bigger contribution to a free software project and started as part of my bachelors thesis. I’m quite happy with the outcome
That was a lot of talking about OMEMO. Now comes the second functioning of this blog post, my GSoC update.
My project of implementing Jingle File Transfer (XEP-0234) for Smack is going relatively well. I'm stuck at some points where there are ambiguities in the XEP or things I don't know yet, but most of the time I find another construction site where I can continue my work. Currently I'm implementing stanza providers and elements needed for file transfer. Along the way I steadily create Junit tests to keep the code coverage at a high level. Already it pays off when there are fiddly changes in the element structure. I already got file transfer over Jingle IBB working.
It’s a real pleasure to learn all the tools I never used before like code coverage reports or mocking and I think Flow does a good job introducing me to them one by one.
That’s all for now. Happy hacking
The Ignite Realtime Community is proud to announce the 4.1.4 release of Openfire. This release signifies our continued effort to have a stable 4.1 release series while work progresses on the next major release. A changelog exists denoting our 14 resolved issues and you can download the release builds from our website. The following table contains a reference of release build files, their associated sha1sums and the number of times the previous release for that build type was downloaded.
|OS||sha1sum||Filename||Version 4.1.3 Downloads|
|Linux RPM (32bit JRE)||8846cd55047d9871ef9357568e0c1a9f43c41652||openfire-4.1.4-1.i686.rpm||3,293|
|Linux RPM (No JRE)||61a89afb66d74d523addbd238bf0c008ffada8aa||openfire-4.1.4-1.noarch.rpm||2,249|
|Linux RPM (64bit JRE)||8f370c7e9dfe530f7d05d93122ca72b9b563c92c||openfire-4.1.4-1.x86_64.rpm||12,142|
As a reminder, our development of Openfire happens on Github and we have an active MUC development chat hosted at firstname.lastname@example.org. We are always looking for more folks interested in helping out, so please consider pitching in!
As always, please report any issues in the Community Forums and thanks for using Openfire!
Around two years ago, on 2015-03-29 to be precise, Smack 4.1.0 was tagged and released. A few days ago I've tagged and released Smack 4.2.0 to Maven Central. The 4.2.0 release marks a milestone for Smack, but before I got into the exciting new features, I'd like to thank the various contributors:
$ git shortlog -sn 4.1.0..4.2.0
459 Florian Schmaus
8 Fernando Ramirez
3 Anno van Vliet
2 Andrey Starodubtsev
2 Vyacheslav Blinov
1 Andrey Prokopenko
1 Daniel Hintze
1 Dave Cridland
1 David Black
1 Dmitry Deshevoy
1 Grigory Fedorov
1 Hugues Bruant
1 Ishan Khanna
1 Tomas Nosek
1 Tomáš Havlas
I can not remember when Smack had so many contributors. Thanks everyone and keep the contributions coming.
The notable changes to Smack 4.2 include support for DNSSEC (thanks to a previous MiniDNS GSOC project), JIDs as first class citizens by using JXMPP's JID API, and tons of other improvements, new features and bug fixes. You can read more in the Smack 4.2 Readme and Upgrade Guide and the Smack's JIRA release notes.
Last but not least, thanks to Bilal Siddiq, Smack now has a logo.
Ever wanted to contribute to open source? Are you interested in XMPP/DNS/DNSSEC? Google gives students the chance to work on open source projects and get paid for it as part of Google's Summer of Code 2017. The XSF acts as umbrella organization for projects like Smack and MiniDNS . Feel free to contact me in the email@example.com if you are interested in participating or if you want to discuss your own Smack/MiniDNS related project ideas.
Chrome version 57 makes a breaking change to webrtc that breaks Openfire Meetings. For details, read this.
You can apply a work-around by using the meetings settings admin web page to force a "negotiate" rtcpMuxPolicy as shown in the screen shot below.
Otherwise, upgrade to version 0.3.29 from github here.
The 0.4.x branch is now up-to-date with the latest Jitsi code including the mobile Jitsi-Meet applications for iPhone and Android. It can be previewed from here. It is still work in progress. If you test it with the mobile app, enter the full URL of your Jitsi-Meet application (https://<your-server>:7443/ofmeet/jitsi-meet/<room name>) and ensure your Openfire allows anonymous xmpp connections.
For many years now, Google is orchestrating its "Summer of Code" program. GSoC aims to bring student developers into the open source community, during the summer holidays.
As it did before, the XMPP Standards Foundation (XSF) will act as an umbrella organisation for this years edition of GSoC. The Ignite Realtime community is open to accept students under this umbrella.
If you're a student and interested in working on one of our projects as part of GSoC, you should get in contact! We've prepared a number of teaser tasks as well as project ideas, all of which are available in the XSF wiki.