The new release of the decentralized communication platform Jami, codenamed ‘Világfa’, has been unveiled. The project aims to create a communication system that operates in P2P mode, allowing for both large group conversations and individual calls while providing a high level of confidentiality and security. Jami, formerly known as Ring and SFLphone, is part of the GNU projects and is distributed under the GPLv3 license. Binary builds are prepared for GNU/Linux (Debian, Ubuntu, Fedora, SUSE, RHEL, etc.), Windows, macOS, iOS, Android, and Android TV.
Unlike traditional communication clients, Jami can transmit messages without relying on external servers by establishing a direct connection between users using end-to-end encryption (the keys reside only on the client side) and X.509 certificate-based authentication. In addition to secure messaging, the application allows for voice and video calls, creating teleconferences, file sharing, and screen sharing. For video conferences on server a system with an Intel Core i7-7700K 4.20 GHz CPU, 32 GB RAM, and a 100 Mbit/s network connection, the best quality is achieved with no more than 25 participants. Each participant in a video conference requires a bandwidth of approximately 2 Mbit/s.
Initially, the project developed as a software phone based on the SIP protocol, but it has long since evolved into a P2P model while retaining compatibility with SIP and the ability to make calls using this protocol. The application supports various codecs (G711u, G711a, GSM, Speex, Opus, G.722) and protocols (ICE, SIP, TLS), ensuring reliable encryption for video, voice, and messages. Among its features are call forwarding, call holding, call recording, call history with search functionality, automatic volume control, and integration with GNOME and KDE address books.
Jami employs a decentralized global authentication mechanism for user identification, based on the implementation of a contact list in the form of a blockchain (utilizing developments from the Ethereum project). One user identifier (RingID) can be used simultaneously on multiple devices, allowing users to connect regardless of which device is active, without the need to maintain different identifiers on a smartphone and PC. The address book responsible for translating names into RingID is stored on a group of nodes supported by various participants, and it is also possible to run your own node to maintain a local copy of the global address book (Jami also implements a separate internal address book maintained by the client).
Jami uses the OpenDHT protocol (a distributed hash table) for user addressing, which does not require centralized registries holding user information. At its core, Jami consists of the background process jami-daemon, responsible for handling connections, organizing communication, and working with video and audio. Interaction with jami-daemon is organized through the LibRingClient library, which serves as the foundation for building client software and provides all standard functionality not tied to user interfaces or platforms. Client applications are created directly on top of LibRingClient, making it relatively easy to develop and maintain various interfaces. The main client for PCs is written using the Qt library, with additional clients being developed based on GTK and Electron.
Key innovations:
- The development of the 'swarm' (Swarms) group communication system has continued, allowing the creation of fully distributed P2P chats, the chat history of which is collectively stored on all user devices in a synchronized manner. Previously, swarms allowed communication among only two participants; in the new release, small group chats of up to 8 people can now be created in swarm mode (future releases plan to increase the allowable number of participants and add support for public chats).

A new button has been added to create group chats, along with the ability to configure chat settings.

After creating a group chat, you can add new participants and remove existing ones. There are three categories of participants: invited (added to the group but not yet joined the chat), joined, and administrator. Each participant can send invitations to others, but only the administrator can remove members from the group (currently, there can only be one administrator, but future releases will introduce a flexible permission system and the ability to appoint multiple administrators).

- A new panel has been added with information about the chat, such as the list of participants, sent documents, and settings.

- Several types of read and typing indicators have been added.

- It is now possible to send files in the chat, and participants can receive files even if the sender is offline.
- An interface for searching messages in chats has been added.
- Support for reactions using emoji symbols has been added.
- An option to display information about the current location has been introduced.
- Experimental support for group chat has been added to the desktop client, accompanying video conferencing.
Source: opennet.ru





