jami-daemon issueshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues2023-05-15T13:27:53Zhttps://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/849Discarding message from invalid peer certificate2023-12-27T18:02:22ZPierre NicolasDiscarding message from invalid peer certificate## Describe your environment
- Device model: <br>
1. Device A : Samsung SM-T720, Android 11 API 30, Master (3f87565cc46ca68a6c9c38154d09416f30c766a0)<br>
2. Device B : Ubuntu 22.04.2 LTS, Ubuntu Software v202304121408
...## Describe your environment
- Device model: <br>
1. Device A : Samsung SM-T720, Android 11 API 30, Master (3f87565cc46ca68a6c9c38154d09416f30c766a0)<br>
2. Device B : Ubuntu 22.04.2 LTS, Ubuntu Software v202304121408
## Steps to reproduce
- Can you reproduce the bug: at will
- Steps:
1. Create new account with device B
2. Quickly send friend invite to device A (if I wait like 30s I don't have the bug anymore)
- Actual result: Device A doesnt receive the friend invite. I get some logs telling it didnt work.
## Additional information
![Kazam_screencast_00004](/uploads/bce944097ec419cd2b8293d38f43b098/Kazam_screencast_00004.webm)
![device-2023-05-01-114418](/uploads/1f9a46a02f0386a9528a96f2e778b1a4/device-2023-05-01-114418.mp4)
```
2023-05-01 11:43:33.145 22549-22746 libjami cx.ring W [1682955813.145|22746|account_manager.cpp :337 ] Found invalid peer device: 89879ec18abb54e187cb34bbab78cec3d76929dc15017499bcdb5316f5e581a0
2023-05-01 11:43:33.146 22549-22746 libjami cx.ring W [1682955813.146|22746|account_manager.cpp :385 ] [Auth] Discarding message from invalid peer certificate
2023-05-01 11:43:33.152 22549-22746 libjami cx.ring W [1682955813.152|22746|account_manager.cpp :337 ] Found invalid peer device: 89879ec18abb54e187cb34bbab78cec3d76929dc15017499bcdb5316f5e581a0
2023-05-01 11:43:33.152 22549-22746 libjami cx.ring W [1682955813.152|22746|account_manager.cpp :385 ] [Auth] Discarding message from invalid peer certificate
```
### Notes
(Sébastien):
This may be due to the fact than the device key is not present on the DHT during the first seconds. So, the Android device will not find any certificate when receiving the trust request.
One possible solution would be to wait that deviceAnnounced_ is true before sending trust request or other DHT values.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/848Cmake installs nothing2023-05-05T18:58:11ZSébastien BlinCmake installs nothing```
amarok@atlas ~/Projects/jami/client-qt/daemon/build ➦ fa1a8d811 cmake --install . --prefix foo
-- Install configuration: "Debug"
amarok@atlas ~/Projects/jami/client-qt/daemon/build ➦ fa1a8d811 ls foo
``````
amarok@atlas ~/Projects/jami/client-qt/daemon/build ➦ fa1a8d811 cmake --install . --prefix foo
-- Install configuration: "Debug"
amarok@atlas ~/Projects/jami/client-qt/daemon/build ➦ fa1a8d811 ls foo
```https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/847ConversationRepository: segv in devices()2023-05-05T18:58:02ZSébastien BlinConversationRepository: segv in devices()```
[1681523536.151|12649|conversation.cpp :1869] [Conversation (1:1) c03e99de895c17808dceb5d77d8fdebf82dc92dd][SwarmManager 0x555555c98910] Bootstrap with 5 devices
[1681523536.151|12649|conversationrepository.cpp:88 ] Couldn't ...```
[1681523536.151|12649|conversation.cpp :1869] [Conversation (1:1) c03e99de895c17808dceb5d77d8fdebf82dc92dd][SwarmManager 0x555555c98910] Bootstrap with 5 devices
[1681523536.151|12649|conversationrepository.cpp:88 ] Couldn't open git repository: /home/cyrille/.local/share/jami/86af5cedde4a55c8/conversations/2d3cf5c7ec691af3012938217deec850e4db2318 (failed to resolve path '/home/cyrille/.local/share/jami/86af5cedde4a55c8/conversations/2d3cf5c7ec691af3012938217deec850e4db2318': No such file or directory)
[1681523536.151|12390|connectionmanager.cpp :462 ] No valid certificate found for device 78d2754e8676910d3c25ce3990a3e31e56a194a90daf377056d2cb34fb65aa86
[1681523536.152|12390|connectionmanager.cpp :542 ] Already connecting to bafb32428c0430d7c19468547ab5d977e5ca91538dd14527509a5c66e8accfb7, wait for the ICE negotiation
[1681523536.152|12456|ice_transport.cpp :333 ] [ice:0x7fff2c1a7f70] Creating IceTransport session for "86af5cedde4a55c8"
[1681523536.152|12456|ice_transport.cpp :408 ] [ice:0x7fff2c1a7f70] Initializing the session - comp count 1 - as a slave
[1681523536.152|12456|upnp_control.cpp :39 ] Controller@0x7fff2c99fd10: Created UPnP Controller session
[1681523536.152|12390|upnp_context.cpp :414 ] Successfully registered controller 0x7fff2c99fd10
[1681523536.152|12456|ice_transport.cpp :449 ] [ice:0x7fff2c1a7f70] Add host candidates
[1681523536.152|12456|ice_transport.cpp :908 ] [ice:0x7fff2c1a7f70] added host stun config for TCP transport
[1681523536.152|12456|ice_transport.cpp :908 ] [ice:0x7fff2c1a7f70] added host stun config for TCP transport
[1681523536.152|12456|upnp_context.cpp :311 ] Desired port is not set, will provide the first available port for [TCP]
[1681523536.152|12456|mapping.cpp :86 ] Changing mapping JAMI-TCP:11463 state from AVAILABLE to UNAVAILABLE
[1681523536.152|12456|ice_transport.cpp :942 ] [ice:0x7fff2c1a7f70] UPNP mapping JAMI-TCP:11463 (state=OPEN, auto-update=NO) successfully allocated
[1681523536.152|12456|ice_transport.cpp :908 ] [ice:0x7fff2c1a7f70] added host stun config for TCP transport
[1681523536.152|12390|upnp_context.cpp :650 ] Mapping status [TCP] - overall 39: 39 open (3 ready + 36 in use), 0 pending, 0 in-progress, 0 failed
[1681523536.152|12456|ice_transport.cpp :991 ] [ice:0x7fff2c1a7f70] Add srflx reflexive candidates [192.168.68.59:11463 : 74.14.172.189:11463] for comp 1
[1681523536.152|12390|upnp_context.cpp :496 ] Provision 1 new mappings of type [TCP]
[1681523536.152|12456|ice_transport.cpp :459 ] [ice:0x7fff2c1a7f70] Added UPNP srflx candidates:
[1681523536.152|12456|ice_transport.cpp :320 ] [ice (TCP)] added turn server '192.252.140.236', port 3478
[1681523536.152|12390|upnp_context.cpp :481 ] Request mapping JAMI-TCP:10331 using protocol [NAT-PMP] IGD [192.168.68.1]
[1681523536.152|12390|upnp_context.cpp :650 ] Mapping status [UDP] - overall 13: 13 open (8 ready + 5 in use), 0 pending, 0 in-progress, 0 failed
[New Thread 0x7ffc22ffd640 (LWP 407335)]
Thread 114 "jamid" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffedcff9640 (LWP 405865)]
0x00007ffff5d85764 in git_repository_workdir () from /lib/x86_64-linux-gnu/libgit2.so.1.1
(gdb) bt
#0 0x00007ffff5d85764 in git_repository_workdir () from /lib/x86_64-linux-gnu/libgit2.so.1.1
#1 0x00007ffff6a18dbc in jami::ConversationRepository::Impl::devices[abi:cxx11]() const (this=0x7fff1803a010) at jamidht/conversationrepository.cpp:194
#2 0x00007ffff6a114cf in jami::ConversationRepository::devices[abi:cxx11]() const (this=0x7fff1803a1d0) at jamidht/conversationrepository.cpp:3667
#3 0x00007ffff69c68fd in jami::Conversation::bootstrap(std::function<void ()>) (this=0x7ffd30004dd0, onBootstraped=...) at jamidht/conversation.cpp:1861
#4 0x00007ffff6a3f408 in jami::ConversationModule::bootstrap (this=0x7fff8402bd80) at jamidht/conversation_module.cpp:1275
#5 0x00007ffff68fd6b5 in operator() (__closure=0x7fff2c1439f0) at jamidht/jamiaccount.cpp:1947
#6 0x00007ffff6933526 in std::__invoke_impl<void, jami::JamiAccount::doRegister_()::<lambda(bool)>::<lambda()>::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...)
at /usr/include/c++/11/bits/invoke.h:61
#7 0x00007ffff692a206 in std::__invoke_r<void, jami::JamiAccount::doRegister_()::<lambda(bool)>::<lambda()>::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/11/bits/invoke.h:111
#8 0x00007ffff69215a8 in std::_Function_handler<void(), jami::JamiAccount::doRegister_()::<lambda(bool)>::<lambda()>::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...)
at /usr/include/c++/11/bits/std_function.h:290
#9 0x00007ffff6dbcfc7 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::ThreadPool::run(std::function<void ()>&&)::{lambda()#1}> > >::_M_run() () from /lib/libjami.so.0
#10 0x00007ffff5edc2b3 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#11 0x00007ffff5a94b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#12 0x00007ffff5b26a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
(gdb)
```Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/846SIP call on android: plain RTP session impossible (intentionally unencrypted ...2023-04-14T12:23:34ZTobias HuberSIP call on android: plain RTP session impossible (intentionally unencrypted LAN-PBX)Hi, since Android 13 doesn't offer native SIP support anymore, I thought this great Jami thing could step in...
Unfortunately, it was quiet inconvenient to get at least some idea why this doesn't work with my LAN/VPN PBX
_(Inconvenience...Hi, since Android 13 doesn't offer native SIP support anymore, I thought this great Jami thing could step in...
Unfortunately, it was quiet inconvenient to get at least some idea why this doesn't work with my LAN/VPN PBX
_(Inconvenience: LAN/VPN PBX is asterisk 1.6, which doesn't use identical string for account identification and user authentication; the user corresponding to the password for authentication is different to the name of the SIP account.
It's possible to set Jami up that way, but it's quiet hidden - besides some more not so minor UI nits on android, but that will be a different issue report.)_
I checked that all Security->Security switches are off (SRTP and TLS transport).
1.) Initiating (outgoing) call fails because:
`"Rejecting secure audio stream without encryption details: audio 19686 RTP/SAVP 104 9 2 112 111 110 8 0 101"`
> <--- SIP read from UDP:172.21.97.226:5060 ---> [115/1865]
> INVITE sip:11@pbx.example.net SIP/2.0
> Via: SIP/2.0/UDP 172.21.97.226:5060;rport;branch=z9hG4bKPjaf1c522c-6e92-4539-b899-15c2bad55ad1
> Max-Forwards: 70
> From: <sip:tobimob_line1@pbx.example.net>;tag=b2110c22-6e14-4381-8a99-cc1e40d3872f
> To: <sip:11@pbx.example.net>
> Contact: <sip:tobimob_line1@172.21.97.226:5060>
> Call-ID: 4b970369-1b13-44da-b798-3a74f51d8c39
> CSeq: 629 INVITE
> Subject: Phone call
> Allow: SUBSCRIBE, NOTIFY, REFER, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, OPTIONS, MESSAGE, PUBLISH
> Supported: replaces
> User-Agent: Jami Daemon 13.7.0 (android)
> Authorization: Digest username="tobi.huber", realm="pbx.example.net", nonce="3b54e054", uri="sip:11@pbx.example.net", response="4070f25aadda2536ee24058551dfb64
> 1", algorithm=MD5
> Content-Type: application/sdp
> Content-Length: 1047
>
> v=0
> o=localhost 3890394360 0 IN IP4 172.21.97.226
> s=Call ID 8706183892147327
> c=IN IP4 172.21.97.226
> t=0 0
> a=ice-ufrag:42a09c4e
> a=ice-pwd:04afb39763f13c7f32a67b91
> m=aud--- (15 headers 27 lines) ---
> Sending to 172.21.97.226:5060 (no NAT)
> Using INVITE request as basis request - 4b970369-1b13-44da-b798-3a74f51d8c39
> Found peer 'tobimob_line1' for 'tobimob_line1' from 172.21.97.226:5060
> Found RTP audio format 104
> Found RTP audio format 9
> Found RTP audio format 2
> Found RTP audio format 112
> Found RTP audio format 111
> Found RTP audio format 110
> Found RTP audio format 8
> Found RTP audio format 0
> Found RTP audio format 101
> Found unknown media description format opus for ID 104
> Found audio description format G722 for ID 9
> Found audio description format G726-32 for ID 2
> Found audio description format speex for ID 112
> Found audio description format speex for ID 111
> Found audio description format speex for ID 110
> Found audio description format PCMA for ID 8
> Found audio description format PCMU for ID 0
> Found audio description format telephone-event for ID 101
[Apr 13 19:05:59] ERROR[101987][C-000005d5]: chan_sip.c:33575 int setup_srtp(struct sip_srtp **): No SRTP module loaded, can't setup SRTP session.
[Apr 13 19:05:59] WARNING[101987][C-000005d5]: chan_sip.c:10417 int process_sdp(struct sip_pvt *, struct sip_request *, int): Rejecting secure audio stream witho
ut encryption details: audio 19686 RTP/SAVP 104 9 2 112 111 110 8 0 101
Why does it send RTP/SAVP although I disabled SRTP?
2.) Incoming call signalling works, but not possible to establish RTP session:
```
"Ignoring audio media offer because port number is zero" and
"Failing due to no acceptable offer found"
```
Ringing:
> <--- SIP read from UDP:172.21.97.226:5060 --->
> SIP/2.0 180 Ringing
> Via: SIP/2.0/UDP 172.21.98.12:5060;received=172.21.98.12;branch=z9hG4bK0d2bf1b6
> Call-ID: 1e4bf56a62264ba6792450e4506bed52@pbx.example.net
> From: "T. Huber (22)" <sip:thbuero@pbx.example.net>;tag=as48fb14ca
> To: <sip:tobimob_line1@172.21.97.226>;tag=6c456d21-e6ae-4c85-bf04-da0aaf56e758
> CSeq: 102 INVITE
> User-Agent: Jami Daemon 13.7.0 (android)
> Allow: SUBSCRIBE, NOTIFY, REFER, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, OPTIONS, MESSAGE, PUBLISH
> Contact: <sip:tobimob_line1@172.21.97.226:5060>
... (snipped)
Accepting call on Jami:
> <--- SIP read from UDP:172.21.97.226:5060 --->
> SIP/2.0 200 OK
> Via: SIP/2.0/UDP 172.21.98.12:5060;received=172.21.98.12;branch=z9hG4bK0d2bf1b6
> Call-ID: 1e4bf56a62264ba6792450e4506bed52@pbx.example.net
> From: "T. Huber (22)" <sip:thbuero@pbx.example.net>;tag=as48fb14ca
> To: <sip:tobimob_line1@172.21.97.226>;tag=6c456d21-e6ae-4c85-bf04-da0aaf56e758
> CSeq: 102 INVITE
> User-Agent: Jami Daemon 13.7.0 (android)
> Allow: SUBSCRIBE, NOTIFY, REFER, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, OPTIONS, MESSAGE, PUBLISH
> Supported: replaces
> Contact: <sip:tobimob_line1@172.21.97.226:5060>
> Content-Type: application/sdp
> Content-Length: 142
>
> v=0
> o=localhost 3890395686 1 IN IP4 172.21.97.226
> s=Call ID 5890041505306313
> c=IN IP4 172.21.97.226
> t=0 0
> m=audio 0 RTP/AVP 9 8 0 3 101
> <------------->
chan_sip.c:10008 int process_sdp(struct sip_pvt *, struct sip_request *, int): Ignoring audio media offer [5/1992]
port number is zero
chan_sip.c:10438 int process_sdp(struct sip_pvt *, struct sip_request *, int): Failing due to no acceptabl[3/1992]
found
**Here's a working internal call, where sipdroid is the user agent on the same phone:**
> <--- SIP read from UDP:172.21.97.226:40739 --->
> SIP/2.0 180 Ringing
> Via: SIP/2.0/UDP 172.21.98.12:5060;branch=z9hG4bK04f5274c
> To: <sip:tobimob_line1@10.26.229.169:40739;transport=udp>;tag=fb8b4ff3c7a73ee8
> From: "T. Huber (22)" <sip:thbuero@pbx.example.net>;tag=as686012bd
> Call-ID: 3547fb4e68213eb90d8295ae221e36ea@pbx.example.net
> CSeq: 102 INVITE
> Server: Sipdroid/6.3 beta/Pixel 7
> Content-Length: 198
> Content-Type: application/sdp
... (snipped)
Accepting call on SIPdroid:
> SIP/2.0 200 OK
> Via: SIP/2.0/UDP 172.21.98.12:5060;branch=z9hG4bK04f5274c
> To: <sip:tobimob_line1@10.26.229.169:40739;transport=udp>;tag=fb8b4ff3c7a73ee8
> From: "T. Huber (22)" <sip:thbuero@pbx.example.net>;tag=as686012bd
> Call-ID: 3547fb4e68213eb90d8295ae221e36ea@pbx.example.net
> CSeq: 102 INVITE
> Contact: <sip:tobimob_line1@10.26.229.169:40739;transport=udp>
> Server: Sipdroid/6.3 beta/Pixel 7
> Content-Length: 198
> Content-Type: application/sdp
>
> v=0
> o=tobimob_line1@pbx.example.net 0 0 IN IP4 10.26.229.169
> s=Session SIP/SDP
> c=IN IP4 10.26.229.169
> t=0 0
> m=audio 21000 RTP/AVP 9 101
> a=rtpmap:9 G722/8000
> a=rtpmap:101 telephone-event/8000
> <------------->
**Significant difference here is "m=audio ...." lines.**
With SIPdroid (the working incomming call), it reads
> m=audio 21000 RTP/AVP 9 101
while with jami (not working)
> m=audio 0 RTP/AVP 9 8 0 3 101
I'd very much appreciate if somebody could take care and bring back originating strenghts of Jami in that it's usable as a working SIP UA - for plain RTP too!
Especially due to dropped native SIP support in recent android versions!
The android settings UI is broken too, like already mentioned, but ther's the workaround to use it in landscape mode, which makes it possible to sroll the account-enabler switch out of overlapping tab selection area... Will tell in a different issue report.
Thanks in advance,
-Tobihttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/845crash on macOS when finishing a call2023-04-18T13:15:31ZKateryna Kostiukcrash on macOS when finishing a callApp crashes every time when finishing a call when destroying MediaRecorder
```
Thread 31 Crashed:
0 Jami 0x102f267bc std::__1::__tree_node_base<void*>* std::__1::__tree_min<std::__1::__tree_node_base<vo...App crashes every time when finishing a call when destroying MediaRecorder
```
Thread 31 Crashed:
0 Jami 0x102f267bc std::__1::__tree_node_base<void*>* std::__1::__tree_min<std::__1::__tree_node_base<void*>*>(std::__1::__tree_node_base<void*>*) + 12 (__tree:149)
1 Jami 0x102f26748 std::__1::__tree_end_node<std::__1::__tree_node_base<void*>*>* std::__1::__tree_next_iter<std::__1::__tree_end_node<std::__1::__tree_node_base<void*>*>*, std::__1::__tree_node_base<void*>*>(std::__1::__tree_node_base<void*>*) + 40 (__tree:185)
2 Jami 0x102f260bc std::__1::__tree_const_iterator<jami::Observable<std::__1::shared_ptr<libjami::MediaFrame> >*, std::__1::__tree_node<jami::Observable<std::__1::shared_ptr<libjami::MediaFrame> >*, void*>*, long>::operator++() + 28 (__tree:925)
3 Jami 0x102f25f38 jami::MediaRecorder::StreamObserver::~StreamObserver() + 168 (media_recorder.cpp:74)
4 Jami 0x102f25455 jami::MediaRecorder::StreamObserver::~StreamObserver() + 21 (media_recorder.cpp:73)
5 Jami 0x102f25479 jami::MediaRecorder::StreamObserver::~StreamObserver() + 25 (media_recorder.cpp:73)
6 Jami 0x102f28f5c std::__1::default_delete<jami::MediaRecorder::StreamObserver>::operator()(jami::MediaRecorder::StreamObserver*) const + 44 (unique_ptr.h:57)
7 Jami 0x102f28f1c std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> >::reset(jami::MediaRecorder::StreamObserver*) + 92 (unique_ptr.h:318)
8 Jami 0x102f28eb9 std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> >::~unique_ptr() + 25 (unique_ptr.h:272)
9 Jami 0x102f17135 std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> >::~unique_ptr() + 21 (unique_ptr.h:272)
10 Jami 0x102f1f90d std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >::~pair() + 29 (pair.h:42)
11 Jami 0x102f1f8e5 std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >::~pair() + 21 (pair.h:42)
12 Jami 0x102f1f839 void std::__1::allocator_traits<std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, void*> > >::destroy<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, void, void>(std::__1::allocator<std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, void*> >&, std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >*) + 25 (allocator_traits.h:319)
13 Jami 0x102f1f7ac std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, std::__1::__map_value_compare<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, true>, std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > > > >::destroy(std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, void*>*) + 124 (__tree:1803)
14 Jami 0x102f1f725 std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, std::__1::__map_value_compare<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, true>, std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > > > >::~__tree() + 37 (__tree:1791)
15 Jami 0x102f1f6f5 std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, std::__1::__map_value_compare<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, true>, std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > > > >::~__tree() + 21 (__tree:1788)
16 Jami 0x102f1f6d5 std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > > > >::~map() + 21 (map:1117)
17 Jami 0x102f150a5 std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> >, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const, std::__1::unique_ptr<jami::MediaRecorder::StreamObserver, std::__1::default_delete<jami::MediaRecorder::StreamObserver> > > > >::~map() + 21 (map:1115)
18 Jami 0x102f14c8c jami::MediaRecorder::~MediaRecorder() + 236 (media_recorder.cpp:150)
19 Jami 0x102f150e5 jami::MediaRecorder::~MediaRecorder() + 21 (media_recorder.cpp:147)
20 Jami 0x102f2f49d std::__1::__shared_ptr_emplace<jami::MediaRecorder, std::__1::allocator<jami::MediaRecorder> >::__on_zero_shared() + 29 (shared_ptr.h:315)
21 Jami 0x102f2ec31 std::__1::__shared_count::__release_shared() + 49 (shared_ptr.h:177)
22 Jami 0x102f2ebd9 std::__1::__shared_weak_count::__release_shared() + 25 (shared_ptr.h:219)
23 Jami 0x102f2ebac std::__1::shared_ptr<jami::MediaRecorder>::~shared_ptr() + 44 (shared_ptr.h:959)
24 Jami 0x102f2cfa5 std::__1::shared_ptr<jami::MediaRecorder>::~shared_ptr() + 21 (shared_ptr.h:957)
25 Jami 0x102f2cffb jami::Recordable::~Recordable() + 43 (recordable.cpp:38)
26 Jami 0x102574ee2 jami::Call::~Call() + 322 (call.cpp:144)
27 Jami 0x10306ca84 jami::SIPCall::~SIPCall() + 500 (sipcall.cpp:160)
28 Jami 0x10306d1c5 jami::SIPCall::~SIPCall() + 21 (sipcall.cpp:155)
```Kateryna KostiukKateryna Kostiukhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/844ConnectionManager onShutdown avoid retrigger2024-02-14T14:04:25ZSébastien BlinConnectionManager onShutdown avoid retrigger```
channel->onShutdown([w = weak(), serverId]() {
// Run on main thread to avoid to be in mxSock's eventLoop
runOnMainThread([serverId, w]() {
auto shared = w.l...```
channel->onShutdown([w = weak(), serverId]() {
// Run on main thread to avoid to be in mxSock's eventLoop
runOnMainThread([serverId, w]() {
auto shared = w.lock();
if (!shared)
return;
std::lock_guard<std::mutex> lk(shared->gitServersMtx_);
shared->gitServers_.erase(serverId);
});
});
```
```
info->ice_->setOnShutdown([eraseInfo]() {
runOnMainThread([eraseInfo = std::move(eraseInfo)] { eraseInfo(); });
});
```Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/843SyncModule: deadlock2023-04-12T13:23:27ZSébastien BlinSyncModule: deadlock```
Thread 65 (Thread 0x7fff54ff9640 (LWP 3382598) "ut_account_arch"):
#0 0x00007ffff6489c10 in __lll_lock_wait () from /lib64/libc.so.6
#1 0x00007ffff64901c2 in pthread_mutex_lock@@GLIBC_2.2.5 () from /lib64/libc.so.6
#2 0x0000000000...```
Thread 65 (Thread 0x7fff54ff9640 (LWP 3382598) "ut_account_arch"):
#0 0x00007ffff6489c10 in __lll_lock_wait () from /lib64/libc.so.6
#1 0x00007ffff64901c2 in pthread_mutex_lock@@GLIBC_2.2.5 () from /lib64/libc.so.6
#2 0x0000000000486ed7 in __gthread_mutex_lock (__mutex=0x7fff5801e430) at /usr/include/c++/12/x86_64-redhat-linux/bits/gthr-default.h:749
#3 0x000000000048ce8a in std::mutex::lock (this=0x7fff5801e430) at /usr/include/c++/12/bits/std_mutex.h:100
#4 0x00000000004bec7a in std::lock_guard<std::mutex>::lock_guard (this=0x7fff54ff5608, __m=...) at /usr/include/c++/12/bits/std_mutex.h:229
#5 0x0000000000732332 in operator() (__closure=0x7fff58005d30) at jamidht/sync_module.cpp:165
#6 0x0000000000734436 in std::__invoke_impl<void, jami::SyncModule::cacheSyncConnection(std::shared_ptr<jami::ChannelSocket>&&, const std::string&, const jami::DeviceId&)::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/12/bits/invoke.h:61
#7 0x0000000000733f35 in std::__invoke_r<void, jami::SyncModule::cacheSyncConnection(std::shared_ptr<jami::ChannelSocket>&&, const std::string&, const jami::DeviceId&)::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/12/bits/invoke.h:111
#8 0x0000000000733b36 in std::_Function_handler<void(), jami::SyncModule::cacheSyncConnection(std::shared_ptr<jami::ChannelSocket>&&, const std::string&, const jami::DeviceId&)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/12/bits/std_function.h:290
#9 0x000000000048ef58 in std::function<void ()>::operator()() const (this=0x7fff60017720) at /usr/include/c++/12/bits/std_function.h:591
#10 0x00000000008f99fb in jami::ChannelSocket::onShutdown(std::function<void ()>&&) (this=0x7fff58000dc0, cb=...) at connectivity/multiplexed_socket.cpp:1128
#11 0x00000000007329d2 in jami::SyncModule::cacheSyncConnection (this=0x7fff5c008d20, socket=..., peerId="884ea80e4d805822aa289fe4928dae6fdbdd624e", device=...) at jamidht/sync_module.cpp:161
#12 0x00000000007307dc in jami::SyncChannelHandler::onReady (this=0x7fffd4162a20, cert=std::shared_ptr<dht::crypto::Certificate> (use count 2, weak count 0) = {...}, channel=std::shared_ptr<jami::ChannelSocket> (use count 4, weak count 0) = {...}) at jamidht/sync_channel_handler.cpp:73
#13 0x0000000000680089 in operator() (__closure=0x7fffd410a740, deviceId=..., name="sync://b69319185290dca01e37b1102ac026221e63a3aad230122e42418259fdb69aec", channel=std::shared_ptr<jami::ChannelSocket> (empty) = {...}) at jamidht/jamia--Type <RET> for more, q to quit, c to continue without paging--
ccount.cpp:2097
#14 0x00000000006b3314 in std::__invoke_impl<void, jami::JamiAccount::doRegister_()::<lambda(const jami::DeviceId&, const std::string&, std::shared_ptr<jami::ChannelSocket>)>&, const dht::Hash<32>&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::shared_ptr<jami::ChannelSocket> >(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/12/bits/invoke.h:61
#15 0x00000000006aa45b in std::__invoke_r<void, jami::JamiAccount::doRegister_()::<lambda(const jami::DeviceId&, const std::string&, std::shared_ptr<jami::ChannelSocket>)>&, const dht::Hash<32>&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::shared_ptr<jami::ChannelSocket> >(struct {...} &) (__fn=...) at /usr/include/c++/12/bits/invoke.h:111
#16 0x00000000006a1389 in std::_Function_handler<void(const dht::Hash<32>&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::shared_ptr<jami::ChannelSocket>), jami::JamiAccount::doRegister_()::<lambda(const jami::DeviceId&, const std::string&, std::shared_ptr<jami::ChannelSocket>)> >::_M_invoke(const std::_Any_data &, const dht::Hash<32> &, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &, std::shared_ptr<jami::ChannelSocket> &&) (__functor=..., __args#0=..., __args#1="sync://b69319185290dca01e37b1102ac026221e63a3aad230122e42418259fdb69aec", __args#2=...) at /usr/include/c++/12/bits/std_function.h:290
#17 0x00000000008dadf2 in std::function<void (dht::Hash<32ul> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<jami::ChannelSocket>)>::operator()(dht::Hash<32ul> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<jami::ChannelSocket>) const (this=0x7fffd410a740, __args#0=..., __args#1="sync://b69319185290dca01e37b1102ac026221e63a3aad230122e42418259fdb69aec", __args#2=std::shared_ptr<jami::ChannelSocket> (empty) = {...}) at /usr/include/c++/12/bits/std_function.h:591
#18 0x00000000008c4613 in operator() (__closure=0x7fff30006a10, deviceId=..., socket=std::shared_ptr<jami::ChannelSocket> (use count 4, weak count 0) = {...}) at connectivity/connectionmanager.cpp:1051
#19 0x00000000008d157d in std::__invoke_impl<void, jami::ConnectionManager::Impl::addNewMultiplexedSocket(const CallbackId&, const std::shared_ptr<jami::ConnectionInfo>&)::<lambda(const jami::DeviceId&, const std::shared_ptr<jami::ChannelSocket>&)>&, const dht::Hash<32>&, const std::shared_ptr<jami::ChannelSocket>&>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/12/bits/invoke.h:61
#20 0x00000000008cdf27 in std::__invoke_r<void, jami::ConnectionManager::Impl::addNewMultiplexedSocket(const CallbackId&, const std::shared_ptr<jami::ConnectionInfo>&)::<lambda(const jami::DeviceId&, const std::shared_ptr<jami::ChannelSocket>&)>&, const dht::Hash<32>&, const std::shared_ptr<jami::ChannelSocket>&>(struct {...} &) (__fn=...) at /usr/include/c++/12/bits/invoke.h:111
#21 0x00000000008ca49e in std::_Function_handler<void(const dht::Hash<32>&, const std::shared_ptr<jami::ChannelSocket>&), jami::ConnectionManager::Impl::addNewMultiplexedSocket(const CallbackId&, const std::shared_ptr<jami::ConnectionInfo>&)::<lambda(const jami::DeviceId&, const std::shared_ptr<jami::ChannelSocket>&)> >::_M_invoke(const std::_Any_data &, const dht::Hash<32> &, const std::shared_ptr<jami::ChannelSocket> &) (__functor=..., __args#0=..., __args#1=std::shared_ptr<jami::ChannelSocket> (use count 4, weak count 0) = {...}) at /usr/include/c++/12/bits/std_function.h:290
#22 0x00000000008feac1 in std::function<void (dht::Hash<32ul> const&, std::shared_ptr<jami::ChannelSocket> const&)>::operator()(dht::Hash<32ul> const&, std::shared_ptr<jami::ChannelSocket> const&) const (this=0x7fff3000f440, __args#0=..., __args#1=std::shared_ptr<jami::ChannelSocket> (use count 4, weak count 0) = {...}) at /usr/include/c++/12/bits/std_function.h:591
#23 0x00000000008f5ea5 in jami::MultiplexedSocket::Impl::onRequest (this=0x7fff3000f330, name="sync://b69319185290dca01e37b1102ac026221e63a3aad230122e42418259fdb69aec", channel=17281) at connectivity/multiplexed_socket.cpp:402
#24 0x00000000008f6260 in operator() (__closure=0x7fff34002c70) at connectivity/multiplexed_socket.cpp:435
#25 0x00000000008fbbba in std::__invoke_impl<void, jami::MultiplexedSocket::Impl::handleControlPacket(std::vector<unsigned char>&&)::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/12/bits/invoke.h:61
#26 0x00000000008fb4a5 in std::__invoke_r<void, jami::MultiplexedSocket::Impl::handleControlPacket(std::vector<unsigned char>&&)::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/12/bits/invoke.h:111
#27 0x00000000008faab5 in std::_Function_handler<void(), jami::MultiplexedSocket::Impl::handleControlPacket(std::vector<unsigned char>&&)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/12/bits/std_function.h:290
#28 0x000000000137570d in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dht::ThreadPool::run(std::function<void ()>&&)::{lambda()#1}> > >::_M_run() ()
#29 0x00007ffff68dbb03 in execute_native_thread_routine () from /lib64/libstdc++.so.6
#30 0x00007ffff648cded in start_thread () from /lib64/libc.so.6
#31 0x00007ffff6512370 in clone3 () from /lib64/libc.so.6
```
Double lock on syncConnectionsMtx_Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/842FFmpeg 6.0 hevc hardware acceleration NVENC/NVDEC2023-12-29T23:49:35ZAKmatiAKFFmpeg 6.0 hevc hardware acceleration NVENC/NVDECHi, in the new ffmpeg version in order to use hevc hardware acceleration on some nvidia graphic cards -b_ref_mode disabled needs to be passed to ffmpeg. Thread here: https://bbs.archlinux.org/viewtopic.php?id=284290
Also, I suggest to a...Hi, in the new ffmpeg version in order to use hevc hardware acceleration on some nvidia graphic cards -b_ref_mode disabled needs to be passed to ffmpeg. Thread here: https://bbs.archlinux.org/viewtopic.php?id=284290
Also, I suggest to add information about enabling HW accel to get hevc working in enabled codecs settings. I figured it out by accident and for some time wondered why H265 is not listed.Adrien BéraudAdrien Béraudhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/841Building with Qt 6.5 failed2023-04-28T19:44:37ZlinsuiBuilding with Qt 6.5 failed```
qdbusxml2cpp: Got unknown type `a{ss}' processing '/nix/store/jmcg2xryb7iqv5ngyy97qa1dkwxrb0zp-jami-daemon-20230313.0/share/dbus-1/int
erfaces/cx.ring.Ring.CallManager.xml'
You should add <annotation name="org.qtproject.QtDBus.QtType...```
qdbusxml2cpp: Got unknown type `a{ss}' processing '/nix/store/jmcg2xryb7iqv5ngyy97qa1dkwxrb0zp-jami-daemon-20230313.0/share/dbus-1/int
erfaces/cx.ring.Ring.CallManager.xml'
You should add <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="<type>"/> to the XML description for 'info'
make[2]: *** [src/libclient/CMakeFiles/jamiclient.dir/build.make:103: src/libclient/callmanager_dbus_interface.cpp] Error 1
make[1]: *** [CMakeFiles/Makefile2:258: src/libclient/CMakeFiles/jamiclient.dir/all] Error 2
```
Could you please take a look? Thanks!https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/832ut_swarm_conversation: merge flood2024-01-09T19:33:20ZFadi Shehadehut_swarm_conversation: merge floodwhen connecting 26 accounts and sending one message,
the swarm is flooded with commit messages.
- Test: ut_swarm_conversation.cpp
- Drt: https://review.jami.net/c/jami-daemon/+/23072/when connecting 26 accounts and sending one message,
the swarm is flooded with commit messages.
- Test: ut_swarm_conversation.cpp
- Drt: https://review.jami.net/c/jami-daemon/+/23072/https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/830Fail trying to place a call2023-06-15T17:13:55ZPierre NicolasFail trying to place a call## Describe your environment
- Device model: Samsung Galaxy Tab S5e SM-T720
- Android version: 11
- What build you are using: your own, commit 5be1de17c790bddfb30dde74c8a1364e213f9847
## Steps to reproduce
- Can you reproduce ...## Describe your environment
- Device model: Samsung Galaxy Tab S5e SM-T720
- Android version: 11
- What build you are using: your own, commit 5be1de17c790bddfb30dde74c8a1364e213f9847
## Steps to reproduce
- Can you reproduce the bug: not at all
## Additional information
![call_failed](/uploads/87774ecccc9ea516d1569fe650fa54c7/call_failed.mp4)
[impossible_to_place_call.log](/uploads/86bd3c0a05920f980efb304263b5ece9/impossible_to_place_call.log)https://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/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/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/825Reply with a DATA_TRANSFER component2023-03-03T20:51:54ZFranck LaurentReply with a DATA_TRANSFER componentIt is currently impossible to reply to a message with a DATA_TRANSFER component (audio message, video message, image...).It is currently impossible to reply to a message with a DATA_TRANSFER component (audio message, video message, image...).https://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/818call swarm does not automatically end at restart2023-03-13T21:04:10Zovaricall swarm does not automatically end at restarthttps://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/816Jami incorrectly states a call-swarm is in progress2023-09-05T12:48:45ZovariJami incorrectly states a call-swarm is in progress
1. ![A call is in progress. Do you want to join?](/uploads/fc6697a465eb54f006f4fe366fb57e2c/image.png)
2. Click on the telephone button to join as audio-only participant<br>
![Current host for this swarm seems unreachable. Do you want t...
1. ![A call is in progress. Do you want to join?](/uploads/fc6697a465eb54f006f4fe366fb57e2c/image.png)
2. Click on the telephone button to join as audio-only participant<br>
![Current host for this swarm seems unreachable. Do you want to host the call?](/uploads/d0215cafd8a4db4962ada7d8c4334cea/image.png)
Perhaps the host was the person Jami for Flatpak. If so, their Jami client crashed, i.e. they could not press any buttons; however, they was still able to talk and hear what we were saying.
```
[1676002144.162|1649|manager.cpp :938 ] ############## START MONITORING ##############
[1676002144.162|1649|manager.cpp :939 ] Using PJSIP version 2.12.1 for x86_64-pc-linux-gnu
[1676002144.162|1649|manager.cpp :940 ] Using GnuTLS version 3.7.6
[1676002144.162|1649|manager.cpp :941 ] Using OpenDHT version 2.4.11
[1676002144.163|1649|manager.cpp :947 ] Opened files: 246
[1676002144.163|1649|connectionmanager.cpp :1196] ConnectionManager for account REDACTED (jami:REDACTED), current status:
[1676002144.163|1649|peer_connection.cpp :426 ] - Ice connection: [2] REDACTED:2348 [prflx] <-> REDACTED:26877 [relay]
[1676002144.163|1649|peer_connection.cpp :426 ] - Ice connection: [2] REDACTED:10360 [relay] <-> REDACTED:49868 [prflx]
[1676002144.163|1649|peer_connection.cpp :426 ] - Ice connection: [2] REDACTED:2370 [prflx] <-> REDACTED:25591 [relay]
[1676002144.163|1649|peer_connection.cpp :426 ] - Ice connection: [2] REDACTED:37740 [prflx] <-> REDACTED:48483 [host]
[1676002144.163|1649|peer_connection.cpp :426 ] - Ice connection: [2] REDACTED:2312 [prflx] <-> 192.252.140.235:10914 [relay]
[1676002144.163|1649|peer_connection.cpp :426 ] - Ice connection: [2] REDACTED:2464 [prflx] <-> REDACTED:13118 [srflx]
[1676002144.163|1649|peer_connection.cpp :426 ] - Ice connection: [2] REDACTED:27133 [relay] <-> REDACTED:64264 [prflx]
[1676002144.163|1649|peer_connection.cpp :426 ] - Ice connection: [2] REDACTED:2502 [prflx] <-> REDACTED:15031 [relay]
[1676002144.164|1649|connectionmanager.cpp :1203] ConnectionManager for account REDACTED (jami:REDACTED), end status.
[1676002144.164|1649|manager.cpp :956 ] ############## END MONITORING ##############
[1676002147.438|3715|data_transfer.cpp :222 ] Invalid sha3sum detected, unfinished file: /home/REDACTED/.local/share/jami/REDACTED/conversation_data/REDACTED/REDACTED.pdf
[1676002168.707|2044|jamiaccount.cpp :1889] [Account REDACTED] Dht status: IPv4 connected; IPv6 disconnected
[1676002187.762|2044|jamiaccount.cpp :1889] [Account REDACTED] Dht status: IPv4 connected; IPv6 connecting
```
Please advise if you need the `REDACTED` text.
Thank you