gajim merge requestshttps://dev.gajim.org/gajim/gajim/-/merge_requests2024-03-03T21:43:43Zhttps://dev.gajim.org/gajim/gajim/-/merge_requests/1013Draft: Implement Send Voice Messages2024-03-03T21:43:43ZmesoniumDraft: Implement Send Voice MessagesVery much POC and WIP at this stage. Only tested and only works under Linux with PulseAudio right now.Very much POC and WIP at this stage. Only tested and only works under Linux with PulseAudio right now.https://dev.gajim.org/gajim/gajim/-/merge_requests/1025Calls2024-03-27T21:33:43ZwusspussCallsIntroduces audio and video calls functionality, including Windows support (not packaged for Windows yet, but run successfully inside a vm with video and on real hardware without video - probably just a packaging issue). For Linux there's...Introduces audio and video calls functionality, including Windows support (not packaged for Windows yet, but run successfully inside a vm with video and on real hardware without video - probably just a packaging issue). For Linux there's a build flatpak build sample under .Devel.yaml
There's a [pre-built flatpak](https://files.catbox.moe/jm1y7z.flatpak) for the curious
It's worth pointing out that the new [libdatachannel](https://github.com/paullouisageneau/libdatachannel) dependency replaces farstream and libnice. This branch doesn't remove farstream-related code and in general doesn't mess with anything other than calls. But even for file transfers (which iiuc are currently broken anyway), libdatachannel can later replace farstream - especially now that Conversations and Dino implement file transfers with \`urn:xmpp:jingle:transports:webrtc-datachannel:1\` - that's a perfect match for the future. Moreover, libdatachannel is actively maintained and cross platform (including Windows), unlike farstream.
The new AV-related code is covered by tests. Most of those are skipped by default: they try to display video and play audio in different ways via libdatachannel, which means they're not as quick and need a network connection. They can be run by setting `TEST_SOUNDS` environment variable. With them enabled, the whole test suite takes about a minute to run on my machine, makes noises and pops up windows.
For those interested in Windows: here are draft pkgbuilds for windows: [libdatachannel](https://github.com/wusspuss/libdatachannel-mingw-pkgbuild) and [bindings](https://github.com/wusspuss/libdatachannel-python-mingw-pkgbuild). I have successfully run audio and video calls on win11 in qemu (had to use [mesa](https://fdossena.com/?p=mesa%2Findex.frag) because of qemu), but a person from the chatroom told me they had trouble with `gtkglsink` on a windows host and got it to work using `gtksink`. I can't test it yet because I don't have a Windows host, but I suspect they just didn't install some gst-... package properly. We may want to just replace gtkglsink with gtksink.https://dev.gajim.org/gajim/gajim/-/merge_requests/995Draft: DTLS-SRTP support for Jingle2024-03-26T20:15:42ZIvan ShapovalovDraft: DTLS-SRTP support for JingleThis is an implementation of DTLS-SRTP negotiation in Jingle sessions using gstreamer+farstream RTP stack.
This is a draft PR including a substantial amount of general refactoring of Jingle code.
Depends on:
- https://gitlab.freedeskto...This is an implementation of DTLS-SRTP negotiation in Jingle sessions using gstreamer+farstream RTP stack.
This is a draft PR including a substantial amount of general refactoring of Jingle code.
Depends on:
- https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5951
- https://gitlab.freedesktop.org/farstream/farstream/-/merge_requests/8
A testing build lives at https://intelfx.name/flatpak/intelfx.flatpakrepo (org.gajim.gajim.Devel).