Представлен новый выпуск децентрализованной коммуникационной платформы Jami, распространяемый под кодовым именем "Világfa". Проект нацелен на создание системы коммуникаций, работающей в режиме P2P и позволяющей организовать как общение больших групп, так и выполнение индивидуальных вызовов c предоставлением высокого уровня конфиденциальности и безопасности. 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 ОЗУ и сетевым подключением 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 (распределённая хэш таблица), не требующий применения централизованных реестров c информацией о пользователях. Основу Jami составляет фоновый процесс jami-daemon, который отвечает за обработку соединений, организацию связи, работу с видео и звуком. Взаимодействие с jami-daemon организовано при помощи библиотеки LibRingClient, которая служит основой для построения клиентского ПО и предоставляет всю типовую функциональность, не привязанную к интерфейсу пользователя и платформам. Поверх LibRingClient создаются непосредственно клиентские приложения, что позволяет достаточно просто создавать и поддерживать различные интерфейсы. Основной клиент для ПК написан с использованием библиотеки Qt, дополнительно развиваются клиенты на базе GTK и Electron. Основные новшества:
|