
Aujourd'hui est apparu la plateforme de communication décentralisée Jami, elle est diffusée sous le nom de code Together. Auparavant, le projet était connu sous un autre nom — Ring, et avant cela — SFLPhone. En 2018, le messager décentralisé a été renommé pour éviter d'éventuels conflits de marques.
Le code du messager est diffusé sous la licence GPLv3. Jami est disponible pour GNU/Linux, Windows, MacOS, iOS, Android et Android TV. Au choix, il est possible de sélectionner l'une des interfaces basées sur Qt, GTK et Electron. Mais ce qui est essentiel ici, bien sûr, ce n'est pas les interfaces, mais ce que Jami permet d'échanger des messages sans faire appel à des serveurs externes dédiés.
Au lieu de cela, une connexion directe est établie entre les utilisateurs à l'aide d'un chiffrement de bout en bout. Les clés ne sont présentes que du côté client. Le processus d'authentification est basé sur des certificats X.509. En plus des messages, la plateforme permet de passer des appels audio et vidéo, de créer des téléconférences, d'échanger des fichiers et d'organiser le partage de fichiers et de contenu d'écran.
À l'origine, ce projet était positionné et s'est développé comme un téléphone SIP logiciel. Mais ensuite, les développeurs ont décidé d'élargir les fonctionnalités du projet tout en conservant la compatibilité avec SIP et en laissant la possibilité de passer des appels en utilisant ce protocole. Le programme prend en charge divers codecs, y compris G711u, G711a, GSM, Speex, Opus, G.722, en plus des protocoles ICE, SIP, TLS.
Parmi les fonctions de communication, on trouve l'annulation du renvoi d'appels, la mise en attente des appels, l'enregistrement des appels, l'historique des appels avec recherche, le contrôle automatique du volume, l'intégration avec les carnets d'adresses GNOME et KDE.
Il a été brièvement mentionné ci-dessus un système d'authentification des utilisateurs fiable. Le mécanisme est basé sur la blockchain — le carnet d'adresses fonctionne sur la base d'Ethereum. De plus, il est possible de se connecter à partir de plusieurs appareils, en communiquant avec l'utilisateur indépendamment de l'appareil qui est actif. Le carnet d'adresses, qui est responsable de la diffusion des noms dans RingID, est réalisé à l'aide de nœuds soutenus par différents participants. Grâce à eux, il est possible de lancer son propre nœud pour maintenir une copie locale du carnet d'adresses global.
En ce qui concerne l'adressage des utilisateurs, les développeurs ont utilisé le protocole OpenDHT pour résoudre ce problème, qui ne nécessite pas l'utilisation de registres centralisés contenant des informations sur les utilisateurs. La base de Jami est le jami-daemon, qui est responsable du traitement des connexions, de l'organisation de la communication et de la manipulation de la vidéo et du son.
L'interaction avec jami-daemon est réalisée sur la base de la bibliothèque LibRingClient. Elle est essentielle pour la construction du logiciel client et fournit la fonctionnalité nécessaire, qui n'est pas liée à l'interface utilisateur et aux plateformes. Des applications clientes sont ensuite développées au-dessus de LibRingClient.
Lors de la conversion du messager P2P en plateforme de télécommunication, les développeurs ont ajouté de nouvelles fonctionnalités et mis à jour les fonctionnalités existantes. Les voici :
- Amélioration du fonctionnement dans les réseaux à faible bande passante.
- Réduction des ressources utilisées lors de l'exécution sous Android et iOS.
- Le client pour Windows a été réécrit. Il peut également fonctionner en mode tablette.
- Des outils pour organiser des téléconférences avec plusieurs participants ont été ajoutés.
- Ajout de la possibilité de changer le mode de diffusion lors de la conférence.
- L'application peut être transformée en serveur d'un clic (ce qui peut être nécessaire, par exemple, pour organiser des conférences).
- Un serveur de gestion de comptes JAMS a été mis en place.
- Il est possible d'ajouter des plugins qui élargissent les fonctionnalités de base du messager.
Source : habr.com
