Wprowadzono nową wersję zdecentralizowanej platformy komunikacyjnej Jami, dystrybuowanej pod kryptonimem „Világfa”. Projekt ma na celu stworzenie systemu łączności działającego w trybie P2P i umożliwiającego organizację zarówno komunikacji pomiędzy dużymi grupami, jak i rozmów indywidualnych, przy jednoczesnym zapewnieniu wysokiego poziomu poufności i bezpieczeństwa. Jami, wcześniej znany jako Ring i SFLphone, jest projektem GNU i jest objęty licencją GPLv3. Zespoły binarne są przygotowane dla GNU/Linux (Debian, Ubuntu, Fedora, SUSE, RHEL itp.), Windows, macOS, iOS, Android i Android TV.
W przeciwieństwie do tradycyjnych klientów komunikacyjnych, Jami jest w stanie przesyłać wiadomości bez konieczności kontaktowania się z zewnętrznymi serwerami, organizując bezpośrednie połączenie pomiędzy użytkownikami za pomocą kompleksowego szyfrowania (klucze znajdują się tylko po stronie klienta) i uwierzytelniania w oparciu o certyfikaty X.509. Oprócz bezpiecznej komunikacji program umożliwia wykonywanie połączeń głosowych i wideo, tworzenie telekonferencji, wymianę plików oraz organizowanie współdzielonego dostępu do plików i zawartości ekranu. W przypadku wideokonferencji na serwerze z procesorem Intel Core i7-7700K 4.20 GHz, 32 GB pamięci RAM i połączeniem sieciowym 100 Mbit/s, najlepszą jakość osiąga się, gdy podłączonych jest nie więcej niż 25 uczestników. Każdy uczestnik wideokonferencji potrzebuje przepustowości około 2 Mbit/s.
Początkowo projekt rozwijał się jako softphone oparty na protokole SIP, jednak już dawno wyszedł poza te ramy na rzecz modelu P2P, zachowując jednocześnie kompatybilność z SIP i możliwość wykonywania połączeń za pomocą tego protokołu. Program obsługuje różne kodeki (G711u, G711a, GSM, Speex, Opus, G.722) i protokoły (ICE, SIP, TLS), zapewnia niezawodne szyfrowanie wideo, głosu i wiadomości. Funkcje usługi obejmują przekazywanie i zawieszanie połączeń, nagrywanie rozmów, historię połączeń z wyszukiwaniem, automatyczną regulację głośności, integrację z książkami adresowymi GNOME i KDE.
Do identyfikacji użytkownika Jami wykorzystuje zdecentralizowany mechanizm globalnego uwierzytelniania kont, oparty na implementacji książki adresowej w formie blockchain (wykorzystuje się rozwiązania projektu Ethereum). Jeden identyfikator użytkownika (RingID) może być używany jednocześnie na wielu urządzeniach i pozwala na kontakt z użytkownikiem niezależnie od tego, które urządzenie jest aktywne, bez konieczności utrzymywania różnych identyfikatorów na smartfonie i komputerze. Książka adresowa odpowiedzialna za tłumaczenie nazw na RingID przechowywana jest na grupie węzłów utrzymywanych przez różnych uczestników, łącznie z możliwością uruchomienia własnego węzła w celu utrzymania lokalnej kopii globalnej książki adresowej (Jami wdraża również oddzielną wewnętrzną książkę adresową prowadzoną przez Klient).
Do adresowania użytkowników w Jami wykorzystywany jest protokół OpenDHT (distributed hash table), który nie wymaga stosowania scentralizowanych rejestrów zawierających informacje o użytkownikach. Podstawą Jami jest działający w tle proces jami-daemon, który odpowiada za przetwarzanie połączeń, organizowanie komunikacji, pracę z obrazem i dźwiękiem. Interakcja z jami-daemon jest zorganizowana przy użyciu biblioteki LibRingClient, która służy jako podstawa do budowania oprogramowania klienckiego i zapewnia wszystkie standardowe funkcjonalności, które nie są powiązane z interfejsem użytkownika i platformami. Aplikacje klienckie są tworzone bezpośrednio na LibRingClient, co znacznie ułatwia tworzenie i obsługę różnych interfejsów. Główny klient na PC jest napisany przy użyciu biblioteki Qt, a dodatkowe klienty oparte są na GTK i Electronie.
Główne innowacje:
- Kontynuowano rozwój systemu komunikacji grupy rojowej (Swarms), umożliwiającego tworzenie w pełni rozproszonych czatów P2P, których historia komunikacji przechowywana jest wspólnie na wszystkich urządzeniach użytkowników w zsynchronizowanej formie. Podczas gdy wcześniej w roju mogło komunikować się tylko dwóch uczestników, w nowej wersji tryb roju może teraz tworzyć małe czaty grupowe składające się z maksymalnie 8 osób (w przyszłych wersjach planują zwiększyć dozwoloną liczbę uczestników, a także dodać obsługę do rozmów publicznych).
Dodano nowy przycisk umożliwiający tworzenie czatów grupowych oraz udostępniono możliwość konfiguracji ustawień czatu.
Po utworzeniu czatu grupowego możesz dodawać do niego nowych uczestników i usuwać istniejących. Istnieją trzy kategorie uczestników: zaproszeni (dodani do grupy, ale jeszcze nie połączeni z czatem), połączeni i administratorzy. Każdy uczestnik może wysyłać zaproszenia do innych osób, ale tylko administrator może usuwać je z grupy (na razie może być tylko jeden administrator, ale w przyszłych wersjach dostępny będzie elastyczny system praw dostępu i możliwość wyznaczania wielu administratorów).
- Dodano nowy panel z informacjami o czacie, takimi jak lista uczestników, lista wysłanych dokumentów i ustawienia.
- Dodano kilka typów wskaźników dotyczących czytania wiadomości i pisania tekstu.
- Dostępna jest możliwość wysyłania plików do czatu, a uczestnicy czatu mogą otrzymać plik, nawet jeśli nadawca nie jest online.
- Dodano interfejs do wyszukiwania wiadomości na czatach.
- Dodano obsługę ustawiania reakcji za pomocą znaków emoji.
- Dodano opcję wyświetlania informacji o aktualnej lokalizacji.
- Do klienta Desktop dodano eksperymentalną obsługę czatu grupowego towarzyszącego wideokonferencjom.
Źródło: opennet.ru