No description
  • Python 99.8%
  • Dockerfile 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Goffi e8fb0a8a28 plugin XEP-0353, XEP-0234, jingle: WebRTC data channel signaling implementation:
Implement XEP-0343: Signaling WebRTC Data Channels in Jingle. The current version of the
XEP (0.3.1) has no implementation and contains some flaws. After discussing this on xsf@,
Daniel (from Conversations) mentioned that they had a sprint with Larma (from Dino) to
work on another version and provided me with this link:
https://gist.github.com/iNPUTmice/6c56f3e948cca517c5fb129016d99e74 . I have used it for my
implementation.

This implementation reuses work done on Jingle A/V call (notably XEP-0176 and XEP-0167
plugins), with adaptations. When used, XEP-0234 will not handle the file itself as it
normally does. This is because WebRTC has several implementations (browser for web
interface, GStreamer for others), and file/data must be handled directly by the frontend.
This is particularly important for web frontends, as the file is not sent from the backend
but from the end-user's browser device.

Among the changes, there are:

- XEP-0343 implementation.
- `file_send` bridge method now use serialised dict as output.
- New `BaseTransportHandler.is_usable` method which get content data and returns a boolean
  (default to `True`) to tell if this transport can actually be used in this context (when
  we are initiator). Used in webRTC case to see if call data are available.
- Support of `application` media type, and everything necessary to handle data channels.
- Better confirmation message, with file name, size and description when available.
- When file is accepted in preflight, it is specified in following `action_new` signal for
  actual file transfer. This way, frontend can avoid the display or 2 confirmation
  messages.
- XEP-0166: when not specified, default `content` name is now its index number instead of
  a UUID. This follows the behaviour of browsers.
- XEP-0353: better handling of events such as call taken by another device.
- various other updates.

rel 441
2024-04-06 12:57:23 +02:00
doc doc (contributing/testing): typo 2024-02-23 15:47:53 +01:00
docker docker: modernisation and fixes: 2024-03-05 16:43:45 +01:00
i18n refactoring: renamed sat package to libervia.backend 2023-06-02 11:49:51 +02:00
libervia plugin XEP-0353, XEP-0234, jingle: WebRTC data channel signaling implementation: 2024-04-06 12:57:23 +02:00
misc misc: added freedesktop metadata files 2021-06-18 13:03:32 +02:00
stubs/twisted plugin XEP-0384: Fully reworked to adjust to the reworked python-omemo: 2022-08-23 21:06:24 +02:00
tests tests: fix and update tests: 2024-03-05 17:31:56 +01:00
twisted/plugins installation: moved from setup.py to pyproject.toml: 2023-06-06 16:45:16 +02:00
.hgignore installation: moved from setup.py to pyproject.toml: 2023-06-06 16:45:16 +02:00
ACKNOWLEDGMENTS.md doc: README rewrite: 2023-06-06 13:42:00 +02:00
CHANGELOG CHANGELOG: update 2023-05-15 16:26:22 +02:00
CONTRAT_SOCIAL Renamed the project from "Salut à Toi" to "Libervia": 2021-03-20 20:42:04 +01:00
CONTRAT_SOCIAL_en Renamed the project from "Salut à Toi" to "Libervia": 2021-03-20 20:42:04 +01:00
COPYING Licence modification: the full project is now under AGPL v3+ instead of GPL v3+ 2012-08-01 22:53:02 +02:00
INSTALL installation: moved from setup.py to pyproject.toml: 2023-06-06 16:45:16 +02:00
pyproject.toml cli (call): tui output implementation: 2024-02-16 18:46:06 +01:00
README.md doc: README rewrite: 2023-06-06 13:42:00 +02:00
README4TRANSLATORS doc: minor fixes + use ".pot" extension instead of ".po" for template in README4TRANSLATORS 2019-05-26 22:21:56 +02:00

Libervia

Copyrights

  • Jérôme Poisson aka Goffi 2008-2023
  • Adrien Cossa aka Souliane 2013-2016
  • Additional contributions by community members

Libervia stands out as a one-of-a-kind XMPP (Jabber) client that brings you a comprehensive, multi-purpose, and multi-platform solution. It doesn't just focus on instant messaging but offers an array of tools and features all in one place.

License

Libervia is a Libre software (Free as in "Freedom"), distributed under the AGPL v3+ license. For the full license, please refer to the COPYING file.

Relevant URLs

Here are some useful URLs, all of which (except for the source code repository) are powered by Libervia itself, showcasing the flexibility and versatility of the tool:

Additionally, our blogs are accessible via ActivityPub thanks to the Libervia XMPP <=> ActivityPub gateway.

About

Libervia is a unique XMPP client based on a daemon/frontends architecture. It supports multi-frontends (desktop, web, console interface, CLI, etc.) and provides a plethora of multi-purpose tools such as instant messaging, microblogging, photo albums, calendar events, file sharing, A/V calls, and state-of-the-art end-to-end encryption.

Embedded within our DNA is a strong commitment to ethics. Our social contract provides insight into these principles - refer to CONTRAT_SOCIAL or CONTRAT_SOCIAL_en.

This repository contains the "backend" of Libervia—the heart of the software. To use it, you will need to install one or more frontends:

  • Libervia Web: Our flagship frontend, offering a potent, customizable social network for a broad spectrum of users—families, friends, groups, associations, public services, companies, and more.
  • Libervia Desktop: Integrated with your desktop, this frontend is under continual development. The existing Kivy-based version includes a prototype Android version, with an upcoming iteration to be based on Qt.
  • Libervia CLI: Bundled with Libervia Backend, our CLI is a true standout—one of the most powerful XMPP CLIs out there. It's the go-to tool for quick tasks or crafting automation scripts.
  • Libervia TUI: Perfect for terminal enthusiasts or headless server operations, our TUI is included with Libervia Backend.

Libervia can also function as an XMPP server component or a "generic" plugin. Currently, we offer two components:

  • An advanced file sharing component supporting HTTP File Upload, Jingle File Transfer, file deletion, public link, access permission, quotas, etc.
  • An XMPP <=> ActivityPub Gateway, enabling users to interact with ActivityPub content (from platforms like Mastodon, Pleroma, PeerTube, Mobilizon, etc.) as if they were XMPP blogs or private messages, and vice versa.

How To Use It?

For installation instructions and general documentation, please refer to the doc directory or visit https://libervia.org/documentation/

Contributions

Here are the URIs you can use to publish/retrieve tickets or merge requests:

  • Tickets: xmpp:pubsub.goffi.org?;node=org.salut-a-toi.tickets%3A0 (please use "core" label)
  • Merge requests: xmpp:pubsub.goffi.org?;node=org.salut-a-toi.merge_requests%3A0 (please use "core" label)

Tickets and merge requests are managed by Libervia itself using XMPP. For more information, visit https://libervia.org/tickets

Contact

Join us on the XMPP MUC room libervia@chat.jabberfr.org (web link), or contact us directly:

This software is dedicated to Roger Poisson.