Commit Graph

53 Commits

Author SHA1 Message Date
xenia 7b70e802bb implement bosh transport for old jitsi versions 2022-05-08 04:26:35 -04:00
xenia 173ace76a6 add ALPN and headers needed for meet.jit.si 2022-05-08 00:06:56 -04:00
Emmanuel Gil Peyrot 72c3062010 Delay pinger on stream bind
Given the serial state machine implemented by lib-gst-meet, it was
expecting an answer to the extdisco:2 iq but got a pong, and wrongly
assumed no STUN/TURN candidates were exposed by the server.

A much better solution would be to match on the iq id as well, but this
will do as a workaround.
2022-03-29 13:04:43 +07:00
Jasper Hugo b89e1cde87 Release gst-meet 0.4, lib-gst-meet 0.6 2022-03-09 13:37:12 +07:00
Jasper Hugo 476bc21adf fmt 2022-03-09 13:35:19 +07:00
Jasper Hugo ea73eec7ee Automatically decode audio & video rather than requiring the pipeline to 2022-03-09 13:34:26 +07:00
Jasper Hugo d7e2320fe5 Configurable JB size, send PLIs, send loss events, sep RTP/RTCP logging 2022-03-09 10:58:23 +07:00
Jasper Hugo 6ef974719b Transmit EndpointStats on the colibri channel 2022-03-09 10:05:28 +07:00
Jasper Hugo 0bdf6a8cd9 Update to released version of xmpp-parsers, minidom, jid 2022-03-07 19:16:25 +07:00
Jasper Hugo ca8cca9393 Bump versions 2022-03-07 16:59:43 +07:00
Jasper Hugo 3557183a37 TWCC fixes, improved logging
* Added `payload` field to recv caps, fixing TWCC!
 * Re-enabled TWCC for audio
 * Added context to TLS error logging
 * Added missing rtcp-fb for RTX
2022-03-07 15:48:45 +07:00
Jasper Hugo d44546e8c6 Add support for logging RTP/RTCP packets 2022-03-07 10:04:30 +07:00
Jasper Hugo 43afe4696a Response to E2E ping requests 2022-03-06 17:54:15 +07:00
Jasper Hugo 68c9935823 Implement XMPP pings (client -> server) 2022-03-06 17:53:37 +07:00
Jasper Hugo 44208e28b3 fmt 2022-03-06 16:24:02 +07:00
Jasper Hugo c68a7cbe0a Make it possible to disable certificate verification 2022-03-06 16:23:46 +07:00
Jasper Hugo 3f27c90489 Updates for GStreamer 1.20, XMPP parsing improvements
* Updated GStreamer to 1.20
* Updated libnice to 0.1.18
* Vendored a minimal set of modified xmpp-parsers elements rather than
  the whole thing
* Implemented retries of the initial Colibri connection
* Updated deps
2022-03-06 12:01:37 +07:00
Jasper Hugo 75d825a7e8 Update dependencies 2021-12-14 22:04:58 +07:00
Jasper Hugo cdb61f5a6b removed abs-send-time, added back grouping element 2021-12-14 21:42:47 +07:00
Jasper Hugo 594414138c Send the full presence when muting/unmuting 2021-11-19 12:08:57 +07:00
Jasper Hugo 6b33952074 Remove capsfilters from pipeline (fixes #5) 2021-11-05 10:52:17 +07:00
Jasper Hugo 16a33d7448 removed unused imports & unused serde-with dependency 2021-10-25 10:39:19 +07:00
Jasper Hugo 9250084436 pluggable TLS implementations, defaulting to native-tls 2021-10-25 10:21:05 +07:00
Emmanuel Gil Peyrot 66cfaa4da5 implement caps to avoid a panic
The previous disco#info was missing the required disco#info feature and
an identity, and the ecaps2 was computed from an empty disco#info
instead of the one we advertise.

In our case caps is a tiny optimisation which lets other participants
cache our disco#info to avoid querying us every time.

A future improvement will be to reply to ecaps2 queries as well.
2021-10-25 10:11:26 +07:00
Emmanuel Gil Peyrot c793d08bb6 wait for our self-presence to consider the room joined
The current code was only waiting until the first presence received from
the room, while our self-presence is the very last one to be received.
2021-10-25 10:07:33 +07:00
Emmanuel Gil Peyrot 7fa31bd796 make jingle more generic over codecs
This adds a very simple Codec struct, which describes each codec
supported by a RTP description.

It will make it much easier to add newer codecs in the future, like AV1.

This commit is best viewed with git log -p -w to ignore indent changes.
2021-10-25 10:06:52 +07:00
Emmanuel Gil Peyrot 5db78b11bf simplify RTP parsing 2021-10-25 10:06:52 +07:00
Emmanuel Gil Peyrot e22cf34f42 split ICE setup into its own function 2021-10-25 10:06:52 +07:00
Emmanuel Gil Peyrot c920fdf0a5 split RTP description parsing into its own function
This keeps the ugly Options used after in the code, in the future these
could be replaced with the ParsedRtpDescription struct instead.
2021-10-25 10:06:52 +07:00
linkmauve 0040d20151
don’t include region elements when empty (#4)
In small deployments, for instance when there is only one server for all
participants, the region doesn’t mean anything so we can remove the
elements instead of sending an empty value.
2021-10-11 21:36:10 +07:00
Emmanuel Gil Peyrot 9d2dcfb21c replaced empty ns hack with the actual namespace used
All children of a message/presence/iq are in the jabber:client namespace
in a c2s stream unless xmlns is specified.
2021-10-11 21:32:45 +07:00
Jasper Hugo fab8efe5fb Compatibility fixes
* Allow focus to be a bare or full JID (thanks @teowoz & @Tellyo)
* If extdisco fails, just continue without STUN/TURN (thanks @teowoz &
  @Tellyo)
* Updated deps for new colibri protocol crate
* rustfmt
2021-10-11 10:33:29 +07:00
Jasper Hugo 5c72befcef added repository, readme, documentation to lib-gst-meet manifest 2021-10-06 12:08:19 +07:00
Jasper Hugo 2b2ceca515 use new colibri crate & vendored xmpp-parsers 2021-10-06 12:06:27 +07:00
Jasper Hugo 55aa89010c updated deps, updated gst-meet for new lib-gst-meet API, export xmpp-parsers 2021-09-27 22:37:55 +07:00
Jasper Hugo 037c2d944f XMPP improvements
- Handle unsolicited XMPP messages gracefully
- Split out generic XMPP connection handler which can be used for
  connecting to brewery MUCs
- Don't deadlock during Jingle handling
2021-09-07 23:52:04 +07:00
Jasper Hugo 4575371d6d fmt 2021-08-25 11:21:43 +07:00
Jasper Hugo 9999cd212c better error reporting on connect failure 2021-08-25 11:20:48 +07:00
Jasper Hugo f414c9db66 RTX and TWCC working correctly 2021-08-24 15:40:08 +07:00
Jasper Hugo d5842ee79f RTX support, TCC support (not working correctly yet) 2021-08-23 11:56:11 +07:00
Jasper Hugo e5ed8d89f6 added support for some colibri signalling via gst-meet tool 2021-08-19 17:20:42 +07:00
Jasper Hugo 6f67e2536d lib-gst-meet 0.3: colibri message support, more flexible recv handling 2021-08-19 17:06:12 +07:00
Jasper Hugo 67134e84cc lib-gst-meet 0.2.1 2021-08-18 07:56:40 +07:00
Jasper Hugo e5d10c6da0 added set_pipeline_state to C API, improved participant-left handler 2021-08-18 07:56:01 +07:00
Jasper Hugo b593ca6697 added support for configuring tracing via API, made connected() private 2021-08-17 11:55:17 +07:00
Jasper Hugo 2fd02c7e68 provide a ctx argument for the C API callbacks 2021-08-17 08:55:17 +07:00
Jasper Hugo 56463c6100 Added verbosity option, added participant_left event 2021-08-15 18:24:06 +07:00
Jasper Hugo 11ffd97d8b updated gst-meet and lib-gst-meet to 0.2.0 2021-08-15 12:35:51 +07:00
Jasper Hugo 9af6db6c02 added initial draft of lib-gst-meet-c. added shell.nix for deps 2021-08-14 20:06:39 +07:00
Jasper Hugo 57f78656a3 compatibility with libnice 0.1.16 2021-08-14 13:04:40 +07:00