Выпуск децентрализованного коммуникационного клиента Jami
20 октября 2020 года
Увидел свет первый выпуск децентрализованной коммуникационной платформы 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 и возможность совершения звонков при помощи данного протокола. Программа поддерживает различные кодеки (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 (Архивная копия от 20 октября 2020 на Wayback Machine) (Jami Account Management Server), позволяющий централизованно управлять учётными записями локального сообщества или организации, сохраняя при этом распределённый характер сети. JAMS может применяться для интеграции с LDAP, ведения адресной книги и применения специфичных настроек для групп пользователей.
- Реализована возможность подключения плагинов, позволяющих создавать и подключать дополнительные возможности без необходимости изучения внутренностей Jami. На данном этапе возможности плагинов ограничены обработкой видеопотока, например, предложен плагин GreenScreen, использующий методы машинного обучения для скрытия или замены фона при видеовызовах.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.