Oggi è apparso
Il codice messenger è distribuito con licenza GPLv3. Jami è stato rilasciato per GNU/Linux, Windows, MacOS, iOS, Android e Android TV. Facoltativamente, puoi scegliere una delle opzioni per le interfacce basate su Qt, GTK ed Electron. Ma la cosa principale qui, ovviamente, non sono le interfacce, ma il fatto che Jami
Invece, viene stabilita una connessione diretta tra gli utenti utilizzando la crittografia end-to-end. Le chiavi sono presenti solo lato client. 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 la condivisione di file e contenuti dello schermo.
Inizialmente, questo progetto è stato posizionato e sviluppato come un telefono SIP software. Ma poi gli sviluppatori hanno deciso di espandere le funzionalità del progetto, pur mantenendo la compatibilità con SIP e lasciando la possibilità di effettuare chiamate utilizzando questo protocollo. Il programma supporta vari codec, inclusi G711u, G711a, GSM, Speex, Opus, G.722, oltre ai protocolli ICE, SIP, TLS.
Le funzioni di comunicazione includono l'annullamento dell'inoltro di chiamata, l'attesa di chiamata, la registrazione delle chiamate, la cronologia delle chiamate con ricerca, il controllo automatico del volume, l'integrazione della rubrica GNOME e KDE.
Sopra, abbiamo brevemente parlato di un sistema di autenticazione utente affidabile. Il meccanismo è basato sulla blockchain - la rubrica è basata su Ethereum. Allo stesso tempo, puoi connetterti da più dispositivi contemporaneamente, contattando l'utente, indipendentemente dal dispositivo attivo. La rubrica, responsabile della traduzione dei nomi nel RingID, viene implementata utilizzando nodi gestiti da membri diversi. Possono essere utilizzati per eseguire il proprio nodo per mantenere una copia locale della rubrica globale.
Per quanto riguarda l'indirizzamento agli utenti, gli sviluppatori hanno utilizzato il protocollo OpenDHT per risolvere questo problema, che non richiede l'uso di registri centralizzati con informazioni sugli utenti. La base di Jami è jami-daemon, che è responsabile dell'elaborazione delle connessioni, dell'organizzazione delle comunicazioni, del lavoro con video e audio.
L'interazione con jami-daemon si basa sulla libreria LibRingClient. È la base per la creazione del software client e fornisce le funzionalità necessarie che non sono legate all'interfaccia utente e alle piattaforme. E già su LibRingClient vengono sviluppate applicazioni client.
Durante l'elaborazione di un messenger P2P in una piattaforma di telecomunicazioni, gli sviluppatori
- Prestazioni migliorate su reti con larghezza di banda ridotta.
- Ridotta la quantità di risorse utilizzate quando si lavora con Android e iOS.
- Client riscritto per Windows. Può funzionare anche in modalità tablet.
- Esistono strumenti per la teleconferenza con più partecipanti.
- Aggiunta la possibilità di modificare la modalità di trasmissione nella conferenza.
- L'applicazione può essere trasformata in un server con un clic (questo potrebbe essere necessario, ad esempio, per le conferenze).
- Il server di gestione degli account JAMS è stato implementato.
- È possibile collegare plugin che estendono le capacità del messenger di base.
Fonte: habr.com