Доступен новый выпуск децентрализованной коммуникационной платформы Jami, распространяемый под кодовым именем “Maloya”. Проект нацелен на создание системы групповых коммуникаций, работающую в режиме P2P и позволяющую организовать как взаимодействие больших групп, так и индивидуального общения c предоставлением высокого уровня конфиденциальности и безопасности. Jami, в прошлом известный как Ring и SFLphone, входит в число проектов GNU и распространяется под лицензией GPLv3. Бинарные сборки подготовлены для GNU/Linux (Debian, Ubuntu, Fedora, SUSE, RHEL и т.п.), Windows, macOS, iOS, Android и Android TV. Развивается несколько вариантов интерфейсов на базе Qt, GTK и Electron.
В отличие от традиционных коммуникационных клиентов Jami способен передавать сообщения без обращения к внешним серверам через организацию прямого соединения между пользователями с применением оконечного шифрования (End-to-end, ключи присутствуют только на стороне клиента) и аутентификации на основе сертификатов X.509. Кроме защищённого обмена сообщениями, программа позволяет совершать голосовые и видео-звонки, создавать телеконференции, обмениваться файлами, организовывать совместный доступ к файлам и содержимому экрана.
Изначально проект развивался как программный телефон на базе протокола 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 создаются непосредственно клиентские приложения, что позволяет достаточно просто создавать и поддерживать различные интерфейсы.
В новом выпуске:
- Унифицировано клиентское приложение для платформ GNU/Linux и Windows (а скоро и для macOS), которое предоставляет новый улучшенный интерфейс на базе Qt, переработанный для упрощения совершения индивидуальных вызовов и проведения конференций. Добавлена возможность изменения микрофона и устройства вывода не прерывая звонка. Улучшены средства для предоставления совместного доступа к экрану.
- Повышена стабильность и расширены возможности, связанные с проведением конференций и встреч. Реализована поддержка назначения модераторов конференций, которые могут определять раскладку видео участников на экране, предоставлять слово докладчикам и прерывать участников при необходимости. Судя по проведённым тестам Jami в комфортном режиме может использоваться для конференций, насчитывающих до 20 участников (в ближайшее время этот показатель планируют поднять до 50).
- Объявлено о скором прекращении разработки клиента для GNU/Linux с интерфейсом на базе GTK (jami-gnome). Некоторое время jami-gnome ещё будет поддерживаться, но в конечном счёте работа над ним будет остановлена в пользу клиента на базе Qt. При появлении энтузиастов, готовых взять GTK-клиент в свои руки, проект готов предоставить такую возможность.
- В клиенте для macOS реализована поддержка плагинов.
- Улучшена работа плагина “GreenScreen”, использующего методы машинного обучения для скрытия или замены фона при видеовызовах. В новой версии добавлены возможность размытия фона, чтобы другие не видели то, что твориться вокруг участника.
- Добавлен новый плагин “Watermark”, позволяющий вывести свой логотип или любое изображение поверх видео, а также встроить дату и время.
- Добавлен плагин “AudioFilter” для добавления к звуку эффекта реверберации.
- Переработан клиент для iOS, в котором полностью изменён интерфейс и проведена работа по снижению энергопотребления. Повышена стабильность работы клиента для macOS.
- Улучшен сервер управления учётными записями JAMS (Jami Account Management Server), позволяющий централизованно управлять учётными записями локального сообщества или организации, сохраняя при этом распределённый характер сети. JAMS может применяться для интеграции с LDAP и Active Directory, ведения адресной книги и применения специфичных настроек для групп пользователей.
- Возвращена полноценная поддержка протокола SIP и предоставлена возможность подключения к GSM-сетям и любым провайдерам SIP-сервисов.