Представен е новият вариант на децентрализирана комуникационна платформа Jami, разпространяван под кодовото име „Világfa“. Проектът е насочен към създаване на система за комуникация, работеща в P2P режим, която позволява осъществяване на разговори в големи групи, както и индивидуални повиквания с осигурен висок уровень на конфиденциалност и сигурност. Jami, преди известен като Ring и SFLphone, е част от проектите на GNU и се разпространява под лицензия GPLv3. Бинарни сборки са подготвени за GNU/Linux (Debian, Ubuntu, Fedora, SUSE, RHEL и др.), Windows, macOS, iOS, Android и Android TV.
В отличие от традиционните комуникационни клиенти, Jami може да предава съобщения без да се свързва с външни сървъри, организирайки директно свързване между потребителите чрез крайно шифроване (End-to-end, ключовете са налични само на страната на клиента) и автентикация, основана на сертификати X.509. Освен защитен обмен на съобщения, програмата позволява осъществяване на гласови и видео повиквания, създаване на телеконференции, обмен на файлове, организиране на съвместен достъп до файлове и съдържание на екрана. За видео конференции на сървър с CPU Intel Core i7-7700K 4.20 GHz, 32 GB RAM и интернет връзка 100 Mbit/s, най-доброто качество се постига с не повече от 25 участници. За всеки участник на видеоконференцията е необходимо пропускателна способност от около 2 Mbit/s.
Първоначално проектът се развиваше като софтуерен телефон на базата на протокола SIP, но отдавна надхвърля тези рамки в полза на P2P модела, запазвайки съвместимост със SIP и възможността за извършване на повиквания с този протокол. Програмата поддържа различни кодеци (G711u, G711a, GSM, Speex, Opus, G.722) и протоколи (ICE, SIP, TLS), осигурява надеждно шифроване на видео, глас и съобщения. От сервисните функции могат да се отбележат пренасочване и задържане на повиквания, запис на разговори, история на повиквания с търсене, автоматичен контрол на звука и интеграция с адресни книги GNOME и KDE.
За идентификация на потребителя в Jami се използва децентрализирания глобален механизъм за автентикация на акаунти, който е основан на внедряването на адресна книга под формата на блокчейн (използват се разработки от проекта Ethereum). Един идентификатор на потребителя (RingID) може да се използва едновременно на няколко устройства и позволява свързване с потребителя независимо от активното устройство, без необходимост от поддържане на различни идентификатори на смартфона и ПК-то. Адресната книга, отговорна за транслацията на имената в RingID, се съхранява на група възли, поддържани от различни участници, включително е възможно да стартирате свой възел за поддържане на локално копие на глобалната адресна книга (Jami също реализира отделна вътрешна адресна книга, поддържана от клиента).
За адресиране на потребителите в Jami се използва протоколът OpenDHT (разпределена хеш таблица), който не изисква използването на централизирани регистри с информация за потребителите. Основата на Jami е фоновият процес jami-daemon, който отговаря за обработка на връзките, организиране на комуникацията, работа с видео и звук. Взаимодействието с jami-daemon е организирано чрез библиотеката LibRingClient, която служи като основа за изграждане на клиентски софтуер и предоставя цялата стандартна функционалност, независима от потребителския интерфейс и платформите. Върху LibRingClient се изграждат директно клиентските приложения, което улеснява създаването и поддържането на различни интерфейси. Основният клиент за ПК е написан с използване на библиотеката Qt, допълнително се развиват клиенти на базата на GTK и Electron.
Основни нововъведения:
- Продължава развитието на системата за групова комуникация „рой“ (Swarms), позволяваща създаването на напълно разпределени P2P чатове, чиито истории на разговорите се съхраняват синхронизирано на всички устройства на потребителя. Ако преди в роя беше разрешено общуването само между двама участника, в новата версия в режим рой сега могат да се създават малки групови чатове, състоящи се от до 8 души (в бъдещи версии се планира да се увеличи допустимият брой участници, както и да се добави поддръжка за публични чатове).

За създаването на групови чатове е добавен нов бутон и е предоставена възможност за настройка на параметрите на чата.

След създаването на груповия чат, могат да се добавят нови участници и да се премахват налични. Има три категории участници: поканен (добавен в групата, но все още не се е присъединил към чата), присъединил се и администратор. Всеки участник може да изпраща покани на други хора, но само администраторът може да премахва от групата (в момента може да има само един администратор, но в бъдещи версии ще се появи гъвкава система за права и възможност за назначаване на множество администратори).

- Добавена е нова панел с информация за чата, такава като списък на участниците, списък на изпратените документи и настройки.

- Добавени са няколко вида индикатори за прочетени съобщения и набор от текст.

- Предоставена е възможност за изпращане на файлове в чата, като участниците могат да получават файлове, дори ако изпращачът не е в мрежата.
- Добавен е интерфейс за търсене на съобщения в чатове.
- Добавена е поддръжка за реакция с емоджи символи.
- Добавена е опция за показване на информация за текущото местоположение.
- В настолния клиент е добавена експериментална поддръжка на групови чатове, съпровождащи провеждането на видеоконференция.
Източник: opennet.ru





