jami-daemon issueshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues2024-03-22T15:44:49Zhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/13Add PipeWire support on Linux2024-03-22T15:44:49ZannaAdd PipeWire support on LinuxTo quote the PipeWire website (https://pipewire.org/#about):
"PipeWire is a project that aims to greatly improve handling of audio and video under Linux. It aims to support the usecases currently handled by both PulseAudio and Jack and ...To quote the PipeWire website (https://pipewire.org/#about):
"PipeWire is a project that aims to greatly improve handling of audio and video under Linux. It aims to support the usecases currently handled by both PulseAudio and Jack and at the same time provide same level of powerful handling of Video input and output. It also introduces a security model that makes interacting with audio and video devices from containerized applications easy, with supporting Flatpak applications being the primary goal. Alongside Wayland and Flatpak we expect PipeWire to provide a core building block for the future of Linux application development.
Features include:
* Capture and playback of audio and video with minimal latency.
* Real-time Multimedia processing on audio and video.
* Multiprocess architecture to let applications share multimedia content.
* GStreamer plugins for easy use and integration in current applications.
* Sandboxed applications support.
See Flatpak for more info."
@pgorley What do you think?François-Simon Fauteux-ChapleauFrançois-Simon Fauteux-Chapleauhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/914Video bitrate adjustment improvements2023-11-09T13:45:43ZAlexander Lussier-CullenVideo bitrate adjustment improvementsCurrently, the video bitrate adjustment functionality doesn't perform optimally.
When losses are detected, the bitrate is reduced.
The problem is that it can then immediately be increased again, repeating the losses.
This means that i...Currently, the video bitrate adjustment functionality doesn't perform optimally.
When losses are detected, the bitrate is reduced.
The problem is that it can then immediately be increased again, repeating the losses.
This means that if losses are consistent due to some network limitation, they will repeatedly occur without end.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/890Call-Swarm fix audio binding2023-09-14T17:39:14ZSébastien BlinCall-Swarm fix audio binding# Scenario
+ Alice hosts a call-swarm between Alice/Bob/Carla
# Expected result
+ Bob should hear carla
# Current result
+ Carla and Bob can't communicate by audio, but Alice got all audio# Scenario
+ Alice hosts a call-swarm between Alice/Bob/Carla
# Expected result
+ Bob should hear carla
# Current result
+ Carla and Bob can't communicate by audio, but Alice got all audioCapucine BerthetSébastien BlinCapucine Berthethttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/851new API for connection monitoring2023-10-26T17:52:19ZFadi Shehadehnew API for connection monitoringImplementation of a new API allowing to monitor connections for Jami
**1.** getConnectionList(_accountId_, _conversationId_)
returns connection information:
- IP/Port
- Connection state ( Waiting for DHT response, Ice, TLS, Connected)
...Implementation of a new API allowing to monitor connections for Jami
**1.** getConnectionList(_accountId_, _conversationId_)
returns connection information:
- IP/Port
- Connection state ( Waiting for DHT response, Ice, TLS, Connected)
- Contact (Contact Uri, Contact Device)
If accountId is empty => all connections for all accounts
If conversationId is empty => all connection for this account
ConnectionId = ptr of the MultiplexedSocket
**2.** getChannelList(_accountId_, _connectionId_)
returns channels with specifi connectionId:
- Channels's Uri
- Channel's IdAmna SneneCharlotte HoffmannLiam CoursodonAmna Snenehttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/815Synced messages appear as new on synced devices (notification spam)2023-03-02T19:06:10ZMaxim CournoyerSynced messages appear as new on synced devices (notification spam)Hi,
At least on Android and GNU/Linux, messages received via the SWARM sync feature *that already have been read* on one device appear as new, i.e. they trigger notifications.
This is especially annoying when not using a device for som...Hi,
At least on Android and GNU/Linux, messages received via the SWARM sync feature *that already have been read* on one device appear as new, i.e. they trigger notifications.
This is especially annoying when not using a device for some time (offline); when reconnecting to the Jami network all the past messages stored on other devices will be synced and cause a massive amount of notifications.
I'm opening the issue here since it seems to affect all the clients (at least Android and GNU/Linux).
Thanks.2023-02-28https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/814swarm: color preference are not updating2023-02-20T14:01:38ZBinal Ahiyaswarm: color preference are not updatingProcess : link account to new device
Problem : new device is not retrieving color preference only for the first time.Process : link account to new device
Problem : new device is not retrieving color preference only for the first time.Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/803Extra participant in group call2023-02-06T20:46:47ZAmirhossein NaghshzanExtra participant in group callIf I start a group call with video everything is fine but when I start the call with audio only, there is an extra person in the call and its URI is the URI of the conversation.
It is reproducible on Linux.If I start a group call with video everything is fine but when I start the call with audio only, there is an extra person in the call and its URI is the URI of the conversation.
It is reproducible on Linux.Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/800Separate connectivity layer (dhtnet)2023-07-28T19:24:38ZSébastien BlinSeparate connectivity layer (dhtnet)Sébastien BlinSébastien Blin2023-02-28https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/778Split daemon into two components (jami-daemon: Jami-related component ; dhtne...2023-07-31T12:47:28ZThomas BallasiSplit daemon into two components (jami-daemon: Jami-related component ; dhtnet: universally usable network system using the dht)An interesting task to do is to have the components used in jami-daemon to create connectivity between two peers extracted from these sources into an independent library.
The goal is to create a new repository altogether for dhtnet.
He...An interesting task to do is to have the components used in jami-daemon to create connectivity between two peers extracted from these sources into an independent library.
The goal is to create a new repository altogether for dhtnet.
Here is a rundown of the sub-tasks:
- [X] [[22745](https://review.jami.net/c/jami-daemon/+/22745)] Initial split of the code-base (without removing cross-dependencies)
- [ ] [[WIP (22885)](https://review.jami.net/c/jami-daemon/+/22885), [In Review (23020)](https://review.jami.net/c/jami-daemon/+/23020)] Minimize the use of cross-dependencies across the code-base
- [ ] Define an API for dhtnet
- [ ] Remove the last bits of unnecessary dependencies (may require to rewrite some parts of the code)
- [ ] Push dhtnet to its proper repository and have Jami use ithttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/768[swarm] conversation cannot be sync'd: Abort fetching repository, the fetch i...2023-01-10T15:25:14ZMaxim Cournoyer[swarm] conversation cannot be sync'd: Abort fetching repository, the fetch is too bigHi,
After updating Jami to 20220825.0828.c10f01f, there's a conversation info banner mentioning "An error occurred while fetching this repository".
Looking at the logs, the more exact error seems to be: "Abort fetching repository, the ...Hi,
After updating Jami to 20220825.0828.c10f01f, there's a conversation info banner mentioning "An error occurred while fetching this repository".
Looking at the logs, the more exact error seems to be: "Abort fetching repository, the fetch is too big":
```
Sep 19 10:45:23 localhost jami: Could not fetch remote repository for conversation b7ca6ad7bbf02d554160da6382f3f17b30082dc8: indexer progress callback returned -1
Sep 19 10:45:23 localhost jami: [Account 80852682ccb25a32] Could not fetch new commit from 536ba4cf048057f6fa01d8eafa7b65d7bdde470320af6e5c026cf2dc59a0355f for b7ca6ad7bbf02d554160da6382f3f17b30082dc8, other peer may be disconnected
Sep 19 10:45:23 localhost jami: [Account 80852682ccb25a32] Relaunch sync with 536ba4cf048057f6fa01d8eafa7b65d7bdde470320af6e5c026cf2dc59a0355f for b7ca6ad7bbf02d554160da6382f3f17b30082dc8
```
`grep jami /var/log/messages | tail -n200 > jami.log` attached.
[jami.log](/uploads/83aa19a73cefe19744742aa614172189/jami.log)Sébastien BlinSébastien Blin2023-01-18https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/724Screensharing causes system lockup2023-09-29T09:45:15ZPLYSHKAScreensharing causes system lockupOS: Archlinux
Kernel: 5.16.10-arch1-1
WM: AwesomeWM
jami-daemon: 20220209-2
jami-qt: 20220211-1
When i start screensharing, `lsof` output shows dramatic increase in `jamid` process (i used command `lsof -U | awk '{print $1}' | sort ...OS: Archlinux
Kernel: 5.16.10-arch1-1
WM: AwesomeWM
jami-daemon: 20220209-2
jami-qt: 20220211-1
When i start screensharing, `lsof` output shows dramatic increase in `jamid` process (i used command `lsof -U | awk '{print $1}' | sort | uniq -c | sort -rn` to sort them from top to bottom).
And after it goes over 200-230, it causes system lockup (not total, i just can't open stuff and some things break, like icons in call) and other end can't see anything (black screen) until i close Jami (graphical app).
When i make screenshare fps lower, it decreases rate of the `lsof` output, but eventually still does lockup
In journal, i can see this , which indicates my issue ![2022-02-18_21-20](/uploads/ca19b92988723d27ad249c1006c0dfe3/2022-02-18_21-20.png)
I can't really take logs from-inside app (in troubleshooting page) because i can't open new window when this lockup happenshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/723Mediademuxer: buffer can increase2022-02-16T21:47:04ZSébastien BlinMediademuxer: buffer can increaseIn MediaDemuxer::decode():
`av_read_frame` only return one frame of the video buffer. However, if the CPU is too slow to decode (should not happen, but still), frames can just be stored and the video buffer can increase with a big maxim...In MediaDemuxer::decode():
`av_read_frame` only return one frame of the video buffer. However, if the CPU is too slow to decode (should not happen, but still), frames can just be stored and the video buffer can increase with a big maximum.
This should never happen. If the video buffer gets too big, the video will have a big delay.
But we also should not hide other problems. So, potential solution:
Check the size of the internal video buffer and log if too big before flushing.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/705Split JamiAccount: rewrite setAccountDetails.2022-11-26T22:41:27ZSébastien BlinSplit JamiAccount: rewrite setAccountDetails.Account's config should be in a separated class
setAccountDetails should only change what is in the map, not all settings.Account's config should be in a separated class
setAccountDetails should only change what is in the map, not all settings.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/693Provide parameters for pulseaudio's echo-cancel-module2022-12-30T20:58:13ZAmin BandaliProvide parameters for pulseaudio's echo-cancel-moduleWe currently don't set any additional arguments for pulseaudio's echo canceller module:
https://git.jami.net/savoirfairelinux/ring-daemon/-/blob/504e54608267a257e14acc84daea236b1fd4f85a/src/media/audio/pulseaudio/audiostream.cpp#L59
V...We currently don't set any additional arguments for pulseaudio's echo canceller module:
https://git.jami.net/savoirfairelinux/ring-daemon/-/blob/504e54608267a257e14acc84daea236b1fd4f85a/src/media/audio/pulseaudio/audiostream.cpp#L59
Various GNU/Linux distributions such as Debian and its derivatives don't load the echo canceller module in `/etc/pulseaudio/default.pa` at all or with any additional parameters, so we can't rely on that.
We should look into providing additional arguments -- like the ones below -- ourselves when creating the pulseaudio stream.
For reference: example of loading the echo canceller module with additional arguments in a pulseaudio config file (thanks @atraczyk):
```
load-module module-echo-cancel use_volume_sharing=1 use_master_format=1 aec_method=webrtc aec_args="digital_gain_control=1 experimental_agc=1 analog_gain_control=0 noise_suppression=1 voice_detection=1 extended_filter=1" source_name=echoCancel_source sink_name=echoCancel_sink
```https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/646Video settings - disable video in account settings must be handled2022-01-17T17:13:55ZAdrien BéraudVideo settings - disable video in account settings must be handledWhen video is disabled in the account settings, video should never be used or enabled, including video mixer.When video is disabled in the account settings, video should never be used or enabled, including video mixer.Mohamed ChibaniMohamed Chibanihttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/644audio call: could not unpause audio only call2022-03-10T18:19:36ZKateryna Kostiukaudio call: could not unpause audio only callthe scenario on iOS:
- start audio-only call
- pause call
- unpause. The call stays in the paused state.
the scenario on the desktop client:
- start audio-only call
- start another audio-only call. The first call will be paused.
-...the scenario on iOS:
- start audio-only call
- pause call
- unpause. The call stays in the paused state.
the scenario on the desktop client:
- start audio-only call
- start another audio-only call. The first call will be paused.
- stop the second call, the first call stays in the paused state.
When a call is paused an exception is thrown: "Exception running job: Stream index is out-of-range"Kateryna KostiukMohamed ChibaniKateryna Kostiukhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/626Mediademuxer: buffer can increase2021-12-23T21:58:11ZSébastien BlinMediademuxer: buffer can increaseIn MediaDemuxer::decode():
`av_read_frame` only return one frame of the video buffer. However, if the CPU is too slow to decode (should not happen, but still), frames can just be stored and the video buffer can increase with a big maxim...In MediaDemuxer::decode():
`av_read_frame` only return one frame of the video buffer. However, if the CPU is too slow to decode (should not happen, but still), frames can just be stored and the video buffer can increase with a big maximum.
This should never happen. If the video buffer gets too big, the video will have a big delay.
But we also should not hide other problems. So, potential solution:
Check the size of the internal video buffer and log if too big before flushing.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/621Provide parameters for pulseaudio's echo-cancel-module2022-01-04T16:03:10ZAmin BandaliProvide parameters for pulseaudio's echo-cancel-moduleWe currently don't set any additional arguments for pulseaudio's echo canceller module:
https://git.jami.net/savoirfairelinux/ring-daemon/-/blob/504e54608267a257e14acc84daea236b1fd4f85a/src/media/audio/pulseaudio/audiostream.cpp#L59
V...We currently don't set any additional arguments for pulseaudio's echo canceller module:
https://git.jami.net/savoirfairelinux/ring-daemon/-/blob/504e54608267a257e14acc84daea236b1fd4f85a/src/media/audio/pulseaudio/audiostream.cpp#L59
Various GNU/Linux distributions such as Debian and its derivatives don't load the echo canceller module in `/etc/pulseaudio/default.pa` at all or with any additional parameters, so we can't rely on that.
We should look into providing additional arguments -- like the ones below -- ourselves when creating the pulseaudio stream.
For reference: example of loading the echo canceller module with additional arguments in a pulseaudio config file (thanks @atraczyk):
```
load-module module-echo-cancel use_volume_sharing=1 use_master_format=1 aec_method=webrtc aec_args="digital_gain_control=1 experimental_agc=1 analog_gain_control=0 noise_suppression=1 voice_detection=1 extended_filter=1" source_name=echoCancel_source sink_name=echoCancel_sink
```https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/606Split JamiAccount: rewrite setAccountDetails.2021-12-29T17:09:32ZSébastien BlinSplit JamiAccount: rewrite setAccountDetails.Account's config should be in a separated class
setAccountDetails should only change what is in the map, not all settings.Account's config should be in a separated class
setAccountDetails should only change what is in the map, not all settings.Backloghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/603Extract conversation's code from jamiaccount2021-09-13T17:03:00ZSébastien BlinExtract conversation's code from jamiaccountJamiAccount is too big. Split this classJamiAccount is too big. Split this classSébastien BlinSébastien Blin