28.11.2020

Выпуск децентрализованного коммуникационного клиента Jami


Увидел свет первый выпуск децентрализованной коммуникационной платформы Jami, распространяемый под кодовым именем «Together». Jami входит в число проектов GNU и ранее развивался под именем Ring (до этого SFLphone), но в 2018 году был переименован, чтобы избежать столкновений с торговыми марками, принадлежащими компаниям, развивающим коммуникационные решения. Код распространяется под лицензией 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 сохранена и Jami может использоваться для совершения звонков при помощи 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 создаются непосредственно клиентские приложения, что позволяет достаточно просто создавать и поддерживать различные интерфейсы.

При разработке новой версии принято решение трансформировать Jami из простой P2P-системы в группу коммуникационных приложений, позволяющих организовать общение больших групп, сохранив при этом высокий уровень конфиденциальности и безопасности при индивидуальном общении. Jami «Together» включает в себя основу для развития данной идеи. Основные изменения:

  • Существенно улучшена работа в сетях с низкой пропускной способностью. Для взаимодействия пользователей теперь достаточно всего пропускной способности всего в 50 kB/s в режиме передачи звука и видео и 10 kB/s для аудиовызовов.
  • Снижено потребление ресурсов версиями для платформ Android и iOS, как для активности в фоновом режиме, так и при выполнении звонков, что положительно отразилось на времени автономной работы устройств.
  • Полностью переписан клиент Jami для платформы Windows, который теперь более органично вписывается в интерфейс Windows 10 и может использоваться в планшетном режиме.
  • Расширены средства для создания видеоконференций с несколькими участниками. До сих пор поддержка конференции была скорее формальной и не работала должным образом. В новом выпуске реализация конференций доведена до рабочего вида и сняты ограничения на число участников — размер конференций теперь ограничивается только имеющейся пропускной способностью и системными ресурсами. Предоставлена возможность динамической смены режима трансляции в конференции, например, участник может переключиться на показ презентации или предоставить доступ к содержимому экрана.
  • Предложена функция «Точки рандеву» («Rendezvous Points»), позволяющая одним кликом превратить клиентское приложение в сервер для проведения конференций. Точки рандеву создаются в форме специальной учётной записи, к которой можно присоединить несколько участников, через отправку им приглашений. Возможно создание как приватных, так и публичных конференций. Подобные конференции остаются постоянно активными и не мешают совершению других звонков. Например, учитель можно создать точку рандеву и использовать её для дистанционного обучения учеников. Для подключения после получения приглашения достаточно совершить звонок на связанную с точкой рандеву учётную запись.
  • Реализован сервер управления учётными записями JAMS (Jami Account Management Server), позволяющий централизованно управлять учётными записями локального сообщества или организации, сохраняя при этом распределённый характер сети. JAMS может применяться для интеграции с LDAP, ведения адресной книги и применения специфичных настроек для групп пользователей.
  • Реализована возможность подключения плагинов, позволяющих создавать и подключать дополнительные возможности без необходимости изучения внутренностей Jami. На данном этапе возможности плагинов ограничены обработкой видеопотока, например, предложен плагин GreenScreen, использующий методы машинного обучения для скрытия или замены фона при видеовызовах.

Источник: https://www.opennet.ru/opennews/art.shtml?num=53920

Добавить комментарий