Commit graph

4,140 commits

Author SHA1 Message Date
Goffi
6a92ebce37 tests (unit/frontends): tests for webrtc implementation:
rel 426
2023-11-01 14:04:25 +01:00
Goffi
547375c079 frontends (tools): webrtc implementation:
this is a factored implementation usable by all non-web frontends. Sources and Sinks can
be configured easily to use tests source or local webcam/microphone, autosinks or a
`appsink` that the frontend will use.

rel 426
2023-11-01 14:03:36 +01:00
Goffi
1ce499a6d2 frontends (tools/aio): add tool to run from thread, run maybe async method, or run GLib loop:
- `run_from_thread` can be used to run a method from a thread.
- `maybe_async` can be used to run a method if we are not sure if it's async or not.
- `install_glib_asyncio_iteration` run the GLib loop from asyncio one's.

rel 426
2023-11-01 14:00:48 +01:00
Goffi
a57624cba6 install: add test dependencies to dev env 2023-11-01 13:57:08 +01:00
Goffi
143514999d plugin XEP-0363: fix headers setting 2023-11-01 13:55:34 +01:00
Goffi
ba3f96672f doc (cli): notification commands documentation. 2023-10-18 15:33:46 +02:00
Goffi
564ddf0be6 cli: add notification commands 2023-10-18 15:33:45 +02:00
Goffi
3e51dc187c cli (base): catch SystemExit to do a proper quit when Ctrl-C is pressed. 2023-10-18 15:33:38 +02:00
Goffi
40e7440de0 core (constants): accept y and t as True values. 2023-10-18 15:33:34 +02:00
Goffi
44eb60633e core (types): add is_admin to SatXMPPEntity 2023-10-18 15:33:24 +02:00
Goffi
b74f55d73d core: notifications implementation, first draft:
add a new table for notifications, and methods/bridge methods to manipulate them.
2023-10-16 17:29:31 +02:00
Goffi
bd2db73ee5 cli: rich initial integration 2023-10-18 15:30:07 +02:00
Goffi
ab7a7832c2 install: add rich dependency 2023-10-16 17:37:11 +02:00
Goffi
04a0e449c5 frontends (tools) new aio module for tools regarding asyncio:
A first method lets run an async method from blocking code.

rel 424
2023-10-03 16:27:51 +02:00
Goffi
366f827beb frontends (quick app): allow frontend to register an action handler:
Some feature may need to handle directly some action, such as the incoming `A/V call`
feature.

rel 424
2023-10-03 16:25:25 +02:00
Goffi
83925b198f frontend (quick app): allow to specify an async bridge:
Async Bridge can now be specified and used with `a_bridge` in addition to the legacy one.
The legacy one will eventually be removed.

rel 424
2023-10-03 16:24:13 +02:00
Goffi
c83ad1ea20 frontends (quick app): reformulate backend not running message + use "Libervia" instead of "SàT" 2023-10-03 16:22:10 +02:00
Goffi
f251aa48fa plugin XEP-0338: always add <group> element as first <jingle> child:
this is to work around a Movim bug (https://github.com/movim/movim/issues/1233).

rel 424
2023-10-03 16:00:21 +02:00
Goffi
0fba22ad10 plugin XEP-0338: be sure to add the <group> element only once:
rel 424
2023-10-03 15:27:07 +02:00
Goffi
f1d44fd872 plugin XEP-0167: mapping adjustments:
- use `9` as port placeholder
- add `a=ice-options:trickle` to indicate that ICE candidates may be sent after SDP
- moved senders mapping at media level
- fix `rtpmap` channel setting
- don't overwrite existing `fingerprint` data

rel 424
2023-10-03 15:25:52 +02:00
Goffi
81fb54de5c plugin XEP-0167: don't override existing metadata when preparing confirmation:
rel 424
2023-10-03 15:20:00 +02:00
Goffi
4df59a90cc plugin XEP-0167: fix key used to store metadata:
rel 424
2023-10-03 15:18:25 +02:00
Goffi
25cdd1bd42 plugin XEP-0167: keep media order when starting a call:
media content order is relevant when building Jingle contents/SDP notably for bundling.
This patch fixes the previous behaviour of always using the same order by keeping the
order of the data (i.e. order of original SDP offer). Previous behaviour could lead to
call failure.

rel 424
2023-10-03 15:15:24 +02:00
Goffi
29f70b35e2 plugin XEP-0045: fix name conflict in errback 2023-10-03 15:03:53 +02:00
Goffi
d60b79b18f plugin XEP-0167, XEP-0176: transport-info and ICE candidate sending are delayed if session is not active yet 2023-08-21 15:19:45 +02:00
Goffi
09d88cdfe2 plugin XEP-0167, XEP-0353: handle ringing:
- add a `jingle_preflight_info` method in the Jingle Application model to handle this kind
  of information
- XEP-0353 is calling `jingle_preflight_info` when a `ringing` message is received
- XEP-0167 use this information to send a `ringing` info to frontends
2023-08-16 18:33:28 +02:00
Goffi
71cfdccb5b plugin XEP-0166: reject session creation is session ID is empty 2023-08-16 18:28:32 +02:00
Goffi
0e6dd6a8de doc (installation): update pipx instruction and remove requirements.txt mention 2023-08-09 00:48:11 +02:00
Goffi
ba6e59d2d1 plugin XEP-0166, XEP-0167, XEP-0234, XEP-0353: call events management to prepare for UI:
- XEP-0166: add `jingle_preflight` and `jingle_preflight_cancel` methods to prepare a
  jingle session, principally used by XEP-0353 to create and cancel a session
- XEP-0167: preflight methods implementation, workflow split in more methods/signals to
  handle UI and call events (e.g.: retract or reject a call)
- XEP-0234: implementation of preflight methods as they are now mandatory
- XEP-0353: handle various events using the new preflight methods

rel 423
2023-08-09 00:07:37 +02:00
Goffi
2457f0f6a1 plugin XEP-0166: jingle_terminate, session handling and reason parsing:
- a new `jingle_terminate` bridge method let frontend terminate a session
- methods to manage a session from another plugin
- methods to parse `<reason>` element from another plugin
- allow session to be created before a first jingle request is received, to prepare for
  `preflight` methods

rel 423
2023-08-08 23:59:24 +02:00
Goffi
5d8334061b tools (common/data_objects): handle messages without body 2023-08-08 23:49:36 +02:00
Goffi
68c47bc78b component AP gateway: fix AP media type in GET and POST requests headers 2023-07-06 11:34:52 +02:00
Goffi
1075e86865 plugin JID Search: JID search plugin, first draft 2023-07-06 11:34:51 +02:00
Goffi
b3659079f5 backend: rename SatRosterProtocol to LiberviaRosterProtocol 2023-06-30 15:11:05 +02:00
Goffi
adfb02505d install: bump minimum python version 2023-06-30 15:10:05 +02:00
Goffi
b1fc474503 compoent AP gateway: add forgotten contant 2023-06-28 14:27:05 +02:00
Goffi
713dda18d3 component AP gateway: fix webfinger content type 2023-06-28 14:24:42 +02:00
Goffi
53ee4011e3 plugin URL preview: URL preview first draft 2023-06-27 15:48:15 +02:00
Goffi
75c8868620 doc (conf): fix version retrieval 2023-06-23 15:19:06 +02:00
Goffi
264d1b8356 cli (debug): fix deprecated method call 2023-06-23 15:18:43 +02:00
Goffi
173519a630 tools (common/template): add filter to get media types:
Add 2 filters to get main type and subtype of media type. Jinja2 and Nunjucks don't handle
slices in the same way (Python way for Jinja2, JS way for Nunjucks), making it difficult
to retrieve main type of a media from media type. Thoses filters work in both cases.
2023-06-22 15:49:06 +02:00
Goffi
fd53fb537e tools (common/data_objects): add attachments in Message 2023-06-22 15:47:17 +02:00
Goffi
ae0402fd75 plugin XEP-0363: fix handling of empty upload_jid in _get_slot 2023-06-22 15:46:42 +02:00
Goffi
b5932fb43e component file sharing: fix method name case:
`render_OPTIONS` is a method inherited from Twisted, name has been put to lowercase
following massive refactoring, resulting in the method not being called anymore. This
patch fixes it.
2023-06-22 15:45:20 +02:00
Goffi
27f4dfee75 plugin XEP-0060: move setting of pubsub_watching to profile_connecting so it's available early 2023-06-12 15:00:59 +02:00
Goffi
bf9db70bee core (memory/sqla_mapping): fix legacy pickled values:
folloing packages refactoring, legacy pickled values could not be unpickled (due to use of
old classes). This temporary workaround fix it, but the right thing to do will be to move
from pickle to JSON at some point.
2023-06-12 14:57:27 +02:00
Goffi
0fa0b3a5f6 component AP gateway: fix handling of XMPP comments authors:
the gateway was supposing that comments where emitted from PEP of author. While this is
the case for most blog posts, it's not for comments. Instead the component is now using
`author_jid` which is retrieved by XEP-0277 plugin, and reject the item if the auhor is
not verified (i.e. if `publisher` attribute is not set by XMPP service).
2023-06-12 14:50:43 +02:00
Goffi
2fa4681929 component AP gateway: fix method retrieval in ap_request:
following recent refactoring to use snake_case, the former method retrieve was broken,
this patch fixes it.
2023-06-12 14:45:13 +02:00
Goffi
1cd7d44e2e core (memory/sqla): fix row to dict conversion in get_files 2023-06-09 12:25:51 +02:00
Goffi
eae0e4958e build: explicitely set packages so doc is not accidentaly included 2023-06-08 21:30:57 +02:00