
Oggi è stata presentata la piattaforma di comunicazione decentralizzata Jami, che viene distribuita sotto il nome di codice Together. In precedenza, il progetto è stato sviluppato con un altro nome — Ring, e prima ancora — SFLPhone. Nel 2018, il messenger decentralizzato è stato rinominato per evitare possibili conflitti di marchi.
Il codice del messenger è distribuito sotto licenza GPLv3. Jami è stato rilasciato per GNU/Linux, Windows, MacOS, iOS, Android e Android TV. È possibile scegliere uno dei vari tipi di interfacce basate su Qt, GTK ed Electron. Ma ciò che conta qui, ovviamente, non sono le interfacce, ma il fatto che Jami permette di scambiare messaggi senza fare riferimento a server esterni dedicati.
Invece, viene stabilita una connessione diretta tra gli utenti utilizzando la 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 teleconferenze, scambiare file, organizzare l'accesso condiviso a file e contenuti dello schermo.
Inizialmente, questo progetto è stato posizionato e sviluppato come un telefono SIP software. Ma poi gli sviluppatori hanno deciso di ampliare la funzionalità del progetto, mantenendo la compatibilità con SIP e consentendo di effettuare chiamate utilizzando questo protocollo. Il programma supporta vari codec, tra cui G711u, G711a, GSM, Speex, Opus, G.722, più protocolli ICE, SIP, TLS.
Tra le funzioni di comunicazione ci sono l'annullamento della deviazione, la messa in attesa delle chiamate, la registrazione delle chiamate, la cronologia delle chiamate con ricerca, controllo automatico del volume, integrazione con le rubriche GNOME e KDE.
Sopra si è brevemente parlato di un sistema affidabile di autenticazione degli utenti. Il meccanismo si basa sulla blockchain: la rubrica opera sulla base di Ethereum. È possibile connettersi contemporaneamente da più dispositivi, collegandosi con l'utente indipendentemente da quale dei dispositivi sia attivo. La rubrica, che è responsabile della traduzione dei nomi in RingID, è implementata utilizzando nodi supportati da diversi partecipanti. Con essi è possibile avviare un proprio nodo per mantenere una copia locale della rubrica globale.
Per quanto riguarda l'indirizzamento degli utenti, gli sviluppatori hanno utilizzato il protocollo OpenDHT per affrontare questa problematica, che non richiede l'uso di registri centralizzati con informazioni sugli utenti. Il cuore di Jami è jami-daemon, responsabile dell'elaborazione delle connessioni, dell'organizzazione della comunicazione e della gestione di video e audio.
L'interazione con jami-daemon è realizzata sulla base della libreria LibRingClient. Questa è fondamentale per sviluppare il software client e fornisce le funzionalità necessarie, che non sono legate all'interfaccia utente e alle piattaforme. Le applicazioni client vengono quindi sviluppate sopra LibRingClient.
Durante la trasformazione del messenger P2P in una piattaforma di telecomunicazione, gli sviluppatori hanno introdotto nuove funzioni e aggiornato quelle esistenti. Ecco un elenco:
- Migliorata la funzionalità nelle reti a bassa larghezza di banda.
- Ridotto il consumo di risorse durante l'uso su Android e iOS.
- Riscritto il client per Windows. Può funzionare anche in modalità tablet.
- Introdotti strumenti per la conduzione di teleconferenze con più partecipanti.
- Aggiunta la possibilità di cambiare la modalità di trasmissione durante la conferenza.
- L'app può essere trasformata in server con un clic (può essere utile, ad esempio, per tenere conferenze).
- Implementato un server per la gestione degli account JAMS.
- È possibile collegare plugin che ampliano le funzionalità del messenger di base.
Fonte: habr.com
