jami-daemon issues
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues
2023-11-02T14:00:48Z
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/912
Crash when open TroubleshootSetting
2023-11-02T14:00:48Z
Lanius-collaris
Crash when open TroubleshootSetting
Bug report form
---------------
## Describe your environment
Please specify the following:
- OS: linux
- Jami version:
- What build you are using: [your own stable/20231030.0]
## Steps to reproduce
Note: Better the scenario is, bett...
Bug report form
---------------
## Describe your environment
Please specify the following:
- OS: linux
- Jami version:
- What build you are using: [your own stable/20231030.0]
## Steps to reproduce
Note: Better the scenario is, better we will be able to reproduce and debug.
- Can you reproduce the bug: [at will]
- Steps:
1. disable all accounts
\
2. open TroubleshootSetting
- Actual result: crash
- Expected result:
Sébastien Blin
Sébastien Blin
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/910
Wrong UDP ICE candidates (UPnP Enabled/TURN disabled)
2023-10-30T13:47:56Z
Sébastien Blin
Wrong UDP ICE candidates (UPnP Enabled/TURN disabled)
# Scenario
+ Connect to JamiLabs
+ Disable TURN for the account, Enable UPnP
+ Start a call
# Expected result
UDP ICE candidates should show public ip in srflx candidates
# Current result
+ UDP candidates doesn't have the public ip ...
# Scenario
+ Connect to JamiLabs
+ Disable TURN for the account, Enable UPnP
+ Start a call
# Expected result
UDP ICE candidates should show public ip in srflx candidates
# Current result
+ UDP candidates doesn't have the public ip in the srflx list
+ However, TCP candidates are correct
Meaning that depending the configuration, you can have a TCP negotiation success and media failure (causing the call to stop)
```
[1698335554.247|23970|sdp.cpp :498 ] [SDP OFFER] Remote active session:
v=0
o=localhost 3907324354 1 IN IP4 192.168.0.147
s=Call ID 1888667388261686
c=IN IP4 192.168.0.147
t=0 0
a=ice-ufrag:124cdb6c
a=ice-pwd:621c04a84d50cacf2ef374ff
m=audio 27538 RTP/SAVP 104 101
a=rtpmap:104 opus/48000/2
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=rtcp:27539 IN IP4 192.168.0.147
a=sendrecv
a=candidate:Hc0a80093 1 UDP 2130706431 192.168.0.147 42590 typ host
a=candidate:Ha0989db2 1 UDP 2130706431 fe80::7c8d:d8ff:fed4:ac16 42915 typ host
a=candidate:Sc0a80093 1 UDP 1694498303 192.168.0.147 21296 typ srflx
a=candidate:Hc0a80093 1 UDP 2130706431 192.168.0.147 21296 typ host
a=candidate:Hc0a80093 2 UDP 2130706430 192.168.0.147 38712 typ host
a=candidate:Ha0989db2 2 UDP 2130706430 fe80::7c8d:d8ff:fed4:ac16 37073 typ host
a=candidate:Sc0a80093 2 UDP 1694498302 192.168.0.147 23972 typ srflx
a=candidate:Hc0a80093 2 UDP 2130706430 192.168.0.147 23972 typ host
m=video 57832 RTP/SAVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 profile-level-id=428029
a=rtcp:57833 IN IP4 192.168.0.147
a=sendrecv
a=candidate:Hc0a80093 3 UDP 2130706429 192.168.0.147 42826 typ host
a=candidate:Ha0989db2 3 UDP 2130706429 fe80::7c8d:d8ff:fed4:ac16 48183 typ host
a=candidate:Sc0a80093 3 UDP 1694498301 192.168.0.147 22465 typ srflx
a=candidate:Hc0a80093 3 UDP 2130706429 192.168.0.147 22465 typ host
a=candidate:Hc0a80093 4 UDP 2130706428 192.168.0.147 42565 typ host
a=candidate:Ha0989db2 4 UDP 2130706428 fe80::7c8d:d8ff:fed4:ac16 40706 typ host
a=candidate:Sc0a80093 4 UDP 1694498300 192.168.0.147 21643 typ srflx
a=candidate:Hc0a80093 4 UDP 2130706428 192.168.0.147 21643 typ host
```
Sébastien Blin
Sébastien Blin
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/902
Crash in AudioRtpSession (audioInput_ can be nullptr)
2023-10-26T17:59:46Z
Sébastien Blin
Crash in AudioRtpSession (audioInput_ can be nullptr)
Crash:
```plaintext
[Thread 0x7ffed47f8640 (LWP 248414) exited]
Thread 5606 "ut_conference" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff3a7fc640 (LWP 248286)]
___pthread_mutex_lock (mutex=0x8) at ./nptl/pthr...
Crash:
```plaintext
[Thread 0x7ffed47f8640 (LWP 248414) exited]
Thread 5606 "ut_conference" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff3a7fc640 (LWP 248286)]
___pthread_mutex_lock (mutex=0x8) at ./nptl/pthread_mutex_lock.c:80
80 ./nptl/pthread_mutex_lock.c: No such file or directory.
(gdb) bt
#0 ___pthread_mutex_lock (mutex=0x8) at ./nptl/pthread_mutex_lock.c:80
#1 0x00005555556ad59b in __gthread_mutex_lock (__mutex=0x8) at /usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:749
#2 0x00005555556cbd04 in std::mutex::lock (this=0x8) at /usr/include/c++/11/bits/std_mutex.h:100
#3 0x00005555556d089c in std::lock_guard<std::mutex>::lock_guard (this=0x7fff3a7f8c40, __m=...) at /usr/include/c++/11/bits/std_mutex.h:229
#4 0x0000555555711689 in jami::Observable<std::shared_ptr<libjami::MediaFrame> >::attach (this=0x0, o=0x7fff10090010) at ./observer.h:77
#5 0x0000555555c7489b in jami::AudioRtpSession::attachLocalRecorder (this=0x7fffb119a920, ms=...) at ./media/audio/audio_rtp_session.cpp:385
#6 0x0000555555c748f0 in operator() (__closure=0x7fff341062d0, ms=...) at ./media/audio/audio_rtp_session.cpp:399
#7 0x0000555555c76a09 in std::__invoke_impl<void, jami::AudioRtpSession::initRecorder()::<lambda(const jami::MediaStream&)>&, const jami::MediaStream&>(std::__invoke_other, struct {...} &) (__f=...)
at /usr/include/c++/11/bits/invoke.h:61
#8 0x0000555555c764a5 in std::__invoke_r<void, jami::AudioRtpSession::initRecorder()::<lambda(const jami::MediaStream&)>&, const jami::MediaStream&>(struct {...} &) (__fn=...)
at /usr/include/c++/11/bits/invoke.h:111
#9 0x0000555555c75b3f in std::_Function_handler<void(const jami::MediaStream&), jami::AudioRtpSession::initRecorder()::<lambda(const jami::MediaStream&)> >::_M_invoke(const std::_Any_data &, const jami::MediaStream &) (__functor=..., __args#0=...) at /usr/include/c++/11/bits/std_function.h:290
#10 0x00005555559ef0d7 in std::function<void (jami::MediaStream const&)>::operator()(jami::MediaStream const&) const (this=0x7fff341062d0, __args#0=...) at /usr/include/c++/11/bits/std_function.h:590
#11 0x00005555559e8e47 in jami::AudioInput::readFromDevice (this=0x7fff34105f20) at ./media/audio/audio_input.cpp:141
#12 0x00005555559e88c2 in jami::AudioInput::process (this=0x7fff34105f20) at ./media/audio/audio_input.cpp:74
#13 0x00005555559e7e83 in operator() (__closure=0x7fff3a7f8fd0) at ./media/audio/audio_input.cpp:52
#14 0x00005555559ecd06 in std::__invoke_impl<void, jami::AudioInput::AudioInput(const string&)::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...) at /usr/include/c++/11/bits/invoke.h:61
#15 0x00005555559ec49a in std::__invoke_r<void, jami::AudioInput::AudioInput(const string&)::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/11/bits/invoke.h:111
#16 0x00005555559ebcba in std::_Function_handler<void(), jami::AudioInput::AudioInput(const string&)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...)
at /usr/include/c++/11/bits/std_function.h:290
#17 0x00005555556d13c0 in std::function<void ()>::operator()() const (this=0x7fff3a7f8fd0) at /usr/include/c++/11/bits/std_function.h:590
#18 0x0000555555b8698a in jami::ThreadLoop::mainloop(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>) (this=0x7fff34106228, tid=..., setup=..., process=...,
cleanup=...) at threadloop.cpp:38
#19 0x0000555555b8832a in std::__invoke_impl<void, 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 ()> >(std::__invoke_memfun_deref, 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 ()>&&) (
__f=@0x7fffc81ea608: (void (jami::ThreadLoop::*)(jami::ThreadLoop * const, std::thread::id &, std::function<bool()>, std::function<void()>, std::function<void()>)) 0x555555b8693c <jami::ThreadLoop::mainloop(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>)>, __t=@0x7fffc81ea600: 0x7fff34106228) at /usr/include/c++/11/bits/invoke.h:74
#20 0x0000555555b88120 in std::__invoke<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 ()> >(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 ()>&&) (
__fn=@0x7fffc81ea608: (void (jami::ThreadLoop::*)(jami::ThreadLoop * const, std::thread::id &, std::function<bool()>, std::function<void()>, std::function<void()>)) 0x555555b8693c <jami::ThreadLoop::mainloop(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>)>) at /usr/include/c++/11/bits/invoke.h:96
#21 0x0000555555b87f7f in 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_invoke<0ul, 1ul, 2ul, 3ul, 4ul, 5ul>(std::_Index_tuple<0ul, 1ul, 2ul, 3ul, 4ul, 5ul>) (
this=0x7fffc81ea598) at /usr/include/c++/11/bits/std_thread.h:259
#22 0x0000555555b87ec4 in 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 ()> > >::operator()() (this=0x7fffc81ea598) at /usr/include/c++/11/bits/std_thread.h:266
#23 0x0000555555b87ea4 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() (this=0x7fffc81ea590)
at /usr/include/c++/11/bits/std_thread.h:211
#24 0x00007ffff6edc253 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#25 0x00007ffff6a94b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#26 0x00007ffff6b26a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
```
Sébastien Blin
Sébastien Blin
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/901
MediaRecorder: segfault for videoFilter_
2023-10-26T17:59:42Z
Sébastien Blin
MediaRecorder: segfault for videoFilter_
Crash:
```plaintext
Thread 5745 "ut_conference" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff1d7fa640 (LWP 241057)]
0x00007ffff6f4bf95 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator...
Crash:
```plaintext
Thread 5745 "ut_conference" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff1d7fa640 (LWP 241057)]
0x00007ffff6f4bf95 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
(gdb) bt
#0 0x00007ffff6f4bf95 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#1 0x00007ffff6f4c4ad in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /lib/x86_64-linux-gnu/libstdc++.so.6
#2 0x0000555555a50bdb in jami::MediaFilter::initialize (this=0x0,
filterDesc="[v:remote] fps=30/1, scale=-2:720 [v:m]; [v:local] fps=30/1, scale=-2:144 [v:o]; [v:m] [v:o] overlay=main_w-overlay_w:main_h-overlay_h, format=pix_fmts=yuv420p",
msps=std::vector of length 2, capacity 2 = {...}) at media/media_filter.cpp:56
#3 0x0000555555a5dced in jami::MediaRecorder::setupVideoOutput (this=0x7fff80a94b30) at media/media_recorder.cpp:517
#4 0x0000555555a5bd85 in jami::MediaRecorder::addStream (this=0x7fff80a94b30, ms=...) at media/media_recorder.cpp:283
#5 0x0000555555c86594 in jami::video::VideoRtpSession::attachLocalRecorder (this=0x7fff802e6ab0, ms=...) at ./media/video/video_rtp_session.cpp:792
#6 0x0000555555c86618 in operator() (__closure=0x5555577a9438, ms=...) at ./media/video/video_rtp_session.cpp:808
#7 0x0000555555c89531 in std::__invoke_impl<void, jami::video::VideoRtpSession::initRecorder()::<lambda(const jami::MediaStream&)>&, const jami::MediaStream&>(std::__invoke_other, struct {...} &) (
__f=...) at /usr/include/c++/11/bits/invoke.h:61
#8 0x0000555555c88da7 in std::__invoke_r<void, jami::video::VideoRtpSession::initRecorder()::<lambda(const jami::MediaStream&)>&, const jami::MediaStream&>(struct {...} &) (__fn=...)
at /usr/include/c++/11/bits/invoke.h:111
#9 0x0000555555c8801f in std::_Function_handler<void(const jami::MediaStream&), jami::video::VideoRtpSession::initRecorder()::<lambda(const jami::MediaStream&)> >::_M_invoke(const std::_Any_data &, const jami::MediaStream &) (__functor=..., __args#0=...) at /usr/include/c++/11/bits/std_function.h:290
#10 0x00005555559ef0d7 in std::function<void (jami::MediaStream const&)>::operator()(jami::MediaStream const&) const (this=0x5555577a9438, __args#0=...) at /usr/include/c++/11/bits/std_function.h:590
#11 0x0000555555a2cd76 in operator() (__closure=0x7ffeac32d508) at ./media/video/video_input.cpp:266
#12 0x0000555555a303bc in std::__invoke_impl<void, jami::video::VideoInput::setRecorderCallback(const std::function<void(const jami::MediaStream&)>&)::<lambda()>&>(std::__invoke_other, struct {...} &) (
__f=...) at /usr/include/c++/11/bits/invoke.h:61
#13 0x0000555555a2fda1 in std::__invoke_r<void, jami::video::VideoInput::setRecorderCallback(const std::function<void(const jami::MediaStream&)>&)::<lambda()>&>(struct {...} &) (__fn=...)
at /usr/include/c++/11/bits/invoke.h:111
#14 0x0000555555a2f9c8 in std::_Function_handler<void(), jami::video::VideoInput::setRecorderCallback(const std::function<void(const jami::MediaStream&)>&)::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...) at /usr/include/c++/11/bits/std_function.h:290
#15 0x00005555556d13c0 in std::function<void ()>::operator()() const (this=0x7ffeac32d508) at /usr/include/c++/11/bits/std_function.h:590
#16 0x0000555555a490db in jami::MediaDecoder::decode (this=0x7ffeac32d300, packet=...) at media/media_decoder.cpp:701
#17 0x0000555555a47d1c in operator() (__closure=0x7ffeac0f1b90, packet=...) at media/media_decoder.cpp:492
#18 0x0000555555a4a88f in std::__invoke_impl<jami::DecodeStatus, jami::MediaDecoder::setup(AVMediaType)::<lambda(AVPacket&)>&, AVPacket&>(std::__invoke_other, struct {...} &) (__f=...)
at /usr/include/c++/11/bits/invoke.h:61
#19 0x0000555555a4a511 in std::__invoke_r<jami::DecodeStatus, jami::MediaDecoder::setup(AVMediaType)::<lambda(AVPacket&)>&, AVPacket&>(struct {...} &) (__fn=...) at /usr/include/c++/11/bits/invoke.h:114
#20 0x0000555555a49f9a in std::_Function_handler<jami::DecodeStatus(AVPacket&), jami::MediaDecoder::setup(AVMediaType)::<lambda(AVPacket&)> >::_M_invoke(const std::_Any_data &, AVPacket &) (
__functor=..., __args#0=...) at /usr/include/c++/11/bits/std_function.h:290
#21 0x0000555555a4bb15 in std::function<jami::DecodeStatus (AVPacket&)>::operator()(AVPacket&) const (this=0x7ffeac0f1b90, __args#0=...) at /usr/include/c++/11/bits/std_function.h:590
#22 0x0000555555a472d6 in jami::MediaDemuxer::decode (this=0x7ffeac32c080) at media/media_decoder.cpp:403
#23 0x0000555555a491b0 in jami::MediaDecoder::decode (this=0x7ffeac32d300) at media/media_decoder.cpp:717
#24 0x0000555555a2c987 in jami::video::VideoInput::captureFrame (this=0x5555577a90d0) at ./media/video/video_input.cpp:212
#25 0x0000555555a2c845 in jami::video::VideoInput::process (this=0x5555577a90d0) at ./media/video/video_input.cpp:183
#26 0x0000555555a32ddf in std::__invoke_impl<void, void (jami::video::VideoInput::*&)(), jami::video::VideoInput*&> (
__f=@0x7fffc8134020: (void (jami::video::VideoInput::*)(jami::video::VideoInput * const)) 0x555555a2c78a <jami::video::VideoInput::process()>, __t=@0x7fffc8134030: 0x5555577a90d0)
at /usr/include/c++/11/bits/invoke.h:74
#27 0x0000555555a32cae in std::__invoke<void (jami::video::VideoInput::*&)(), jami::video::VideoInput*&> (
__fn=@0x7fffc8134020: (void (jami::video::VideoInput::*)(jami::video::VideoInput * const)) 0x555555a2c78a <jami::video::VideoInput::process()>) at /usr/include/c++/11/bits/invoke.h:96
#28 0x0000555555a32bd7 in std::_Bind<void (jami::video::VideoInput::*(jami::video::VideoInput*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) (this=0x7fffc8134020, __args=...)
at /usr/include/c++/11/functional:420
#29 0x0000555555a32a69 in std::_Bind<void (jami::video::VideoInput::*(jami::video::VideoInput*))()>::operator()<, void>() (this=0x7fffc8134020) at /usr/include/c++/11/functional:503
#30 0x0000555555a327be in std::__invoke_impl<void, std::_Bind<void (jami::video::VideoInput::*(jami::video::VideoInput*))()>&>(std::__invoke_other, std::_Bind<void (jami::video::VideoInput::*(jami::video::VideoInput*))()>&) (__f=...) at /usr/include/c++/11/bits/invoke.h:61
#31 0x0000555555a3244e in std::__invoke_r<void, std::_Bind<void (jami::video::VideoInput::*(jami::video::VideoInput*))()>&>(std::_Bind<void (jami::video::VideoInput::*(jami::video::VideoInput*))()>&) (
__fn=...) at /usr/include/c++/11/bits/invoke.h:111
#32 0x0000555555a31e80 in std::_Function_handler<void (), std::_Bind<void (jami::video::VideoInput::*(jami::video::VideoInput*))()> >::_M_invoke(std::_Any_data const&) (__functor=...)
at /usr/include/c++/11/bits/std_function.h:290
--Type <RET> for more, q to quit, c to continue without paging--
#33 0x00005555556d13c0 in std::function<void ()>::operator()() const (this=0x7fff1d7f6fd0) at /usr/include/c++/11/bits/std_function.h:590
#34 0x0000555555b8698a in jami::ThreadLoop::mainloop(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>) (this=0x5555577a9378, tid=..., setup=..., process=...,
cleanup=...) at threadloop.cpp:38
#35 0x0000555555b8832a in std::__invoke_impl<void, 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 ()> >(std::__invoke_memfun_deref, 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 ()>&&) (
__f=@0x7fffc818cba8: (void (jami::ThreadLoop::*)(jami::ThreadLoop * const, std::thread::id &, std::function<bool()>, std::function<void()>, std::function<void()>)) 0x555555b8693c <jami::ThreadLoop::mainloop(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>)>, __t=@0x7fffc818cba0: 0x5555577a9378) at /usr/include/c++/11/bits/invoke.h:74
#36 0x0000555555b88120 in std::__invoke<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 ()> >(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 ()>&&) (
__fn=@0x7fffc818cba8: (void (jami::ThreadLoop::*)(jami::ThreadLoop * const, std::thread::id &, std::function<bool()>, std::function<void()>, std::function<void()>)) 0x555555b8693c <jami::ThreadLoop::mainloop(std::thread::id&, std::function<bool ()>, std::function<void ()>, std::function<void ()>)>) at /usr/include/c++/11/bits/invoke.h:96
#37 0x0000555555b87f7f in 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_invoke<0ul, 1ul, 2ul, 3ul, 4ul, 5ul>(std::_Index_tuple<0ul, 1ul, 2ul, 3ul, 4ul, 5ul>) (
this=0x7fffc818cb38) at /usr/include/c++/11/bits/std_thread.h:259
#38 0x0000555555b87ec4 in 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 ()> > >::operator()() (this=0x7fffc818cb38) at /usr/include/c++/11/bits/std_thread.h:266
#39 0x0000555555b87ea4 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() (this=0x7fffc818cb30)
at /usr/include/c++/11/bits/std_thread.h:211
#40 0x00007ffff6edc253 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#41 0x00007ffff6a94b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#42 0x00007ffff6b26a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
```
mutexes for videoFilter\_ seems to be incorrect
Sébastien Blin
Sébastien Blin
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/900
ut_conference segfault since some days
2023-10-26T17:59:38Z
Sébastien Blin
ut_conference segfault since some days
Stacktrace:
```plaintext
�[0m�[22;36m[1695969528.280|21249|sipcall.cpp :1089] �[22;36mAddressSanitizer:DEADLYSIGNAL
[1695969528.280|20699|socket_pair.cpp :337 ] �[0m=================================================...
Stacktrace:
```plaintext
�[0m�[22;36m[1695969528.280|21249|sipcall.cpp :1089] �[22;36mAddressSanitizer:DEADLYSIGNAL
[1695969528.280|20699|socket_pair.cpp :337 ] �[0m=================================================================
Creating rtp socket for uri rtp://172.17.0.11:49404 on port 60378
�[0m�[0m[call:4008112576292348] Successfully answered the media change request
�[0m�[22;36m[1695969528.280|20697|sip_utils.cpp :221 ] �[0mAdd header to SIP message: "User-Agent: Jami Daemon 13.9.0-09bfe85330-dirty (linux)"
�[0m�[22;36m[1695969528.280|20699|socket_pair.cpp :174 ] �[0muse local address: 0.0.0.0:60378
�[0m==20697==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000038 (pc 0x55853e0f604a bp 0x7fa7477e7f70 sp 0x7fa7477e7f40 T589)
�[22;36m[1695969528.280|20699|socket_pair.cpp :174 ] �[0muse local address: 0.0.0.0:60379
�[0m�[22;36m�[22;36m[1695969528.280|20699|socket_pair.cpp :361 ] �[0m�[01;33mSocketPair: local{60378,60379} / 172.17.0.11{49404,49405}
�[0m[1695969528.280|21293|media_decoder.cpp :150 ] �[0mTrying to open device dummyFilename with format sdp, pixel format , size 0x0, rate 0.000000
==20697==The signal is caused by a READ memory access.
�[0m�[22;36m[1695969528.280|21250|sipvoiplink.cpp :1120] �[0m[call:7411818913851632] INVITE@0x61900042c2a8 media update: status 0
�[0m�[22;36m[1695969528.280|20697|conference.cpp :561 ] �[0m�[01;33mTake over [AUDIO] control from call 3129400994883713 - current local source state [muted]
�[0m==20697==Hint: address points to the zero page.
�[22;36m[1695969528.280|20699|video_rtp_session.cpp :118 ] �[0m[0x61d000413c90] Start video RTP sender: input [] - muted [NO]
�[0m�[22;36m[1695969528.280|20697|conference.cpp :567 ] �[0m�[01;33mTake over [VIDEO] control from call 3129400994883713 - current local source state [muted]
�[0m�[22;36m[1695969528.280|21250|sdp.cpp :134 ] �[0mSet active local session to [0x619000306ba8]. Was [(nil)]
�[0m�[22;36m[1695969528.280|20699|media_encoder.cpp :62 ] �[0m[0x61500129a380] New instance created
�[0m�[22;36m[1695969528.280|20697|sipcall.cpp :3081] �[0m[call:3129400994883713] Entering conference [5406518273839043]
�[0m�[22;36m[1695969528.280|21250|sdp.cpp :498 ] �[0m[SDP OFFER] Local active session:
v=0
o=b7b6580484b9 3904958326 2 IN IP4 172.17.0.11
s=Call ID 1702131012226992
c=IN IP4 172.17.0.11
t=0 0
m=audio 29248 RTP/SAVP 104 101
a=rtpmap:104 opus/48000/2
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=rtcp:29249 IN IP4 172.17.0.11
a=sendrecv
m=video 58824 RTP/SAVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 profile-level-id=428029
a=rtcp:58825 IN IP4 172.17.0.11
a=sendrecv
�[0m�[22;36m[1695969528.280|20699|media_encoder.cpp :93 ] �[0m�[22;31mInvalid options
�[0m�[22;36m[1695969528.280|21293|media_decoder.cpp :170 ] �[0mUsing format sdp and resolution 0x0
�[0m�[22;36m�[22;36m[1695969528.280|21250|sdp.cpp :142 ] �[0mSet active remote session to [0x619000505aa8]. Was [(nil)]
�[0m[1695969528.280|20697|video_rtp_session.cpp :557 ] �[0m[0x61d00047fe90] enterConference (conf: 5406518273839043)
�[0m�[22;36m[1695969528.280|20699|media_encoder.cpp :189 ] �[0m[0x61500129a380] Created new coding instance for H264 @ index 0
�[0m�[22;36m[1695969528.280|21250|sdp.cpp :498 ] �[0m[SDP OFFER] Remote active session:
v=0
o=b7b6580484b9 3904958326 3 IN IP4 172.17.0.11
s=Call ID 4008112576292348
c=IN IP4 172.17.0.11
t=0 0
m=audio 22278 RTP/SAVP 104 101
a=rtpmap:104 opus/48000/2
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=rtcp:22279 IN IP4 172.17.0.11
a=sendrecv
m=video 54988 RTP/SAVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 profile-level-id=428029
a=rtcp:54989 IN IP4 172.17.0.11
a=sendrecv
�[0m�[22;36m[1695969528.280|20697|conference.cpp :977 ] �[0mBind participant 3129400994883713 to conference 5406518273839043
�[0m�[22;36m[1695969528.280|20697|ringbufferpool.cpp :174 ] �[0mBind call 3129400994883713 to call 7411818913851632
�[0m�[22;36m[1695969528.280|20697|ringbufferpool.cpp :155 ] �[0mBind rbuf '3129400994883713' to callid '7411818913851632'
�[0m�[22;36m[1695969528.280|20697|ringbufferpool.cpp :155 ] �[0mBind rbuf '7411818913851632' to callid '3129400994883713'
�[0m�[22;36m[1695969528.280|20697|ringbufferpool.cpp :155 ] �[0mBind rbuf '3129400994883713' to callid 'audiolayer_id'
�[0m�[22;36m[1695969528.280|20697|manager.cpp :611 ] �[0m----- Switch current call id to '5406518273839043' -----
�[0m�[22;36m[1695969528.280|20697|conference.cpp :344 ] �[0m[conf 5406518273839043] Set state to [ACTIVE_ATTACHED] (was [ACTIVE_ATTACHED])
�[0m�[22;36m[1695969528.281|20697|conference.cpp :346 ] �[0mStop conference
�[0m�[22;36m[1695969528.281|20697|manager.cpp :1433] �[0mHangup conference 5406518273839043
�[0m�[22;36m[1695969528.281|20697|manager.cpp :1717] �[0m[call:3129400994883713] Remove local audio
�[0m�[22;36m[1695969528.281|20697|ringbufferpool.cpp :262 ] �[0mUnbind call 3129400994883713 from all bound calls
�[0m�[22;36m[1695969528.281|20697|manager.cpp :1607] �[0mRemove participant 3129400994883713
�[0m�[22;36m[1695969528.281|20697|conference.cpp :880 ] �[0mRemove call 3129400994883713 in conference 5406518273839043
�[0m�[22;36m[1695969528.281|20697|sipcall.cpp :3101] �[0m[call:3129400994883713] Leaving conference
�[0m�[22;36m[1695969528.281|20697|ringbufferpool.cpp :174 ] �[0mBind call 3129400994883713 to call audiolayer_id
�[0m�[22;36m[1695969528.281|20697|ringbufferpool.cpp :155 ] �[0mBind rbuf '3129400994883713' to callid 'audiolayer_id'
�[0m�[22;36m[1695969528.281|20697|ringbufferpool.cpp :155 ] �[0mBind rbuf 'audiolayer_id' to callid '3129400994883713'
�[0m�[22;36m[1695969528.281|20697|video_rtp_session.cpp :577 ] �[0m[0x61d00047fe90] exitConference (conf: 5406518273839043)
�[0m�[22;36m[1695969528.281|20697|manager.cpp :1717] �[0m[call:3129400994883713] Remove local audio
�[0m�[22;36m[1695969528.281|20697|ringbufferpool.cpp :262 ] �[0mUnbind call 3129400994883713 from all bound calls
�[0m�[22;36m[1695969528.281|20697|manager.cpp :544 ] �[0mProcess remaining 1 participant(s) from conference 5406518273839043
�[0m�[22;36m[1695969528.281|20697|manager.cpp :611 ] �[0m----- Switch current call id to '7411818913851632' -----
�[0m�[22;36m[1695969528.281|20697|manager.cpp :580 ] �[0mNo remaining participants, remove conference
�[0m�[22;36m[1695969528.281|20697|sipcall.cpp :759 ] �[0m[call:3129400994883713] Terminate SIP session
�[0m�[22;36m[1695969528.281|20697|sip_utils.cpp :221 ] �[0mAdd header to SIP message: "User-Agent: Jami Daemon 13.9.0-09bfe85330-dirty (linux)"
�[0m�[22;36m[1695969528.281|20697|sipcall.cpp :733 ] �[0m[call:3129400994883713] Delete current invite session
�[0m�[22;36m[1695969528.281|20697|sipcall.cpp :2227] �[0m[call:3129400994883713] Stopping all media
�[0m�[22;36m[1695969528.281|20697|audio_rtp_session.cpp :228 ] �[0m[0x61c0000d8090] Stopping receiver
�[0m�[22;36m[1695969528.281|20697|video_rtp_session.cpp :245 ] �[0m[0x61d00047fe90] Stop video RTP sender: input [] - muted [NO]
�[0m�[22;36m[1695969528.281|20697|video_rtp_session.cpp :319 ] �[0m[0x61d00047fe90] Stopping receiver
�[0m�[22;36m[1695969528.281|20697|call.cpp :241 ] �[0m[call:3129400994883713] state change 1/1, cnx 4/0, code 0
�[0m�[22;36m[1695969528.282|20697|call.cpp :275 ] �[0m[call:3129400994883713] emit client call state change HUNGUP, code 0
�[0m�[22;36m[1695969528.282|20697|manager.cpp :1717] �[0m[call:7411818913851632] Remove local audio
�[0m�[22;36m[1695969528.282|20697|ringbufferpool.cpp :262 ] �[0mUnbind call 7411818913851632 from all bound calls
�[0m�[22;36m[1695969528.282|20761|sipcall.cpp :1592] �[0m[call:3129400994883713] removeCall()
�[0m�[22;36m[1695969528.282|20697|manager.cpp :1607] �[0mRemove participant 7411818913851632
�[0m�[22;36m[1695969528.282|20761|call_factory.cpp :72 ] �[0mRemoving call 3129400994883713
�[0m�[22;36m[1695969528.282|20697|conference.cpp :880 ] �[0mRemove call 7411818913851632 in conference 5406518273839043
�[0m�[22;36m[1695969528.282|20761|call_factory.cpp :75 ] �[0mRemaining 3 call
�[0m�[22;36m[1695969528.282|20761|call.cpp :241 ] �[0m[call:3129400994883713] state change 1/6, cnx 0/0, code 0
�[0m�[22;36m[1695969528.282|20697|sipcall.cpp :3101] �[0m[call:7411818913851632] Leaving conference
�[0m�[22;36m[1695969528.282|20697|ringbufferpool.cpp :174 ] �[0mBind call 7411818913851632 to call audiolayer_id
�[0m�[22;36m[1695969528.282|20761|contact_list.cpp :163 ] �[0m�[01;33m[Contacts] contact '90d20919eec87c2de5c4559df9eeb269f000eec3' not found
�[0m�[22;36m[1695969528.282|20697|ringbufferpool.cpp :155 ] �[0mBind rbuf '7411818913851632' to callid 'audiolayer_id'
�[0m�[22;36m[1695969528.282|20697|ringbufferpool.cpp :155 ] �[0mBind rbuf 'audiolayer_id' to callid '7411818913851632'
�[0m�[22;36m[1695969528.282|20761|sipcall.cpp :3255] �[0m- Call 3129400994883713 with 90d20919eec87c2de5c4559df9eeb269f000eec3:
�[0m�[22;36m[1695969528.282|20697|video_rtp_session.cpp :577 ] �[0m[0x61d0002fb290] exitConference (conf: 5406518273839043)
�[0m�[22;36m[1695969528.282|20761|sipcall.cpp :3256] �[0m - Duration: 10 ms
�[0m�[22;36m[1695969528.282|20697|video_mixer.cpp :203 ] �[0mDetaching video of call 7411818913851632
�[0m�[22;36m[1695969528.282|20761|sipcall.cpp :3258] �[0m - Media: type [AUDIO] enabled [YES] muted [NO] label [audio_0] source [] secure [YES]
�[0m�[22;36m[1695969528.282|20697|video_mixer.cpp :237 ] �[0mRemove source [0x60b0001317b0]
�[0m�[22;36m[1695969528.282|20761|sipcall.cpp :3258] �[0m - Media: type [VIDEO] enabled [YES] muted [NO] label [video_0] source [] secure [YES]
�[0m�[22;36m[1695969528.282|20697|video_mixer.cpp :239 ] �[0mTotal sources: 0
�[0m�[22;36m[1695969528.282|20761|call.cpp :275 ] �[0m[call:3129400994883713] emit client call state change OVER, code 0
�[0m�[22;36m[1695969528.282|20697|video_receive_thread.cpp:285 ] �[0m[0x61a000702680] Starting sink
�[0m�[22;36m[1695969528.282|20761|sipcall.cpp :459 ] �[0m[call:3129400994883713] Setting transport to [(nil)]
�[0m�[22;36m[1695969528.282|20697|manager.cpp :1717] �[0m[call:7411818913851632] Remove local audio
�[0m�[22;36m[1695969528.283|20697|ringbufferpool.cpp :262 ] �[0mUnbind call 7411818913851632 from all bound calls
�[0m�[22;36m[1695969528.283|20697|manager.cpp :544 ] �[0mProcess remaining 0 participant(s) from conference 5406518273839043
�[0m�[22;36m[1695969528.283|20697|manager.cpp :584 ] �[0mNo remaining participants, remove conference
�[0m�[22;36m[1695969528.283|20697|sipcall.cpp :759 ] �[0m[call:7411818913851632] Terminate SIP session
�[0m�[22;36m[1695969528.283|20697|sip_utils.cpp :221 ] �[0mAdd header to SIP message: "User-Agent: Jami Daemon 13.9.0-09bfe85330-dirty (linux)"
�[0m�[22;36m[1695969528.283|20697|sipcall.cpp :733 ] �[0m[call:7411818913851632] Delete current invite session
�[0m�[22;36m[1695969528.283|20697|sipcall.cpp :2227] �[0m[call:7411818913851632] Stopping all media
�[0m�[22;36m[1695969528.283|20697|audio_rtp_session.cpp :228 ] �[0m[0x61c0000d5890] Stopping receiver
�[0m�[22;36m[1695969528.283|20697|socket_pair.cpp :313 ] �[0m[0x6160013aa380] Read operations in blocking mode [NO]
�[0m�[22;36m[1695969528.283|20697|socket_pair.cpp :300 ] �[0m�[01;33m[0x6160013aa380] Interrupting RTP sockets
�[0m�[22;36m[1695969528.283|21249|sipvoiplink.cpp :891 ] �[0m[call:4008112576292348] INVITE@0x6190001987a8 state changed to 6 (DISCONNCTD): cause=200, tsx@0x61d000035328 status 200 (OK)
�[0m�[22;36m[1695969528.283|21281|media_decoder.cpp :547 ] �[0mUsing libopus Opus (libopus) decoder for audio
�[0m�[22;36m[1695969528.283|21281|media_decoder.cpp :558 ] �[0m�[01;33mNot using hardware decoding for opus
�[0m #0 0x55853e0f6049 in jami::MediaDecoder::getStream(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const media/media_decoder.cpp:835
#1 0x55853e9198dc in jami::AudioReceiveThread::getInfo() const media/audio/audio_receive_thread.cpp:152
#2 0x55853e820fe3 in jami::AudioRtpSession::setMuted(bool, jami::RtpSession::Direction) media/audio/audio_rtp_session.cpp:262
#3 0x55853e3e46fe in jami::SIPCall::peerMuted(bool, int) sip/sipcall.cpp:3615
#4 0x55853e499d54 in handleMediaControl sip/sipvoiplink.cpp:1241
#5 0x55853e49c508 in onRequestInfo sip/sipvoiplink.cpp:1323
#6 0x55853e49d2fa in transaction_state_changed_cb sip/sipvoiplink.cpp:1390
#7 0x55853e9c5467 in mod_inv_on_tsx_state (/foo/test/unitTest/ut_conference+0x40de467)
#8 0x55853ea025ec in pjsip_dlg_on_tsx_state (/foo/test/unitTest/ut_conference+0x411b5ec)
#9 0x55853e9fb6eb in tsx_set_state (/foo/test/unitTest/ut_conference+0x41146eb)
#10 0x55853e9fbef8 in tsx_on_state_null (/foo/test/unitTest/ut_conference+0x4114ef8)
#11 0x55853e9ff6b1 in pjsip_tsx_recv_msg (/foo/test/unitTest/ut_conference+0x41186b1)
#12 0x55853ea02304 in pjsip_dlg_on_rx_request (/foo/test/unitTest/ut_conference+0x411b304)
#13 0x55853ea03a62 in mod_ua_on_rx_request (/foo/test/unitTest/ut_conference+0x411ca62)
#14 0x55853e9e897a in pjsip_endpt_process_rx_data (/foo/test/unitTest/ut_conference+0x410197a)
#15 0x55853e9e8bb5 in endpt_on_rx_msg (/foo/test/unitTest/ut_conference+0x4101bb5)
#16 0x55853e9efbde in pjsip_tpmgr_receive_packet (/foo/test/unitTest/ut_conference+0x4108bde)
#17 0x55853e6379bd in operator() jamidht/channeled_transport.cpp:172
#18 0x55853e63ac21 in _M_invoke /usr/include/c++/9/bits/std_function.h:285
#19 0x55853e9611c3 in dhtnet::ChannelSocket::onRecv(std::vector<unsigned char, std::allocator<unsigned char> >&&) (/foo/test/unitTest/ut_conference+0x407a1c3)
#20 0x55853e961025 in dhtnet::MultiplexedSocket::Impl::handleChannelPacket(unsigned short, std::vector<unsigned char, std::allocator<unsigned char> >&&) (/foo/test/unitTest/ut_conference+0x407a025)
#21 0x55853e9658f2 in dhtnet::MultiplexedSocket::Impl::eventLoop() (/foo/test/unitTest/ut_conference+0x407e8f2)
#22 0x55853e969437 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<dhtnet::MultiplexedSocket::Impl::Impl(dhtnet::MultiplexedSocket&, std::shared_ptr<asio::io_context>, dht::Hash<32ul> const&, std::unique_ptr<dhtnet::TlsSocketEndpoint, std::default_delete<dhtnet::TlsSocketEndpoint> >, std::shared_ptr<dht::log::Logger>)::{lambda()#1}> > >::_M_run() (/foo/test/unitTest/ut_conference+0x4082437)
#23 0x7fa771d9fdf3 (/lib/x86_64-linux-gnu/libstdc++.so.6+0xd6df3)
#24 0x7fa7724b9608 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x8608)
#25 0x7fa771a8c132 in __clone (/lib/x86_64-linux-gnu/libc.so.6+0x11f132)
```
Sébastien Blin
Sébastien Blin
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/851
new API for connection monitoring
2023-10-26T17:52:19Z
Fadi Shehadeh
new API for connection monitoring
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)
...
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 Id
Amna Snene
Charlotte Hoffmann
Liam Coursodon
Amna Snene
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/871
Lock on long merge commits
2023-10-26T17:52:03Z
Sébastien Blin
Lock on long merge commits
On Jami:Core, sometimes, we can't send messages. A thread seems to be blocked on git_merge_commits (with a lot of merge_annotated_commit)
The reason is still unclear.
On Jami:Core, sometimes, we can't send messages. A thread seems to be blocked on git_merge_commits (with a lot of merge_annotated_commit)
The reason is still unclear.
Sébastien Blin
Sébastien Blin
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/869
JAMS account: Blocked users can still communicate
2023-10-26T17:51:49Z
Léo Banno-Cloutier
JAMS account: Blocked users can still communicate
1. User A blocks user B
2. User B sends a message to user A
Actual: User A receives a notification and a red dot of the icon in the system tray, but there isn't any new messages in the conversation list
Expected: User A blocked user B,...
1. User A blocks user B
2. User B sends a message to user A
Actual: User A receives a notification and a red dot of the icon in the system tray, but there isn't any new messages in the conversation list
Expected: User A blocked user B, so it shouldn't get notified about it
Sébastien Blin
Léo Banno-Cloutier
Sébastien Blin
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/908
Mute and unmute in swarm group call
2023-10-20T14:27:11Z
Wear Guxj
Mute and unmute in swarm group call
In group swarm call, there are two bugs when muting the microphone. It's the same if only audio or both audio and video. It's been verified with the latest Android client.
1. Alice who initiated the group call needs to click two times...
In group swarm call, there are two bugs when muting the microphone. It's the same if only audio or both audio and video. It's been verified with the latest Android client.
1. Alice who initiated the group call needs to click two times on the mute button before the button is lit and her microphone is actually muted. The first click does nothing.
2. Then when Bob joins the group call, it causes Alice's client to go back from muted to unmuted. This is obviously a privacy problem, but at least the unmute is reflected in Alice's user interface.
Sébastien Blin
Alexander Lussier-Cullen
Sébastien Blin
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/907
Peer gets unmuted when other peer starts video
2023-10-19T12:41:36Z
Wear Guxj
Peer gets unmuted when other peer starts video
There is some buggy behavior when upgrading an audio call to video on latest version for Android and using TURN.
1. Make an audio call between Alice and Bob in any direction.
2. When line is open, both peers mute their microphone.
3. Al...
There is some buggy behavior when upgrading an audio call to video on latest version for Android and using TURN.
1. Make an audio call between Alice and Bob in any direction.
2. When line is open, both peers mute their microphone.
3. Alice turns her camera on.
4. This will cause Bob to become unmuted, not good!
5. Alice's video will show to Bob, but it's less likely that Bob will be able to start showing his video to Alice.
Alexander Lussier-Cullen
Alexander Lussier-Cullen
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/905
Client that invites never gets peer's name and picture
2023-10-12T21:09:50Z
Wear Guxj
Client that invites never gets peer's name and picture
- Alice send an invitation to Bob
- Bob accepts
- Bob gets name and picture from Alice
- Same does not happen to Alice, it's still Bob's jami id that is displayed to Alice and no picture
The reason might be that when the invitation is a...
- Alice send an invitation to Bob
- Bob accepts
- Bob gets name and picture from Alice
- Same does not happen to Alice, it's still Bob's jami id that is displayed to Alice and no picture
The reason might be that when the invitation is accepted, it does not send back an automatic counter invitation, as it usually does.
Nevertheless, the peers can successfully exchange text messages in both directions and also call each other.
Client version: Android 20230928
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/899
Sync contacts doesn't work for JAMS
2023-10-02T18:48:51Z
Sébastien Blin
Sync contacts doesn't work for JAMS
# Scenario
+ Remove or re-add a contact on a JAMS account (Note: Just adding the contact is not enough to trigger the error).
# Current result
```
[1695241407.656|13426|server_account_manager.cpp:395 ] [Auth] Got contact sync request ...
# Scenario
+ Remove or re-add a contact on a JAMS account (Note: Just adding the contact is not enough to trigger the error).
# Current result
```
[1695241407.656|13426|server_account_manager.cpp:395 ] [Auth] Got contact sync request callback with status code=500
[1695241407.657|13426] [http:request:55] end with error: stream truncated
[1695241407.657|13426] [http:request:55] can't parse response to json
```
JAMS is not updated
# Code:
```
sendDeviceRequest(std::make_shared<Request>(
*Manager::instance().ioContext(),
urlContacts,
jsonContacts,
[w=weak_from_this()](Json::Value json, const dht::http::Response& response) {
JAMI_DBG("[Auth] Got contact sync request callback with status code=%u",
response.status_code);
auto this_ = std::static_pointer_cast<ServerAccountManager>(w.lock());
if (!this_) return;
if (response.status_code >= 200 && response.status_code < 300) {
try {
JAMI_WARN("[Auth] Got server response: %s", response.body.c_str());
if (not json.isArray()) {
JAMI_ERR("[Auth] Can't parse server response: not an array");
} else {
for (unsigned i = 0, n = json.size(); i < n; i++) {
const auto& e = json[i];
Contact contact(e);
this_->info_->contacts
->updateContact(dht::InfoHash {e["uri"].asString()}, contact);
}
this_->info_->contacts->saveContacts();
}
} catch (const std::exception& e) {
JAMI_ERR("Error when iterating contact list: %s", e.what());
}
} else if (response.status_code == 401)
this_->authError(TokenScope::Device);
this_->clearRequest(response.request);
},
logger_));
```
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/651
Linking failure
2023-09-29T10:02:15Z
Bruno Pagani
Linking failure
While compiling at commit 042ad25ca2174df18ca18bcaf39286259fe275bee, it failed during linking:
```
[151/153] Linking target src/libjami.so.10.1.0
FAILED: src/libjami.so.10.1.0
c++ -o src/libjami.so.10.1.0 src/libjami.so.10.1.0.p/client...
While compiling at commit 042ad25ca2174df18ca18bcaf39286259fe275bee, it failed during linking:
```
[151/153] Linking target src/libjami.so.10.1.0
FAILED: src/libjami.so.10.1.0
c++ -o src/libjami.so.10.1.0 src/libjami.so.10.1.0.p/client_callmanager.cpp.o src/libjami.so.10.1.0.p/client_configurationmanager.cpp.o src/libjami.so.10.1.0.p/client_datatransfer.cpp.o src/libjami.so.10.1.0.p/client_presencemanager.cpp.o src/libjami.so.10.1.0.p/client_ring_signal.cpp.o src/libjami.so.10.1.0.p/config_yamlparser.cpp.o src/libjami.so.10.1.0.p/im_instant_messaging.cpp.o src/libjami.so.10.1.0.p/im_message_engine.cpp.o src/libjami.so.10.1.0.p/jamidht_eth_libdevcore_Common.cpp.o src/libjami.so.10.1.0.p/jamidht_eth_libdevcore_CommonData.cpp.o src/libjami.so.10.1.0.p/jamidht_eth_libdevcore_FixedHash.cpp.o src/libjami.so.10.1.0.p/jamidht_eth_libdevcore_SHA3.cpp.o src/libjami.so.10.1.0.p/jamidht_eth_libdevcrypto_Common.cpp.o src/libjami.so.10.1.0.p/jamidht_accountarchive.cpp.o src/libjami.so.10.1.0.p/jamidht_account_manager.cpp.o src/libjami.so.10.1.0.p/jamidht_archive_account_manager.cpp.o src/libjami.so.10.1.0.p/jamidht_channeled_transfers.cpp.o src/libjami.so.10.1.0.p/jamidht_channeled_transport.cpp.o src/libjami.so.10.1.0.p/jamidht_connectionmanager.cpp.o src/libjami.so.10.1.0.p/jamidht_contact_list.cpp.o src/libjami.so.10.1.0.p/jamidht_jamiaccount.cpp.o src/libjami.so.10.1.0.p/jamidht_multiplexed_socket.cpp.o src/libjami.so.10.1.0.p/jamidht_namedirectory.cpp.o src/libjami.so.10.1.0.p/jamidht_p2p.cpp.o src/libjami.so.10.1.0.p/jamidht_server_account_manager.cpp.o src/libjami.so.10.1.0.p/media_audio_echo-cancel_null_echo_canceller.cpp.o src/libjami.so.10.1.0.p/media_audio_sound_audiofile.cpp.o src/libjami.so.10.1.0.p/media_audio_sound_dtmf.cpp.o src/libjami.so.10.1.0.p/media_audio_sound_dtmfgenerator.cpp.o src/libjami.so.10.1.0.p/media_audio_sound_tone.cpp.o src/libjami.so.10.1.0.p/media_audio_sound_tonelist.cpp.o src/libjami.so.10.1.0.p/media_audio_audiobuffer.cpp.o src/libjami.so.10.1.0.p/media_audio_audio_frame_resizer.cpp.o src/libjami.so.10.1.0.p/media_audio_audio_input.cpp.o src/libjami.so.10.1.0.p/media_audio_audiolayer.cpp.o src/libjami.so.10.1.0.p/media_audio_audioloop.cpp.o src/libjami.so.10.1.0.p/media_audio_audio_receive_thread.cpp.o src/libjami.so.10.1.0.p/media_audio_audio_rtp_session.cpp.o src/libjami.so.10.1.0.p/media_audio_audio_sender.cpp.o src/libjami.so.10.1.0.p/media_audio_dcblocker.cpp.o src/libjami.so.10.1.0.p/media_audio_dsp.cpp.o src/libjami.so.10.1.0.p/media_audio_resampler.cpp.o src/libjami.so.10.1.0.p/media_audio_ringbuffer.cpp.o src/libjami.so.10.1.0.p/media_audio_ringbufferpool.cpp.o src/libjami.so.10.1.0.p/media_audio_tonecontrol.cpp.o src/libjami.so.10.1.0.p/media_congestion_control.cpp.o src/libjami.so.10.1.0.p/media_libav_utils.cpp.o src/libjami.so.10.1.0.p/media_localrecorder.cpp.o src/libjami.so.10.1.0.p/media_localrecordermanager.cpp.o src/libjami.so.10.1.0.p/media_media_buffer.cpp.o src/libjami.so.10.1.0.p/media_media_codec.cpp.o src/libjami.so.10.1.0.p/media_media_decoder.cpp.o src/libjami.so.10.1.0.p/media_media_encoder.cpp.o src/libjami.so.10.1.0.p/media_media_filter.cpp.o src/libjami.so.10.1.0.p/media_media_io_handle.cpp.o src/libjami.so.10.1.0.p/media_media_player.cpp.o src/libjami.so.10.1.0.p/media_media_recorder.cpp.o src/libjami.so.10.1.0.p/media_recordable.cpp.o src/libjami.so.10.1.0.p/media_socket_pair.cpp.o src/libjami.so.10.1.0.p/media_srtp.c.o src/libjami.so.10.1.0.p/media_system_codec_container.cpp.o src/libjami.so.10.1.0.p/security_certstore.cpp.o src/libjami.so.10.1.0.p/security_diffie-hellman.cpp.o src/libjami.so.10.1.0.p/security_memory.cpp.o src/libjami.so.10.1.0.p/security_tls_session.cpp.o src/libjami.so.10.1.0.p/security_tlsvalidator.cpp.o src/libjami.so.10.1.0.p/sip_pres_sub_client.cpp.o src/libjami.so.10.1.0.p/sip_pres_sub_server.cpp.o src/libjami.so.10.1.0.p/sip_sdes_negotiator.cpp.o src/libjami.so.10.1.0.p/sip_sdp.cpp.o src/libjami.so.10.1.0.p/sip_sipaccountbase.cpp.o src/libjami.so.10.1.0.p/sip_sipaccount.cpp.o src/libjami.so.10.1.0.p/sip_sipcall.cpp.o src/libjami.so.10.1.0.p/sip_sippresence.cpp.o src/libjami.so.10.1.0.p/sip_siptransport.cpp.o src/libjami.so.10.1.0.p/sip_sip_utils.cpp.o src/libjami.so.10.1.0.p/sip_sipvoiplink.cpp.o src/libjami.so.10.1.0.p/upnp_protocol_igd.cpp.o src/libjami.so.10.1.0.p/upnp_protocol_mapping.cpp.o src/libjami.so.10.1.0.p/upnp_upnp_context.cpp.o src/libjami.so.10.1.0.p/upnp_upnp_control.cpp.o src/libjami.so.10.1.0.p/account.cpp.o src/libjami.so.10.1.0.p/account_factory.cpp.o src/libjami.so.10.1.0.p/archiver.cpp.o src/libjami.so.10.1.0.p/base64.cpp.o src/libjami.so.10.1.0.p/buildinfo.cpp.o src/libjami.so.10.1.0.p/call.cpp.o src/libjami.so.10.1.0.p/call_factory.cpp.o src/libjami.so.10.1.0.p/conference.cpp.o src/libjami.so.10.1.0.p/data_transfer.cpp.o src/libjami.so.10.1.0.p/fileutils.cpp.o src/libjami.so.10.1.0.p/ftp_server.cpp.o src/libjami.so.10.1.0.p/ice_transport.cpp.o src/libjami.so.10.1.0.p/ip_utils.cpp.o src/libjami.so.10.1.0.p/logger.cpp.o src/libjami.so.10.1.0.p/manager.cpp.o src/libjami.so.10.1.0.p/peer_connection.cpp.o src/libjami.so.10.1.0.p/preferences.cpp.o src/libjami.so.10.1.0.p/ring_api.cpp.o src/libjami.so.10.1.0.p/scheduled_executor.cpp.o src/libjami.so.10.1.0.p/smartools.cpp.o src/libjami.so.10.1.0.p/string_utils.cpp.o src/libjami.so.10.1.0.p/threadloop.cpp.o src/libjami.so.10.1.0.p/utf8_utils.cpp.o src/libjami.so.10.1.0.p/media_audio_alsa_alsalayer.cpp.o src/libjami.so.10.1.0.p/media_audio_pulseaudio_audiostream.cpp.o src/libjami.so.10.1.0.p/media_audio_pulseaudio_pulselayer.cpp.o src/libjami.so.10.1.0.p/media_audio_jack_jacklayer.cpp.o src/libjami.so.10.1.0.p/upnp_protocol_pupnp_pupnp.cpp.o src/libjami.so.10.1.0.p/upnp_protocol_pupnp_upnp_igd.cpp.o src/libjami.so.10.1.0.p/upnp_protocol_natpmp_nat_pmp.cpp.o src/libjami.so.10.1.0.p/upnp_protocol_natpmp_pmp_igd.cpp.o src/libjami.so.10.1.0.p/media_audio_echo-cancel_webrtc_echo_canceller.cpp.o src/libjami.so.10.1.0.p/client_videomanager.cpp.o src/libjami.so.10.1.0.p/media_video_filter_transpose.cpp.o src/libjami.so.10.1.0.p/media_video_sinkclient.cpp.o src/libjami.so.10.1.0.p/media_video_video_base.cpp.o src/libjami.so.10.1.0.p/media_video_video_device_monitor.cpp.o src/libjami.so.10.1.0.p/media_video_video_input.cpp.o src/libjami.so.10.1.0.p/media_video_video_mixer.cpp.o src/libjami.so.10.1.0.p/media_video_video_receive_thread.cpp.o src/libjami.so.10.1.0.p/media_video_video_rtp_session.cpp.o src/libjami.so.10.1.0.p/media_video_video_scaler.cpp.o src/libjami.so.10.1.0.p/media_video_video_sender.cpp.o src/libjami.so.10.1.0.p/media_video_accel.cpp.o src/libjami.so.10.1.0.p/media_video_v4l2_video_device_impl.cpp.o src/libjami.so.10.1.0.p/media_video_v4l2_video_device_monitor_impl.cpp.o src/libjami.so.10.1.0.p/client_plugin_manager_interface.cpp.o src/libjami.so.10.1.0.p/plugin_callservicesmanager.cpp.o src/libjami.so.10.1.0.p/plugin_chatservicesmanager.cpp.o src/libjami.so.10.1.0.p/plugin_jamipluginmanager.cpp.o src/libjami.so.10.1.0.p/plugin_pluginloader.cpp.o src/libjami.so.10.1.0.p/plugin_pluginmanager.cpp.o src/libjami.so.10.1.0.p/plugin_pluginpreferencesutils.cpp.o src/libjami.so.10.1.0.p/plugin_pluginsutils.cpp.o -flto -Wl,--as-needed -Wl,--no-undefined -shared -fPIC -Wl,--start-group -Wl,-soname,libjami.so.10 -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -D_FORTIFY_SOURCE=2 -pthread /usr/lib/libopendht.so /usr/lib/libgnutls.so /build/jami-daemon/src/jami-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjsua2-x86_64-pc-linux-gnu.a /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../lib/libstdc++.so /build/jami-daemon/src/jami-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjsua-x86_64-pc-linux-gnu.a /build/jami-daemon/src/jami-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjsip-ua-x86_64-pc-linux-gnu.a /build/jami-daemon/src/jami-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjsip-simple-x86_64-pc-linux-gnu.a /build/jami-daemon/src/jami-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjsip-x86_64-pc-linux-gnu.a /build/jami-daemon/src/jami-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjmedia-codec-x86_64-pc-linux-gnu.a /build/jami-daemon/src/jami-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjmedia-videodev-x86_64-pc-linux-gnu.a /build/jami-daemon/src/jami-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjmedia-audiodev-x86_64-pc-linux-gnu.a /build/jami-daemon/src/jami-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjmedia-x86_64-pc-linux-gnu.a /build/jami-daemon/src/jami-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjnath-x86_64-pc-linux-gnu.a /build/jami-daemon/src/jami-daemon/contrib/x86_64-pc-linux-gnu/lib/libpjlib-util-x86_64-pc-linux-gnu.a /build/jami-daemon/src/jami-daemon/contrib/x86_64-pc-linux-gnu/lib/libpj-x86_64-pc-linux-gnu.a /build/jami-daemon/src/jami-daemon/contrib/x86_64-pc-linux-gnu/lib/libsrtp-x86_64-pc-linux-gnu.a /build/jami-daemon/src/jami-daemon/contrib/x86_64-pc-linux-gnu/lib/libyuv-x86_64-pc-linux-gnu.a /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../lib/libopus.so /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../lib/libvpx.so /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../lib/libuuid.so -lm -lrt -lpthread /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../lib/libgnutls.so /usr/lib/libsecp256k1.so /usr/lib/libavcodec.so /usr/lib/libavfilter.so /usr/lib/libavdevice.so /usr/lib/libavformat.so /usr/lib/libswscale.so /usr/lib/libswresample.so /usr/lib/libavutil.so /usr/lib/libspeex.so /usr/lib/libspeexdsp.so /usr/lib/libyaml-cpp.so /usr/lib/libjsoncpp.so /usr/lib/libz.so /usr/lib/libasound.so /usr/lib/libpulse.so /usr/lib/libjack.so /usr/lib/libupnp.so /usr/lib/libixml.so -lnatpmp /usr/lib/libssl.so /usr/lib/libcrypto.so /usr/lib/libwebrtc_audio_processing.so /usr/lib/libudev.so /usr/lib/libarchive.so -ldl -Wl,--end-group
/usr/bin/ld: /tmp/ccTsnSkF.ltrans0.ltrans.o: in function `DRing::downloadFile(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::__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&)':
<artificial>:(.text+0xc888): undefined reference to `jami::ConversationModule::downloadFile(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::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, unsigned long)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans2.ltrans.o: in function `jami::AccountArchive::serialize[abi:cxx11]() const':
<artificial>:(.text+0x6fc7): undefined reference to `jami::ConversationRequest::toJson() const'
/usr/bin/ld: <artificial>:(.text+0x718c): undefined reference to `jami::ConvInfo::toJson() const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans2.ltrans.o: in function `jami::AccountArchive::deserialize(std::vector<unsigned char, std::allocator<unsigned char> > const&)':
<artificial>:(.text+0x84ad): undefined reference to `jami::ConversationRequest::ConversationRequest(Json::Value const&)'
/usr/bin/ld: <artificial>:(.text+0x8c02): undefined reference to `jami::ConvInfo::ConvInfo(Json::Value const&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans5.ltrans.o: in function `jami::ArchiveAccountManager::updateArchive(jami::AccountArchive&) const':
<artificial>:(.text+0x3ccd): undefined reference to `jami::ConversationModule::convInfosFromPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: <artificial>:(.text+0x3d79): undefined reference to `jami::ConversationModule::convRequestsFromPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans5.ltrans.o: in function `jami::ArchiveAccountManager::onArchiveLoaded(jami::ArchiveAccountManager::AuthContext&, jami::AccountArchive&&)':
<artificial>:(.text+0x668f): undefined reference to `jami::ConversationModule::saveConvInfosToPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, jami::ConvInfo, 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, jami::ConvInfo> > > const&)'
/usr/bin/ld: <artificial>:(.text+0x669f): undefined reference to `jami::ConversationModule::saveConvRequestsToPath(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, jami::ConversationRequest, 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, jami::ConversationRequest> > > const&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans9.ltrans.o: in function `jami::JamiAccount::createSubCall(std::shared_ptr<jami::SIPCall> const&)':
<artificial>:(.text+0x4d8d): undefined reference to `jami::MediaAttribute::mediaAttributesToMediaMaps[abi:cxx11](std::vector<jami::MediaAttribute, std::allocator<jami::MediaAttribute> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans9.ltrans.o: in function `jami::JamiAccount::shutdownConnections()':
<artificial>:(.text+0x67fe): undefined reference to `jami::GitServer::stop()'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans10.ltrans.o: in function `jami::JamiAccount::SIPStartCall(jami::SIPCall&, jami::IpAddr const&)':
<artificial>:(.text+0x1f51): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: <artificial>:(.text+0x206b): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans10.ltrans.o: in function `jami::JamiAccount::loadAccount(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&)::{lambda(jami::AccountInfo const&, 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> >&&, std::vector<unsigned char, std::allocator<unsigned char> >&&)#10}::operator()(jami::AccountInfo const&, 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> >&&, std::vector<unsigned char, std::allocator<unsigned char> >&&) const [clone .lto_priv.0]':
<artificial>:(.text+0x34a5): undefined reference to `jami::ConversationModule::loadConversations()'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans10.ltrans.o: in function `jami::JamiAccount::loadAccount(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&)':
<artificial>:(.text+0x5997): undefined reference to `jami::ConversationModule::loadConversations()'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans10.ltrans.o: in function `jami::JamiAccount::onTrackedBuddyOnline(dht::Hash<20ul> const&)':
<artificial>:(.text+0x8f82): undefined reference to `jami::ConversationModule::getOneToOneConversation(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans11.ltrans.o: in function `jami::JamiAccount::getToUri(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const':
<artificial>:(.text+0x3bd): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans11.ltrans.o: in function `jami::getIsComposing(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)':
<artificial>:(.text+0x6f2): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans11.ltrans.o: in function `jami::getDisplayed(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&)':
<artificial>:(.text+0x8b8): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans11.ltrans.o: in function `jami::JamiAccount::setIsComposing(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)':
<artificial>:(.text+0x3ac6): undefined reference to `jami::Uri::Uri(std::basic_string_view<char, std::char_traits<char> > const&)'
/usr/bin/ld: <artificial>:(.text+0x3aec): undefined reference to `jami::Uri::scheme() const'
/usr/bin/ld: <artificial>:(.text+0x3b03): undefined reference to `jami::Uri::authority[abi:cxx11]() const'
/usr/bin/ld: <artificial>:(.text+0x401d): undefined reference to `jami::Uri::authority[abi:cxx11]() const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans11.ltrans.o: in function `jami::JamiAccount::convModule()':
<artificial>:(.text+0x432b): undefined reference to `jami::ConversationModule::ConversationModule(std::weak_ptr<jami::JamiAccount>&&, std::function<void ()>&&, std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, 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::function<void (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::function<bool (std::shared_ptr<jami::ChannelSocket> const&)>&&)>&&, std::function<void (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&, bool)>&&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans11.ltrans.o: in function `jami::JamiAccount::doRegister_()::{lambda(dht::Hash<32ul> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#10}::operator()(dht::Hash<32ul> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const [clone .lto_priv.0]':
<artificial>:(.text+0x449f): undefined reference to `jami::Uri::Uri(std::basic_string_view<char, std::char_traits<char> > const&)'
/usr/bin/ld: <artificial>:(.text+0x44ab): undefined reference to `jami::Uri::scheme() const'
/usr/bin/ld: <artificial>:(.text+0x49ff): undefined reference to `jami::ConversationModule::getConversationMembers(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: <artificial>:(.text+0x55cc): undefined reference to `jami::ConversationModule::onFileChannelRequest(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&, bool) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans11.ltrans.o: in function `jami::JamiAccount::doRegister_()::{lambda(dht::Hash<32ul> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<jami::ChannelSocket>)#11}::operator()(dht::Hash<32ul> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<jami::ChannelSocket>) const [clone .lto_priv.0]':
<artificial>:(.text+0x6273): undefined reference to `jami::ConversationModule::isBannedDevice(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&) const'
/usr/bin/ld: <artificial>:(.text+0x63ee): undefined reference to `jami::GitServer::GitServer(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::shared_ptr<jami::ChannelSocket> const&)'
/usr/bin/ld: <artificial>:(.text+0x6514): undefined reference to `jami::GitServer::setOnFetched(std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)> const&)'
/usr/bin/ld: <artificial>:(.text+0x67b9): undefined reference to `jami::Uri::Uri(std::basic_string_view<char, std::char_traits<char> > const&)'
/usr/bin/ld: <artificial>:(.text+0x67cc): undefined reference to `jami::Uri::scheme() const'
/usr/bin/ld: <artificial>:(.text+0x6bd6): undefined reference to `jami::GitServer::~GitServer()'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans11.ltrans.o: in function `jami::JamiAccount::setMessageDisplayed(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&, int)':
<artificial>:(.text+0x712c): undefined reference to `jami::Uri::Uri(std::basic_string_view<char, std::char_traits<char> > const&)'
/usr/bin/ld: <artificial>:(.text+0x7148): undefined reference to `jami::Uri::scheme() const'
/usr/bin/ld: <artificial>:(.text+0x720a): undefined reference to `jami::ConversationModule::onMessageDisplayed(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&)'
/usr/bin/ld: <artificial>:(.text+0x7222): undefined reference to `jami::Uri::authority[abi:cxx11]() const'
/usr/bin/ld: <artificial>:(.text+0x7291): undefined reference to `jami::Uri::authority[abi:cxx11]() const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans11.ltrans.o: in function `jami::JamiAccount::syncModule()':
<artificial>:(.text+0x7404): undefined reference to `jami::SyncModule::SyncModule(std::weak_ptr<jami::JamiAccount>&&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans11.ltrans.o: in function `jami::JamiAccount::doRegister_()::{lambda(dht::Hash<32ul> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<jami::ChannelSocket>)#11}::operator()(dht::Hash<32ul> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<jami::ChannelSocket>) const [clone .lto_priv.0] [clone .cold]':
<artificial>:(.text.unlikely+0x1028): undefined reference to `jami::GitServer::~GitServer()'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans12.ltrans.o: in function `jami::JamiAccount::addContact(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)':
<artificial>:(.text+0x1148): undefined reference to `jami::ConversationModule::getOneToOneConversation(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: <artificial>:(.text+0x120b): undefined reference to `jami::ConversationModule::startConversation(jami::ConversationMode, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans12.ltrans.o: in function `jami::JamiAccount::saveMembers(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)':
<artificial>:(.text+0x12c5): undefined reference to `jami::ConversationModule::setConversationMembers(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans12.ltrans.o: in function `jami::JamiAccount::sendInstantMessage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, 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&)':
<artificial>:(.text+0x1319): undefined reference to `jami::ConversationModule::getConversationMembers(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans12.ltrans.o: in function `jami::JamiAccount::removeContact(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)':
<artificial>:(.text+0x1687): undefined reference to `jami::ConversationModule::removeContact(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans12.ltrans.o: in function `jami::JamiAccount::discardTrustRequest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
<artificial>:(.text+0x1f34): undefined reference to `jami::ConversationModule::declineConversationRequest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans12.ltrans.o: in function `jami::JamiAccount::acceptTrustRequest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)':
<artificial>:(.text+0x237a): undefined reference to `jami::ConversationModule::addConvInfo(jami::ConvInfo const&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans12.ltrans.o: in function `jami::JamiAccount::sendSIPMessage(jami::JamiAccount::SipConnection&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, void*, unsigned long, 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&, void (*)(void*, pjsip_event*))':
<artificial>:(.text+0x4527): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans12.ltrans.o: in function `jami::JamiAccount::sendTrustRequest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<unsigned char, std::allocator<unsigned char> > const&)':
<artificial>:(.text+0x5ce3): undefined reference to `jami::ConversationModule::getOneToOneConversation(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: <artificial>:(.text+0x5ea3): undefined reference to `jami::ConversationModule::startConversation(jami::ConversationMode, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans12.ltrans.o: in function `jami::JamiAccount::handleMessage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&)':
<artificial>:(.text+0x6ced): undefined reference to `jami::ConversationModule::onNewCommit(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::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: <artificial>:(.text+0x6edf): undefined reference to `jami::ConversationModule::onNeedConversationRequest(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&)'
/usr/bin/ld: <artificial>:(.text+0x6f1c): undefined reference to `jami::ConversationModule::checkIfRemoveForCompat(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: <artificial>:(.text+0x721c): undefined reference to `jami::ConversationModule::onConversationRequest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Json::Value const&)'
/usr/bin/ld: <artificial>:(.text+0x763c): undefined reference to `jami::ConversationModule::onMessageDisplayed(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&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans13.ltrans.o: in function `jami::JamiAccount::dataTransfer(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
<artificial>:(.text+0x2a47): undefined reference to `jami::ConversationModule::dataTransfer(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans13.ltrans.o: in function `jami::JamiAccount::sendFile(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::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)::{lambda()#1}::operator()() const [clone .lto_priv.0]':
<artificial>:(.text+0x2ffe): undefined reference to `jami::ConversationModule::sendMessage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Json::Value&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool, std::function<void (bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>&&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans13.ltrans.o: in function `jami::JamiAccount::cacheSIPConnection(std::shared_ptr<jami::ChannelSocket>&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, dht::Hash<32ul> const&)':
<artificial>:(.text+0x5a3c): undefined reference to `jami::ConversationModule::syncConversations(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&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans13.ltrans.o: in function `jami::JamiAccount::askForFileChannel(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&, unsigned long, unsigned long)':
<artificial>:(.text+0x7b28): undefined reference to `jami::ConversationModule::getConversationMembers(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans13.ltrans.o: in function `jami::JamiAccount::initConnectionManager()':
<artificial>:(.text+0x8017): undefined reference to `jami::ConversationChannelHandler::ConversationChannelHandler(std::weak_ptr<jami::JamiAccount>&&, jami::ConnectionManager&)'
/usr/bin/ld: <artificial>:(.text+0x80d7): undefined reference to `jami::SyncChannelHandler::SyncChannelHandler(std::weak_ptr<jami::JamiAccount>&&, jami::ConnectionManager&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans14.ltrans.o: in function `std::_Function_handler<void (), jami::JamiAccount::loadAccount(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&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#5}::operator()(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const::{lambda()#1}>::_M_invoke(std::_Any_data const&)':
<artificial>:(.text+0x42d2): undefined reference to `jami::ConversationModule::acceptConversationRequest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans14.ltrans.o: in function `std::_Function_handler<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), jami::JamiAccount::doRegister_()::{lambda(dht::Hash<32ul> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<jami::ChannelSocket>)#11}::operator()(dht::Hash<32ul> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<jami::ChannelSocket>) const::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)#2}>::_M_invoke(std::_Any_data const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) [clone .lto_priv.0]':
<artificial>:(.text+0x43bf): undefined reference to `jami::ConversationModule::setFetched(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&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans14.ltrans.o: in function `std::_Function_handler<void (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> > const&, long), jami::JamiAccount::loadAccount(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&)::{lambda(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> > const&, long)#3}>::_M_invoke(std::_Any_data 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> > const&, long&&) [clone .lto_priv.0]':
<artificial>:(.text+0x6091): undefined reference to `jami::ConversationModule::getOneToOneConversation(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: <artificial>:(.text+0x60b5): undefined reference to `jami::ConversationModule::onTrustRequest(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> > const&, long)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans14.ltrans.o: in function `std::_Function_handler<void (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&), jami::JamiAccount::loadAccount(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&)::{lambda(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&)#6}>::_M_invoke(std::_Any_data 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&) [clone .lto_priv.0]':
<artificial>:(.text+0x6bea): undefined reference to `jami::ConversationModule::getOneToOneConversation(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: <artificial>:(.text+0x6c18): undefined reference to `jami::ConversationModule::initReplay(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&)'
/usr/bin/ld: <artificial>:(.text+0x6c2d): undefined reference to `jami::ConversationModule::removeConversation(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: <artificial>:(.text+0x6c45): undefined reference to `jami::ConversationModule::cloneConversationFrom(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&)'
/usr/bin/ld: <artificial>:(.text+0x6cbe): undefined reference to `jami::ConversationModule::checkIfRemoveForCompat(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans14.ltrans.o: in function `std::_Function_handler<void (std::shared_ptr<dht::crypto::Certificate> const&), jami::JamiAccount::trackPresence(dht::Hash<20ul> const&, jami::JamiAccount::BuddyInfo&)::{lambda(jami::DeviceAnnouncement&&, bool)#1}::operator()(jami::DeviceAnnouncement&&, bool) const::{lambda()#1}::operator()() const::{lambda(std::shared_ptr<dht::crypto::Certificate> const&)#1}>::_M_invoke(std::_Any_data const&, std::shared_ptr<dht::crypto::Certificate> const&) [clone .lto_priv.0]':
<artificial>:(.text+0x78fa): undefined reference to `jami::ConversationModule::needsSyncingWith(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&) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans14.ltrans.o: in function `std::_Function_handler<void (std::shared_ptr<jami::ChannelSocket>, dht::Hash<32ul> const&), jami::JamiAccount::doRegister_()::{lambda(bool)#8}::operator()(bool) const::{lambda(std::shared_ptr<dht::crypto::Certificate> const&)#1}::operator()(std::shared_ptr<dht::crypto::Certificate> const&) const::{lambda(std::shared_ptr<jami::ChannelSocket>, dht::Hash<32ul> const&)#1}>::_M_invoke(std::_Any_data const&, std::shared_ptr<jami::ChannelSocket>&&, dht::Hash<32ul> const&)':
<artificial>:(.text+0x7a71): undefined reference to `jami::SyncModule::syncWith(dht::Hash<32ul> const&, std::shared_ptr<jami::ChannelSocket> const&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans15.ltrans.o: in function `std::_Function_handler<void (), jami::runOnMainThread<jami::JamiAccount::doRegister_()::{lambda(dht::Hash<32ul> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<jami::ChannelSocket>)#11}::operator()(dht::Hash<32ul> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<jami::ChannelSocket>) const::{lambda()#3}::operator()() const::{lambda()#1}>(jami::JamiAccount::doRegister_()::{lambda(dht::Hash<32ul> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<jami::ChannelSocket>)#11}::operator()(dht::Hash<32ul> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::shared_ptr<jami::ChannelSocket>) const::{lambda()#3}::operator()() const::{lambda()#1}&&)::{lambda()#1}>::_M_invoke(std::_Any_data const&) [clone .lto_priv.0]':
<artificial>:(.text+0x2b8d): undefined reference to `jami::GitServer::~GitServer()'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans15.ltrans.o: in function `std::_Function_handler<void (), jami::runOnMainThread<jami::JamiAccount::convModule()::{lambda()#1}::operator()() const::{lambda()#1}>(jami::JamiAccount::convModule()::{lambda()#1}::operator()() const::{lambda()#1}&&)::{lambda()#1}>::_M_invoke(std::_Any_data const&)':
<artificial>:(.text+0x78e1): undefined reference to `jami::SyncModule::syncWithConnected()'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans19.ltrans.o: in function `jami::DhtPeerConnector::requestConnection(DRing::DataTransferInfo const&, unsigned long const&, bool, std::function<void (std::shared_ptr<jami::ChanneledOutgoingTransfer> const&)> const&, std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)> const&)':
<artificial>:(.text+0x5bd5): undefined reference to `jami::ConversationModule::getConversationMembers(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: <artificial>:(.text+0x5c5e): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: <artificial>:(.text+0x66c0): undefined reference to `jami::ConversationModule::conversationInfos(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans20.ltrans.o: in function `jami::operator<<(std::ostream&, jami::AudioFormat const&)':
<artificial>:(.text+0x32e7): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans21.ltrans.o: in function `jami::AudioLayer::hardwareInputFormatAvailable(jami::AudioFormat)':
<artificial>:(.text+0x17fb): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans21.ltrans.o: in function `jami::AudioLayer::hardwareFormatAvailable(jami::AudioFormat, unsigned long)':
<artificial>:(.text+0x1beb): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans23.ltrans.o: in function `jami::MediaDemuxer::openInput(jami::DeviceParams const&)':
<artificial>:(.text+0x5f0d): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans24.ltrans.o: in function `jami::MediaFilter::initialize(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<jami::MediaStream, std::allocator<jami::MediaStream> > const&)':
<artificial>:(.text+0x4d55): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans24.ltrans.o:<artificial>:(.text+0x4e72): more undefined references to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)' follow
/usr/bin/ld: /tmp/ccTsnSkF.ltrans28.ltrans.o: in function `jami::Sdp::addMediaDescription(jami::MediaAttribute const&)':
<artificial>:(.text+0x983f): undefined reference to `jami::MediaAttribute::toString[abi:cxx11](bool) const'
/usr/bin/ld: <artificial>:(.text+0x9de9): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans29.ltrans.o: in function `jami::SIPAccount::newOutgoingCall(std::basic_string_view<char, std::char_traits<char> >, 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&)':
<artificial>:(.text+0x9849): undefined reference to `jami::MediaAttribute::buildMediaAttributesList(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&, bool)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans31.ltrans.o: in function `jami::SIPCall::configureRtpSession(std::shared_ptr<jami::RtpSession> const&, std::shared_ptr<jami::MediaAttribute> const&, jami::MediaDescription const&, jami::MediaDescription const&)':
<artificial>:(.text+0x1382): undefined reference to `jami::MediaAttribute::mediaTypeToString(jami::MediaType)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans31.ltrans.o: in function `jami::SIPCall::answerMediaChangeRequest(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&)':
<artificial>:(.text+0x2f76): undefined reference to `jami::MediaAttribute::buildMediaAttributesList(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&, bool)'
/usr/bin/ld: <artificial>:(.text+0x3011): undefined reference to `jami::MediaAttribute::toString[abi:cxx11](bool) const'
/usr/bin/ld: <artificial>:(.text+0x30e0): undefined reference to `jami::MediaAttribute::toString[abi:cxx11](bool) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans31.ltrans.o: in function `jami::SIPCall::SIPCall(std::shared_ptr<jami::SIPAccountBase> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, jami::Call::CallType, 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&)':
<artificial>:(.text+0x60ff): undefined reference to `jami::MediaAttribute::buildMediaAttributesList(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&, bool)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans31.ltrans.o: in function `jami::SIPCall::answer(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&)':
<artificial>:(.text+0x7f69): undefined reference to `jami::MediaAttribute::buildMediaAttributesList(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&, bool)'
/usr/bin/ld: <artificial>:(.text+0x804e): undefined reference to `jami::MediaAttribute::toString[abi:cxx11](bool) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans32.ltrans.o: in function `jami::SIPCall::muteMedia(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool)':
<artificial>:(.text+0x1acd): undefined reference to `jami::MediaAttribute::stringToMediaType(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/usr/bin/ld: <artificial>:(.text+0x1b89): undefined reference to `jami::MediaAttribute::mediaAttributesToMediaMaps[abi:cxx11](std::vector<jami::MediaAttribute, std::allocator<jami::MediaAttribute> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans32.ltrans.o: in function `jami::SIPCall::addLocalIceAttributes()':
<artificial>:(.text+0x2b12): undefined reference to `jami::MediaAttribute::toString[abi:cxx11](bool) const'
/usr/bin/ld: <artificial>:(.text+0x2bc8): undefined reference to `jami::MediaAttribute::toString[abi:cxx11](bool) const'
/usr/bin/ld: <artificial>:(.text+0x2dcd): undefined reference to `jami::MediaAttribute::toString[abi:cxx11](bool) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans32.ltrans.o: in function `jami::SIPCall::initMediaStreams(std::vector<jami::MediaAttribute, std::allocator<jami::MediaAttribute> > const&)':
<artificial>:(.text+0x3db8): undefined reference to `jami::MediaAttribute::toString[abi:cxx11](bool) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans32.ltrans.o: in function `jami::SIPCall::updateNegotiatedMedia()':
<artificial>:(.text+0x43d6): undefined reference to `jami::MediaAttribute::mediaAttributesToMediaMaps[abi:cxx11](std::vector<jami::MediaAttribute, std::allocator<jami::MediaAttribute> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans32.ltrans.o: in function `jami::SIPCall::updateAllMediaStreams(std::vector<jami::MediaAttribute, std::allocator<jami::MediaAttribute> > const&)':
<artificial>:(.text+0x597e): undefined reference to `jami::MediaAttribute::toString[abi:cxx11](bool) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans32.ltrans.o: in function `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&)':
<artificial>:(.text+0x5bfa): undefined reference to `jami::MediaAttribute::buildMediaAttributesList(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&, bool)'
/usr/bin/ld: <artificial>:(.text+0x5cad): undefined reference to `jami::MediaAttribute::toString[abi:cxx11](bool) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans32.ltrans.o: in function `jami::SIPCall::onReceiveReinvite(pjmedia_sdp_session const*, pjsip_rx_data*)':
<artificial>:(.text+0x6d1d): undefined reference to `jami::MediaAttribute::mediaAttributesToMediaMaps[abi:cxx11](std::vector<jami::MediaAttribute, std::allocator<jami::MediaAttribute> >)'
/usr/bin/ld: <artificial>:(.text+0x6ea5): undefined reference to `jami::MediaAttribute::mediaAttributesToMediaMaps[abi:cxx11](std::vector<jami::MediaAttribute, std::allocator<jami::MediaAttribute> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans32.ltrans.o: in function `jami::SIPCall::monitor() const':
<artificial>:(.text+0x761e): undefined reference to `jami::MediaAttribute::toString[abi:cxx11](bool) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans32.ltrans.o: in function `jami::SIPCall::toggleRecording()':
<artificial>:(.text+0x7937): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans33.ltrans.o: in function `jami::SIPPresence::publish_cb(pjsip_publishc_cbparam*)':
<artificial>:(.text+0x67c7): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans34.ltrans.o: in function `jami::transaction_request_cb(pjsip_rx_data*)':
<artificial>:(.text+0x5b7f): undefined reference to `jami::MediaAttribute::mediaAttributesToMediaMaps[abi:cxx11](std::vector<jami::MediaAttribute, std::allocator<jami::MediaAttribute> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans34.ltrans.o: in function `jami::sdp_create_offer_cb(pjsip_inv_session*, pjmedia_sdp_session**)':
<artificial>:(.text+0x77e5): undefined reference to `jami::MediaAttribute::toString[abi:cxx11](bool) const'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans36.ltrans.o: in function `int fmt::v8::detail::parse_nonnegative_int<char>(char const*&, char const*, int) [clone .part.0] [clone .lto_priv.0]':
<artificial>:(.text+0xa39): undefined reference to `fmt::v8::detail::assert_fail(char const*, int, char const*)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans36.ltrans.o: in function `fmt::v8::detail::format_decimal_result<char*> fmt::v8::detail::format_decimal<char, unsigned int>(char*, unsigned int, int)':
<artificial>:(.text+0xafd): undefined reference to `fmt::v8::detail::assert_fail(char const*, int, char const*)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans36.ltrans.o: in function `int fmt::v8::detail::get_dynamic_spec<fmt::v8::detail::width_checker, fmt::v8::basic_format_arg<fmt::v8::basic_format_context<fmt::v8::appender, char> >, fmt::v8::detail::error_handler>(fmt::v8::basic_format_arg<fmt::v8::basic_format_context<fmt::v8::appender, char> >, fmt::v8::detail::error_handler)':
<artificial>:(.text+0xe66): undefined reference to `fmt::v8::detail::error_handler::on_error(char const*)'
/usr/bin/ld: <artificial>:(.text+0xe86): undefined reference to `fmt::v8::detail::error_handler::on_error(char const*)'
/usr/bin/ld: <artificial>:(.text+0xecd): undefined reference to `fmt::v8::detail::error_handler::on_error(char const*)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans36.ltrans.o: in function `int fmt::v8::detail::get_dynamic_spec<fmt::v8::detail::precision_checker, fmt::v8::basic_format_arg<fmt::v8::basic_format_context<fmt::v8::appender, char> >, fmt::v8::detail::error_handler>(fmt::v8::basic_format_arg<fmt::v8::basic_format_context<fmt::v8::appender, char> >, fmt::v8::detail::error_handler)':
<artificial>:(.text+0xf26): undefined reference to `fmt::v8::detail::error_handler::on_error(char const*)'
/usr/bin/ld: <artificial>:(.text+0xf46): undefined reference to `fmt::v8::detail::error_handler::on_error(char const*)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans36.ltrans.o:<artificial>:(.text+0xf8d): more undefined references to `fmt::v8::detail::error_handler::on_error(char const*)' follow
/usr/bin/ld: /tmp/ccTsnSkF.ltrans36.ltrans.o: in function `void fmt::v8::detail::buffer<char>::append<char>(char const*, char const*)':
<artificial>:(.text+0x2f9e): undefined reference to `fmt::v8::detail::assert_fail(char const*, int, char const*)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans36.ltrans.o: in function `std::make_unsigned<int>::type fmt::v8::detail::to_unsigned<int>(int) [clone .part.0] [clone .lto_priv.0]':
<artificial>:(.text+0x2fe9): undefined reference to `fmt::v8::detail::assert_fail(char const*, int, char const*)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans36.ltrans.o: in function `char const* fmt::v8::detail::do_parse_arg_id<char, fmt::v8::detail::parse_width<char, fmt::v8::detail::specs_checker<fmt::v8::detail::dynamic_specs_handler<fmt::v8::basic_format_parse_context<char, fmt::v8::detail::error_handler> > >&>(char const*, char const*, fmt::v8::detail::specs_checker<fmt::v8::detail::dynamic_specs_handler<fmt::v8::basic_format_parse_context<char, fmt::v8::detail::error_handler> > >&)::width_adapter&>(char const*, char const*, fmt::v8::detail::specs_checker<fmt::v8::detail::dynamic_specs_handler<fmt::v8::basic_format_parse_context<char, fmt::v8::detail::error_handler> > >&)':
<artificial>:(.text+0x3208): undefined reference to `fmt::v8::detail::assert_fail(char const*, int, char const*)'
/usr/bin/ld: <artificial>:(.text+0x321a): undefined reference to `fmt::v8::detail::error_handler::on_error(char const*)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans36.ltrans.o: in function `char const* fmt::v8::detail::parse_precision<char, fmt::v8::detail::specs_checker<fmt::v8::detail::dynamic_specs_handler<fmt::v8::basic_format_parse_context<char, fmt::v8::detail::error_handler> > >&>(char const*, char const*, fmt::v8::detail::specs_checker<fmt::v8::detail::dynamic_specs_handler<fmt::v8::basic_format_parse_context<char, fmt::v8::detail::error_handler> > >&)':
<artificial>:(.text+0x34f5): undefined reference to `fmt::v8::detail::error_handler::on_error(char const*)'
/usr/bin/ld: <artificial>:(.text+0x3502): undefined reference to `fmt::v8::detail::error_handler::on_error(char const*)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans36.ltrans.o: in function `fmt::v8::appender fmt::v8::detail::write<char, fmt::v8::appender, unsigned int, 0>(fmt::v8::appender, unsigned int, fmt::v8::basic_format_specs<char> const&, fmt::v8::detail::locale_ref)':
<artificial>:(.text+0x3e5d): undefined reference to `fmt::v8::detail::thousands_sep_result<char> fmt::v8::detail::thousands_sep_impl<char>(fmt::v8::detail::locale_ref)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans36.ltrans.o: in function `void fmt::v8::detail::value<fmt::v8::basic_format_context<fmt::v8::appender, char> >::format_custom_arg<fmt::v8::join_view<__gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >, __gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >, char>, fmt::v8::formatter<fmt::v8::join_view<__gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >, __gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >, char>, char, void> >(void const*, fmt::v8::basic_format_parse_context<char, fmt::v8::detail::error_handler>&, fmt::v8::basic_format_context<fmt::v8::appender, char>&)':
<artificial>:(.text+0x49fa): undefined reference to `fmt::v8::detail::error_handler::on_error(char const*)'
/usr/bin/ld: <artificial>:(.text+0x53b2): undefined reference to `fmt::v8::detail::error_handler::on_error(char const*)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans36.ltrans.o: in function `jami::Account::serialize(YAML::Emitter&) const':
<artificial>:(.text+0x7faf): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans36.ltrans.o: in function `fmt::v8::appender fmt::v8::detail::write<char, fmt::v8::appender, unsigned int, 0>(fmt::v8::appender, unsigned int, fmt::v8::basic_format_specs<char> const&, fmt::v8::detail::locale_ref) [clone .cold]':
<artificial>:(.text.unlikely+0x29b): undefined reference to `vtable for fmt::v8::format_error'
/usr/bin/ld: <artificial>:(.text.unlikely+0x2a2): undefined reference to `fmt::v8::format_error::~format_error()'
/usr/bin/ld: <artificial>:(.text.unlikely+0x2ac): undefined reference to `typeinfo for fmt::v8::format_error'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans36.ltrans.o: in function `void fmt::v8::detail::value<fmt::v8::basic_format_context<fmt::v8::appender, char> >::format_custom_arg<fmt::v8::join_view<__gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >, __gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >, char>, fmt::v8::formatter<fmt::v8::join_view<__gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >, __gnu_cxx::__normal_iterator<unsigned int*, std::vector<unsigned int, std::allocator<unsigned int> > >, char>, char, void> >(void const*, fmt::v8::basic_format_parse_context<char, fmt::v8::detail::error_handler>&, fmt::v8::basic_format_context<fmt::v8::appender, char>&) [clone .cold]':
<artificial>:(.text.unlikely+0x346): undefined reference to `vtable for fmt::v8::format_error'
/usr/bin/ld: <artificial>:(.text.unlikely+0x34d): undefined reference to `fmt::v8::format_error::~format_error()'
/usr/bin/ld: <artificial>:(.text.unlikely+0x357): undefined reference to `typeinfo for fmt::v8::format_error'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans38.ltrans.o: in function `jami::Conference::takeOverMediaSourceControl(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
<artificial>:(.text+0x776b): undefined reference to `jami::MediaAttribute::mediaTypeToString(jami::MediaType)'
/usr/bin/ld: <artificial>:(.text+0x78fe): undefined reference to `jami::MediaAttribute::mediaAttributesToMediaMaps[abi:cxx11](std::vector<jami::MediaAttribute, std::allocator<jami::MediaAttribute> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans39.ltrans.o: in function `jami::SubOutgoingFileTransfer::setOnRecv(std::function<void (std::basic_string_view<char, std::char_traits<char> >)>&&)':
<artificial>:(.text+0x7db1): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans41.ltrans.o: in function `jami::fileutils::sha3File(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
<artificial>:(.text+0x2668): undefined reference to `nettle_sha3_512_init'
/usr/bin/ld: <artificial>:(.text+0x2913): undefined reference to `nettle_sha3_512_update'
/usr/bin/ld: <artificial>:(.text+0x295b): undefined reference to `nettle_sha3_512_digest'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans41.ltrans.o: in function `jami::fileutils::sha3sum[abi:cxx11](std::vector<unsigned char, std::allocator<unsigned char> > const&)':
<artificial>:(.text+0x2a62): undefined reference to `nettle_sha3_512_init'
/usr/bin/ld: <artificial>:(.text+0x2a7d): undefined reference to `nettle_sha3_512_update'
/usr/bin/ld: <artificial>:(.text+0x2a8e): undefined reference to `nettle_sha3_512_digest'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans42.ltrans.o: in function `jami::IceTransport::getLocalCandidates[abi:cxx11](unsigned int) const':
<artificial>:(.text+0x3838): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans42.ltrans.o: in function `jami::IceTransport::getLocalCandidates[abi:cxx11](unsigned int, unsigned int) const':
<artificial>:(.text+0x3bf5): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans43.ltrans.o: in function `jami::Manager::finish()':
<artificial>:(.text+0x6d64): undefined reference to `git_libgit2_shutdown'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans43.ltrans.o: in function `jami::Manager::init(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
<artificial>:(.text+0x85fc): undefined reference to `git_libgit2_init'
/usr/bin/ld: <artificial>:(.text+0x8605): undefined reference to `p2p_transport_cb(git_transport**, git_remote*, void*)'
/usr/bin/ld: <artificial>:(.text+0x8612): undefined reference to `git_transport_register'
/usr/bin/ld: <artificial>:(.text+0x889e): undefined reference to `git_libgit2_version'
/usr/bin/ld: <artificial>:(.text+0x8e62): undefined reference to `giterr_last'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans44.ltrans.o: in function `jami::Manager::incomingCall(jami::Call&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
<artificial>:(.text+0x851a): undefined reference to `jami::MediaAttribute::mediaAttributesToMediaMaps[abi:cxx11](std::vector<jami::MediaAttribute, std::allocator<jami::MediaAttribute> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans44.ltrans.o: in function `jami::Manager::audioFormatUsed(jami::AudioFormat)':
<artificial>:(.text+0x8f72): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: <artificial>:(.text+0x8fc9): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans46.ltrans.o: in function `void fmt::v8::detail::value<fmt::v8::basic_format_context<fmt::v8::appender, char> >::format_custom_arg<fmt::v8::join_view<std::_Rb_tree_const_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Rb_tree_const_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>, fmt::v8::formatter<fmt::v8::join_view<std::_Rb_tree_const_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Rb_tree_const_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>, char, void> >(void const*, fmt::v8::basic_format_parse_context<char, fmt::v8::detail::error_handler>&, fmt::v8::basic_format_context<fmt::v8::appender, char>&)':
<artificial>:(.text+0x1a20): undefined reference to `fmt::v8::detail::error_handler::on_error(char const*)'
/usr/bin/ld: <artificial>:(.text+0x1a6a): undefined reference to `fmt::v8::detail::error_handler::on_error(char const*)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans46.ltrans.o: in function `jami::to_hex_string[abi:cxx11](unsigned long)':
<artificial>:(.text+0x4c63): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans46.ltrans.o: in function `jami::string_join(std::set<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::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::basic_string_view<char, std::char_traits<char> >)':
<artificial>:(.text+0x50be): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans46.ltrans.o: in function `jami::AlsaLayer::buildDeviceTopo(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)':
<artificial>:(.text+0x5d5d): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans46.ltrans.o: in function `jami::AlsaLayer::soundCardIndexExists(int, jami::AudioDeviceType)':
<artificial>:(.text+0x5daf): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans46.ltrans.o: in function `jami::AlsaLayer::alsa_set_params(_snd_pcm*, jami::AudioFormat&)':
<artificial>:(.text+0x7193): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans46.ltrans.o:<artificial>:(.text+0x7ba4): more undefined references to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)' follow
/usr/bin/ld: /tmp/ccTsnSkF.ltrans46.ltrans.o: in function `void fmt::v8::detail::value<fmt::v8::basic_format_context<fmt::v8::appender, char> >::format_custom_arg<fmt::v8::join_view<std::_Rb_tree_const_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Rb_tree_const_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>, fmt::v8::formatter<fmt::v8::join_view<std::_Rb_tree_const_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Rb_tree_const_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char>, char, void> >(void const*, fmt::v8::basic_format_parse_context<char, fmt::v8::detail::error_handler>&, fmt::v8::basic_format_context<fmt::v8::appender, char>&) [clone .cold]':
<artificial>:(.text.unlikely+0x1f3): undefined reference to `vtable for fmt::v8::format_error'
/usr/bin/ld: <artificial>:(.text.unlikely+0x1fa): undefined reference to `fmt::v8::format_error::~format_error()'
/usr/bin/ld: <artificial>:(.text.unlikely+0x204): undefined reference to `typeinfo for fmt::v8::format_error'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans50.ltrans.o: in function `jami::video::VideoDeviceMonitor::getCapabilities(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const':
<artificial>:(.text+0x3b03): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans50.ltrans.o: in function `jami::video::VideoDevice::applySettings(jami::video::VideoSettings)':
<artificial>:(.text+0x84d7): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans50.ltrans.o: in function `jami::video::VideoDevice::getSettings() const':
<artificial>:(.text+0x88c2): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans51.ltrans.o: in function `jami::video::VideoDeviceMonitor::addDevice(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&)':
<artificial>:(.text+0x4f69): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans52.ltrans.o: in function `jami::video::HardwareAccel::getCodecName[abi:cxx11]() const':
<artificial>:(.text+0xf94): undefined reference to `fmt::v8::vformat[abi:cxx11](fmt::v8::basic_string_view<char>, fmt::v8::basic_format_args<fmt::v8::basic_format_context<fmt::v8::appender, char> >)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans54.ltrans.o: in function `std::_Function_handler<int (jami::DLPlugin const*, void*), jami::ChatServicesManager::registerChatService(jami::PluginManager&)::{lambda(jami::DLPlugin const*, void*)#1}>::_M_invoke(std::_Any_data const&, jami::DLPlugin const*&&, void*&&) [clone .lto_priv.0]':
<artificial>:(.text+0x514c): undefined reference to `jami::ConversationModule::sendMessage(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::__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&, bool, std::function<void (bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>&&)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans55.ltrans.o: in function `jami::Call::Call(std::shared_ptr<jami::Account> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, jami::Call::CallType, 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&)::{lambda(jami::Call::CallState, jami::Call::ConnectionState, int)#1}::operator()(jami::Call::CallState, jami::Call::ConnectionState, int) const [clone .constprop.0]':
<artificial>:(.text+0x70cf): undefined reference to `jami::ConversationModule::addCallHistoryMessage(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans57.ltrans.o: in function `decltype (({parm#2}.out)()) fmt::v8::formatter<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, char, void>::format<fmt::v8::basic_format_context<fmt::v8::appender, char> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, fmt::v8::basic_format_context<fmt::v8::appender, char>&) const [clone .isra.0]':
<artificial>:(.text+0x4892): undefined reference to `fmt::v8::detail::error_handler::on_error(char const*)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans58.ltrans.o: in function `fmt::v8::detail::dynamic_specs_handler<fmt::v8::basic_format_parse_context<char, fmt::v8::detail::error_handler> >::on_error(char const*) [clone .isra.0]':
<artificial>:(.text+0xbc6): undefined reference to `fmt::v8::detail::error_handler::on_error(char const*)'
/usr/bin/ld: /tmp/ccTsnSkF.ltrans58.ltrans.o: in function `std::_Rb_tree<unsigned long, std::pair<unsigned long const, std::unique_ptr<jami::GitServer, std::default_delete<jami::GitServer> > >, std::_Select1st<std::pair<unsigned long const, std::unique_ptr<jami::GitServer, std::default_delete<jami::GitServer> > > >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::unique_ptr<jami::GitServer, std::default_delete<jami::GitServer> > > > >::_M_erase(std::_Rb_tree_node<std::pair<unsigned long const, std::unique_ptr<jami::GitServer, std::default_delete<jami::GitServer> > > >*) [clone .isra.0]':
<artificial>:(.text+0x5f2b): undefined reference to `jami::GitServer::~GitServer()'
```
I will check if this is meson related or not by retrying with autotools.
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/483
SIP account: app freezes when finishing call
2023-09-29T10:00:22Z
Kateryna Kostiuk
SIP account: app freezes when finishing call
Backlog
Mohamed Chibani
Mohamed Chibani
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/529
SIP: refactor SIPCall and related classes and routines
2023-09-29T10:00:20Z
Mohamed Chibani
SIP: refactor SIPCall and related classes and routines
The goal of the refactor is to improve stability (prevent crashes and deadlocks), clarify interactions between SIPCall class with other classes/routines. Three main changes will be introduced in this activity:
**1- Add an interface to r...
The goal of the refactor is to improve stability (prevent crashes and deadlocks), clarify interactions between SIPCall class with other classes/routines. Three main changes will be introduced in this activity:
**1- Add an interface to report PJSIP events**\
The use of this interface is to give limited access to SIPCall from SipVoipLink class and related routines.
All processing involving SIPCall properties (such as SDP and RTP sessions) should be done as much as possible within SIPCall class to enhance encapsulation.
**2- Use the same thread (SIP thread) for SipVoIPLink events hander and SIP Transport**\
All events (hopefully) reported by PSIP lib will be reported on the same thread, which will help reduce data race on SIPCall class in particular.
**3- Run most of the task involving SIPCall on the same thread**
Dispatch tasks (when possible) on the SIP thread. Note that some calls still need to access SIPCall synchronously (getters in particular).
Backlog
Mohamed Chibani
Mohamed Chibani
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/498
Plugins(Windows): uninstalling plugins may fail if in use
2023-09-29T09:59:53Z
Andreas Traczyk
Plugins(Windows): uninstalling plugins may fail if in use
The Windows API FreeLibrary used in dlclose reports success but the module is sometimes not actually unloaded.
This results in the removal of the plugin's files to fail.
The Windows API FreeLibrary used in dlclose reports success but the module is sometimes not actually unloaded.
This results in the removal of the plugin's files to fail.
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/434
UPNP/NAT-PMP - Enable NAT-PMP on Android
2023-09-29T09:59:34Z
Mohamed Chibani
UPNP/NAT-PMP - Enable NAT-PMP on Android
Backlog
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/324
Outgoing frames do not recover after connection is lost during a call
2023-09-29T09:59:09Z
Albert Babí Oller
Outgoing frames do not recover after connection is lost during a call
If during a video call there is a cut on the connection the following error is continuously shown:
```
[1602496161.989|18173|media_encoder.cpp :526 ] av_write_frame failed: Input/output error
```
When recovering the connection the messa...
If during a video call there is a cut on the connection the following error is continuously shown:
```
[1602496161.989|18173|media_encoder.cpp :526 ] av_write_frame failed: Input/output error
```
When recovering the connection the message does not stop and outgoing frames are not sent until call is restarted. This is not the case for the incoming video, which is recovered on re-connection.
Tested on linux qt and gtk clients.
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/392
redo daemon initialization
2023-09-29T09:59:02Z
Sébastien Blin
redo daemon initialization
TODO
Manager iterate over accounts
-> if enabled, load structures and emit to the client that account is loaded
-> Then try to connect
-> Once connected sync & start put/listen
TODO
Manager iterate over accounts
-> if enabled, load structures and emit to the client that account is loaded
-> Then try to connect
-> Once connected sync & start put/listen
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/263
Could i use jami on raspberry pi with Pi CSI Camera?
2023-09-29T09:58:40Z
joelihn
Could i use jami on raspberry pi with Pi CSI Camera?
I have a raspberry pi (raspbian) ,connected a picamera with csi cable.
When i run *jamid -c -d * ,the terminal output print some red error words:
*"Continuous Frame sizes not supported"*
I search this string,find in src/media/video/v4...
I have a raspberry pi (raspbian) ,connected a picamera with csi cable.
When i run *jamid -c -d * ,the terminal output print some red error words:
*"Continuous Frame sizes not supported"*
I search this string,find in src/media/video/v4l2/video_device_impl.cpp: line:352
```cpp
if (frmsize.type != V4L2_FRMSIZE_TYPE_DISCRETE) {
// We do not take care of V4L2_FRMSIZE_TYPE_CONTINUOUS or V4L2_FRMSIZE_TYPE_STEPWISE
JAMI_ERR("Continuous Frame sizes not supported");
return pixelformat;
}
```
I want to know how can i support capture device that frmsize.type is STEPWISE type, like picamera.
thanks!