jami-daemon issueshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues2021-12-16T14:19:41Zhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/676Crash in OpenSL Layer - Android2021-12-16T14:19:41ZSébastien BlinCrash in OpenSL Layer - AndroidPotential crash on playstore:
```
backtrace:
#00 pc 0000000000085888 /apex/com.android.runtime/lib64/bionic/libc.so (__memcpy+248)
#00 pc 00000000009cf9ec /data/app/~~QWALmU1nwmeEvS6MLMbQ2Q==/cx.ring-IkugpkPqtZLOBFWZ6inK1Q==/lib...Potential crash on playstore:
```
backtrace:
#00 pc 0000000000085888 /apex/com.android.runtime/lib64/bionic/libc.so (__memcpy+248)
#00 pc 00000000009cf9ec /data/app/~~QWALmU1nwmeEvS6MLMbQ2Q==/cx.ring-IkugpkPqtZLOBFWZ6inK1Q==/lib/arm64/libring.so
#00 pc 00000000009d18d8 /data/app/~~QWALmU1nwmeEvS6MLMbQ2Q==/cx.ring-IkugpkPqtZLOBFWZ6inK1Q==/lib/arm64/libring.so
#00 pc 000000000001c0e8 /system/lib64/libwilhelm.so (audioTrack_callBack_pullFromBuffQueue(int, void*, void*)+180)
#00 pc 0000000000079c68 /system/lib64/libaudioclient.so (android::AudioTrack::processAudioBuffer()+2368)
#00 pc 0000000000078f7c /system/lib64/libaudioclient.so (android::AudioTrack::AudioTrackThread::threadLoop()+312)
#00 pc 00000000000154dc /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+460)
#00 pc 00000000000a4d20 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+140)
#00 pc 0000000000014cd8 /system/lib64/libutils.so (thread_data_t::trampoline(thread_data_t const*)+412)
#00 pc 00000000000eb0ec /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64)
#00 pc 000000000008b850 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
```
On my device:
```
2021-12-15 10:27:34.827 26087-26087/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2021-12-15 10:27:34.827 26087-26087/? A/DEBUG: Build fingerprint: 'motorola/kiev_retailu/kiev:11/RZKS31.Q3-25-15-1/d940e8:user/release-keys'
2021-12-15 10:27:34.827 26087-26087/? A/DEBUG: Revision: 'pvt'
2021-12-15 10:27:34.827 26087-26087/? A/DEBUG: ABI: 'arm64'
2021-12-15 10:27:34.828 26087-26087/? A/DEBUG: Timestamp: 2021-12-15 10:27:34-0500
2021-12-15 10:27:34.828 26087-26087/? A/DEBUG: pid: 22160, tid: 26084, name: AudioTrack >>> cx.ring <<<
2021-12-15 10:27:34.828 26087-26087/? A/DEBUG: uid: 10387
2021-12-15 10:27:34.828 26087-26087/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x8ecfe25800000000
2021-12-15 10:27:34.828 26087-26087/? A/DEBUG: x0 8ecfe25800000000 x1 b4000072d1ce0b00 x2 00000000000001e0 x3 8ecfe25800000000
2021-12-15 10:27:34.828 26087-26087/? A/DEBUG: x4 b4000072d1ce0ce0 x5 8ecfe258000001e0 x6 0000000000000000 x7 0000000000000000
2021-12-15 10:27:34.828 26087-26087/? A/DEBUG: x8 00000000000000f0 x9 0000000000000000 x10 8ecfe26000000071 x11 0000000000000000
2021-12-15 10:27:34.828 26087-26087/? A/DEBUG: x12 0000000000000000 x13 0000000000000000 x14 0000000000000002 x15 00000071e214c000
2021-12-15 10:27:34.828 26087-26087/? A/DEBUG: x16 0000007185219fe8 x17 0000007483a222c0 x18 0000007180846000 x19 b400007331c1c400
2021-12-15 10:27:34.828 26087-26087/? A/DEBUG: x20 b400007331c1b9b0 x21 00000071e214ba00 x22 b4000072a1c21130 x23 b400007331c1bbd8
2021-12-15 10:27:34.828 26087-26087/? A/DEBUG: x24 000000748308cea9 x25 00000071e214c000 x26 0000007183fc8454 x27 00000074851c0140
2021-12-15 10:27:34.828 26087-26087/? A/DEBUG: x28 00000071e214ba08 x29 00000071e214b5d0
2021-12-15 10:27:34.828 26087-26087/? A/DEBUG: lr 0000007183fc7f50 sp 00000071e214b5b0 pc 0000007483a22248 pst 0000000020001000
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: backtrace:
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #00 pc 000000000004a248 /apex/com.android.runtime/lib64/bionic/libc.so (__memcpy+248) (BuildId: 1fdafb7d457cc367eb58ced21a4fa8ac)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #01 pc 0000000000e79f4c /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (std::__ndk1::enable_if<(is_same<std::__ndk1::remove_const<short const>::type, short>::value) && (is_trivially_copy_assignable<short>::value), short*>::type std::__ndk1::__copy<short const, short>(short const*, short const*, short*)+80)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #02 pc 0000000000e79eec /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (short* std::__ndk1::copy<short const*, short*>(short const*, short const*, short*)+84)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #03 pc 0000000000e747f8 /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (std::__ndk1::enable_if<__is_cpp17_random_access_iterator<short const*>::value, short*>::type std::__ndk1::copy_n<short const*, int, short*>(short const*, int, short*)+52)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #04 pc 0000000000e72000 /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (jami::OpenSLLayer::engineServiceRing()+572)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #05 pc 0000000000e774d4 /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (decltype(*(std::__ndk1::forward<jami::OpenSLLayer*&>(fp0)).*fp()) std::__ndk1::__invoke<void (jami::OpenSLLayer::*&)(), jami::OpenSLLayer*&, void>(void (jami::OpenSLLayer::*&)(), jami::OpenSLLayer*&)+100)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #06 pc 0000000000e77460 /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (std::__ndk1::__bind_return<void (jami::OpenSLLayer::*)(), std::__ndk1::tuple<jami::OpenSLLayer*>, std::__ndk1::tuple<>, __is_valid_bind_return<void (jami::OpenSLLayer::*)(), std::__ndk1::tuple<jami::OpenSLLayer*>, std::__ndk1::tuple<> >::value>::type std::__ndk1::__apply_functor<void (jami::OpenSLLayer::*)(), std::__ndk1::tuple<jami::OpenSLLayer*>, 0ul, std::__ndk1::tuple<> >(void (jami::OpenSLLayer::*&)(), std::__ndk1::tuple<jami::OpenSLLayer*>&, std::__ndk1::__tuple_indices<0ul>, std::__ndk1::tuple<>&&)+72)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #07 pc 0000000000e77408 /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (std::__ndk1::__bind_return<void (jami::OpenSLLayer::*)(), std::__ndk1::tuple<jami::OpenSLLayer*>, std::__ndk1::tuple<>, __is_valid_bind_return<void (jami::OpenSLLayer::*)(), std::__ndk1::tuple<jami::OpenSLLayer*>, std::__ndk1::tuple<> >::value>::type std::__ndk1::__bind<void (jami::OpenSLLayer::*)(), jami::OpenSLLayer*>::operator()<>()+40)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #08 pc 0000000000e773bc /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (decltype(std::__ndk1::forward<std::__ndk1::__bind<void (jami::OpenSLLayer::*)(), jami::OpenSLLayer*>&>(fp)()) std::__ndk1::__invoke<std::__ndk1::__bind<void (jami::OpenSLLayer::*)(), jami::OpenSLLayer*>&>(std::__ndk1::__bind<void (jami::OpenSLLayer::*)(), jami::OpenSLLayer*>&)+24)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #09 pc 0000000000e77370 /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (void std::__ndk1::__invoke_void_return_wrapper<void>::__call<std::__ndk1::__bind<void (jami::OpenSLLayer::*)(), jami::OpenSLLayer*>&>(std::__ndk1::__bind<void (jami::OpenSLLayer::*)(), jami::OpenSLLayer*>&)+24)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #10 pc 0000000000e77348 /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (std::__ndk1::__function::__alloc_func<std::__ndk1::__bind<void (jami::OpenSLLayer::*)(), jami::OpenSLLayer*>, std::__ndk1::allocator<std::__ndk1::__bind<void (jami::OpenSLLayer::*)(), jami::OpenSLLayer*> >, void ()>::operator()()+24)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #11 pc 0000000000e76308 /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (std::__ndk1::__function::__func<std::__ndk1::__bind<void (jami::OpenSLLayer::*)(), jami::OpenSLLayer*>, std::__ndk1::allocator<std::__ndk1::__bind<void (jami::OpenSLLayer::*)(), jami::OpenSLLayer*> >, void ()>::operator()()+24)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #12 pc 0000000000c2dc14 /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (std::__ndk1::__function::__value_func<void ()>::operator()() const+56)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #13 pc 0000000000c2d6f0 /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (std::__ndk1::function<void ()>::operator()() const+20)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #14 pc 0000000000e7a5d0 /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (jami::opensl::AudioPlayer::processSLCallback(SLAndroidSimpleBufferQueueItf_ const* const*)+336)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #15 pc 0000000000e7a470 /data/app/~~Vlyg2gq6SPkC7Wb7M_ToPg==/cx.ring-u9ihF0JKX163ILKSJyh-FA==/lib/arm64/libring.so (jami::opensl::bqPlayerCallback(SLAndroidSimpleBufferQueueItf_ const* const*, void*)+28)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #16 pc 000000000001c118 /system/lib64/libwilhelm.so (audioTrack_callBack_pullFromBuffQueue(int, void*, void*)+180) (BuildId: 3dc436cad2f5774c2a5d1236156e2640)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #17 pc 0000000000078b78 /system/lib64/libaudioclient.so (android::AudioTrack::processAudioBuffer()+2376) (BuildId: e6b35b953c2ab1e220e508553e2c3803)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #18 pc 0000000000077f40 /system/lib64/libaudioclient.so (android::AudioTrack::AudioTrackThread::threadLoop()+272) (BuildId: e6b35b953c2ab1e220e508553e2c3803)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #19 pc 0000000000015598 /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+460) (BuildId: 5d6af74124211886d954d61c96514a46)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #20 pc 00000000000a1ec8 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+144) (BuildId: 8dd68419fe710778585e2c5c133d86e0)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #21 pc 0000000000014d94 /system/lib64/libutils.so (thread_data_t::trampoline(thread_data_t const*)+412) (BuildId: 5d6af74124211886d954d61c96514a46)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #22 pc 00000000000afc6c /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64) (BuildId: 1fdafb7d457cc367eb58ced21a4fa8ac)
2021-12-15 10:27:34.868 26087-26087/? A/DEBUG: #23 pc 00000000000502c8 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: 1fdafb7d457cc367eb58ced21a4fa8ac)
2021-12-15 10:27:35.236 991-991/? E/tombstoned: Tombstone written to: /data/tombstones/tombstone_11
2021-12-15 10:27:35.274 1697-8175/? E/FrameEvents: updateAcquireFence: Did not find frame.
```
Randomly happens when receiving a crash.
Observations. buf->cap_ is completely incorrect, so it's rather a bad queue or a bad buf_manager.hSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/665swarm: removeContact("self") removes all swarm2021-11-26T15:15:24ZSébastien Blinswarm: removeContact("self") removes all swarm# Scenario
Click on remove contact on a conversation with self => it removes all conv# Scenario
Click on remove contact on a conversation with self => it removes all convSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/660Conference, various crash on peer exit2021-11-24T14:58:45ZSébastien BlinConference, various crash on peer exit# Scenario
+ Alice call Bob
+ Alice adds Carla to the conference
+ Bob stop
+ Crash
```
0x00007fffedfe7364 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator std::basic_string_view<char, std::c...# Scenario
+ Alice call Bob
+ Alice adds Carla to the conference
+ Bob stop
+ Crash
```
0x00007fffedfe7364 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator std::basic_string_view<char, std::char_traits<char> >() const () from /lib64/libstdc++.so.6
(gdb) bt
#0 0x00007fffedfe7364 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator std::basic_string_view<char, std::char_traits<char> >() const () at /lib64/libstdc++.so.6
#1 0x00007fffec0f563c in std::less<void>::_S_cmp<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string_view<char, std::char_traits<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string_view<char, std::char_traits<char> > const&, std::integral_constant<bool, false>) (__t=<error reading variable: Cannot access memory at address 0x40>, __u="") at /usr/include/c++/10/bits/stl_function.h:601
#2 0x00007fffec0f569f in std::less<void>::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string_view<char, std::char_traits<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string_view<char, std::char_traits<char> > const&) const (this=0xc3c6c8, __t=<error reading variable: Cannot access memory at address 0x40>, __u="") at /usr/include/c++/10/bits/stl_function.h:586
#3 0x00007fffec0f0eeb in std::_Rb_tree<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::_Identity<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::less<void>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_lower_bound_tr<std::basic_string_view<char, std::char_traits<char> >, void>(std::basic_string_view<char, std::char_traits<char> > const&) const (this=0xc3c6c8, __k="") at /usr/include/c++/10/bits/stl_tree.h:1346
#4 0x00007fffec0eb35e in std::_Rb_tree<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::_Identity<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::less<void>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_find_tr<std::basic_string_view<char, std::char_traits<char> >, void>(std::basic_string_view<char, std::char_traits<char> > const&) const (this=0xc3c6c8, __k="") at /usr/include/c++/10/bits/stl_tree.h:1314
#5 0x00007fffec0e63b3 in std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<void>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::find<std::basic_string_view<char, std::char_traits<char> > >(std::basic_string_view<char, std::char_traits<char> > const&) const (this=0xc3c6c8, __x="") at /usr/include/c++/10/bits/stl_set.h:812
#6 0x00007fffec0d9002 in jami::Conference::isModerator(std::basic_string_view<char, std::char_traits<char> >) const (this=0xc3c4a0, uri="") at conference.cpp:946
#7 0x00007fffec0d327a in operator()() const (__closure=0x7ffe9e2422c0) at conference.cpp:100
#8 0x00007fffec0dc11a in operator()() (this=0x7ffe9e2422c0) at manager.h:1057
#9 0x00007fffec0de730 in std::__invoke_impl<void, jami::runOnMainThread<jami::Conference::Conference(bool)::<lambda(std::vector<jami::video::SourceInfo>&&)>::<lambda()> >::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...)
at /usr/include/c++/10/bits/invoke.h:60
#10 0x00007fffec0ddef4 in std::__invoke_r<void, jami::runOnMainThread<jami::Conference::Conference(bool)::<lambda(std::vector<jami::video::SourceInfo>&&)>::<lambda()> >::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/10/bits/invoke.h:110
#11 0x00007fffec0dd337 in std::_Function_handler<void(), jami::runOnMainThread<jami::Conference::Conference(bool)::<lambda(std::vector<jami::video::SourceInfo>&&)>::<lambda()> >::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...)
at /usr/include/c++/10/bits/std_function.h:291
#12 0x00007fffec1328d8 in std::function<void ()>::operator()() const (this=0x7ffe9e5d5e40) at /usr/include/c++/10/bits/std_function.h:622
#13 0x00007fffec205ce3 in jami::ScheduledExecutor::loop() (this=0xdc94a0) at scheduled_executor.cpp:137
#14 0x00007fffec2052a1 in operator()() const (__closure=0xe2e828) at scheduled_executor.cpp:32
#15 0x00007fffec207212 in std::__invoke_impl<void, jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> >(std::__invoke_other, struct {...} &&) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#16 0x00007fffec2071c7 in std::__invoke<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> >(struct {...} &&) (__fn=...) at /usr/include/c++/10/bits/invoke.h:95
#17 0x00007fffec207174 in std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0xe2e828) at /usr/include/c++/10/thread:264
#18 0x00007fffec207148 in std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > >::operator()(void) (this=0xe2e828) at /usr/include/c++/10/thread:271
#19 0x00007fffec20712c in std::thread::_State_impl<std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > > >::_M_run(void) (this=0xe2e820) at /usr/include/c++/10/thread:215
#20 0x00007fffedf38444 in execute_native_thread_routine () at /lib64/libstdc++.so.6
#21 0x00007fffed9513f9 in start_thread () at /lib64/libpthread.so.0
#22 0x00007fffedc354c3 in clone () at /lib64/libc.so.6
```
```
Thread 72 "jami-qt" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffebaffd640 (LWP 3232921)]
std::_Rb_tree<jami::Observable<std::shared_ptr<DRing::MediaFrame> >*, std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<jami::Observable<std::shared_ptr<DRing::MediaFrame> >*>, std::allocator<std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_lower_bound (this=0x817f990, __x=0xc, __y=0x817f998, __k=@0x7ffebaff92f0: 0xd117170) at /usr/include/c++/10/bits/stl_tree.h:1937
1937 if (!_M_impl._M_key_compare(_S_key(__x), __k))
(gdb) bt
#0 std::_Rb_tree<jami::Observable<std::shared_ptr<DRing::MediaFrame> >*, std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<jami::Observable<std::shared_ptr<DRing::MediaFrame> >*>, std::allocator<std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_lower_bound(std::_Rb_tree_node<std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*, std::_Rb_tree_node_base*, jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const&) (this=0x817f990, __x=0xc, __y=0x817f998, __k=@0x7ffebaff92f0: 0xd117170) at /usr/include/c++/10/bits/stl_tree.h:1937
#1 0x00007fffec0ea361 in std::_Rb_tree<jami::Observable<std::shared_ptr<DRing::MediaFrame> >*, std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<jami::Observable<std::shared_ptr<DRing::MediaFrame> >*>, std::allocator<std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::find(jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const&) (this=0x817f990, __k=@0x7ffebaff92f0: 0xd117170)
at /usr/include/c++/10/bits/stl_tree.h:2555
#2 0x00007fffec0e6513 in std::map<jami::Observable<std::shared_ptr<DRing::MediaFrame> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<jami::Observable<std::shared_ptr<DRing::MediaFrame> >*>, std::allocator<std::pair<jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::find(jami::Observable<std::shared_ptr<DRing::MediaFrame> >* const&) (this=0x817f990, __x=@0x7ffebaff92f0: 0xd117170)
at /usr/include/c++/10/bits/stl_map.h:1170
#3 0x00007fffec0d9af9 in jami::Conference::detachVideo(jami::Observable<std::shared_ptr<DRing::MediaFrame> >*) (this=0x817f860, frame=0xd117170) at conference.cpp:610
#4 0x00007fffec324a1a in jami::video::VideoRtpSession::setupConferenceVideoPipeline(jami::Conference&) (this=0xd120760, conference=...) at ./media/video/video_rtp_session.cpp:352
#5 0x00007fffec324795 in jami::video::VideoRtpSession::setupVideoPipeline() (this=0xd120760) at ./media/video/video_rtp_session.cpp:324
#6 0x00007fffec3242dc in jami::video::VideoRtpSession::start(std::unique_ptr<jami::IceSocket, std::default_delete<jami::IceSocket> >, std::unique_ptr<jami::IceSocket, std::default_delete<jami::IceSocket> >)
(this=0xd120760, rtp_sock=std::unique_ptr<jami::IceSocket> = {...}, rtcp_sock=std::unique_ptr<jami::IceSocket> = {...}) at ./media/video/video_rtp_session.cpp:271
#7 0x00007fffec37350e in jami::SIPCall::startAllMedia() (this=0xd117280) at ./sip/sipcall.cpp:2037
#8 0x00007fffec3756b4 in jami::SIPCall::onIceNegoSucceed() (this=0xd117280) at ./sip/sipcall.cpp:2472
#9 0x00007fffec378a1e in operator()() const (__closure=0x7ffb880099c0) at ./sip/sipcall.cpp:3129
#10 0x00007fffec37c878 in operator()() (this=0x7ffb880099c0) at ./manager.h:1057
#11 0x00007fffec3825e2 in std::__invoke_impl<void, jami::runOnMainThread<jami::SIPCall::initIceMediaTransport(bool, std::optional<jami::IceTransportOptions>)::<lambda(bool)>::<lambda()> >::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...)
at /usr/include/c++/10/bits/invoke.h:60
#12 0x00007fffec3813d2 in std::__invoke_r<void, jami::runOnMainThread<jami::SIPCall::initIceMediaTransport(bool, std::optional<jami::IceTransportOptions>)::<lambda(bool)>::<lambda()> >::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/10/bits/invoke.h:110
#13 0x00007fffec37f7c3 in std::_Function_handler<void(), jami::runOnMainThread<jami::SIPCall::initIceMediaTransport(bool, std::optional<jami::IceTransportOptions>)::<lambda(bool)>::<lambda()> >::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...)
at /usr/include/c++/10/bits/std_function.h:291
#14 0x00007fffec134480 in std::function<void ()>::operator()() const (this=0x7ffb880098f0) at /usr/include/c++/10/bits/std_function.h:622
#15 0x00007fffec20789d in jami::ScheduledExecutor::loop() (this=0xdcc320) at scheduled_executor.cpp:137
#16 0x00007fffec206e5b in operator()() const (__closure=0xdfcab8) at scheduled_executor.cpp:32
#17 0x00007fffec208dcc in std::__invoke_impl<void, jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> >(std::__invoke_other, struct {...} &&) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#18 0x00007fffec208d81 in std::__invoke<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> >(struct {...} &&) (__fn=...) at /usr/include/c++/10/bits/invoke.h:95
#19 0x00007fffec208d2e in std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0xdfcab8) at /usr/include/c++/10/thread:264
#20 0x00007fffec208d02 in std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > >::operator()(void) (this=0xdfcab8) at /usr/include/c++/10/thread:271
#21 0x00007fffec208ce6 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > > >::_M_run(void) (this=0xdfcab0) at /usr/include/c++/10/thread:215
#22 0x00007fffedf38444 in execute_native_thread_routine () at /lib64/libstdc++.so.6
#23 0x00007fffed9513f9 in start_thread () at /lib64/libpthread.so.0
#24 0x00007fffedc354c3 in clone () at /lib64/libc.so.6
```
```
0x00007fffedf23e53 in std::_Rb_tree_increment(std::_Rb_tree_node_base const*) () from /lib64/libstdc++.so.6
(gdb) bt
#0 0x00007fffedf23e53 in std::_Rb_tree_increment(std::_Rb_tree_node_base const*) () at /lib64/libstdc++.so.6
#1 0x00007fffec0e6993 in std::_Rb_tree_const_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::operator++() (this=0x7ffecaff92d8) at /usr/include/c++/10/bits/stl_tree.h:368
#2 0x00007fffec0dd8e7 in jami::Conference::isHost(std::basic_string_view<char, std::char_traits<char> >) const (this=0x9448cf0, uri="host") at conference.cpp:1158
#3 0x00007fffec0dc040 in jami::Conference::isHandRaised(std::basic_string_view<char, std::char_traits<char> >) const (this=0x9448cf0, uri="host") at conference.cpp:948
#4 0x00007fffec0d634d in operator()() const (__closure=0x7ffafc4be450) at conference.cpp:108
#5 0x00007fffec0dee4c in operator()() (this=0x7ffafc4be450) at manager.h:1057
#6 0x00007fffec0e045e in std::__invoke_impl<void, jami::runOnMainThread<jami::Conference::Conference(bool)::<lambda(std::vector<jami::video::SourceInfo>&&)>::<lambda()> >::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...)
at /usr/include/c++/10/bits/invoke.h:60
#7 0x00007fffec0e005c in std::__invoke_r<void, jami::runOnMainThread<jami::Conference::Conference(bool)::<lambda(std::vector<jami::video::SourceInfo>&&)>::<lambda()> >::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/10/bits/invoke.h:110
#8 0x00007fffec0dfa21 in std::_Function_handler<void(), jami::runOnMainThread<jami::Conference::Conference(bool)::<lambda(std::vector<jami::video::SourceInfo>&&)>::<lambda()> >::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...)
at /usr/include/c++/10/bits/std_function.h:291
#9 0x00007fffec134480 in std::function<void ()>::operator()() const (this=0x7ffb241e8d40) at /usr/include/c++/10/bits/std_function.h:622
#10 0x00007fffec20789d in jami::ScheduledExecutor::loop() (this=0xdcb3a0) at scheduled_executor.cpp:137
#11 0x00007fffec206e5b in operator()() const (__closure=0xde11c8) at scheduled_executor.cpp:32
#12 0x00007fffec208dcc in std::__invoke_impl<void, jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> >(std::__invoke_other, struct {...} &&) (__f=...) at /usr/include/c++/10/bits/invoke.h:60
#13 0x00007fffec208d81 in std::__invoke<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> >(struct {...} &&) (__fn=...) at /usr/include/c++/10/bits/invoke.h:95
#14 0x00007fffec208d2e in std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0xde11c8) at /usr/include/c++/10/thread:264
#15 0x00007fffec208d02 in std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > >::operator()(void) (this=0xde11c8) at /usr/include/c++/10/thread:271
#16 0x00007fffec208ce6 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<jami::ScheduledExecutor::ScheduledExecutor()::<lambda()> > > >::_M_run(void) (this=0xde11c0) at /usr/include/c++/10/thread:215
#17 0x00007fffedf38444 in execute_native_thread_routine () at /lib64/libstdc++.so.6
#18 0x00007fffed9513f9 in start_thread () at /lib64/libpthread.so.0
#19 0x00007fffedc354c3 in clone () at /lib64/libc.so.6
(gdb)
```Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/659swarm: stay in "Already fetching for"2021-12-01T21:30:50ZSébastien Blinswarm: stay in "Already fetching for"Sometime, communication between 2 same devices is blocked.
In the logs, I see "Already fetching for"
For now, no scenario is identifiedSometime, communication between 2 same devices is blocked.
In the logs, I see "Already fetching for"
For now, no scenario is identifiedSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/658Lag with decodingAccelerated: true2021-12-23T21:54:34ZSébastien BlinLag with decodingAccelerated: trueIn fact I see 3 bugs:
1. In `SinkClient::update`
doTransfer is True even if video-split is not used yet (cf Conference::sendConferenceInfos(), no delay if createSinks is commented). This must be false if sink is not used. This means th...In fact I see 3 bugs:
1. In `SinkClient::update`
doTransfer is True even if video-split is not used yet (cf Conference::sendConferenceInfos(), no delay if createSinks is commented). This must be false if sink is not used. This means that registerSinkClient is done in LRC even if sink is not used
2. HAVE_SHM is true if libwrap is true in LRC. We should change the configure to have enable-shm with dbus and not with libwrap.
3. `HardwareAccel::transferToMainMemory` is called for every participant, for every sink client. It should be done only once and then cropped by the sink clients.Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/542Reproduce connecting2021-05-25T14:06:57ZSébastien BlinReproduce connecting# Scenario
+ Call device A (network 0)
+ A decline call
+ A change to network 1
+ Call device A (network 1) after ~30secs tcp closed + call OK
+ **NOTE: network 1 must be accessible only via TURN, it's important (A<->TURN<->B)**
+ A dec...# Scenario
+ Call device A (network 0)
+ A decline call
+ A change to network 1
+ Call device A (network 1) after ~30secs tcp closed + call OK
+ **NOTE: network 1 must be accessible only via TURN, it's important (A<->TURN<->B)**
+ A decline call
+ A change to network 0
+ Call device A
# Expected result
On TCP timeout the call should come
# Current result
Stay connecting...
# Observation
+ Coturn doesn't seems to detect half open connections. In fact, the bug here is that our keep alive are sent every 30 secs, but... A->TURN is opened ; TURN->B is closed. And the keep alive / packets will be ok during 5 minutes (the allocation time) before TURN to actually drop the connectionSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/487libnatpmp is not detected in configure step on linux2021-03-31T13:57:08ZMohamed Chibanilibnatpmp is not detected in configure step on linuxMaxim CournoyerMaxim Cournoyerhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/327remote management2023-05-05T19:06:30Zevkogan1remote managementClient1-GTK. Client2-Android.
Video call, turn off the microphone on Client1. Switch the camera to client2. The microphone is turned on on Client1, and without indication.
Turn off the camera on client2 and turn off/on the microphone ...Client1-GTK. Client2-Android.
Video call, turn off the microphone on Client1. Switch the camera to client2. The microphone is turned on on Client1, and without indication.
Turn off the camera on client2 and turn off/on the microphone on Client1. The camera on client2 turns on.
Is this covert espionage SOFTWARE? :)https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/186SIP proxy field is not used correctly2020-12-13T23:57:25ZJami BotSIP proxy field is not used correctlyIssue generated from Tuleap's migration script.
**Originally submitted by: Raman Gupta (rocketraman)**
A detailed description of the bug. Use following fields for description field:
\* Environment:
Ring v1.0.0 on Linux Fedora 25 ...Issue generated from Tuleap's migration script.
**Originally submitted by: Raman Gupta (rocketraman)**
A detailed description of the bug. Use following fields for description field:
\* Environment:
Ring v1.0.0 on Linux Fedora 25
\* Reproduce steps:
Using the hostname and proxy fields to connect to a domain mydomain.com and proxy server proxy.versature.com. The configuration should set up Ring to connect to proxy.versature.com, passing the mydomain.com in the subsequent SIP request(s).
\* Expected result:
I would expect ring to connect successfully using this configuration. As a point of comparison, Zoiper will connect successfully.
\* Actual result:
The actual result is that Ring attempts to make a SIP connection to the hostname, ignoring the proxy field. The debug logs at SIPLOGLEVEL=4 are:
```
[1496261573.159|18869|sipaccount.cpp:698 ] doRegister mydomain.com
[1496261573.159|18869|sipvoiplink.cpp:1220 ] try to resolve 'mydomain.com' (port: 0)
16:12:53.159 resolver.c Transmitting 38 bytes to NS 0 (127.0.0.1:53): DNS SRV query for \_sip.\_udp.mydomain.com: Success
16:12:53.190 \_sip.\_udp.redo DNS SRV resolution failed for \_sip.\_udp.mydomain.com: DNS "Name Error" (PJLIB\_UTIL\_EDNS\_NXDOMAIN)
16:12:53.190 \_sip.\_udp.redo DNS SRV resolution failed for \_sip.\_udp.mydomain.com, trying resolving A/AAAA record for mydomain.com
16:12:53.190 resolver.c Transmitting 28 bytes to NS 0 (127.0.0.1:53): DNS A query for mydomain.com: Success
16:12:53.190 resolver.c Transmitting 28 bytes to NS 0 (127.0.0.1:53): DNS AAAA query for mydomain.com: Success
[1496261573.220|18869|sipaccount.cpp:815 ] Creating transport
16:12:53.220 udp0x18cc530 SIP UDP transport started, published address is 192.168.1.6:5062
[1496261573.220|18869|siptransport.cpp:357 ] Created UDP transport on default : 0.0.0.0:5062
[1496261573.221|18869|siptransport.cpp:82 ] SipTransport@0x190acc0 {tr=0x1919ec8 {rc=2}}
[1496261573.221|18869|sip\_utils.cpp:87 ] Adding route proxy.versature.com
[1496261605.223|18869|sipaccount.cpp:1033 ] SIP registration failed, status=408 (Request Timeout)
[1496261605.223|18869|sipaccount.cpp:2018 ] Scheduling re-registration retry in 53 seconds..
[1496261658.316|18869|sip\_utils.cpp:87 ] Adding route proxy.versature.com
[1496261690.321|18869|sipaccount.cpp:1033 ] SIP registration failed, status=408 (Request Timeout)
[1496261690.321|18869|sipaccount.cpp:2018 ] Scheduling re-registration retry in 302 seconds..
```
IF the system is configured with \_sip.\_udp SRV records on the domain provided in the hostname to point to the proxy, and the proxy field is left blank, then Ring successfully looks up the SRV record and connects to the proxy given there. Explicitly providing the proxy does not work as shown above.
The way I think it should work (and the way I think Zoiper works) is that you have a "domain/hostname" [1] setting and a "proxy" setting. The logic would be:
1) If proxy is set, Ring connects to the proxy and then passes username@domain in the SIP header.
2) If proxy is not set, then Ring looks for the proxy in the DNS SRV records for domain and if it exists, Ring connects to it and then passes username@domain to it.
3) Lastly, if the DNS SRV record does not exist, Ring attempts to connect to the A record of the domain/hostname setting, and again passes username@domain to it.
That way the auth information is completely configurable (username + domain) and the server that handles the request is completely configurable (proxy). The server to physically connect to is configurable either by DNS record on the domain, OR by explicit configuration in the proxy field.
[1] The "domain/hostname" config value would replace the current "hostname" config value.
The codepath to make the SIP connection as described above already exists -- its just that its impossible to configure the UI currently to trigger it. Given an SRV record of \_sip.\_udp.mydomain.com pointing to proxy.versature.com port 5060, Ring makes a connection to proxy.versature.com and passes all information with domain @mydomain.com. Here is a trace https://pastebin.com/raw/5z39MRu8.Ming Rui ZhangMing Rui Zhanghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/180Missed call after one call2020-12-15T21:14:36ZMuhammad FattahiMissed call after one callUsing freepbx 15(using Asterisk 16)
After one call i must kill process jami then try to call.
Otherwise after one call any calls are missed call and nothing happened.
Other client like linphone work currectly.
OS: Ubuntu 18.04Using freepbx 15(using Asterisk 16)
After one call i must kill process jami then try to call.
Otherwise after one call any calls are missed call and nothing happened.
Other client like linphone work currectly.
OS: Ubuntu 18.04Ming Rui ZhangMing Rui Zhanghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/160Seems like hardware acceleration is actived even if it's not and bug when dri...2021-02-04T13:56:04ZSébastien BlinSeems like hardware acceleration is actived even if it's not and bug when drivers are not herePierre LespagnolPierre Lespagnolhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/108ICE session not closed at the end of a call2019-08-12T21:20:29ZSébastien BlinICE session not closed at the end of a call# Reproduce step
1. Run `SIPLOGLEVEL=5 ./bin/dring -pcd`
2. Do a call
3. Hangup (or the peer hang up)
4. Wait ~ 30 secs
# Current result
Keep alive are still transmitted, this is bad for the battery IMO
# Expected
Transport should b...# Reproduce step
1. Run `SIPLOGLEVEL=5 ./bin/dring -pcd`
2. Do a call
3. Hangup (or the peer hang up)
4. Wait ~ 30 secs
# Current result
Keep alive are still transmitted, this is bad for the battery IMO
# Expected
Transport should be stoppedSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/92Incoming SIP calls fail2019-08-15T13:53:25ZFrançois Naggar-TremblayIncoming SIP calls failUsing linphone accountsUsing linphone accountsMing Rui ZhangMing Rui Zhanghttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/76Mute is broken since some patches on Linux.2019-01-11T18:45:50ZSébastien BlinMute is broken since some patches on Linux.I still don't know since when :)I still don't know since when :)Philippe GorleyPhilippe Gorleyhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/67Messages fails when flooding2018-11-28T20:30:43ZSébastien BlinMessages fails when flooding# How to reproduce
In a conversation, send quickly a lot of messages. After some messages, the messages are not sent and fails immediately.
# Expected result
All messages should be sent# How to reproduce
In a conversation, send quickly a lot of messages. After some messages, the messages are not sent and fails immediately.
# Expected result
All messages should be sentAdrien BéraudAdrien Béraudhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/66connectivity issues leading to unstable file transfer2020-09-30T19:33:15ZHugo Lefeuvreconnectivity issues leading to unstable file transferThe file transfer feature is quite unreliable on my devices/network, around 1/3 of attempted file transfers fail.
Devices: Android (WiFi + 4G), GNOME client (Ethernet)
I have investigated the issue, and many of these failures seem to b...The file transfer feature is quite unreliable on my devices/network, around 1/3 of attempted file transfers fail.
Devices: Android (WiFi + 4G), GNOME client (Ethernet)
I have investigated the issue, and many of these failures seem to be due to connectivity issues at unfavorable moments.
**First scenario:**
1. A sends rx DHT request to B
2. B receives rx DHT request and replies with a list of addresses on the DHT
3. A does not receive the answer in time and timeouts
Typical logs:
```
[1542546917.185|27153|p2p.cpp :526 ] [Account b9243250525b44cb] [CNX] rx DHT request from 8004386f1052cae68e543ebb87992612f218ded6
[1542546917.186|27153|ringaccount.cpp :2438 ] Found peer device: 8004386f1052cae68e543ebb87992612f218ded6 account:3c2a2fae84be1713e6d68d39360
faa7441220c00 CA:310d17e467cfb06ee20e2ddc0e75ebee0ba55640
[1542546917.187|27153|sip_utils.cpp :203 ] Registered thread 0x7f7cd12ac158 (0x69A0)
[1542546917.187| 7535|sip_utils.cpp :203 ] Registered thread 0x7f7cb77fd158 (0x69A0)
[1542546917.187|27153|turn_transport.cpp:357 ] Connecting to TURN 51.254.39.157:3478
[1542546917.187|27153|turn_transport.cpp:357 ] Connecting to TURN 51.254.39.157:3478
[1542546917.187| 7536|sip_utils.cpp :203 ] Registered thread 0x7f7cb6ffc158 (0x69A0)
[1542546917.210| 7536|turn_transport.cpp:214 ] TURN server disconnected (Deallocated)
[1542546917.212| 7535|turn_transport.cpp:211 ] TURN server ready, peer relay address: 51.254.39.157:28253
[1542546917.218|27153|p2p.cpp :558 ] [Account b9243250525b44cb] [CNX] authorized peer connection from 141.x.x.x
[1542546917.218|27153|p2p.cpp :582 ] [Account b9243250525b44cb] [CNX] connection accepted, DHT reply to 8004386f1052cae68e543ebb8799
2612f218ded6
[1542546920.329|27857|ringaccount.cpp :2051 ] [Account b9243250525b44cb] Dht status : IPv4 connected; IPv6 connecting
[1542546920.336|27857|ringaccount.cpp :2051 ] [Account b9243250525b44cb] Dht status : IPv4 connected; IPv6 connected
[1542546921.933|27149|siptransport.cpp :223 ] pjsip transport@0x7f7c8800bfb0 DTLS to 100.124.24.241 -> DESTROY
[1542546921.933|27149|siptransport.cpp :249 ] unmap pjsip transport@0x7f7c8800bfb0 {SipTransport@(nil)}
[1542546921.933|27149|sips_transport_ice.cpp:214 ] SipsIceTransport@0x7f7c8800bf40: destroying
[1542546921.933|27149|sips_transport_ice.cpp:256 ] ~SipIceTransport@0x7f7c8800bf40 {tr=0x7f7c8800bfb0}
[1542546921.934|27149|sips_transport_ice.cpp:277 ] ~SipIceTransport@0x7f7c8800bf40 {tr=0x7f7c8800bfb0} bye
```
Nothing comes after that. Peer seems to time out.
The SIP logs are not are not always present and might be unrelated, but I didn't remove them just in case.
The `IPv4 connected; IPv6 connecting` lines mean changes in IPv6 connectivity right ?Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/65Account archive seems to not contains contacts anymore2019-01-27T15:01:35ZSébastien BlinAccount archive seems to not contains contacts anymore# Reproduce step:
1. Generate a new account (without any password).
2. Add some contacts
3. Retrieve the related export.gz
4. `gunzip export.gz`
5. The key `ringAccountContacts` is not present!# Reproduce step:
1. Generate a new account (without any password).
2. Add some contacts
3. Retrieve the related export.gz
4. `gunzip export.gz`
5. The key `ringAccountContacts` is not present!Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/56Enhance failure messages2022-11-26T22:44:58ZSébastien BlinEnhance failure messagesWhen a user send a message to a contact, the status of this message can change to "failed". The major problem here, is, (as discussed in https://git.ring.cx/savoirfairelinux/ring-project/issues/517) it's totally unclear for the user why ...When a user send a message to a contact, the status of this message can change to "failed". The major problem here, is, (as discussed in https://git.ring.cx/savoirfairelinux/ring-project/issues/517) it's totally unclear for the user why the message failed.
The failed status MUST be re-designed to explain what is wrong for the user.
Is it a network issue? A confirmation timeout? Because no devices is detected? etc.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/52restclient.cpp:59:16: error: 'pollEvents' is not a member of 'DRing'2021-12-07T18:13:27Zszotsakirestclient.cpp:59:16: error: 'pollEvents' is not a member of 'DRing'I get compilation error when trying to compile today's ring-daemon snapshot (only ring-daemon, in a separate container):
```
[ 197s] restclient.cpp: In member function 'int RestClient::event_loop()':
[ 197s] restclient.cpp:59:16: erro...I get compilation error when trying to compile today's ring-daemon snapshot (only ring-daemon, in a separate container):
```
[ 197s] restclient.cpp: In member function 'int RestClient::event_loop()':
[ 197s] restclient.cpp:59:16: error: 'pollEvents' is not a member of 'DRing'
[ 197s] DRing::pollEvents();
[ 197s] ^~~~~~~~~~
[ 198s] make[3]: *** [Makefile:547: libclient_rest_la-restclient.lo] Error 1
[ 198s] make[3]: *** Waiting for unfinished jobs....
```
Command line switches:
```
%configure --with-alsa \
--with-pulse \
--with-jack \
--with-dbus \
--enable-video \
--with-sdes \
--with-speex \
--with-speexdsp \
--with-opus \
--with-upnp \
--with-natpmp \
--enable-ipv6 \
--enable-accel \
--enable-ringns \
--without-nodejs \
--with-restcpp \
--without-portaudio \
--disable-static
```Adrien BéraudAdrien Béraudhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/48missing call to callFailure in timeout case2022-11-14T21:52:32ZHugo Lefeuvremissing call to callFailure in timeout caseIntroduced in 9a12c78a.
In the case where call timeout is reached, the daemon calls hangup(486), terminating the call. However this hangup call is not followed by any kind of callFailure() call meaning that the tone and media states in ...Introduced in 9a12c78a.
In the case where call timeout is reached, the daemon calls hangup(486), terminating the call. However this hangup call is not followed by any kind of callFailure() call meaning that the tone and media states in the manager will not be reinitialized. As a consequence the daemon will continue to ring even if the call has ended.
Should be fixed asap.Hugo LefeuvreHugo Lefeuvre