Zaprezentowano nową wersję zdecentralizowanej platformy komunikacyjnej Jami, dystrybuowanej pod nazwą kodową „Világfa”. Projekt ma na celu stworzenie systemu komunikacyjnego, który działa w trybie P2P i umożliwia zarówno komunikację dużych grup, jak i indywidualne połączenia z wysokim poziomem prywatności i bezpieczeństwa. Jami, wcześniej znany jako Ring i SFLphone, jest projektem GNU i jest dystrybuowany na licencji GPLv3. Wersje binarne są dostępne dla systemów GNU/Linux (Debian, Ubuntu, Fedora, SUSE, RHEL itp.), Windows, macOS, iOS, Android i Android TV.
В отличие от традиционных коммуникационных клиентов Jami способен передавать сообщения без обращения к внешним серверам через организацию прямого соединения между пользователями с применением сквозного шифрования (End-to-end, ключи присутствуют только на стороне клиента) и аутентификации на основе сертификатов X.509. Кроме защищённого обмена сообщениями, программа позволяет совершать голосовые и видео-звонки, создавать телеконференции, обмениваться файлами, организовывать совместный доступ к файлам и содержимому экрана. Для видеоконференций на serwer Dzięki procesorowi Intel Core i7-7700K 4.20 GHz, 32 GB pamięci RAM i połączeniu sieciowemu 100 Mb/s, najwyższą jakość można osiągnąć nawet przy 25 uczestnikach wideokonferencji. Każdy uczestnik potrzebuje około 2 Mb/s przepustowości.
Początkowo projekt rozwijany był jako telefon programowy bazujący na protokole SIP, ale już dawno wyszedł poza te ramy na rzecz modelu P2P, zachowując jednocześnie kompatybilność z SIP i możliwość wykonywania połączeń przy użyciu tego protokołu. Program obsługuje wiele kodeków (G711u, G711a, GSM, Speex, Opus, G.722) i protokołów (ICE, SIP, TLS), zapewniając niezawodne szyfrowanie obrazu, głosu i wiadomości. Funkcje serwisowe obejmują przekierowywanie i wstrzymywanie połączeń, nagrywanie rozmów, historię połączeń z funkcją wyszukiwania, automatyczną regulację głośności oraz integrację z książkami adresowymi GNOME i KDE.
Aby zidentyfikować użytkownika, Jami wykorzystuje zdecentralizowany, globalny mechanizm uwierzytelniania kont oparty na implementacji książki adresowej w formie łańcucha bloków (wykorzystuje rozwiązania z projektu Ethereum). Jednego identyfikatora użytkownika (RingID) można używać jednocześnie na wielu urządzeniach, co pozwala na kontakt z użytkownikiem niezależnie od tego, które urządzenie jest aktywne, bez konieczności używania różnych identyfikatorów na smartfonie i komputerze. Książka adresowa odpowiedzialna za tłumaczenie nazw na identyfikatory RingID jest przechowywana w grupie węzłów obsługiwanych przez różnych uczestników, co umożliwia uruchomienie własnego węzła w celu obsługi lokalnej kopii globalnej książki adresowej (Jami implementuje również oddzielną wewnętrzną książkę adresową obsługiwaną przez klienta).
Jami używa protokołu OpenDHT (distributed hash table) do adresowania użytkowników, co nie wymaga korzystania z centralnych rejestrów z informacjami o użytkownikach. Jami opiera się na procesie tła jami-daemon, który odpowiada za przetwarzanie połączeń, organizowanie komunikacji, pracę z obrazem i dźwiękiem. Interakcja z jami-daemon jest organizowana za pomocą biblioteki LibRingClient, która służy jako podstawa do tworzenia oprogramowania klienckiego i zapewnia wszystkie typowe 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 dla komputera PC jest napisany przy użyciu biblioteki Qt, a dodatkowo rozwijane są klienci bazujący na GTK i Electron.
Główne innowacje:
- Kontynuowany jest rozwój systemu komunikacji grupowej Swarms, który umożliwia tworzenie w pełni rozproszonych czatów P2P, a historia komunikacji jest przechowywana wspólnie na urządzeniach wszystkich użytkowników w zsynchronizowanej formie. Wcześniej w roju mogły komunikować się tylko dwie osoby, ale w nowej wersji można tworzyć małe grupowe czaty w trybie roju, liczące maksymalnie 8 osób (w przyszłych wersjach planowane jest zwiększenie liczby dozwolonych uczestników, a także dodanie obsługi czatów publicznych).

Dodano nowy przycisk umożliwiający tworzenie czatów grupowych i umożliwiono dostosowanie ustawień czatu.

Po utworzeniu czatu grupowego można dodawać do niego nowych członków i usuwać istniejących. Istnieją trzy kategorie członków: zaproszeni (dodani do grupy, ale jeszcze niepołączeni z czatem), połączeni i administratorzy. Każdy członek może wysyłać zaproszenia do innych osób, ale tylko administrator może usuwać członków z grupy (na razie może być tylko jeden administrator, ale przyszłe wersje będą zawierać elastyczny system praw dostępu i możliwość przypisania 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 odczytania wiadomości i wpisania tekstu.

- Dodano możliwość wysyłania plików na czacie, a uczestnicy czatu mogą otrzymać plik, nawet jeśli nadawca nie jest dostępny w trybie online.
- Dodano interfejs umożliwiający wyszukiwanie wiadomości na czatach.
- Dodano obsługę ustawiania reakcji za pomocą symboli emoji.
- Dodano opcję wyświetlania informacji o bieżącej lokalizacji.
- Klient stacjonarny został zaktualizowany o eksperymentalną obsługę czatu grupowego podczas wideokonferencji.
Źródło: opennet.ru





