The first version of the decentralized communications platform Jamie, whose code name is "Together". Jami is part of the GNU projects and was previously developed under the name Ring (formerly SFLphone), but it was renamed in 2018 to avoid collisions with trademarks owned by companies developing communications solutions.
Unlike traditional communication clients, Jami can transfer messages without contacting external servers by organizing a direct connection between users using end-to-end encryption (end-to-end keys are only present on the client side) and X.509 certificate-based authentication.
In addition to secure messaging, the program allows you to make voice and video calls, create conference calls, exchange files, organize file sharing and screen content.
Initially, the project was developed as a softphone based on the SIP protocol, but has gone far beyond this framework in favor of the P2P model, maintaining compatibility with SIP and the ability to make calls using this protocol.
The program supports multiple codecs (G711u, G711a, GSM, Speex, Opus, G.722) and protocols (ICE, SIP, TLS), provides reliable encryption of video, voice and messages. Service features include call forwarding and holding, call recording, search call history, automatic volume control, integration with GNOME and KDE address books.
Main news of Jami “Together”
During the development of the new version, it was decided to transform Jami from a simple P2P system to a group communication system that allows organizing communication between large groups, maintaining a high level of confidentiality and security during individual communication.
As performance on low-bandwidth networks has been significantly improved. For user interaction, a bandwidth of only 50 kB / s for video transmission and 10 kB / s for audio calls is now sufficient.
Reduction of resource consumption by versions for Android and iOS platforms, both due to background activity and when making calls, which has a positive effect on the battery life of the devices.
The client Jami for the Windows platform has been completely rewritten, which now fits more organically into the Windows 10 interface and can be used in tablet mode.
As well Enhanced tools for creating multi-party video conferencing are highlighted. In the new version, the conferencing implementation has been brought into a functional form and restrictions on the number of participants have been removed; conference size is now limited only by available bandwidth and system resources.
The function has been proposed "Meeting Points", which allows one click to turn a client application into a conference server. The meeting points are created in the form of a special account, to which several participants can connect by sending them invitations. You can create both private and public conferences.
These conferences are constantly active and do not interfere with other calls. For example, a teacher can create a meeting point and use it to teach students remotely. To connect after receiving an invitation, just make a call to the account associated with the meeting point.
A JAMS account management server was implemented (Jami Account Management Server), which allows you to centrally manage the accounts of a community or local organization, while maintaining the distributed nature of the network. JAMS can be used to integrate with LDAP, maintain an address book, and apply specific settings for groups of users.
Also the ability to connect plugins was implemented that allow you to create additional features without having to study the internals of Jami.
At this stage, plugins are limited to processing video streaming, for example, the GreenScreen plugin has been proposed, which uses machine learning methods to hide or replace the background in video calls.
Finally, binaries are prepared for different systems, such as Debian, Ubuntu, Fedora, SUSE, RHEL, Windows, macOS, iOS, Android, and Android TV and various options are being developed for interfaces based on Qt, GTK, and Electron.