jami-daemon issueshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues2024-03-28T00:05:08Zhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/953Call Swarm: full pass2024-03-28T00:05:08ZSébastien BlinCall Swarm: full pass# TODO
+ Check performance
+ Check call ending announcement
+ Check support on all platforms
+ Fallback
+ ask for hosts
+ audio binding
+ test with 8 devices
+ Performance# TODO
+ Check performance
+ Check call ending announcement
+ Check support on all platforms
+ Fallback
+ ask for hosts
+ audio binding
+ test with 8 devices
+ PerformanceSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/87UPnP enable ipv6 and bump contrib2021-05-26T13:41:57ZSébastien BlinUPnP enable ipv6 and bump contribAll is in the title, currently upnp doesn't work with IPv6. Try to bump the contrib and re-enable ipv6 support.All is in the title, currently upnp doesn't work with IPv6. Try to bump the contrib and re-enable ipv6 support.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/100Call Quality Test Tool button2020-10-01T19:27:14ZovariCall Quality Test Tool buttonSuggestions:<br>
1. Add a `Call Quality Test Tool`button (circled in red at the top right in the image below) as the last button after `Place video call`, `Place audio call`, `Add contact` button in the chatview
2. Add a `Call Quality Te...Suggestions:<br>
1. Add a `Call Quality Test Tool`button (circled in red at the top right in the image below) as the last button after `Place video call`, `Place audio call`, `Add contact` button in the chatview
2. Add a `Call Quality Test Tool` option in the Conversations right-click menu
This will enable testing the Audio (in two sections in the image below, i.e. Microphone, Speaker), Camera (called Webcam in the image below), Device (called Computer in image below), Connection.
3. If the device is not powerful enough for video call is could have an X, instead of a tick.
4. If the connection is not fast enough for audio and high quality video calls, advise the Jami user to only make an audio call without video
5. Add a `Check call quality guide` button to advise testing both ends of the connection using speedtest.net (or similar) then compare your upload/download results with the table below…
| Call type | Voice Calling |
| - | - |
| Voice Calling | 100kbps / 100kbps |
| Video calling / Screen sharing | 300kbps / 300kbps |
| Video calling (high-quality) | 500kbps / 500kbps |
| Video calling (HD) | 1.5Mbps / 1.5Mbps |
Please update the table with the correct speeds required for Jami.
6. Add a `Test now` button (circled in red at the bottom right in the image below)which would test the connection between the 2 Jami connections.
https://www.learnbycam.com/onlinelearningblogposting.aspx/120/Fast-Connection-But-Skype-Still-Slow-A-Solution
![Test connection](/uploads/834ca8805962758c0351c1c74b8b7def/image.png)
What do you think?
Thank youhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/109SIP account TLS/SRTP configuration is old fashioned/confusing2022-11-11T16:13:35ZMaxim CournoyerSIP account TLS/SRTP configuration is old fashioned/confusingTested on: Android 20190103 (f-droid)
Recently, voip.ms (finally) added support for calls encryption using TLS for signaling and SRTP for media. I was thrilled to try it with Jami, but couldn't get it to work:
1. Add SIP account basic ...Tested on: Android 20190103 (f-droid)
Recently, voip.ms (finally) added support for calls encryption using TLS for signaling and SRTP for media. I was thrilled to try it with Jami, but couldn't get it to work:
1. Add SIP account basic detail (alias, hostname, username & password), registered OK.
2. Went to Security tab (android client), and enable TLS transport. As voip.ms is using a trusted SSL certificate, I wouldn't expect to have to do anything else, but:
a) the greyed out options below suggest that only the client certificate is going to be verified (I don't care about my cert, but I do want to authenticate the SIP server). So I checked the "Verify Server" box, and unchecked "Verify Client" and "TLS Require Client Certificate".
b) I have no idea why there's a "Server Name" field; this should at least defaults to my SIP hostname, if required?
c) There are other options which are nice for a self signed certs setup I guess, but overly complicated for the more straightforward CA signed use case. Perhaps they could be hidden under an "advanced" section?
d) I put my hostname in Server Name, just in case, and left the other options empty/default.
Expected result: SIP account is re-registered using TLS.
Actual result: TLS seems to fail silently, option is reverted to disabled when visiting the security menu.Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/115Socket_pair: Buffer should be resizable2019-05-24T14:44:18ZSébastien BlinSocket_pair: Buffer should be resizableFor now, SRTPProtoContext have the attribute `encryptbuf` limited to `RTP_MAX_PACKET_LENGTH = 2048;`. This is good for UDP, but not TCP compliant.For now, SRTPProtoContext have the attribute `encryptbuf` limited to `RTP_MAX_PACKET_LENGTH = 2048;`. This is good for UDP, but not TCP compliant.Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/242Video encoding - Dynamically change the resolution of the encoded frames2022-01-18T22:20:21ZMohamed ChibaniVideo encoding - Dynamically change the resolution of the encoded framesBacklogMohamed ChibaniMohamed Chibanihttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/174Moving from one wifi to another during a call freeze the video2024-01-06T10:28:00ZSébastien BlinMoving from one wifi to another during a call freeze the videoAudio is still working, but not the control channel nor video channel
If possible, the video should come back, be renegotiated or the call closed. (timeout between media packets?)Audio is still working, but not the control channel nor video channel
If possible, the video should come back, be renegotiated or the call closed. (timeout between media packets?)https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/185Call Forward* { on Busy ; No Answer ; Always } for Jami accounts2024-02-09T20:01:33ZovariCall Forward* { on Busy ; No Answer ; Always } for Jami accounts[Improving SIP Support for Ring](https://ring.cx/en/news#improving-sip-support-for-ring) shared news about the `Call Transfer` feature.
Please add the following:
* `Call Forward on Busy`: Forward all calls if you are on the phone to a n...[Improving SIP Support for Ring](https://ring.cx/en/news#improving-sip-support-for-ring) shared news about the `Call Transfer` feature.
Please add the following:
* `Call Forward on Busy`: Forward all calls if you are on the phone to a number of your choice. Standard call rates may apply.
* `Call Forward No Answer`: Forward all unanswered calls to a number of your choice. Standard call rates may apply.
* `Call Forward Always`: Forward all calls to your SIP (VoIP) phone number to another number of your choice. Standard call rates may apply.
![image](/uploads/4df8d0a3947eff09dd5747925ac97034/image.png)
The idea for this feature (which also shows icons in the image above) came from https://www.exetel.com.au/phone/voip-features
[**Difference Between Call Forward and Call Transfer**](https://learningnetwork.cisco.com/thread/85291)
<b><i>Call Forwarding</i></b>
Call forwarding allows you to send all your incoming calls to another landline or cell phone number. Call forwarding overrides the ability to answer the phone forwarded from the original line. This service requires a subscription through your phone service provider and may incur an additional monthly fee.
<b><i>Call Transfer</i></b>
Call transfer allows you to send a call from one phone to another telephone without the need to disconnect the phone call. This feature is usually activated by the push of a button followed by dialing an extension.
Thank youhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/220Explore WebRTC support2023-11-20T14:19:22ZAdrien BéraudExplore WebRTC supportBacklogLarbi GharibLarbi Gharibhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/301No relay (Turn) candidate in SDP with IOS when being connected in LTE/4G2021-02-17T16:19:15ZCyrille BéraudNo relay (Turn) candidate in SDP with IOS when being connected in LTE/4GSee attached file for log (with an Android comparison)[sdpios-andoid.log](/uploads/891e408417fd3059abed50184563f396/sdpios-andoid.log)
To reproduce:
Be connected on LTE/4G, make a call.
btw, why all the addresses are twice as candidate?See attached file for log (with an Android comparison)[sdpios-andoid.log](/uploads/891e408417fd3059abed50184563f396/sdpios-andoid.log)
To reproduce:
Be connected on LTE/4G, make a call.
btw, why all the addresses are twice as candidate?BacklogMohamed ChibaniKateryna KostiukSébastien BlinMohamed Chibanihttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/333TlsSession: use setOnRecv_ for reliable transport2022-07-11T17:46:31ZSébastien BlinTlsSession: use setOnRecv_ for reliable transportlike we do for unreliable transportslike we do for unreliable transportsLaterSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/694ffmpeg: add G711, G729 codecs (SIP)2022-07-06T00:18:18Zovariffmpeg: add G711, G729 codecs (SIP)Please add the following codecs to Jami:
* [G.711a](https://en.wikipedia.org/wiki/G.711)
* [G.711u](https://en.wikipedia.org/wiki/G.711)
* [G.729a](https://en.wikipedia.org/wiki/G.729)
What do you think?
Thank you
> MyNetFone uses th...Please add the following codecs to Jami:
* [G.711a](https://en.wikipedia.org/wiki/G.711)
* [G.711u](https://en.wikipedia.org/wiki/G.711)
* [G.729a](https://en.wikipedia.org/wiki/G.729)
What do you think?
Thank you
> MyNetFone uses the **G.711a** codec, it is the standard codec used in Australia and Europe. The **G.711u** codec is used within the US, and may be present in PBXs or UC platforms from US vendors. The **G.729a** codec is often used for conference calling services.<br>
> https://www.mynetfone.com.au/support/faq/question/477
> The patents for G.711, released in 1972, have expired, so it may be used without the need for a licence
> https://en.wikipedia.org/wiki/G.711#Licensing
> As of January 1, 2017, the patent terms of most licensed patents under the G.729 Consortium have expired, the remaining unexpired patents are usable on a royalty-free basis.<br>
> https://en.wikipedia.org/wiki/G.729.1
https://git.jami.net/savoirfairelinux/ring-daemon/issues/200Backloghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/701Recheck all APIs2022-02-03T20:34:22ZSébastien BlinRecheck all APIs+ Remove unnecessary APIs
+ Homogeneize file naming
+ definitions URI/ids
+ Split ConfigurationManager+ Remove unnecessary APIs
+ Homogeneize file naming
+ definitions URI/ids
+ Split ConfigurationManagerBackloghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/383Checking for working udev doesn't work.2021-01-23T19:32:14ZFuchtelJockelChecking for working udev doesn't work.This doesn't catch the nonfunctional udev installation that flatpaks ship with.
```cpp
udev_ = udev_new();
if (!udev_)
goto udev_failed;
udev_mon_ = udev_monitor_new_from_netlink(udev_, "udev");
if (!udev_mon_)
...This doesn't catch the nonfunctional udev installation that flatpaks ship with.
```cpp
udev_ = udev_new();
if (!udev_)
goto udev_failed;
udev_mon_ = udev_monitor_new_from_netlink(udev_, "udev");
if (!udev_mon_)
goto udev_failed;
if (udev_monitor_filter_add_match_subsystem_devtype(udev_mon_, "video4linux", NULL))
goto udev_failed;
/* Enumerate existing devices */
devenum = udev_enumerate_new(udev_);
if (devenum == NULL)
goto udev_failed;
if (udev_enumerate_add_match_subsystem(devenum, "video4linux")) {
udev_enumerate_unref(devenum);
goto udev_failed;
}
```
Currently the flatpak version works using a patch but maybe this could be added as a build option or some of the checks are broken?
```
diff --git a/src/media/video/v4l2/video_device_monitor_impl.cpp b/src/media/video/v4l2/video_device_monitor_impl.cpp
index c6a4a2e9f..faa8f4179 100644
--- a/src/media/video/v4l2/video_device_monitor_impl.cpp
+++ b/src/media/video/v4l2/video_device_monitor_impl.cpp
@@ -126,7 +126,9 @@ VideoDeviceMonitorImpl::VideoDeviceMonitorImpl(VideoDeviceMonitor* monitor)
udev_enumerate_unref(devenum);
goto udev_failed;
}
-
+
+ goto udev_failed;
+
udev_monitor_enable_receiving(udev_mon_);
/* Note that we enumerate _after_ monitoring is enabled so that we do not
* loose device events occuring while we are enumerating. We could still
```https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/400Use PKCS #11 API for access to cryptographic keys2024-02-15T21:21:00ZVladimir StoiakinUse PKCS #11 API for access to cryptographic keysHi!
It would be nice if Jami can store account's cryptographic keys on devices specially designed for this purpose, like smartcards or tokens.
GnuTLS already have support for [this](https://www.gnutls.org/reference/gnutls-pkcs11.html)....Hi!
It would be nice if Jami can store account's cryptographic keys on devices specially designed for this purpose, like smartcards or tokens.
GnuTLS already have support for [this](https://www.gnutls.org/reference/gnutls-pkcs11.html).
Related to ring-project#719.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/463Replace Portaudio with WASAPI to support communication device enumeration and...2021-03-22T19:50:52ZAndreas TraczykReplace Portaudio with WASAPI to support communication device enumeration and output loopbackAndreas TraczykAndreas Traczykhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/700UPnP - Make port ranges configurable2022-02-03T20:29:33ZMohamed ChibaniUPnP - Make port ranges configurableThe port ranges (TCP and UDP) used by upnp to port mapping allocation must be configurable (currently they are hard-coded).
A new API must be added to allow a user to set the ranges for both UDP and TCP ports. If not set, default values ...The port ranges (TCP and UDP) used by upnp to port mapping allocation must be configurable (currently they are hard-coded).
A new API must be added to allow a user to set the ranges for both UDP and TCP ports. If not set, default values be used.
Might be related to https://git.jami.net/savoirfairelinux/ring-daemon/-/issues/417Backloghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/476No SIP registration due to bad network detection2021-03-15T14:53:10ZEnrico ScholzNo SIP registration due to bad network detectionjami 20210308.1.7cc33bd does not do any SIP registration here. E.g. with tcpdump I see DNS queries (and responses) for the SIP server but no further communication to the SIP server itself.
Running the daemon with `--debug` shows
```
*...jami 20210308.1.7cc33bd does not do any SIP registration here. E.g. with tcpdump I see DNS queries (and responses) for the SIP server but no further communication to the SIP server itself.
Running the daemon with `--debug` shows
```
** (jami-gnome:822803): DEBUG: 14:24:26.718: NetworkManager client initialized, version: (null)
daemon running: no
nnetworking enabled: no
```
<details>
<summary>Full Log</summary>
<pre>
$ ring.cx --debug
(jami-gnome:822803): GLib-DEBUG: 14:24:25.931: setenv()/putenv() are not thread-safe and should not be used after threads are created
** (jami-gnome:822803): DEBUG: 14:24:25.931: debug enabled
** Message: 14:24:25.933: Jami GNOME client version: development
** Message: 14:24:25.933: git ref: unknown
** (jami-gnome:822803): DEBUG: 14:24:25.933: enabling autostart
** (jami-gnome:822803): DEBUG: 14:24:25.933: checking /usr/share/jami-gnome/jami-gnome.desktop
(jami-gnome:822803): dconf-DEBUG: 14:24:25.933: watch_established: "/net/jami/JamiGnome/" (establishing: 1)
** (jami-gnome:822803): DEBUG: 14:24:25.934: '/home/ensc/.config/autostart/jami-gnome.desktop' is already a symlink to '/usr/share/jami-gnome/jami-gnome.desktop'
(jami-gnome:822803): dbind-WARNING **: 14:24:25.945: AT-SPI: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.NameHasNoOwner: Could not activate remote peer.
** (jami-gnome:822803): DEBUG: 14:24:26.098: installed translations for de
** (jami-gnome:822803): DEBUG: 14:24:26.098: installed translations for de_DE
(jami-gnome:822803): GLib-GIO-DEBUG: 14:24:26.106: _g_io_module_get_default: Found default implementation gvfs (GDaemonVfs) for ‘gio-vfs’
(jami-gnome:822803): GLib-DEBUG: 14:24:26.178: unsetenv() is not thread-safe and should not be used after threads are created
(jami-gnome:822803): Gtk-DEBUG: 14:24:26.178: Connecting to session manager
(jami-gnome:822803): Gtk-DEBUG: 14:24:26.178: Failed to get the GNOME session proxy: The name org.gnome.SessionManager is not owned
Can't open file: "/home/ensc/.local/share/jami/606bab6fe62f6e4c/profile.vcf"
** (jami-gnome:822803): DEBUG: 14:24:26.254: notify server name: naughty, vendor: awesome, version: 3.5, spec: 1.0
(jami-gnome:822803): Gtk-WARNING **: 14:24:26.255: Child name 'calls' not found in GtkStack
(jami-gnome:822803): Gtk-CRITICAL **: 14:24:26.256: gtk_container_remove: assertion 'GTK_IS_WIDGET (widget)' failed
(jami-gnome:822803): Gtk-CRITICAL **: 14:24:26.256: gtk_container_add: assertion 'GTK_IS_WIDGET (widget)' failed
(jami-gnome:822803): Gtk-CRITICAL **: 14:24:26.256: gtk_widget_show: assertion 'GTK_IS_WIDGET (widget)' failed
(jami-gnome:822803): Gtk-CRITICAL **: 14:24:26.256: gtk_container_remove: assertion 'GTK_IS_WIDGET (widget)' failed
(jami-gnome:822803): Gtk-CRITICAL **: 14:24:26.257: gtk_container_add: assertion 'GTK_IS_WIDGET (widget)' failed
(jami-gnome:822803): Gtk-CRITICAL **: 14:24:26.257: gtk_widget_show: assertion 'GTK_IS_WIDGET (widget)' failed
(jami-gnome:822803): dconf-DEBUG: 14:24:26.257: watch_fast: "/net/jami/JamiGnome/" (establishing: 0, active: 1)
invoking IsSupported() failed for remote volume monitor with dbus name org.gtk.vfs.GoaVolumeMonitor:: GDBus.Error:org.freedesktop.DBus.Error.NameHasNoOwner: Could not activate remote peer. (g-dbus-error-quark, 3)
(jami-gnome:822803): dconf-DEBUG: 14:24:26.413: watch_fast: "/org/gtk/settings/file-chooser/" (establishing: 0, active: 0)
(jami-gnome:822803): dconf-DEBUG: 14:24:26.414: watch_established: "/org/gtk/settings/file-chooser/" (establishing: 1)
(jami-gnome:822803): dconf-DEBUG: 14:24:26.565: watch_fast: "/net/jami/JamiGnome/" (establishing: 0, active: 2)
(jami-gnome:822803): Gtk-CRITICAL **: 14:24:26.585: gtk_scrolled_window_add: assertion 'child_widget == NULL' failed
(jami-gnome:822803): dconf-DEBUG: 14:24:26.623: change_fast
(jami-gnome:822803): dconf-DEBUG: 14:24:26.623: change_notify: /net/jami/JamiGnome/show-main-window
(process:822825): GLib-GIO-DEBUG: 14:24:26.661: Failed to initialize portal (GNetworkMonitorPortal) for gio-network-monitor: Not using portals
(process:822825): GLib-GIO-DEBUG: 14:24:26.663: Failed to initialize networkmanager (GNetworkMonitorNM) for gio-network-monitor: NetworkManager not running
(process:822825): GLib-GIO-DEBUG: 14:24:26.663: _g_io_module_get_default: Found default implementation netlink (GNetworkMonitorNetlink) for ?gio-network-monitor?
(WebKitWebProcess:822824): dbind-WARNING **: 14:24:26.672: AT-SPI: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.NameHasNoOwner: Could not activate remote peer.
(jami-gnome:822803): dconf-DEBUG: 14:24:26.701: change_fast
(jami-gnome:822803): dconf-DEBUG: 14:24:26.702: change_notify: /net/jami/JamiGnome/window-width
(jami-gnome:822803): dconf-DEBUG: 14:24:26.702: change_fast
(jami-gnome:822803): dconf-DEBUG: 14:24:26.702: change_notify: /net/jami/JamiGnome/window-height
(jami-gnome:822803): dconf-DEBUG: 14:24:26.708: change_fast
(jami-gnome:822803): dconf-DEBUG: 14:24:26.708: change_notify: /net/jami/JamiGnome/window-width
(jami-gnome:822803): dconf-DEBUG: 14:24:26.708: change_fast
(jami-gnome:822803): dconf-DEBUG: 14:24:26.708: change_notify: /net/jami/JamiGnome/window-height
(jami-gnome:822803): dconf-DEBUG: 14:24:26.718: change_fast
(jami-gnome:822803): dconf-DEBUG: 14:24:26.718: change_notify: /net/jami/JamiGnome/window-maximized
** (jami-gnome:822803): DEBUG: 14:24:26.718: NetworkManager client initialized, version: (null)
daemon running: no
nnetworking enabled: no
** (jami-gnome:822803): WARNING **: 14:24:26.718: no primary network connection detected, check network settings
(process:822825): GLib-GIO-DEBUG: 14:24:26.740: _g_io_module_get_default: Found default implementation gvfs (GDaemonVfs) for ?gio-vfs?
(jami-gnome:822803): dconf-DEBUG: 14:24:26.756: change_fast
(jami-gnome:822803): dconf-DEBUG: 14:24:26.756: change_notify: /net/jami/JamiGnome/window-width
(jami-gnome:822803): dconf-DEBUG: 14:24:26.756: change_fast
(jami-gnome:822803): dconf-DEBUG: 14:24:26.756: change_notify: /net/jami/JamiGnome/window-height
(jami-gnome:822803): dconf-DEBUG: 14:24:26.776: change_fast
(jami-gnome:822803): dconf-DEBUG: 14:24:26.776: change_notify: /net/jami/JamiGnome/window-width
(jami-gnome:822803): dconf-DEBUG: 14:24:26.776: change_fast
(jami-gnome:822803): dconf-DEBUG: 14:24:26.776: change_notify: /net/jami/JamiGnome/window-height
(jami-gnome:822803): dconf-DEBUG: 14:24:26.792: change_fast
(jami-gnome:822803): dconf-DEBUG: 14:24:26.792: change_notify: /net/jami/JamiGnome/window-width
(jami-gnome:822803): dconf-DEBUG: 14:24:26.792: change_fast
(jami-gnome:822803): dconf-DEBUG: 14:24:26.792: change_notify: /net/jami/JamiGnome/window-height
(WebKitWebProcess:822824): GLib-GIO-DEBUG: 14:24:26.796: _g_io_module_get_default: Found default implementation gvfs (GDaemonVfs) for ‘gio-vfs’
(jami-gnome:822803): dconf-DEBUG: 14:24:26.810: change_fast
(jami-gnome:822803): dconf-DEBUG: 14:24:26.810: change_notify: /net/jami/JamiGnome/window-width
(jami-gnome:822803): dconf-DEBUG: 14:24:26.810: change_fast
(jami-gnome:822803): dconf-DEBUG: 14:24:26.810: change_notify: /net/jami/JamiGnome/window-height
(jami-gnome:822803): dconf-DEBUG: 14:24:26.828: change_fast
(jami-gnome:822803): dconf-DEBUG: 14:24:26.828: change_notify: /net/jami/JamiGnome/window-width
(jami-gnome:822803): dconf-DEBUG: 14:24:26.828: change_fast
(jami-gnome:822803): dconf-DEBUG: 14:24:26.828: change_notify: /net/jami/JamiGnome/window-height
(jami-gnome:822803): dconf-DEBUG: 14:24:26.847: change_fast
(jami-gnome:822803): dconf-DEBUG: 14:24:26.847: change_notify: /net/jami/JamiGnome/window-width
(jami-gnome:822803): dconf-DEBUG: 14:24:26.848: change_fast
(jami-gnome:822803): dconf-DEBUG: 14:24:26.848: change_notify: /net/jami/JamiGnome/window-height
(jami-gnome:822803): dconf-DEBUG: 14:24:26.865: change_fast
(jami-gnome:822803): dconf-DEBUG: 14:24:26.865: change_notify: /net/jami/JamiGnome/window-width
(jami-gnome:822803): dconf-DEBUG: 14:24:26.865: change_fast
(jami-gnome:822803): dconf-DEBUG: 14:24:26.865: change_notify: /net/jami/JamiGnome/window-height
(jami-gnome:822803): Gdk-CRITICAL **: 14:24:26.880: gdk_window_thaw_toplevel_updates: assertion 'window->update_and_descendants_freeze_count > 0' failed
(jami-gnome:822803): dconf-DEBUG: 14:24:26.882: change_fast
(jami-gnome:822803): dconf-DEBUG: 14:24:26.882: change_notify: /net/jami/JamiGnome/window-width
(jami-gnome:822803): dconf-DEBUG: 14:24:26.882: change_fast
(jami-gnome:822803): dconf-DEBUG: 14:24:26.882: change_notify: /net/jami/JamiGnome/window-height
(jami-gnome:822803): dconf-DEBUG: 14:24:26.899: change_fast
(jami-gnome:822803): dconf-DEBUG: 14:24:26.899: change_notify: /net/jami/JamiGnome/window-width
(jami-gnome:822803): dconf-DEBUG: 14:24:26.899: change_fast
(jami-gnome:822803): dconf-DEBUG: 14:24:26.899: change_notify: /net/jami/JamiGnome/window-height
(jami-gnome:822803): dconf-DEBUG: 14:24:26.917: change_fast
(jami-gnome:822803): dconf-DEBUG: 14:24:26.917: change_notify: /net/jami/JamiGnome/window-width
(jami-gnome:822803): dconf-DEBUG: 14:24:26.917: change_fast
(jami-gnome:822803): dconf-DEBUG: 14:24:26.917: change_notify: /net/jami/JamiGnome/window-height
</pre>
</details>
I am not using Gnome and network is managed manually (no NetworkManager)https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/492libnatpmp is always used from contribs2023-05-05T19:02:06ZMaxim Cournoyerlibnatpmp is always used from contribsThe contrib build system relies on pkg-config to detect system libraries, as done here:
```
ifeq ($(call need_pkg,'libnatpmp'),)
PKGS_FOUND += natpmp
endif
```
This never marks natpmp as found, because libnatpmp doesn't install any pkg...The contrib build system relies on pkg-config to detect system libraries, as done here:
```
ifeq ($(call need_pkg,'libnatpmp'),)
PKGS_FOUND += natpmp
endif
```
This never marks natpmp as found, because libnatpmp doesn't install any pkg-config file (.pc), thus cannot be found via pkg-config.
Possible solution: Rather than reinvent the wheel in this contrib build system, perhaps we could use Autoconf as the configuration driver of the contribs build system, which is quite capable in this regard. It could return a list of targets needed from the contribs build system to be built, and add them as dependencies.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/506plugins: set handlers activation order2021-04-01T12:53:01ZAline Gondim Santosplugins: set handlers activation orderUser should be able to change the order each handler is called from the observable notify.User should be able to change the order each handler is called from the observable notify.BacklogAline Gondim SantosAline Gondim Santoshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/507Unable to kick local participant from rendez-vous2024-01-26T12:42:50ZPierre LespagnolUnable to kick local participant from rendez-vous# Scenario
- Bob join RDV-Bob (2 accounts same device)
- Bob join RDV-Alice
- Alice join RDV-Alice (2 accounts same device)
- Bob kick Alice from conference
# Expected result
- Alice is kicked from RDV-Alice
# Current result
- Alice is...# Scenario
- Bob join RDV-Bob (2 accounts same device)
- Bob join RDV-Alice
- Alice join RDV-Alice (2 accounts same device)
- Bob kick Alice from conference
# Expected result
- Alice is kicked from RDV-Alice
# Current result
- Alice is not kicked
# Logs
```
Invalid conference state in detach participant: current "ACTIVE_DETACHED" - expected "ACTIVE_ATTACHED"
```Pierre LespagnolPierre Lespagnolhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/640Preference: refuse call when account is busy2021-10-07T14:33:25ZAline Gondim SantosPreference: refuse call when account is busyAline Gondim SantosAline Gondim Santoshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/544build: remove autotools support, move to Meson + CMake only2022-10-12T14:05:18ZAdrien Béraudbuild: remove autotools support, move to Meson + CMake only* Make CMake support multiplatform instead of Windows-only
* Update all packaging jobs to use Meson or CMake
* Remove Autotools from daemon* Make CMake support multiplatform instead of Windows-only
* Update all packaging jobs to use Meson or CMake
* Remove Autotools from daemonAmin BandaliAndreas TraczykAmin Bandalihttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/555UPNP_E_BAD_HTTPMSG2021-05-26T14:29:43ZJürgen LütersUPNP_E_BAD_HTTPMSG**Problem:**
dring: PUPnP: Error downloading device XML document from http://[fe80::eadf:70ff:fe5b:17d6]:49000/fboxdesc.xml-> UPNP_E_BAD_HTTPMSG
PUPnP: IGD ctrlUrl http://[fe80::eadf:70ff:fe5b:17d6]:49000/igdupnp/control/WANIPConn1
*...**Problem:**
dring: PUPnP: Error downloading device XML document from http://[fe80::eadf:70ff:fe5b:17d6]:49000/fboxdesc.xml-> UPNP_E_BAD_HTTPMSG
PUPnP: IGD ctrlUrl http://[fe80::eadf:70ff:fe5b:17d6]:49000/igdupnp/control/WANIPConn1
**Komponents**
Router FRITZ!Box 7430 FRITZ!OS: 07.21
OS Debian bullseye
Jami: jami-qt 202105130112
The problems are reported several times in syslog.
**Tests done**
Not working
curl http://[fe80::eadf:70ff:fe5b:17d6]:49000/fboxdesc.xml
**Working**
curl http://[fe80::eadf:70ff:fe5b:17d6%eno1]:49000/fboxdesc.xml
curl http://[fe80::eadf:70ff:fe5b:17d6%2]:49000/fboxdesc.xml
So it seems that the interface as name (eno1) or as a position (2) has to be provided if a link local address is queried.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/712Windows: Black screen of the interlocutor if he/she rotates the screen of the...2024-02-14T14:06:57ZElysWindows: Black screen of the interlocutor if he/she rotates the screen of the phonePerson A using Jami Windows 10, Person B using Jami Android 11 (Mate 20 Pro)
issue: especially if Person B rotates the screen to portrait
Steps: you get a video call (android, Person B):
persons A and B see each other
Person B rotates...Person A using Jami Windows 10, Person B using Jami Android 11 (Mate 20 Pro)
issue: especially if Person B rotates the screen to portrait
Steps: you get a video call (android, Person B):
persons A and B see each other
Person B rotates the screen to portrait, then rotates the screen to upside-down landscape. If person B rotates the screen to portrait again, Person A (using Windows 10) only sees a black screen (with a preview of Person A). Sometimes person B has to rotate the screen many times but after a random number of attempts this issue occurs.
same thing happens (sometimes) if Person A shares screen and wants to return to webcam - Person B is now absent - Person A only sees black screen (with a preview of Person A)
Example:
![fail2](/uploads/dd557fd8978885fb470b3116fa4bfed2/fail2.png)Backloghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/620MediaDemuxer: can lock on disconnect2023-04-17T14:09:50ZSébastien BlinMediaDemuxer: can lock on disconnect# Scenario
+ Plug a camera
+ Show it in media settings
+ Unplug
# Expected scenario
+ The UI should not freeze
# Current result
sometimes, the UI is freezing, blocking on destroying the video input.
# Backtrace
```
Thread 1 (Threa...# Scenario
+ Plug a camera
+ Show it in media settings
+ Unplug
# Expected scenario
+ The UI should not freeze
# Current result
sometimes, the UI is freezing, blocking on destroying the video input.
# Backtrace
```
Thread 1 (Thread 0x7fffe2a99d40 (LWP 2929030) "jami-qt"):
#0 0x00007fffeda179d7 in __pthread_clockjoin_ex () at /lib64/libpthread.so.0
#1 0x00007fffedffd687 in std::thread::join() () at /lib64/libstdc++.so.6
#2 0x00007fffec773cbb in jami::video::VideoInput::~VideoInput() () at /home/amarok/Projects/jami/daemon/src/.libs/libring.so.0
#3 0x00007fffec4cae2a in DRing::stopCamera() () at /home/amarok/Projects/jami/daemon/src/.libs/libring.so.0
#4 0x00007ffff7d17752 in VideoManagerInterface::stopCamera() (this=<optimized out>) at /home/amarok/Projects/jami/lrc/src/qtwrapper/videomanager_wrap.h:184
#5 0x00007ffff7d1cad0 in lrc::api::AVModel::setDeviceSettings(lrc::api::video::Settings&) (this=0x1496890, settings=...) at /home/amarok/Projects/jami/lrc/src/avmodel.cpp:293
#6 0x000000000049d42d in SettingsAdapter::set_Video_Settings_Rate_And_Resolution(QString const&, double, QString const&) (this=0xffb380, deviceId=..., rate=30, resolution=...) at /home/amarok/Projects/jami/client-qt/src/settingsadapter.cpp:193
#7 0x0000000000434c41 in SettingsAdapter::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=_o@entry=0xffb380, _c=_c@entry=QMetaObject::InvokeMetaMethod, _id=_id@entry=17, _a=_a@entry=0x7fffffff2710) at /home/amarok/Projects/jami/client-qt/build-local/jami-qt_autogen/UVLADIE3JM/moc_settingsadapter.cpp:708
#8 0x00000000004385ee in SettingsAdapter::qt_metacall(QMetaObject::Call, int, void**) (this=0xffb380, _c=QMetaObject::InvokeMetaMethod, _id=17, _a=0x7fffffff2710) at /home/amarok/Projects/jami/client-qt/build-local/jami-qt_autogen/UVLADIE3JM/moc_settingsadapter.cpp:969
#9 0x00007fffeeb08cf5 in QQmlObjectOrGadget::metacall(QMetaObject::Call, int, void**) const () at /lib64/libQt5Qml.so.5
#10 0x00007fffeea11149 in CallPrecise(QQmlObjectOrGadget const&, QQmlPropertyData const&, QV4::ExecutionEngine*, QV4::CallData*, QMetaObject::Call) () at /lib64/libQt5Qml.so.5
#11 0x00007fffeea123f7 in QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const () at /lib64/libQt5Qml.so.5
#12 0x00007fffeea38cce in QV4::Runtime::CallPropertyLookup::call(QV4::ExecutionEngine*, QV4::Value const&, unsigned int, QV4::Value*, int) () at /lib64/libQt5Qml.so.5
#13 0x00007fff4014bb4e in ()
#14 0x00007fffffff2d40 in ()
#15 0x0000000000000010 in ()
#16 0x00007fff4014b000 in ()
#17 0x00007fff4014bb8b in ()
#18 0x000000000088d800 in ()
#19 0x00007fffeea2ceba in QV4::Moth::VME::exec(QV4::CppStackFrame*, QV4::ExecutionEngine*) [clone .part.0] () at /lib64/libQt5Qml.so.5
#20 0x00007fffee9d7d48 in QV4::ArrowFunction::virtualCall(QV4::FunctionObject const*, QV4::Value const*, QV4::Value const*, int) () at /lib64/libQt5Qml.so.5
#21 0x00007fffeea3cc46 in QV4::Runtime::CallQmlContextPropertyLookup::call(QV4::ExecutionEngine*, unsigned int, QV4::Value*, int) () at /lib64/libQt5Qml.so.5
#22 0x00007fff40148084 in ()
#23 0x00007fffffff3010 in ()
#24 0x0000000000000000 in ()
Thread 224 (Thread 0x7ffcceffd640 (LWP 2929321) "jami-qt"):
#0 0x00007fffedcf35db in ioctl () at /lib64/libc.so.6
#1 0x00007fffec9c4759 in mmap_read_frame (pkt=0x7ffc6401f2c0, ctx=0x7ffc64002200) at libavdevice/v4l2.c:505
#2 v4l2_read_packet (ctx=0x7ffc64002200, pkt=0x7ffc6401f2c0) at libavdevice/v4l2.c:992
#3 0x00007fffeca222c2 in ff_read_packet (s=s@entry=0x7ffc64002200, pkt=pkt@entry=0x7ffc6401f2c0) at libavformat/utils.c:843
#4 0x00007fffeca22c3b in read_frame_internal (s=s@entry=0x7ffc64002200, pkt=0x7ffc6401f2c0) at libavformat/utils.c:1546
#5 0x00007fffeca23938 in av_read_frame (s=0x7ffc64002200, pkt=0x7ffc6401f2c0) at libavformat/utils.c:1750
#6 0x00007fffec413fa7 in jami::MediaDemuxer::decode() () at /home/amarok/Projects/jami/daemon/src/.libs/libring.so.0
#7 0x00007fffec76f6a9 in jami::video::VideoInput::captureFrame() () at /home/amarok/Projects/jami/daemon/src/.libs/libring.so.0
#8 0x00007fffec774bcb in jami::video::VideoInput::process() () at /home/amarok/Projects/jami/daemon/src/.libs/libring.so.0
#9 0x00007fffec32602d in jami::ThreadLoop::mainloop(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>) () at /home/amarok/Projects/jami/daemon/src/.libs/libring.so.0
#10 0x00007fffec326758 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (jami::ThreadLoop::*)(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>), jami::ThreadLoop*, std::reference_wrapper<std::thread::id>, std::function<bool ()>, std::function<void ()>, std::function<void ()> > > >::_M_run() () at /home/amarok/Projects/jami/daemon/src/.libs/libring.so.0
#11 0x00007fffedffd444 in execute_native_thread_routine () at /lib64/libstdc++.so.6
#12 0x00007fffeda163f9 in start_thread () at /lib64/libpthread.so.0
#13 0x00007fffedcfcb53 in clone () at /lib64/libc.so.6
```
av_read_frame can block forever, causing the VideoInput to wait.Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/710Hardware acceleration - Daemon must compile if RING_ACCEL is not defined2022-02-03T20:48:13ZMohamed ChibaniHardware acceleration - Daemon must compile if RING_ACCEL is not definedUndefining RING_ACCEL fails the compilation of the daemon in many places.
Also, compilation check must use #if RING_ACCEL instead of #ifdef, because in Daemon configuration, a feature is disabled by setting it's macro to 0 (so still defi...Undefining RING_ACCEL fails the compilation of the daemon in many places.
Also, compilation check must use #if RING_ACCEL instead of #ifdef, because in Daemon configuration, a feature is disabled by setting it's macro to 0 (so still defined).Backloghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/649test/meson.build is outdated2022-03-29T12:28:37ZBruno Paganitest/meson.build is outdatedSince I’ve discovered you now provide meson for building, I’m switching Arch packages to it but I’ve encountered an issue:
```
jami-daemon/test/meson.build:59:0: ERROR: File unitTest/channel/testChannel.cpp does not exist.
```
The file s...Since I’ve discovered you now provide meson for building, I’m switching Arch packages to it but I’ve encountered an issue:
```
jami-daemon/test/meson.build:59:0: ERROR: File unitTest/channel/testChannel.cpp does not exist.
```
The file seems to be gone a while ago, but `test/meson.build` wasn’t updated accordingly. For now, I will just keep tests disabled (they were already, but I thought redoing the package would be a good opportunity to enable them).https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/829Homogeneize features in video-conferences and 1:1 calls2024-03-04T18:51:02ZovariHomogeneize features in video-conferences and 1:1 calls(sblin):
+ Add voice-activity, multi-stream, raiseHand and other features for video-conferences in 1:1 calls
---
Original post:
Leon: Linux Mint 20.3 Cinnamon jami-client-qt deb edition from jami.net<br>
Pat: iPad jami 3.28 from app...(sblin):
+ Add voice-activity, multi-stream, raiseHand and other features for video-conferences in 1:1 calls
---
Original post:
Leon: Linux Mint 20.3 Cinnamon jami-client-qt deb edition from jami.net<br>
Pat: iPad jami 3.28 from apple store<br>
Merv: macOS jami 2.10 from apple store
Leon, Pat and Merv all delete each other and afterwards add each other as a contact. This is to make each conversion a Swarm as advised in [Taranis, a major release of Jami](https://jami.net/taranis-a-major-release-of-jami/).
1. Leon makes an audio call with Pat (no raise/lower hand button)
1. Leon adds Merv to audio call so there is a 3-way audio conversation (still no raise/lower hand button)
1. Enable video and the raise/lower hand button appears for Leon and Pat; however there is no raise/lower hand button for Merv and Merv can not see when Leon or Pat raise their hand.
Thank youSébastien BlinSébastien Blin2024-03-04https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/752Windows: offer full fps range for video camera2022-12-23T20:29:35ZSébastien BlinWindows: offer full fps range for video cameraEg from https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/747
```
$ ffmpeg -f dshow -list_options true -i video="ManyCam Virtual Webcam"
[dshow @ 000001F46BD265C0] DirectShow video device options (from video devices)
[dsho...Eg from https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/747
```
$ ffmpeg -f dshow -list_options true -i video="ManyCam Virtual Webcam"
[dshow @ 000001F46BD265C0] DirectShow video device options (from video devices)
[dshow @ 000001F46BD265C0] Pin "Capture" (alternative pin name "0")
[dshow @ 000001F46BD265C0] pixel_format=yuyv422 min s=1920x1080 fps=0.015625 max s=1920x1080 fps=60.0002
[dshow @ 000001F46BD265C0] pixel_format=yuyv422 min s=1600x1200 fps=0.015625 max s=1600x1200 fps=60.0002
```
Jami only displays 60fps (max fps). However with some modification we can offer the range 1,5,10,15...60
I think it's not important as anyway the virtual camera will probably be encoded to 60fps by the original app anyway, and codec will already do optimize, so the data reduction will be minor.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/754Better handling of SyncMsg2022-08-18T19:21:16ZSébastien BlinBetter handling of SyncMsgin the daemon, SyncMsg can be big, for now it's limited to UINT16_MAX bytes, but ideally we want this to be generic.
`SyncModule::Impl::syncInfos` we should write juste enough data in SyncMsg to get the limit and split in multiple messa...in the daemon, SyncMsg can be big, for now it's limited to UINT16_MAX bytes, but ideally we want this to be generic.
`SyncModule::Impl::syncInfos` we should write juste enough data in SyncMsg to get the limit and split in multiple messages if necessaryhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/786linking tests fails when using --disable-static2023-04-28T19:45:48ZMaxim Cournoyerlinking tests fails when using --disable-staticHi,
Using the latest version, jami_20221031.1308.130cc26, when using `--disable-static` as a configure flag, linking the test objects fails like:
```
libtool: link: g++ -std=gnu++17 -g -fno-omit-frame-pointer -Wall -Wextra -Wnon-virtua...Hi,
Using the latest version, jami_20221031.1308.130cc26, when using `--disable-static` as a configure flag, linking the test objects fails like:
```
libtool: link: g++ -std=gnu++17 -g -fno-omit-frame-pointer -Wall -Wextra -Wnon-virtual-dtor -Wno-deprecated -Wno-deprecated-declarations -Wno-unknown-pragmas -Wformat=2 -O0 -I../../src -Wl,-Bsymbolic -o ut_fileutils fileutils/testFileutils.o common.o -L/gnu/store/zaw9a8d3gd2rjlx7bm609i724765zsqi-jsoncpp-1.9.4/lib -L/gnu/store/lsac46s5hnbg88vl84xldqdpphw9j25m-cppunit-1.15.1/lib /gnu/store/lsac46s5hnbg88vl84xldqdpphw9j25m-cppunit-1.15.1/lib/libcppunit.so ../../src/.libs/libjami.so -L/gnu/store/wgqhlc12qvlwiklam7hz2r311fdcqfim-libffi-3.3/lib -L/gnu/store/3x3dl71d4xm6y4hjwq110hmfyfx0xc6j-zstd-1.5.0-lib/lib -L/gnu/store/gzmwrl6cb8nxmc68hpgqzblng2kamkgc-bzip2-1.0.8/lib /gnu/store/dms1i2g6pkmwm3r6mv46xg6y5cy1m0vg-jack-0.125.0/lib/libjack.so -ldb /gnu/store/9il0b8ply3jhgicmlkcxx3m24ssgr01f-eudev-3.2.11/lib/libudev.so /gnu/store/nfxcjvv9c2q6in9x52kkkayqv38k00ai-alsa-lib-1.2.4/lib/libasound.so -lpulse /gnu/store/gfdvmri94mqwvf9b4bvcz6q3d1l9az8i-speexdsp-1.2.0/lib/libspeexdsp.so -lpjsua2 -lpjsua -lpjsip-ua -lpjsip-simple -lpjsip -lpjmedia-codec -lpjmedia-videodev -lpjmedia-audiodev -lpjmedia -lpjnath -lpjlib-util -lpj /gnu/store/xh08plr51dq91ciyq57lp10z30iawxhz-opendht-2.4.10/lib/libopendht.so -largon2 /gnu/store/zl9wf0zwq2ka9rpmayp53hnp2mn460xf-gnutls-3.7.2/lib/libgnutls.so -L/gnu/store/x1jd7pqfn9ilb6x97azcfq1fhjr63p0z-p11-kit-0.23.22/lib -L/gnu/store/fjq8aca46v502mrgvrfhvif0xb6m4fz0-libidn2-2.3.1/lib -L/gnu/store/4gcznd9r1r3hlmkb2m7s1a37radgnspn-libtasn1-4.17.0/lib -L/gnu/store/manq4lcakkcakcg14rsi7467qw4c5frj-nettle-3.7.3/lib /gnu/store/x1jd7pqfn9ilb6x97azcfq1fhjr63p0z-p11-kit-0.23.22/lib/libp11-kit.so /gnu/store/wgqhlc12qvlwiklam7hz2r311fdcqfim-libffi-3.3/lib/libffi.so /gnu/store/fjq8aca46v502mrgvrfhvif0xb6m4fz0-libidn2-2.3.1/lib/libidn2.so /gnu/store/hkhbq2q1gfs970gsp2nhsmcqb4vmv2xr-libunistring-0.9.10/lib/libunistring.so /gnu/store/4gcznd9r1r3hlmkb2m7s1a37radgnspn-libtasn1-4.17.0/lib/libtasn1.so -lhogweed /gnu/store/fwbiihd2sbhai63y1pvvdh0f2bakfzrf-gmp-6.2.1/lib/libgmp.so -lhttp_parser /gnu/store/l3x9k9h3hprg8dn0imrfyka5v3sip3c6-libupnp-1.14.13/lib/libupnp.so /gnu/store/l3x9k9h3hprg8dn0imrfyka5v3sip3c6-libupnp-1.14.13/lib/libixml.so -lgit2 -lavcodec -lavformat -lavdevice -lavfilter -lswresample -lswscale -lavutil /gnu/store/gcfj8krv4a4i4gjz6yi2bifwn0x46xac-webrtc-audio-processing-0.3.1/lib/libwebrtc_audio_processing.so -lrt -lyaml-cpp -ljsoncpp -lnettle /gnu/store/18kjqlyvlgqjw94q7jvn4hghhfikpsyi-libsecp256k1-20200615-1.dbd41db/lib/libsecp256k1.so -lfmt -lssl -lcrypto /gnu/store/d71mzayfmgfysfmdyd15jdivsakfj3iy-libarchive-3.5.1/lib/libarchive.so -L/gnu/store/8qv5kb2fgm4c3bf70zcg9l6hkf3qzpw9-zlib-1.2.11/lib /gnu/store/g3y6ifhm0751vgsxv90yipfw6mk189kj-libxml2-2.9.12/lib/libxml2.so -ldl /gnu/store/aggsb6j1svxp70xlll4rqnx5f2pzz794-xz-5.2.5/lib/liblzma.so -lpthread -lzstd -lbz2 -lz /gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/lib/libstdc++.so -lm -lnatpmp -pthread -Wl,-rpath -Wl,/gnu/store/lsac46s5hnbg88vl84xldqdpphw9j25m-cppunit-1.15.1/lib -Wl,-rpath -Wl,/tmp/guix-build-libjami-20221031.1308.130cc26.drv-0/jami-project/daemon/src/.libs -Wl,-rpath -Wl,/gnu/store/dms1i2g6pkmwm3r6mv46xg6y5cy1m0vg-jack-0.125.0/lib -Wl,-rpath -Wl,/gnu/store/9il0b8ply3jhgicmlkcxx3m24ssgr01f-eudev-3.2.11/lib -Wl,-rpath -Wl,/gnu/store/nfxcjvv9c2q6in9x52kkkayqv38k00ai-alsa-lib-1.2.4/lib -Wl,-rpath -Wl,/gnu/store/gfdvmri94mqwvf9b4bvcz6q3d1l9az8i-speexdsp-1.2.0/lib -Wl,-rpath -Wl,/gnu/store/xh08plr51dq91ciyq57lp10z30iawxhz-opendht-2.4.10/lib -Wl,-rpath -Wl,/gnu/store/zl9wf0zwq2ka9rpmayp53hnp2mn460xf-gnutls-3.7.2/lib -Wl,-rpath -Wl,/gnu/store/x1jd7pqfn9ilb6x97azcfq1fhjr63p0z-p11-kit-0.23.22/lib -Wl,-rpath -Wl,/gnu/store/wgqhlc12qvlwiklam7hz2r311fdcqfim-libffi-3.3/lib -Wl,-rpath -Wl,/gnu/store/fjq8aca46v502mrgvrfhvif0xb6m4fz0-libidn2-2.3.1/lib -Wl,-rpath -Wl,/gnu/store/hkhbq2q1gfs970gsp2nhsmcqb4vmv2xr-libunistring-0.9.10/lib -Wl,-rpath -Wl,/gnu/store/4gcznd9r1r3hlmkb2m7s1a37radgnspn-libtasn1-4.17.0/lib -Wl,-rpath -Wl,/gnu/store/fwbiihd2sbhai63y1pvvdh0f2bakfzrf-gmp-6.2.1/lib -Wl,-rpath -Wl,/gnu/store/l3x9k9h3hprg8dn0imrfyka5v3sip3c6-libupnp-1.14.13/lib -Wl,-rpath -Wl,/gnu/store/gcfj8krv4a4i4gjz6yi2bifwn0x46xac-webrtc-audio-processing-0.3.1/lib -Wl,-rpath -Wl,/gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/lib -Wl,-rpath -Wl,/gnu/store/18kjqlyvlgqjw94q7jvn4hghhfikpsyi-libsecp256k1-20200615-1.dbd41db/lib -Wl,-rpath -Wl,/gnu/store/d71mzayfmgfysfmdyd15jdivsakfj3iy-libarchive-3.5.1/lib -Wl,-rpath -Wl,/gnu/store/g3y6ifhm0751vgsxv90yipfw6mk189kj-libxml2-2.9.12/lib -Wl,-rpath -Wl,/gnu/store/aggsb6j1svxp70xlll4rqnx5f2pzz794-xz-5.2.5/lib -Wl,-rpath -Wl,/gnu/store/lsac46s5hnbg88vl84xldqdpphw9j25m-cppunit-1.15.1/lib -Wl,-rpath -Wl,/gnu/store/86nzms6dq5ysip2nk6ifs0ja4h46rpqc-libjami-20221031.1308.130cc26/lib -Wl,-rpath -Wl,/gnu/store/dms1i2g6pkmwm3r6mv46xg6y5cy1m0vg-jack-0.125.0/lib -Wl,-rpath -Wl,/gnu/store/9il0b8ply3jhgicmlkcxx3m24ssgr01f-eudev-3.2.11/lib -Wl,-rpath -Wl,/gnu/store/nfxcjvv9c2q6in9x52kkkayqv38k00ai-alsa-lib-1.2.4/lib -Wl,-rpath -Wl,/gnu/store/gfdvmri94mqwvf9b4bvcz6q3d1l9az8i-speexdsp-1.2.0/lib -Wl,-rpath -Wl,/gnu/store/xh08plr51dq91ciyq57lp10z30iawxhz-opendht-2.4.10/lib -Wl,-rpath -Wl,/gnu/store/zl9wf0zwq2ka9rpmayp53hnp2mn460xf-gnutls-3.7.2/lib -Wl,-rpath -Wl,/gnu/store/x1jd7pqfn9ilb6x97azcfq1fhjr63p0z-p11-kit-0.23.22/lib -Wl,-rpath -Wl,/gnu/store/wgqhlc12qvlwiklam7hz2r311fdcqfim-libffi-3.3/lib -Wl,-rpath -Wl,/gnu/store/fjq8aca46v502mrgvrfhvif0xb6m4fz0-libidn2-2.3.1/lib -Wl,-rpath -Wl,/gnu/store/hkhbq2q1gfs970gsp2nhsmcqb4vmv2xr-libunistring-0.9.10/lib -Wl,-rpath -Wl,/gnu/store/4gcznd9r1r3hlmkb2m7s1a37radgnspn-libtasn1-4.17.0/lib -Wl,-rpath -Wl,/gnu/store/fwbiihd2sbhai63y1pvvdh0f2bakfzrf-gmp-6.2.1/lib -Wl,-rpath -Wl,/gnu/store/l3x9k9h3hprg8dn0imrfyka5v3sip3c6-libupnp-1.14.13/lib -Wl,-rpath -Wl,/gnu/store/gcfj8krv4a4i4gjz6yi2bifwn0x46xac-webrtc-audio-processing-0.3.1/lib -Wl,-rpath -Wl,/gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/lib -Wl,-rpath -Wl,/gnu/store/18kjqlyvlgqjw94q7jvn4hghhfikpsyi-libsecp256k1-20200615-1.dbd41db/lib -Wl,-rpath -Wl,/gnu/store/d71mzayfmgfysfmdyd15jdivsakfj3iy-libarchive-3.5.1/lib -Wl,-rpath -Wl,/gnu/store/g3y6ifhm0751vgsxv90yipfw6mk189kj-libxml2-2.9.12/lib -Wl,-rpath -Wl,/gnu/store/aggsb6j1svxp70xlll4rqnx5f2pzz794-xz-5.2.5/libce to `jami::Manager::instance()'
ld: /tmp/guix-build-libjami-20221031.1308.130cc26.drv-0/jami-project/daemon/test/unitTest/common.cpp:182: undefined reference to `jami::Manager::addAccount(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
make[3]: *** [Makefile:1255: ut_scheduler] Error 1
```
Thanks!https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/790SIP ip 2 ip issues2022-12-08T19:39:33ZSébastien BlinSIP ip 2 ip issues+ One account on 5060, one on 5061 => 5061 receives all calls even if :5060 is specified in the URI
+ ~~text messages doesn't work~~
+ IPv6 addresses not supported
+ Calling back doesn't work+ One account on 5060, one on 5061 => 5061 receives all calls even if :5060 is specified in the URI
+ ~~text messages doesn't work~~
+ IPv6 addresses not supported
+ Calling back doesn't workhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/792plugins: add overlay possibility (because of copping from clients)2022-11-30T23:31:04ZSébastien Blinplugins: add overlay possibility (because of copping from clients)# Scenario
+ Use watermark plugin (or whisper) in a conference
+ Result can be cropped because of the client
# Expected
+ Not cropped or correctly handled by the client# Scenario
+ Use watermark plugin (or whisper) in a conference
+ Result can be cropped because of the client
# Expected
+ Not cropped or correctly handled by the clienthttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/794[Design needed]Public swarm discovery2023-11-30T04:15:58ZSébastien Blin[Design needed]Public swarm discovery+ Some ideas https://www.rfc-editor.org/rfc/rfc7033
+ Announce public known conversations to contact
+ Change nameserver to get public invite+ Some ideas https://www.rfc-editor.org/rfc/rfc7033
+ Announce public known conversations to contact
+ Change nameserver to get public invite2023-12-31https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/795Call in large groups - multi-host?2023-01-07T14:02:03ZSébastien BlinCall in large groups - multi-host?If we remove the limit for swarm, creating a call may have issue for the hosts as they will be able to receive and host thousands of calls.If we remove the limit for swarm, creating a call may have issue for the hosts as they will be able to receive and host thousands of calls.2023-12-31https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/796Edited: re-design contentType2022-12-16T22:26:22ZSébastien BlinEdited: re-design contentTypeFor now it uses `application/edited` but this should uses the current type we edit `plain/text` + `edit` or file.
docs.jami.net must also be updated (same for clients). The final design must be discussed first.For now it uses `application/edited` but this should uses the current type we edit `plain/text` + `edit` or file.
docs.jami.net must also be updated (same for clients). The final design must be discussed first.Sébastien BlinSébastien Blin2023-05-31https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/797Swarm: add support for multiple roles2023-11-20T14:38:31ZSébastien BlinSwarm: add support for multiple roles# Goal
In a swarm, pretty every action should be an action that needs to be permitted for a role and administrators should be able to add new roles.
# TODO
analyze what needs to change in the daemon# Goal
In a swarm, pretty every action should be an action that needs to be permitted for a role and administrators should be able to add new roles.
# TODO
analyze what needs to change in the daemon2023-12-31https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/798Swarm: add API to promote someone to an administrator2023-04-13T20:11:10ZSébastien BlinSwarm: add API to promote someone to an administrator# Goal
Because an administrator can leave, the swarm will have no administrator at the end. Make it possible for an administrator to promote someone else.
# TODO
+ Implement promotion/demotion (NOTE: no demotion if 1 admin) in the dae...# Goal
Because an administrator can leave, the swarm will have no administrator at the end. Make it possible for an administrator to promote someone else.
# TODO
+ Implement promotion/demotion (NOTE: no demotion if 1 admin) in the daemon
+ Validate an API
+ Add feature in clients
+ Check demotion2023-09-30https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/817[call-swarm] duplicates/triplicate and ghost participants in the layout2023-03-03T20:52:53Zovari[call-swarm] duplicates/triplicate and ghost participants in the layoutDuplicate/triplicate participants in the layout.
Not sure how to reproduce the scenario; however, it is thought that all participants are connected as audio-only.
Following images show duplicate participants in the layout exists:
1. A ...Duplicate/triplicate participants in the layout.
Not sure how to reproduce the scenario; however, it is thought that all participants are connected as audio-only.
Following images show duplicate participants in the layout exists:
1. A duplicate and a ghost participant<br>
![1 duplicate and 1 ghost participant](/uploads/2a4fc8891d9f13388228f1a6a8a31cf2/image.png)
2. A triplicate and a ghost participant<br>
![1 triplicate and 1 ghost participant](/uploads/17ec7073b98bb31ac18c53a91d25eab3/image.png)
Thank youhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/824test suite fails2024-01-08T00:45:49ZMaxim Cournoyertest suite failsHello,
The test suite is not currently usable:
1. Some tests fail non-deterministically (or always).
2. It takes about 1 h to run, which is too long.
Reproducer:
1. Run `make check`
Without the above patch applied:
```
make check-TE...Hello,
The test suite is not currently usable:
1. Some tests fail non-deterministically (or always).
2. It takes about 1 h to run, which is too long.
Reproducer:
1. Run `make check`
Without the above patch applied:
```
make check-TESTS
make[3]: Entering directory '/tmp/guix-build-libjami-20230221.0.drv-0/jami-20230221.0/daemon/test/unitTest.s ' re
make[4]: Entering directory '/tmp/guix-build-libjami-20230221.0.drv-0/jami-20230221.0/daemon/test/unitTest/g ' ag
RUNNING: ut_certstore
RUNNING: ut_account_factory
RUNNING: ut_account_archive mi
RUNNING: ut_migration
RUNNING: ut_string_utils fl
RUNNING: ut_scheduler
RUNNING: ut_map_utils
RUNNING: ut_fileutils .s
RUNNING: ut_base64 re
RUNNING: ut_video_input /g
RUNNING: ut_media_encoder xt
RUNNING: ut_media_filter
RUNNING: ut_utf8_utils
RUNNING: ut_media_decoder
RUNNING: ut_media_player
RUNNING: ut_resampler
RUNNING: ut_video_scaler -2
RUNNING: ut_media_frame
RUNNING: ut_audio_frame_resizer
RUNNING: ut_recorder
RUNNING: ut_conference
RUNNING: ut_connectionManager
RUNNING: ut_fileTransfer l:
RUNNING: ut_call
PASS: ut_utf8_utils
PASS: ut_map_utils
PASS: ut_audio_frame_resizer
PASS: ut_string_utils
PASS: ut_fileutils
PASS: ut_base64 i-
RUNNING: ut_conversationRepository
RUNNING: ut_media_negotiation fl
RUNNING: ut_conversation
RUNNING: ut_auto_answer
RUNNING: ut_hold_resume .s
RUNNING: ut_conversation_call re
PASS: ut_media_frame /g
PASS: ut_resampler xt
PASS: ut_video_scaler mi
PASS: ut_media_filter
PASS: ut_media_decoder
RUNNING: ut_conversationRequest
RUNNING: ut_conversationMembersEvent fl
RUNNING: ut_ice
RUNNING: ut_syncHistory
RUNNING: ut_revoke .s
PASS: ut_video_input re
RUNNING: ut_ice_sdp_parser /g
PASS: ut_media_player ag
RUNNING: ut_ice_media_cand_exchange sc
FAIL: ut_scheduler ):
FAIL: ut_ice_sdp_parser -2
RUNNING: ut_sip_srtp fl
RUNNING: ut_sip_basic_calls
FAIL: ut_sip_srtp
PASS: ut_media_encoder .s
RUNNING: ut_plugins re
PASS: ut_certstore /g
FAIL: ut_sip_basic_calls ag
FAIL: ut_ice
FAIL: ut_account_factory
FAIL: ut_hold_resume mi
FAIL: ut_ice_media_cand_exchange
FAIL: ut_auto_answer fl
FAIL: ut_revoke
FAIL: ut_migration
FAIL: ut_media_negotiation .s
FAIL: ut_recorder re
FAIL: ut_conversation_call /g
FAIL: ut_account_archive xt
FAIL: ut_call
FAIL: ut_plugins
FAIL: ut_fileTransfer
FAIL: ut_conversationRepository
[...] (takes a very long time)
```
The patch at https://review.jami.net/c/jami-daemon/+/22670 has the right idea: separating quick unit tests from more expensive integration tests, but its implementation should be improved, so that we have two distinct check targets (`make check` for unit tests, `make check-integration` for integration tests).https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/826problem connecting tio SIP account on startup2023-11-12T14:17:59Ztomo90problem connecting tio SIP account on startupI have configured a simple SIP account. The application does not automatically log in to the account when it starts. However, all I need to do to connect is go into the settings and click in the name settings field, for example, and then...I have configured a simple SIP account. The application does not automatically log in to the account when it starts. However, all I need to do to connect is go into the settings and click in the name settings field, for example, and then exit the settings and the application will connect to the account immediately. It doesn't make any sense to me.
Generally speaking, it will connect to the account after editing any unrelated settings.
Furthermore, the application does not seem to save some of the settings i make. After quitting, the switches and settings are at their original values. This is not a problem with, for example, write permissions to the configuration file, because some of the settings made are preserved and some are not when the application is restarted.
You can see for yourself that on the attached video.
![vid](/uploads/e0e18d538065a0cffa977629dbfcf594/vid.mp4)Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/827Segv when stopping screen-sharing in a video conference2023-04-14T15:06:21ZSébastien BlinSegv when stopping screen-sharing in a video conference# Scenario
+ Call a rdv
+ Start screen sharing
+ Stop screen sharing
# Bug 1
+ Crash from sender
```
(gdb) bt
#0 0x00007fffe84c63f4 in std::_Rb_tree_increment(std::_Rb_tree_node_base const*) () at /lib64/libstdc++.so.6
#1 0x00007fff...# Scenario
+ Call a rdv
+ Start screen sharing
+ Stop screen sharing
# Bug 1
+ Crash from sender
```
(gdb) bt
#0 0x00007fffe84c63f4 in std::_Rb_tree_increment(std::_Rb_tree_node_base const*) () at /lib64/libstdc++.so.6
#1 0x00007fffe90f4ce3 in std::_Rb_tree_const_iterator<jami::Observable<std::shared_ptr<libjami::MediaFrame> >*>::operator++() (this=0x7fffffff6c98) at /usr/include/c++/12/bits/stl_tree.h:368
#2 0x00007fffe90f3f7c in jami::MediaRecorder::StreamObserver::~StreamObserver() (this=0x7ffec8cb8660, __in_chrg=<optimized out>) at media/media_recorder.cpp:74
#3 0x00007fffe90f3ffc in jami::MediaRecorder::StreamObserver::~StreamObserver() (this=0x7ffec8cb8660, __in_chrg=<optimized out>) at media/media_recorder.cpp:77
#4 0x00007fffe90f67f0 in std::default_delete<jami::MediaRecorder::StreamObserver>::operator()(jami::MediaRecorder::StreamObserver*) const (this=0x7ffec8cbbf30, __ptr=0x7ffec8cb8660) at /usr/include/c++/12/bits/unique_ptr.h:95
#5 0x00007fffe90f5584 in std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> >::~unique_ptr() (this=0x7ffec8cbbf30, __in_chrg=<optimized out>)
at /usr/include/c++/12/bits/unique_ptr.h:396
#6 0x00007fffe90f98f2 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > >::~pair() (this=0x7ffec8cbbf10, __in_chrg=<optimized out>) at /usr/include/c++/12/bits/stl_pair.h:185
#7 0x00007fffe90f991e in std::__new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > > >::destroy<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > >*) (this=0x5410250, __p=0x7ffec8cbbf10) at /usr/include/c++/12/bits/new_allocator.h:181
#8 0x00007fffe90f938f in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > > > >::destroy<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > > >&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > >*) (__a=..., __p=0x7ffec8cbbf10) at /usr/include/c++/12/bits/alloc_traits.h:535
#9 0x00007fffe90f8b7d in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > > >::_M_destroy_node(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >*) (this=0x5410250, __p=0x7ffec8cbbef0)
at /usr/include/c++/12/bits/stl_tree.h:623
#10 0x00007fffe90f771d in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > > >::_M_drop_node(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >*) (this=0x5410250, __p=0x7ffec8cbbef0)
at /usr/include/c++/12/bits/stl_tree.h:631
#11 0x00007fffe90f805c in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > > >::_M_erase_aux(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >)
(this=0x5410250, __position={first = "v:remote", second = std::unique_ptr<jami::MediaRecorder::StreamObserver> = {get() = 0x7ffec8cb8660}}) at /usr/include/c++/12/bits/stl_tree.h:2495
#12 0x00007fffe90f6aab in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > > >::erase[abi:cxx11](std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >)
(this=0x5410250, __position={first = "v:remote", second = std::unique_ptr<jami::MediaRecorder::StreamObserver> = {get() = 0x7ffec8cb8660}}) at /usr/include/c++/12/bits/stl_tree.h:1209
#13 0x00007fffe90f57a7 in std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > > >::erase[abi:cxx11](std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<jami::MediaRecorder::StreamObserver, std::default_delete<jami::MediaRecorder::StreamObserver> > > >) (this=0x5410250, __position={first = "v:remote", second = std::unique_ptr<jami::MediaRecorder::StreamObserver> = {get() = 0x7ffec8cb8660}})
at /usr/include/c++/12/bits/stl_map.h:1086
#14 0x00007fffe90ee5e1 in jami::MediaRecorder::removeStream(jami::MediaStream const&) (this=0x54101a0, ms=...) at media/media_recorder.cpp:294
#15 0x00007fffe917c30b in jami::video::VideoRtpSession::deinitRecorder() (this=0xa2b12e0) at ./media/video/video_rtp_session.cpp:779
#16 0x00007fffe917844e in jami::video::VideoRtpSession::~VideoRtpSession() (this=0xa2b12e0, __in_chrg=<optimized out>) at ./media/video/video_rtp_session.cpp:80
#17 0x00007fffe9219a18 in std::_Destroy<jami::video::VideoRtpSession>(jami::video::VideoRtpSession*) (__pointer=0xa2b12e0) at /usr/include/c++/12/bits/stl_construct.h:151
#18 0x00007fffe92199bc in std::allocator_traits<std::allocator<void> >::destroy<jami::video::VideoRtpSession>(std::allocator<void>&, jami::video::VideoRtpSession*) (__p=0xa2b12e0) at /usr/include/c++/12/bits/alloc_traits.h:648
#19 0x00007fffe9219715 in std::_Sp_counted_ptr_inplace<jami::video::VideoRtpSession, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() (this=0xa2b12d0) at /usr/include/c++/12/bits/shared_ptr_base.h:613
#20 0x00007fffe8ca8f87 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() (this=0xa2b12d0) at /usr/include/c++/12/bits/shared_ptr_base.h:346
#21 0x00007fffe8cac3e5 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() (this=0x88f1b38, __in_chrg=<optimized out>) at /usr/include/c++/12/bits/shared_ptr_base.h:1071
--Type <RET> for more, q to quit, c to continue without paging--
#22 0x00007fffe91be4b2 in std::__shared_ptr<jami::RtpSession, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() (this=0x88f1b30, __in_chrg=<optimized out>) at /usr/include/c++/12/bits/shared_ptr_base.h:1524
#23 0x00007fffe91c3f4c in std::shared_ptr<jami::RtpSession>::~shared_ptr() (this=0x88f1b30, __in_chrg=<optimized out>) at /usr/include/c++/12/bits/shared_ptr.h:175
#24 0x00007fffe920e3d6 in jami::SIPCall::RtpStream::~RtpStream() (this=0x88f1b30, __in_chrg=<optimized out>) at ./sip/sipcall.h:88
#25 0x00007fffe9216931 in std::_Destroy<jami::SIPCall::RtpStream>(jami::SIPCall::RtpStream*) (__pointer=0x88f1b30) at /usr/include/c++/12/bits/stl_construct.h:151
#26 0x00007fffe921597c in std::_Destroy_aux<false>::__destroy<jami::SIPCall::RtpStream*>(jami::SIPCall::RtpStream*, jami::SIPCall::RtpStream*) (__first=0x88f1b30, __last=0x88f1b70) at /usr/include/c++/12/bits/stl_construct.h:163
#27 0x00007fffe9213d02 in std::_Destroy<jami::SIPCall::RtpStream*>(jami::SIPCall::RtpStream*, jami::SIPCall::RtpStream*) (__first=0x88f1b30, __last=0x88f1b70) at /usr/include/c++/12/bits/stl_construct.h:196
#28 0x00007fffe9211533 in std::_Destroy<jami::SIPCall::RtpStream*, jami::SIPCall::RtpStream>(jami::SIPCall::RtpStream*, jami::SIPCall::RtpStream*, std::allocator<jami::SIPCall::RtpStream>&) (__first=0x88f1b30, __last=0x88f1b70)
at /usr/include/c++/12/bits/alloc_traits.h:850
#29 0x00007fffe92122d1 in std::vector<jami::SIPCall::RtpStream, std::allocator<jami::SIPCall::RtpStream> >::_M_erase_at_end(jami::SIPCall::RtpStream*) (this=0x5612378, __pos=0x88f1b30) at /usr/include/c++/12/bits/stl_vector.h:1932
#30 0x00007fffe920fc31 in std::vector<jami::SIPCall::RtpStream, std::allocator<jami::SIPCall::RtpStream> >::resize(unsigned long) (this=0x5612378, __new_size=2) at /usr/include/c++/12/bits/stl_vector.h:1013
#31 0x00007fffe91fca76 in jami::SIPCall::updateAllMediaStreams(std::vector<jami::MediaAttribute, std::allocator<jami::MediaAttribute> > const&, bool)
(this=0x5611fa0, mediaAttrList=std::vector of length 2, capacity 2 = {...}, isRemote=false) at ./sip/sipcall.cpp:2446
#32 0x00007fffe91fd4fc in jami::SIPCall::requestMediaChange(std::vector<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > > const&) (this=0x5611fa0, mediaList=std::vector of length 2, capacity 2 = {...}) at ./sip/sipcall.cpp:2591
#33 0x00007fffe8dad0e8 in libjami::requestMediaChange(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::allocator<std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > > const&) (accountId="8205d13d4d847ca4", callId="5271111606844474", mediaList=std::vector of length 2, capacity 2 = {...}) at client/callmanager.cpp:77
#34 0x000000000055f78f in CallManagerInterface::requestMediaChange(QString const&, QString const&, QList<QMap<QString, QString> > const&) (accountId=..., callId=..., mediaList=<optimized out>, this=<optimized out>)
at /home/amarok/Projects/jami/client-qt/src/libclient/dbus/../qtwrapper/callmanager_wrap.h:426
#35 0x0000000000569a12 in lrc::api::CallModel::removeMedia(QString const&, QString const&, QString const&, bool) (this=this@entry=0x247e070, callId=..., mediaType=..., type=..., muteCamera=muteCamera@entry=false)
at /home/amarok/Projects/jami/client-qt/src/libclient/callmodel.cpp:658
#36 0x00000000004bda4a in AvAdapter::stopSharing(QString const&) (this=<optimized out>, source=<optimized out>) at /home/amarok/Projects/jami/client-qt/src/app/avadapter.cpp:299
#37 0x0000000000469bc0 in AvAdapter::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=_o@entry=0x24fc8e0, _c=_c@entry=QMetaObject::InvokeMetaMethod, _id=_id@entry=25, _a=_a@entry=0x7fffffff7d48)
at /home/amarok/Projects/jami/client-qt/build/jami_autogen/ISMKEKEPX5/moc_avadapter.cpp:268
#38 0x0000000000472c60 in AvAdapter::qt_metacall(QMetaObject::Call, int, void**) (this=0x24fc8e0, _c=QMetaObject::InvokeMetaMethod, _id=25, _a=0x7fffffff7d48)
at /home/amarok/Projects/jami/client-qt/build/jami_autogen/ISMKEKEPX5/moc_avadapter.cpp:395
#39 0x00007fffec538fc3 in QQmlObjectOrGadget::metacall(QMetaObject::Call, int, void**) const () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#40 0x00007fffec42404c in CallPrecise(QQmlObjectOrGadget const&, QQmlPropertyData const&, QV4::ExecutionEngine*, QV4::CallData*, QMetaObject::Call) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#41 0x00007fffec42506d in QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#42 0x00007fffec478bbc in QV4::Moth::VME::interpret(QV4::JSTypesStackFrame*, QV4::ExecutionEngine*, char const*) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#43 0x00007fffec47ebbf in QV4::Moth::VME::exec(QV4::JSTypesStackFrame*, QV4::ExecutionEngine*) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#44 0x00007fffec3d5fda in QV4::Function::call(QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext const*) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#45 0x00007fffec3d61b1 in QV4::Function::call(QV4::Value const*, void**, QMetaType const*, int, QV4::ExecutionContext const*) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#46 0x00007fffec500933 in QQmlJavaScriptExpression::evaluate(void**, QMetaType const*, int) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#47 0x00007fffec4b9587 in QQmlBoundSignalExpression::evaluate(void**) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#48 0x00007fffec4ba028 in QQmlBoundSignal_callback(QQmlNotifierEndpoint*, void**) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#49 0x00007fffec52468a in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#50 0x00007fffea9c1074 in void doActivate<false>(QObject*, int, void**) () at /usr/lib64/qt-jami/lib/libQt6Core.so.6
#51 0x00007fffec5c91f6 in QQmlVMEMetaObject::metaCall(QObject*, QMetaObject::Call, int, void**) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#52 0x00007fffec538fc3 in QQmlObjectOrGadget::metacall(QMetaObject::Call, int, void**) const () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#53 0x00007fffec422b31 in CallPrecise(QQmlObjectOrGadget const&, QQmlPropertyData const&, QV4::ExecutionEngine*, QV4::CallData*, QMetaObject::Call) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#54 0x00007fffec42506d in QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#55 0x00007fffec478bbc in QV4::Moth::VME::interpret(QV4::JSTypesStackFrame*, QV4::ExecutionEngine*, char const*) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#56 0x00007fffec47ebbf in QV4::Moth::VME::exec(QV4::JSTypesStackFrame*, QV4::ExecutionEngine*) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#57 0x00007fffec3d5fda in QV4::Function::call(QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext const*) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#58 0x00007fffec3d61b1 in QV4::Function::call(QV4::Value const*, void**, QMetaType const*, int, QV4::ExecutionContext const*) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#59 0x00007fffec500933 in QQmlJavaScriptExpression::evaluate(void**, QMetaType const*, int) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#60 0x00007fffec4b9587 in QQmlBoundSignalExpression::evaluate(void**) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
#61 0x00007fffec4ba028 in QQmlBoundSignal_callback(QQmlNotifierEndpoint*, void**) () at /usr/lib64/qt-jami/lib/libQt6Qml.so.6
```
# Bug 2
+ Conference show 2 rdv-***
# Observation
https://review.jami.net/c/jami-daemon/+/23689 seems to be a regression fromKateryna KostiukKateryna Kostiukhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/828Multiple host video is broken2023-03-28T14:54:49ZSébastien BlinMultiple host video is broken# Scenario
+ Alice got a conference with Bob and Carla
+ Carla adds David to the conference (Alice and Carla are now a host)
# Current result
+ Video & maximize is broken
# Expected
We should be able to maximize and see the 4 videos# Scenario
+ Alice got a conference with Bob and Carla
+ Carla adds David to the conference (Alice and Carla are now a host)
# Current result
+ Video & maximize is broken
# Expected
We should be able to maximize and see the 4 videoshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/850build failed when folder name contains a space2023-05-15T13:27:53ZKateryna Kostiukbuild failed when folder name contains a space"Create a folder with a name that includes a space, for example, "New folder". Then, clone the jami-project and attempt to build it inside this folder. Building contribs will result in a failure.."Create a folder with a name that includes a space, for example, "New folder". Then, clone the jami-project and attempt to build it inside this folder. Building contribs will result in a failure..https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/852Add unit tests code SIP reception2023-05-05T14:12:54ZSébastien BlinAdd unit tests code SIP receptionTest various shutdown conditions to check if all clean-up are correctsTest various shutdown conditions to check if all clean-up are correctshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/872[SIP-Account] (Audio-)Call recording doesn't work2024-01-26T17:09:13ZElys[SIP-Account] (Audio-)Call recording doesn't workusing Jami (Beta): 202401121257 on Windows
- Make a call (SIM-call -\> SIP-Account (Jami))
- Now record the call
- After the call you view the recordings: However if you want to listen to the audio recording - even if the file should ha...using Jami (Beta): 202401121257 on Windows
- Make a call (SIM-call -\> SIP-Account (Jami))
- Now record the call
- After the call you view the recordings: However if you want to listen to the audio recording - even if the file should have a duration of 20 seconds - every music player can only "play" the file 0:00 seconds.
Note:
- NO Issues if I recorded a Jami call (Jami account 1 (Android) -\> Jami account 2(Windows 10)) - and it does NOT matter if I record an audio call or a video call
EDIT: Not sure if SIP-video call recording works (with / without sound) or combined with Jami accounts.
Maybe if you or other peers enable / disable your/their camera and/or enable/disable your/their own microphones during the call you also get recording issues? https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/872#note_44414https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/874Unit test - mock camera to allow to use video in unit tests2023-07-17T12:11:22ZSébastien BlinUnit test - mock camera to allow to use video in unit testsFor now we don't check the video from the unit tests as there is generally no camera on the build machinesFor now we don't check the video from the unit tests as there is generally no camera on the build machineshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/879Crash (desktop client) if two peers make a call at the same time2023-07-26T18:58:38ZElysCrash (desktop client) if two peers make a call at the same timeusing the newest beta version of Jami
Windows 10 (device 1, username 1) <-> Android (device 2, username 2)
always possible to reproduce
Steps to reproduce:
- Launch Jami (all devices)
- Now make a video call Android -> Windows 10
- (B...using the newest beta version of Jami
Windows 10 (device 1, username 1) <-> Android (device 2, username 2)
always possible to reproduce
Steps to reproduce:
- Launch Jami (all devices)
- Now make a video call Android -> Windows 10
- (BEFORE the Windows 10 user will receive the call) After that immediately make a video call Windows 10 -> Android
- Jami on Android will receive the call
- After that - the desktop client crashes
Not sure what will happen if you try to reproduce the other directionhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/883complete C ABI for plugins (then Python/JS)2023-11-20T14:09:49ZLéo Banno-Cloutiercomplete C ABI for plugins (then Python/JS)I tried writing a Jami plugin in Rust, and so far, the plugin starts as expected, however I have a hard time invoking services such as `getPluginPreferences` and `getPluginAccPreferences`.
`invokeService` takes `(const JAMI_PluginAPI* a...I tried writing a Jami plugin in Rust, and so far, the plugin starts as expected, however I have a hard time invoking services such as `getPluginPreferences` and `getPluginAccPreferences`.
`invokeService` takes `(const JAMI_PluginAPI* api, const char* name, void* data)` as parameters, and the `void *` data variable gets casted to c++ types, such as `std::string` and `std::map`, which makes the ABI not completely C compatible. I was able to make `getPluginDataPath` work by changing `static_cast<std::string>` to `static_cast<char*>`, and I'll see how far I can go without too much hassle.Léo Banno-CloutierLéo Banno-Cloutierhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/886Blocking contact does not work if you re-enable your own account after changi...2024-01-29T21:44:28ZElysBlocking contact does not work if you re-enable your own account after changing "allow calls from unknown contacts"Steps to reproduce (always using Jami accounts):
You have two contacts: Person A (uses desktop and useraccount1); Person B (uses Android and useraccount2)
* Person A has Person B in the contact list (and the other direction: Person B h...Steps to reproduce (always using Jami accounts):
You have two contacts: Person A (uses desktop and useraccount1); Person B (uses Android and useraccount2)
* Person A has Person B in the contact list (and the other direction: Person B has Person A in the contact list)
* Now Person A blocks Person B (settings "allow calls from unknown contacts" enabled)
* Person B can't make a call (B -\> A) anymore
HOWEVER:
* Now Person A disables "allow calls from unknown contacts" and after a few seconds also disables her own account
* Now Person A enables her own account and after a few second ENABLES "allow calls from unknown contacts"
* Now Person B makes a call (B -\> A)
* Suddenly Person A will receive the call and the blocked Person A is shown many times under "blocked contacts"
* Person A will view the chatview but Person B will never be shown in the contact list
* Person B can make a call anytime and Person A will receive it - receiving text messages doesn't work? - However the other direction is not possible: If Person A wants to make a video or audio call nothing will happen - the option for sending text messages isn't even shown.
---
If now Person A goes to settings and wants to DISABLE "allow calls from unknown contacts" Jami will crash ((also/only) after a sucessful call?)
* Jami on desktop crashes
* open Jami on desktop again
* Make a call Android -\> Desktop
* Android will show "ringing" although you'll never receive any call?Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/887no video and audio in android - iOS call2023-12-27T17:50:47ZKateryna Kostiukno video and audio in android - iOS callWhen android and iOS are on LTE, there is no media in the call when the client that receives the call has TURN disabled.When android and iOS are on LTE, there is no media in the call when the client that receives the call has TURN disabled.Kateryna KostiukKateryna Kostiukhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/891build fails on armhf, aarch64 and i686 for version 20230619.1 due to "to_guil...2024-02-14T14:03:59ZMaxim Cournoyerbuild fails on armhf, aarch64 and i686 for version 20230619.1 due to "to_guile(long int&)" ambiguous callHi,
The native armhf-linux build of libjami has broken since the upgrade to 20230619.1:
```plaintext
libtool: compile: g++ -std=gnu++17 -DHAVE_CONFIG_H -I. -I../.. -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fvisibility=hidden -DLIBJA...Hi,
The native armhf-linux build of libjami has broken since the upgrade to 20230619.1:
```plaintext
libtool: compile: g++ -std=gnu++17 -DHAVE_CONFIG_H -I. -I../.. -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fvisibility=hidden -DLIBJAMI_BUILD -Djami_EXPORTS -DASIO_STANDALONE -DMSGPACK_NO_BOOST -I/tmp/guix-build-libjami-20230619.1.drv-0/jami-20230619.1/daemon/src -I/tmp/guix-build-libjami-20230619.1.drv-0/jami-20230619.1/daemon/src/config -I/tmp/guix-build-libjami-20230619.1.drv-0/jami-20230619.1/daemon/src/media -I/tmp/guix-build-libjami-20230619.1.drv-0/jami-20230619.1/daemon/test -I/tmp/guix-build-libjami-20230619.1.drv-0/jami-20230619.1/daemon/src/jami -DPREFIX=\"/gnu/store/snhlmq7k9lgmjx5h24rzz69phlfxc0zy-libjami-20230619.1\" -DJAMI_DATADIR=\"/gnu/store/snhlmq7k9lgmjx5h24rzz69phlfxc0zy-libjami-20230619.1/share/jami\" -DENABLE_TRACE -DJAMI_REVISION=\"\" -DJAMI_DIRTY_REPO=\"dirty\" -DPJSIP_MAX_PKT_LEN=8000 -DPJ_AUTOCONF=1 -g -fno-omit-frame-pointer -Wall -Wextra -Wnon-virtual-dtor -Wno-deprecated -Wno-deprecated-declarations -Wno-unknown-pragmas -Wformat=2 -O0 -I../../src -I./src -I/gnu/store/da6ikq281d235hvb1cil2ls3iq80ni2m-guile-3.0.9/include/guile/3.0 -MT src/bindings/bindings.lo -MD -MP -MF src/bindings/.deps/bindings.Tpo -c src/bindings/bindings.cpp -o src/bindings/bindings.o >/dev/null 2>&1
In file included from ./src/bindings/bindings.h:27,
from src/bindings/signal.cpp:42:
./src/utils.h: In instantiation of ‘scm_unused_struct* pack_to_guile(Args ...) [with Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<unsigned char, std::allocator<unsigned char> >, long int}; SCM = scm_unused_struct*]’:
./src/utils.h:147:31: required from ‘scm_unused_struct* apply_to_guile(SCM, Args ...) [with Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<unsigned char, std::allocator<unsigned char> >, long int}; SCM = scm_unused_struct*]’
src/bindings/signal.cpp:83:37: required from ‘void Handler<Args>::doExecuteInGuile(Args ...) [with Args = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::vector<unsigned char, std::allocator<unsigned char> >&, long int}]’
src/bindings/signal.cpp:103:37: required from ‘static void* Handler<Args>::executeInGuile(void*) [with Args = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::vector<unsigned char, std::allocator<unsigned char> >&, long int}]’
src/bindings/signal.cpp:117:23: required from ‘void Handler<Args>::execute(Args ...) [with Args = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::vector<unsigned char, std::allocator<unsigned char> >&, long int}]’
src/bindings/signal.cpp:159:24: required from ‘void add_handler(std::map<std::__cxx11::basic_string<char>, std::shared_ptr<libjami::CallbackWrapperBase> >&, const char*) [with T = libjami::ConfigurationSignal::IncomingTrustRequest; Args = {const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const std::vector<unsigned char, std::allocator<unsigned char> >&, long int}]’
src/bindings/signal.cpp:317:24: required from here
./src/utils.h:129:40: error: call of overloaded ‘to_guile(long int&)’ is ambiguous
129 | std::vector<SCM> values = {to_guile(args)...};
| ~~~~~~~~^~~~~~
./src/utils.h:28:1: note: candidate: ‘scm_unused_struct* to_guile(bool)’
28 | to_guile(bool b)
| ^~~~~~~~
./src/utils.h:40:1: note: candidate: ‘scm_unused_struct* to_guile(uint8_t)’
40 | to_guile(uint8_t x)
| ^~~~~~~~
./src/utils.h:46:1: note: candidate: ‘scm_unused_struct* to_guile(uint16_t)’
46 | to_guile(uint16_t x)
| ^~~~~~~~
./src/utils.h:52:1: note: candidate: ‘scm_unused_struct* to_guile(uint32_t)’
52 | to_guile(uint32_t x)
| ^~~~~~~~
./src/utils.h:58:1: note: candidate: ‘scm_unused_struct* to_guile(uint64_t)’
58 | to_guile(uint64_t x)
| ^~~~~~~~
./src/utils.h:64:1: note: candidate: ‘scm_unused_struct* to_guile(int8_t)’
64 | to_guile(int8_t x)
| ^~~~~~~~
./src/utils.h:70:1: note: candidate: ‘scm_unused_struct* to_guile(int16_t)’
70 | to_guile(int16_t x)
| ^~~~~~~~
./src/utils.h:76:1: note: candidate: ‘scm_unused_struct* to_guile(int32_t)’
76 | to_guile(int32_t x)
| ^~~~~~~~
./src/utils.h:82:1: note: candidate: ‘scm_unused_struct* to_guile(int64_t)’
82 | to_guile(int64_t x)
| ^~~~~~~~
./src/utils.h:88:1: note: candidate: ‘scm_unused_struct* to_guile(double)’
88 | to_guile(double x)
| ^~~~~~~~
./src/utils.h:129:22: error: could not convert ‘{<expression error>}’ from ‘<brace-enclosed initializer list>’ to ‘std::vector<scm_unused_struct*>’
129 | std::vector<SCM> values = {to_guile(args)...};
| ^~~~~~
| |
| <brace-enclosed initializer list>
make[3]: *** [Makefile:652: src/bindings/signal.lo] Error 1
make[3]: Leaving directory '/tmp/guix-build-libjami-20230619.1.drv-0/jami-20230619.1/daemon/test/agent'
make[2]: *** [Makefile:458: all-recursive] Error 1
make[2]: Leaving directory '/tmp/guix-build-libjami-20230619.1.drv-0/jami-20230619.1/daemon/test'
make[1]: *** [Makefile:593: all-recursive] Error 1
make[1]: Leaving directory '/tmp/guix-build-libjami-20230619.1.drv-0/jami-20230619.1/daemon'
make: *** [Makefile:499: all] Error 2
error: in phase 'build': uncaught exception:
%exception #<&invoke-error program: "make" arguments: ("-j" "8" "V=1") exit-status: 2 term-signal: #f stop-signal: #f>
phase `build' failed after 576.2 seconds
command "make" "-j" "8" "V=1" failed with status 2
```
The full build log can be seen at: https://bordeaux.guix.gnu.org/build/1b4804ec-87df-4a7c-bd37-aab493e3bca7/loghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/892When kicked out of a Swarm, conversations still appears and make it like you ...2024-01-26T12:42:50ZThomas BallasiWhen kicked out of a Swarm, conversations still appears and make it like you can still discussThis would probably require the daemon to be able to put Swarm into an "archive" state that is read-only.
This behaviour has been observed in both client-qt and client-android:
![image](/uploads/55e741ab8b9a35d575822785560b8e22/image.p...This would probably require the daemon to be able to put Swarm into an "archive" state that is read-only.
This behaviour has been observed in both client-qt and client-android:
![image](/uploads/55e741ab8b9a35d575822785560b8e22/image.png) ![image](/uploads/043cf50d9609dbb57808e4d6e7b3a065/image.png)
(for some reason my name doesn't appear in client-qt)
Sending a message returns the following error:
```
[1693497329.637|56019|conversationrepository.cpp:1715] Invalid parent path (not in members or admins
[1693497329.637|56019|conversation_module.cpp :1077] Failed to send message to conversation 9d864ebe6712f18d1790b70d8ba7b605f78e63ac
```Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/895windows: UT: make and run unit tests in windows2023-11-17T16:34:28ZAline Gondim Santoswindows: UT: make and run unit tests in windowshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/904(Android -> Desktop) Calls don't work / quit call does not work during a file...2023-10-04T12:39:58ZElys(Android -> Desktop) Calls don't work / quit call does not work during a file transfer?Maybe related to https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/903 (after unblock)
1. You've previously tried to send a few files Android -\> desktop but you cancled this
2. Exit all apps (desktop and Android)
3. Now after ...Maybe related to https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/903 (after unblock)
1. You've previously tried to send a few files Android -\> desktop but you cancled this
2. Exit all apps (desktop and Android)
3. Now after a few minutes open all apps again
4. Jami will try to download the file (Android -\> Desktop) again
If you try to make a call during the download progress (or before?)
* calls Android -\> Desktop will stuck / don't work (not even showing "Searching" and/or "Connecting")
* the call Android -\> Desktop will work but if you quit the call on desktop the call will proceed on Android
* everything will work? didn't always reproducehttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/906PACKAGE_VERSION of win is inconsistent with PACKAGE_VERSION of linux2024-01-09T19:32:29ZLanius-collarisPACKAGE_VERSION of win is inconsistent with PACKAGE_VERSION of linux[CMakeLists.txt L4](https://git.jami.net/savoirfairelinux/jami-daemon/-/blob/master/CMakeLists.txt?ref_type=heads#L4) \
[compat/msvc/config.h L164](https://git.jami.net/savoirfairelinux/jami-daemon/-/blob/master/compat/msvc/config.h?ref_...[CMakeLists.txt L4](https://git.jami.net/savoirfairelinux/jami-daemon/-/blob/master/CMakeLists.txt?ref_type=heads#L4) \
[compat/msvc/config.h L164](https://git.jami.net/savoirfairelinux/jami-daemon/-/blob/master/compat/msvc/config.h?ref_type=heads#L164)Andreas TraczykAndreas Traczykhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/909Record: flickering video if inputs have different fps2023-10-20T11:12:08ZAline Gondim SantosRecord: flickering video if inputs have different fpsHow to reproduce: share a file that is 60fps and have another stream with 30 fps
With https://review.jami.net/c/jami-daemon/+/26036 the fps are fixed to 30, but we should support the bigger one.How to reproduce: share a file that is 60fps and have another stream with 30 fps
With https://review.jami.net/c/jami-daemon/+/26036 the fps are fixed to 30, but we should support the bigger one.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/911Change network during call will quit the call2024-02-27T18:43:10ZElysChange network during call will quit the callSteps to reproduce:
1. Make a call Android - Desktop; Android is using a WiFi network
1. Now switch to Mobile Data Networks
1. The call will end
Just tried another app (video call - Threema app): If you switch between Wi-Fi and Mobile ...Steps to reproduce:
1. Make a call Android - Desktop; Android is using a WiFi network
1. Now switch to Mobile Data Networks
1. The call will end
Just tried another app (video call - Threema app): If you switch between Wi-Fi and Mobile Data Networks the video of one peer will be shortly interrupted but the call goes on.
Maybe you try out the following scenarios (during a call):
- switch between Wi-Fi and Mobile Data Networks
- switch between local network (without internet) and same/different WiFi (with internet) and/or mobile data networks (one SIM; Changing from SIM 1 to SIM 2; or 4G to 5G)
If necessary / What happens during the switch
- if one / mutliple peer(s) add(s) video and/or remove the video
- during a file transfer (and if you block/remove a contact while changing the network)?
- if a call is searching / connecting (your own or another contact tries to call you)
- Will this affect Jami-Accounts AND SIP-Accounts?https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/926Crash in OpenSSL (JAMS deletion) - heap use after free2023-12-05T21:03:14ZSébastien BlinCrash in OpenSSL (JAMS deletion) - heap use after free```
#0 0x7f00b503a396 in __interceptor_memcpy ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:827
#1 0x7f00a10e1361 (/lib/x86_64-linux-gnu/libcrypto.so.3+0xe1361)
#2 0x7f00a10d234a (/lib/x86_...```
#0 0x7f00b503a396 in __interceptor_memcpy ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:827
#1 0x7f00a10e1361 (/lib/x86_64-linux-gnu/libcrypto.so.3+0xe1361)
#2 0x7f00a10d234a (/lib/x86_64-linux-gnu/libcrypto.so.3+0xd234a)
#3 0x7f00a10d5344 (/lib/x86_64-linux-gnu/libcrypto.so.3+0xd5344)
#4 0x7f00a10d5b3c in BIO_read_ex (/lib/x86_64-linux-gnu/libcrypto.so.3+0xd5b3c)
#5 0x7f00a10d5344 (/lib/x86_64-linux-gnu/libcrypto.so.3+0xd5344)
#6 0x7f00a10d54c6 in BIO_read (/lib/x86_64-linux-gnu/libcrypto.so.3+0xd54c6)
#7 0x7f00a10bc059 in asn1_d2i_read_bio (/lib/x86_64-linux-gnu/libcrypto.so.3+0xbc059)
#8 0x7f00a1268716 (/lib/x86_64-linux-gnu/libcrypto.so.3+0x268716)
#9 0x7f00a125aa62 (/lib/x86_64-linux-gnu/libcrypto.so.3+0x25aa62)
#10 0x7f00a11697ba (/lib/x86_64-linux-gnu/libcrypto.so.3+0x1697ba)
#11 0x7f00a1169a90 in OSSL_DECODER_from_bio (/lib/x86_64-linux-gnu/libcrypto.so.3+0x169a90)
#12 0x7f00a1169dbd in OSSL_DECODER_from_data (/lib/x86_64-linux-gnu/libcrypto.so.3+0x169dbd)
#13 0x7f00a123fae3 (/lib/x86_64-linux-gnu/libcrypto.so.3+0x23fae3)
#14 0x7f00a10ceb9a (/lib/x86_64-linux-gnu/libcrypto.so.3+0xceb9a)
#15 0x7f00a10d03e7 (/lib/x86_64-linux-gnu/libcrypto.so.3+0xd03e7)
#16 0x7f00a10ced18 (/lib/x86_64-linux-gnu/libcrypto.so.3+0xced18)
#17 0x7f00a10d03e7 (/lib/x86_64-linux-gnu/libcrypto.so.3+0xd03e7)
#18 0x7f00a10ced18 (/lib/x86_64-linux-gnu/libcrypto.so.3+0xced18)
#19 0x7f00a10cf492 in ASN1_item_d2i_ex (/lib/x86_64-linux-gnu/libcrypto.so.3+0xcf492)
#20 0x7f00a15e8132 (/lib/x86_64-linux-gnu/libssl.so.3+0x67132)
#21 0x7f00a15e4a04 (/lib/x86_64-linux-gnu/libssl.so.3+0x63a04)
#22 0x7f00a15e6607 (/lib/x86_64-linux-gnu/libssl.so.3+0x65607)
#23 0x7f00a5176230 in asio::ssl::detail::engine::perform(int (asio::ssl::detail::engine::*)(void*, unsigned long), void*, unsigned long, std::error_code&, unsigned long*) (/home/sblin/Projects/jami-project/client-qt/daemon/src/.libs/libjami.so.0+0x1d76230)
#24 0x7f00a5135430 in asio::ssl::detail::io_op<asio::basic_stream_socket<asio::ip::tcp, asio::any_io_executor>, asio::ssl::detail::handshake_op, dht::http::Connection::async_handshake(std::function<void (std::error_code const&)>)::{lambda(std::error_code const&)#1}>::operator()(std::error_code, unsigned long, int) (/home/sblin/Projects/jami-project/client-qt/daemon/src/.libs/libjami.so.0+0x1d35430)
#25 0x7f00a514062b in asio::detail::reactive_socket_recv_op<asio::mutable_buffers_1, asio::ssl::detail::io_op<asio::basic_stream_socket<asio::ip::tcp, asio::any_io_executor>, asio::ssl::detail::handshake_op, dht::http::Connection::async_handshake(std::function<void (std::error_code const&)>)::{lambda(std::error_code const&)#1}>, asio::any_io_executor>::do_complete(void*, asio::detail::scheduler_operation*, std::error_code const&, unsigned long) (/home/sblin/Projects/jami-project/client-qt/daemon/src/.libs/libjami.so.0+0x1d4062b)
#26 0x7f00a501e62b in asio::detail::epoll_reactor::descriptor_state::do_complete(void*, asio::detail::scheduler_operation*, std::error_code const&, unsigned long) (/home/sblin/Projects/jami-project/client-qt/daemon/src/.libs/libjami.so.0+0x1c1e62b)
#27 0x7f00a3e7ebb8 in asio::detail::scheduler_operation::complete(void*, std::error_code const&, unsigned long) /home/sblin/Projects/jami-project/client-qt/daemon/contrib/x86_64-linux-gnu/include/asio/detail/scheduler_operation.hpp:39
#28 0x7f00a3e85aa6 in asio::detail::scheduler::do_run_one(asio::detail::conditionally_enabled_mutex::scoped_lock&, asio::detail::scheduler_thread_info&, std::error_code const&) /home/sblin/Projects/jami-project/client-qt/daemon/contrib/x86_64-linux-gnu/include/asio/detail/impl/scheduler.ipp:492
#29 0x7f00a3e84ed9 in asio::detail::scheduler::run(std::error_code&) /home/sblin/Projects/jami-project/client-qt/daemon/contrib/x86_64-linux-gnu/include/asio/detail/impl/scheduler.ipp:209
#30 0x7f00a3e86298 in asio::io_context::run() (/home/sblin/Projects/jami-project/client-qt/daemon/src/.libs/libjami.so.0+0xa86298)
#31 0x7f00a3e3aaef in operator() /home/sblin/Projects/jami-project/client-qt/daemon/src/manager.cpp:464
#32 0x7f00a3e73fb3 in __invoke_impl<void, jami::Manager::ManagerPimpl::ManagerPimpl(jami::Manager&)::<lambda()> > /usr/include/c++/11/bits/invoke.h:61
#33 0x7f00a3e73f76 in __invoke<jami::Manager::ManagerPimpl::ManagerPimpl(jami::Manager&)::<lambda()> > /usr/include/c++/11/bits/invoke.h:96
#34 0x7f00a3e73f23 in _M_invoke<0> /usr/include/c++/11/bits/std_thread.h:259
#35 0x7f00a3e73ef7 in operator() /usr/include/c++/11/bits/std_thread.h:266
#36 0x7f00a3e73edb in _M_run /usr/include/c++/11/bits/std_thread.h:211
#37 0x7f00a30dc252 (/lib/x86_64-linux-gnu/libstdc++.so.6+0xdc252)
#38 0x7f00a2c94ac2 in start_thread nptl/pthread_create.c:442
#39 0x7f00a2d26a3f (/lib/x86_64-linux-gnu/libc.so.6+0x126a3f)
0x62a0001c90e7 is located 3815 bytes inside of 21848-byte region [0x62a0001c8200,0x62a0001cd758)
freed by thread T0 here:
#0 0x7f00b50b4537 in __interceptor_free ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:127
#1 0x7f00a10f5174 in BUF_MEM_free (/lib/x86_64-linux-gnu/libcrypto.so.3+0xf5174)
previously allocated by thread T24 here:
#0 0x7f00b50b4887 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
#1 0x7f00a10f6ca5 in BUF_MEM_grow (/lib/x86_64-linux-gnu/libcrypto.so.3+0xf6ca5)
Thread T24 created by T0 here:
#0 0x7f00b5058685 in __interceptor_pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cpp:216
#1 0x7f00a30dc328 in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) (/lib/x86_64-linux-gnu/libstdc++.so.6+0xdc328)
#2 0x7f00a3e3b424 in jami::Manager::ManagerPimpl::ManagerPimpl(jami::Manager&) /home/sblin/Projects/jami-project/client-qt/daemon/src/manager.cpp:461
#3 0x7f00a3e90a5e in std::_MakeUniq<jami::Manager::ManagerPimpl>::__single_object std::make_unique<jami::Manager::ManagerPimpl, jami::Manager&>(jami::Manager&) /usr/include/c++/11/bits/unique_ptr.h:962
#4 0x7f00a3e3fbfe in jami::Manager::Manager() /home/sblin/Projects/jami-project/client-qt/daemon/src/manager.cpp:755
#5 0x7f00a3e3f94b in jami::Manager::instance() /home/sblin/Projects/jami-project/client-qt/daemon/src/manager.cpp:728
#6 0x7f00a3f83bee in libjami::init(libjami::InitFlag) /home/sblin/Projects/jami-project/client-qt/daemon/src/ring_api.cpp:69
#7 0x5637e3d41766 in InstanceManagerInterface::InstanceManagerInterface(bool) /home/sblin/Projects/jami-project/client-qt/src/libclient/qtwrapper/instancemanager.cpp:54
#8 0x5637e4e588c7 (/home/sblin/Projects/jami-project/client-qt/build/jami+0x1d568c7)
SUMMARY: AddressSanitizer: heap-use-after-free ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:827 in __interceptor_memcpy
Shadow bytes around the buggy address:
0x0c54800311c0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c54800311d0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c54800311e0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c54800311f0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c5480031200: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
=>0x0c5480031210: fd fd fd fd fd fd fd fd fd fd fd fd[fd]fd fd fd
0x0c5480031220: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c5480031230: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c5480031240: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c5480031250: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c5480031260: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc
==596032==ABORTING
```https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/954DHT Proxy full pass2024-03-28T00:05:08ZSébastien BlinDHT Proxy full pass# TODO
Try to reproduce any issue/find any scenario# TODO
Try to reproduce any issue/find any scenarioSébastien BlinFrançois-Simon Fauteux-ChapleauSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/927Android: Same contact multiple times (multi device related?)2023-12-16T18:01:12ZElysAndroid: Same contact multiple times (multi device related?)Desktop (Beta): 202312142117
Android (20231213-01)
Steps to reproduce:
- You are using the same Jami account ("Jamiaccount1") on different devices - and you always have your own Jami account in the contact list (so you can make calls /...Desktop (Beta): 202312142117
Android (20231213-01)
Steps to reproduce:
- You are using the same Jami account ("Jamiaccount1") on different devices - and you always have your own Jami account in the contact list (so you can make calls / send messages "Jamiaccount1" device 1 <-> "Jamiaccount1" device 2)
- - only the desktop device 1 also has another own account "Jamiaccount2": "Jamiaccount1" is in the contact list of "Jamiaccount2" (and the other direction); however "Jamiaccount2" account does NOT have it's own account in the contact list?
- BUT you always use the same two devices (desktop and android phone) for weeks
- Now you are using a different desktop device (3) that only uses "Jamiaccount2" (device 3)contact ("Jamiaccount1") is already in the contact list of "Jamiaccount2" (device 1,2) because you've added "Jamiaccount2" on another device
- Once you open Jami on desktop - Jami on Android will create another same contact of "Jamiaccount1" and if you tap the duplicated contact the chatview will stuck at "Downloading conversation from peer" (even if you restart Jami on Android)
Screenshot (of the Android device)
![Jamitwice1](/uploads/32a667c3f81374effdc83094bcd1c85c/Jamitwice1.png)
Detail:
![Jamitwice2](/uploads/456f273bf0080e14b7b569cdb820656e/Jamitwice2.png)https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/930POC: new linking account mechanism2024-03-28T00:05:08ZSébastien BlinPOC: new linking account mechanism# Goal
Do not use the DHT to transfer the account archive while linking a new device, but rather use a p2p link between the new and old device
# TODO
+ Define architecture
+ POC (client)
+ add docs to docs.jami.net
+ Finalize daemon c...# Goal
Do not use the DHT to transfer the account archive while linking a new device, but rather use a p2p link between the new and old device
# TODO
+ Define architecture
+ POC (client)
+ add docs to docs.jami.net
+ Finalize daemon code
+ Ping design & clients to implement the featureKessler DuPont-TeevinAdrien BéraudKessler DuPont-Teevin2024-01-31https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/950--disable-natpmp doesn't work anymore2024-02-15T14:34:27ZSébastien Blin--disable-natpmp doesn't work anymoreprobably since it's done in dhtnetprobably since it's done in dhtnethttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/952improve configurationMtx contention2024-03-28T00:05:08ZSébastien Blinimprove configurationMtx contentionconfigurationMtx_ is locked for a loooot of things and probably a lot of un-necessary causing the daemon to take a lot of time and this should be improvedconfigurationMtx_ is locked for a loooot of things and probably a lot of un-necessary causing the daemon to take a lot of time and this should be improvedAdrien BéraudAdrien Béraudhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/957Call-swarm: join in audio fails2024-02-26T20:30:19ZSébastien BlinCall-swarm: join in audio fails# Scenario
* Alice, Bob, Carla in a swarm
* Alice is default host
* Bob call in audio
* Carla calls (audio or video)
# Expected result
Carla should ear Bob
# Current result
No sound# Scenario
* Alice, Bob, Carla in a swarm
* Alice is default host
* Bob call in audio
* Carla calls (audio or video)
# Expected result
Carla should ear Bob
# Current result
No soundhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/958Call-swarm: Joining in audio make the host join2024-03-25T18:36:16ZSébastien BlinCall-swarm: Joining in audio make the host join# Scenario
* Alice, Bob in a swarm
* Alice is default host
* Bob joins in audio
# Expected
Alice doesn't join the call
# Current
Alice is attached# Scenario
* Alice, Bob in a swarm
* Alice is default host
* Bob joins in audio
# Expected
Alice doesn't join the call
# Current
Alice is attachedSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/959Call-Swarm/Rdv: wrong audio is attached2024-03-28T00:05:08ZSébastien BlinCall-Swarm/Rdv: wrong audio is attached# Scenario
+ In a call swarm (alice is the host), bob calls
+ Alice is detached, but audio is playing
# Expected
Alice should not ear anything, Bob should not ear alice# Scenario
+ In a call swarm (alice is the host), bob calls
+ Alice is detached, but audio is playing
# Expected
Alice should not ear anything, Bob should not ear alicehttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/960Call-swarm: Too long timeout for need host2024-03-28T00:05:08ZSébastien BlinCall-swarm: Too long timeout for need host# Scenario
+ Bob call Alice (host, offline)
# Current result
The host popup is taking 30s to come (for busy signal)
# Expected
I guess 10s would be enough# Scenario
+ Bob call Alice (host, offline)
# Current result
The host popup is taking 30s to come (for busy signal)
# Expected
I guess 10s would be enough2024-02-29https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/962Simplify Conference construction. Never attach Host, then attach Host in vide...2024-02-28T15:09:50ZSébastien BlinSimplify Conference construction. Never attach Host, then attach Host in video OR audiohttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/963Remove method setLocalHostDefaultMediaSource (not understandable)2024-02-28T15:10:32ZSébastien BlinRemove method setLocalHostDefaultMediaSource (not understandable)https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/964Remove takeOverMediaSourceControl2024-02-28T15:11:11ZSébastien BlinRemove takeOverMediaSourceControlhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/965Rename addParticipant/removeParticipant (callId)2024-02-28T15:12:09ZSébastien BlinRename addParticipant/removeParticipant (callId)https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/966Merge bind and attach methods2024-02-28T15:12:19ZSébastien BlinMerge bind and attach methodshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/970Video camera stream is black when hardware acceleration is enabled2024-03-08T13:26:13ZPaul Le Guen de KerneizonVideo camera stream is black when hardware acceleration is enabled## How to report a bug
## One bug = one bug report
If you have multiple issues, please file separate bug reports. It will be much easier to track bugs that way.
## Avoid duplicates
Search for similar problem - update existing issue i...## How to report a bug
## One bug = one bug report
If you have multiple issues, please file separate bug reports. It will be much easier to track bugs that way.
## Avoid duplicates
Search for similar problem - update existing issue instead of creating new one.
## Bug report form
## Describe your environment
Please specify the following:
- OS: Ubuntu 22.04.4 LTS
- Jami version: 202402141827
- What build you are using: jami.net
## Steps to reproduce
1. Enable hardware acceleration in parameters with 960x540 resolution
2. Start a video call
- Actual result: My video camera stream is black on the Jami screen of other contacts in the meeting. However, I can see myself on my Jami screen. Must disable hardware acceleration to solve the problem or change the video resolution to 1280x720
- Expected result: Other people can see my camera video stream instead of a black screen.
## Additional information
- With Jami enable with `--debug`, this log appeared:
```
[1709890977.592|52761|accel.cpp :298 ] Failed to push frame to GPU: Invalid argument
[1709890977.593|52761|media_encoder.cpp :438 ] Fail to get frame
[1709890977.593|52761|video_sender.cpp :87 ] encoding failed
```
- The issue appears whatever camera I use
- My laptop is a Lenovo P14S with AMD GPU and same hardware
- We achieve to reproduce the same bug with Fedora 39
On contact side:
![Screenshot_from_2024-03-08_11-29-49](/uploads/f93d51095c449899708f64255c9f4850/Screenshot_from_2024-03-08_11-29-49.png)
On my side:
![Screenshot_from_2024-03-08_11-29-48](/uploads/f5672232032c2ce2a9671ebf44825c2e/Screenshot_from_2024-03-08_11-29-48.png)
For retrieving logs, cf [this page](https://git.jami.net/savoirfairelinux/ring-project/wikis/tutorials/Bug-report-guide#logs).https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/972Modified contact profile synchronization2024-03-19T13:01:46ZPierre NicolasModified contact profile synchronizationhttps://git.jami.net/savoirfairelinux/jami-client-android/-/issues/1402#note_48719
> The display name and the profile picture, which I have assigned to my contact myself, have not been synchronised.https://git.jami.net/savoirfairelinux/jami-client-android/-/issues/1402#note_48719
> The display name and the profile picture, which I have assigned to my contact myself, have not been synchronised.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/973Flatpak: Automatic Upgrades: tag versions of jami-daemon which jami-client de...2024-03-22T09:29:01ZovariFlatpak: Automatic Upgrades: tag versions of jami-daemon which jami-client depends on>> It would be great if this Flatpak package would upgrade automatically if a newer upstream version of Jami is released.
> Not possible because of how jami-client depends on specific untagged versions of jami-daemon.
https://github.co...>> It would be great if this Flatpak package would upgrade automatically if a newer upstream version of Jami is released.
> Not possible because of how jami-client depends on specific untagged versions of jami-daemon.
https://github.com/flathub/net.jami.Jami/issues/86https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/974Various asserts and crashes with TURN / PJNATH2024-03-25T18:29:13ZAdrien BéraudVarious asserts and crashes with TURN / PJNATHTypical assertion when PJSIP built with asserts:
```
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2024-03-22 14:13:31.793 9191-9191 D...Typical assertion when PJSIP built with asserts:
```
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A Build fingerprint: 'google/cheetah/cheetah:14/AP1A.240305.019.A1/11445699:user/release-keys'
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A Revision: 'MP1.0'
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A ABI: 'arm64'
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A Timestamp: 2024-03-22 14:13:31.550572829-0400
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A Process uptime: 2s
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A Cmdline: cx.ring
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A pid: 8414, tid: 9172, name: Thread-64 >>> cx.ring <<<
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A uid: 10352
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A tagged_addr_ctrl: 0000000000000001 (PR_TAGGED_ADDR_ENABLE)
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A Abort message: '../src/pjnath/turn_session.c:740: pj_status_t pj_turn_session_alloc(pj_turn_session *, const pj_turn_alloc_param *): assertion "sess->state>PJ_TURN_STATE_NULL && sess->state<=PJ_TURN_STATE_RESOLVED" failed'
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A x0 0000000000000000 x1 00000000000023d4 x2 0000000000000006 x3 000000795e531320
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A x4 2f333639622d6d6e x5 2f333639622d6d6e x6 2f333639622d6d6e x7 7f7f7f7f7f7f7f7f
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A x8 00000000000000f0 x9 0000007d40c87200 x10 0000000000000001 x11 0000007d40cd1ba0
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A x12 0000007d5ac86020 x13 000000007fffffff x14 00000000009ffbec x15 00000247cba606d0
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A x16 0000007d40d3cfc8 x17 0000007d40d1a160 x18 000000795b0d8000 x19 00000000000020de
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A x20 00000000000023d4 x21 00000000ffffffff x22 0000000000002374 x23 00000000000020de
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A x24 000000795e5318b0 x25 000000795e5318b0 x26 000000795e531bf0 x27 00000000000fc000
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A x28 00000000000fe000 x29 000000795e5313a0
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A lr 0000007d40cc2e48 sp 000000795e531300 pc 0000007d40cc2e74 pst 0000000000001000
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A 11 total frames
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A backtrace:
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A #00 pc 000000000005ee74 /apex/com.android.runtime/lib64/bionic/libc.so (abort+164) (BuildId: 33ad5959e2b38fc822cda3c642e16c94)
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A #01 pc 000000000005f284 /apex/com.android.runtime/lib64/bionic/libc.so (__assert2+36) (BuildId: 33ad5959e2b38fc822cda3c642e16c94)
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A #02 pc 0000000001922e2c /data/app/~~VtmIPQIw72akn02OjhBU0g==/cx.ring-aDZMbBTi4zOBSAIxpYGD2w==/base.apk!libjami-core-jni.so (offset 0xd64000) (pj_turn_session_alloc+284) (BuildId: f128353698d79bade99658daa4d09034a3aee20e)
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A #03 pc 000000000192a61c /data/app/~~VtmIPQIw72akn02OjhBU0g==/cx.ring-aDZMbBTi4zOBSAIxpYGD2w==/base.apk!libjami-core-jni.so (offset 0xd64000) (BuildId: f128353698d79bade99658daa4d09034a3aee20e)
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A #04 pc 000000000192a258 /data/app/~~VtmIPQIw72akn02OjhBU0g==/cx.ring-aDZMbBTi4zOBSAIxpYGD2w==/base.apk!libjami-core-jni.so (offset 0xd64000) (BuildId: f128353698d79bade99658daa4d09034a3aee20e)
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A #05 pc 000000000194d5f4 /data/app/~~VtmIPQIw72akn02OjhBU0g==/cx.ring-aDZMbBTi4zOBSAIxpYGD2w==/base.apk!libjami-core-jni.so (offset 0xd64000) (BuildId: f128353698d79bade99658daa4d09034a3aee20e)
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A #06 pc 00000000019414bc /data/app/~~VtmIPQIw72akn02OjhBU0g==/cx.ring-aDZMbBTi4zOBSAIxpYGD2w==/base.apk!libjami-core-jni.so (offset 0xd64000) (ioqueue_dispatch_write_event+416) (BuildId: f128353698d79bade99658daa4d09034a3aee20e)
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A #07 pc 0000000001945428 /data/app/~~VtmIPQIw72akn02OjhBU0g==/cx.ring-aDZMbBTi4zOBSAIxpYGD2w==/base.apk!libjami-core-jni.so (offset 0xd64000) (pj_ioqueue_poll+1476) (BuildId: f128353698d79bade99658daa4d09034a3aee20e)
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A #08 pc 0000000001739b98 /data/app/~~VtmIPQIw72akn02OjhBU0g==/cx.ring-aDZMbBTi4zOBSAIxpYGD2w==/base.apk!libjami-core-jni.so (offset 0xd64000) (BuildId: f128353698d79bade99658daa4d09034a3aee20e)
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A #09 pc 00000000000ca7cc /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+204) (BuildId: 33ad5959e2b38fc822cda3c642e16c94)
2024-03-22 14:13:31.793 9191-9191 DEBUG pid-9191 A #10 pc 00000000000607b0 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: 33ad5959e2b38fc822cda3c642e16c94)
```Sébastien BlinFrançois-Simon Fauteux-ChapleauSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/975Link voice setup callback to host (without rtp session)2024-03-25T18:36:16ZSébastien BlinLink voice setup callback to host (without rtp session)