
Oggi è stata lanciata la piattaforma di comunicazione decentralizzata Jami, distribuita sotto il nome in codice Together. In precedenza, il progetto era noto come Ring, e prima ancora come SFLPhone. Nel 2018, il messenger decentralizzato è stato ribattezzato per evitare possibili conflitti di marchio.
Il codice del messenger è distribuito sotto la licenza GPLv3. Jami è disponibile per GNU/Linux, Windows, MacOS, iOS, Android e Android TV. È possibile scegliere tra diverse interfacce basate su Qt, GTK ed Electron. Ma ciò che conta di più non sono le interfacce, ma il fatto che Jami permette di scambiare messaggi senza fare riferimento a server esterni dedicati.
Invece, tra gli utenti viene stabilita una connessione diretta con l'uso della crittografia end-to-end. Le chiavi sono presenti solo sul lato del cliente. La procedura di autenticazione si basa su certificati X.509. Oltre ai messaggi, la piattaforma consente di effettuare chiamate audio e video, creare videoconferenze, scambiare file e organizzare la condivisione di file e contenuti dello schermo.
Inizialmente, questo progetto è stato concepito e sviluppato come un telefono SIP software. Tuttavia, gli sviluppatori hanno poi deciso di ampliare le funzionalità del progetto, mantenendo la compatibilità con SIP e la possibilità di effettuare chiamate tramite questo protocollo. Il programma supporta vari codec, tra cui G711u, G711a, GSM, Speex, Opus, G.722, oltre ai protocolli ICE, SIP, TLS.
Tra le funzioni di comunicazione si trovano la disattivazione del trasferimento, la gestione delle chiamate in attesa, la registrazione delle chiamate, la cronologia delle chiamate con ricerca, il controllo automatico del volume, e l'integrazione con le rubriche di GNOME e KDE.
Si è parlato sopra di un sistema affidabile di autenticazione degli utenti. Il meccanismo si basa sulla blockchain: la rubrica funziona su Ethereum. Gli utenti possono connettersi da più dispositivi, interagendo tra loro indipendentemente da quale dispositivo sia attivo. La rubrica, che gestisce la traduzione dei nomi in RingID, è implementata utilizzando nodi supportati da vari partecipanti. Con questi è possibile lanciare un nodo personale per mantenere una copia locale della rubrica globale.
Per quanto riguarda l'indirizzamento degli utenti, gli sviluppatori hanno utilizzato il protocollo OpenDHT, che non richiede l'uso di registri centralizzati con informazioni sugli utenti. La base di Jami è jami-daemon, responsabile della gestione delle connessioni, dell'organizzazione delle comunicazioni, della gestione di video e audio.
L'interazione con jami-daemon è implementata utilizzando la libreria LibRingClient. Questa rappresenta il nucleo per la costruzione del software client e fornisce la necessaria funzionalità, non legata all'interfaccia utente e alle piattaforme. Soprattutto su LibRingClient vengono sviluppate le applicazioni client.
Durante la trasformazione del messenger P2P in una piattaforma di telecomunicazioni, gli sviluppatori hanno introdotto nuove funzionalità e aggiornato quelle esistenti. Ecco un elenco:
- Migliorato il funzionamento in reti con bassa capacità di larghezza di banda.
- Ridotto il numero di risorse utilizzate durante il funzionamento su Android e iOS.
- Riscritto il client per Windows. Può funzionare anche in modalità tablet.
- Introdotti strumenti per condurre teleconferenze con più partecipanti.
- Aggiunta la possibilità di cambiare la modalità di trasmissione durante la conferenza.
- L'applicazione può essere trasformata in server con un clic (utile, ad esempio, per conferenze).
- È disponibile il server di gestione degli account JAMS.
- C'è la possibilità di integrare plugin che ampliano le funzionalità del messaggero di base.
Fonte: habr.com
