jami-libclient issueshttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues2018-07-10T14:32:41Zhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/370Able to place calls with disabled account2018-07-10T14:32:41ZPhilippe GorleyAble to place calls with disabled accountSteps:
1. Create an account
2. Disable said account
3. Place a call
Expected result: No call is placed, get an error message
Actual result: Daemon prints "Account is not usable for calling", but client is searching for the peer.Steps:
1. Create an account
2. Disable said account
3. Place a call
Expected result: No call is placed, get an error message
Actual result: Daemon prints "Account is not usable for calling", but client is searching for the peer.Gnome 2018.07.15Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/367smartlist: not found displayed when already in contact list2018-07-10T13:32:40ZHugo Lefeuvresmartlist: not found displayed when already in contact list**How to reproduce:**
1. Search for one of your contacts
2. Wait 0-2s.
3. The smartlist contains both the contact and a "Not found" temporary item
**Expected:** Only contact is displayed.**How to reproduce:**
1. Search for one of your contacts
2. Wait 0-2s.
3. The smartlist contains both the contact and a "Not found" temporary item
**Expected:** Only contact is displayed.Gnome 2018.07.15Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/365smartlist: contact duplication issues with temporary item2018-07-10T14:34:28ZHugo Lefeuvresmartlist: contact duplication issues with temporary itemIf a contact has an alias without registering a username then searching for this contact using its ring ID breaks the temporary item in the smartlist.
**How to reproduce:**
1. Find a contact without registered name which has an alias
2...If a contact has an alias without registering a username then searching for this contact using its ring ID breaks the temporary item in the smartlist.
**How to reproduce:**
1. Find a contact without registered name which has an alias
2. Enter its ring ID in the search bar
3. Contact appears twice and the first entry can be added as a contact (although this contact *is already a contact*)
![dup1](/uploads/3bafaed66c26341f2a99781eb240ec59/dup1.png)
![dup2](/uploads/802651ce85a7fa59c2129cf443eb662c/dup2.png)
Obviously adding the first item as a contact breaks the smartlist and very strange things happen.Gnome 2018.07.15Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/409Remove contact requests for SIP accounts2019-05-06T19:52:45ZFrançois Naggar-TremblayRemove contact requests for SIP accountsIteration 6Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/414Can't search amarok@ns.jami.net2019-09-25T15:45:05ZSébastien BlinCan't search amarok@ns.jami.netIteration 16 (POC prep)Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/431crash on startup2020-06-29T15:07:23ZAdrien Béraudcrash on startupIteration 18Kateryna KostiukKateryna Kostiukhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/441Crash in renderer (linux)2020-12-22T20:18:35ZSébastien BlinCrash in renderer (linux)```
Thread 1 "jami-gnome" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50 ../sysdeps/unix/sysv/linux/raise.c: Aucun fichier ou dossier de ce type.
(gdb) bt
#0 __GI_raise (sig=si...```
Thread 1 "jami-gnome" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50 ../sysdeps/unix/sysv/linux/raise.c: Aucun fichier ou dossier de ce type.
(gdb) bt
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007ffff2fc6859 in __GI_abort () at abort.c:79
#2 0x00007ffff6b53aad in () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#3 0x00007ffff6b542aa in () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4 0x00007ffff7f1adf0 in lrc::RendererPimpl::~RendererPimpl()
(this=0x55559f789b60, __in_chrg=<optimized out>) at /usr/include/c++/9/bits/unique_ptr.h:75
#5 0x00007ffff7f1af6d in lrc::RendererPimpl::~RendererPimpl()
(this=0x55559f789b60, __in_chrg=<optimized out>)
at /home/sblin/ring-project/lrc/src/newvideo.cpp:235
#6 0x00007ffff7f1a83a in std::default_delete<lrc::RendererPimpl>::operator()(lrc::RendererPimpl*) const (this=0x7fffc0006820, __ptr=<optimized out>) at /usr/include/c++/9/bits/unique_ptr.h:75
#7 std::unique_ptr<lrc::RendererPimpl, std::default_delete<lrc::RendererPimpl> >::~unique_ptr()
(this=0x7fffc0006820, __in_chrg=<optimized out>) at /usr/include/c++/9/bits/unique_ptr.h:292
#8 lrc::api::video::Renderer::~Renderer() (this=0x7fffc0006810, __in_chrg=<optimized out>)
at /home/sblin/ring-project/lrc/src/newvideo.cpp:88
#9 0x00007ffff7f1a85d in lrc::api::video::Renderer::~Renderer()
(this=0x7fffc0006810, __in_chrg=<optimized out>)
at /home/sblin/ring-project/lrc/src/newvideo.cpp:88
#10 0x00007ffff7f37eef in std::default_delete<lrc::api::video::Renderer>::operator()(lrc::api::video::Renderer*) const (this=0x55559f755c38, __ptr=<optimized out>)
at /usr/include/c++/9/bits/unique_ptr.h:75
#11 std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> >::~unique_ptr() (this=0x55559f755c38, __in_chrg=<optimized out>)
at /usr/include/c++/9/bits/unique_ptr.h:292
#12 std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > >::~pair() (this=0x55559f755c30, __in_chrg=<optimized out>)
at /usr/include/c++/9/bits/stl_pair.h:208
#13 __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > > >::destroy<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > >(std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > >*) (this=0x55555699ae08, __p=0x55559f755c30)
at /usr/include/c++/9/ext/new_allocator.h:153
#14 std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > > > >::destroy<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > >(std::allocator<std::_Rb_tree_node<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > > >&, std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > >*)
(__a=..., __p=0x55559f755c30) at /usr/include/c++/9/bits/alloc_traits.h:497
#15 std::_Rb_tree<QString, std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > >, std::_Select1st<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > >, std::less<QString>, std::allocator<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > > >::_M_destroy_node(std::_Rb_tree_node<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > >*)
(this=0x55555699ae08, __p=0x55559f755c10) at /usr/include/c++/9/bits/stl_tree.h:642
#16 std::_Rb_tree<QString, std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > >, std::_Select1st<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > >, std::less<QString>, std::allocator<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > > >::_M_drop_node(std::_Rb_tree_node<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > >*)
--Type <RET> for more, q to quit, c to continue without paging--
(this=0x55555699ae08, __p=0x55559f755c10) at /usr/include/c++/9/bits/stl_tree.h:650
#17 std::_Rb_tree<QString, std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > >, std::_Select1st<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > >, std::less<QString>, std::allocator<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > > >::_M_erase_aux(std::_Rb_tree_const_iterator<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > >) (__position=..., this=0x55555699ae08) at /usr/include/c++/9/bits/stl_tree.h:2511
#18 std::_Rb_tree<QString, std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > >, std::_Select1st<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > >, std::less<QString>, std::allocator<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > > >::_M_erase_aux(std::_Rb_tree_const_iterator<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > >, std::_Rb_tree_const_iterator<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > >)Python Exception <class 'AttributeError'> 'NoneType' object has no attribute 'pointer':
Python Exception <class 'AttributeError'> 'NoneType' object has no attribute 'pointer':
(__last=..., __first=..., this=0x55555699ae08)
at /usr/include/c++/9/bits/stl_tree.h:2525
#19 std::_Rb_tree<QString, std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > >, std::_Select1st<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > >, std::less<QString>, std::allocator<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > > >::erase(QString const&)
(this=this@entry=0x55555699ae08, __x=...) at /usr/include/c++/9/bits/stl_tree.h:2536
#20 0x00007ffff7f2ff93 in std::map<QString, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> >, std::less<QString>, std::allocator<std::pair<QString const, std::unique_ptr<lrc::api::video::Renderer, std::default_delete<lrc::api::video::Renderer> > > > >::erase(QString const&) (__x=..., this=0x55555699ae08) at /usr/include/c++/9/bits/stl_map.h:1067
#21 lrc::AVModelPimpl::slotCallStateChanged(QString const&, QString const&, int)
(this=0x55555699adc0, id=..., state=..., code=<optimized out>)
at /home/sblin/ring-project/lrc/src/avmodel.cpp:832
#22 0x00007ffff6d80458 in QMetaObject::activate(QObject*, int, int, void**) ()
at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#23 0x00007ffff7e747ff in lrc::CallbacksHandler::callStateChanged(QString const&, QString const&, int) (this=<optimized out>, _t1=..., _t2=..., _t3=<optimized out>)
at /home/sblin/ring-project/lrc/build-local/ringclient_autogen/UVLADIE3JM/moc_callbackshandler.cpp:865
#24 0x00007ffff6d80d5a in QObject::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007ffff6d54917 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#26 0x00007ffff6d575b8 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) ()
at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#27 0x00007ffff6dacf67 in () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#28 0x00007ffff7068fbd in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#29 0x00007ffff7069240 in () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007ffff70692e3 in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007ffff7282fd5 in g_application_run () at /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#32 0x00005555555c7852 in main(int, char**) (argc=1, argv=0x7fffffffdd88)
at /home/sblin/ring-project/client-gnome/src/main.cpp:38
```Iteration 25Andreas TraczykAndreas Traczykhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/487addSwarmConversation incorrect mode2021-12-29T17:12:40ZSébastien BlinaddSwarmConversation incorrect mode`conversation::to_mode(details["mode"].toInt());` does an assumption from the daemon which is not true.
A mode is unknown when syncing, it will be ok after conversationReady`conversation::to_mode(details["mode"].toInt());` does an assumption from the daemon which is not true.
A mode is unknown when syncing, it will be ok after conversationReadyBackloghttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/482add participant to conference: search is case sensitive2021-07-16T19:57:36ZGuillaume Helleradd participant to conference: search is case sensitive![Capture_d_écran_du_2021-05-20_11-23-00](/uploads/0a90e0c2b1510b9b5bc6a5c04cd2ba47/Capture_d_écran_du_2021-05-20_11-23-00.png)
![Capture_d_écran_du_2021-05-20_11-23-19](/uploads/12d8796b6ba5452539489d702ed249c2/Capture_d_écran_du_2021-0...![Capture_d_écran_du_2021-05-20_11-23-00](/uploads/0a90e0c2b1510b9b5bc6a5c04cd2ba47/Capture_d_écran_du_2021-05-20_11-23-00.png)
![Capture_d_écran_du_2021-05-20_11-23-19](/uploads/12d8796b6ba5452539489d702ed249c2/Capture_d_écran_du_2021-05-20_11-23-19.png)
the filter should case insensitiveBackloghttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/432Video not freezing if call is on hold2020-08-22T11:16:44ZAline Gondim SantosVideo not freezing if call is on holdIf there's a call between A and B and A receives/does another call to C, B continues to see A's image. The video is not freezing.If there's a call between A and B and A receives/does another call to C, B continues to see A's image. The video is not freezing.Itération 21https://git.jami.net/savoirfairelinux/jami-libclient/-/issues/429refine setMessageDisplayed2021-02-26T16:37:39ZSébastien Blinrefine setMessageDisplayedActually, setMessageDisplayed should be only called if the interaction is a file transfer or a incoming text message (even if it's a sip account). Correct behavior is not perfect.
Also something is not clear is why if we do this on a ou...Actually, setMessageDisplayed should be only called if the interaction is a file transfer or a incoming text message (even if it's a sip account). Correct behavior is not perfect.
Also something is not clear is why if we do this on a outgoing call, the call is broken (daemon side)Swarm-chathttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/412joinConferences() doesn't work2019-09-25T20:07:21ZSébastien BlinjoinConferences() doesn't workIteration 17 (Video conferences stabilization)Pierre LespagnolPierre Lespagnolhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/389Several issues in the new call model's state machine2018-09-20T14:07:01ZHugo LefeuvreSeveral issues in the new call model's state machineThe new call model's state machine suffers from multiple design issues:
* [x] State transitions are realized at multiple places. This makes handling of specific transitions in the state machine more complicated and leads to [terrific c...The new call model's state machine suffers from multiple design issues:
* [x] State transitions are realized at multiple places. This makes handling of specific transitions in the state machine more complicated and leads to [terrific code](https://git.ring.cx/savoirfairelinux/ring-lrc/blob/master/src/newcallmodel.cpp#L504).
* [x] `callStatusChanged` should never be emitted by `togglePause()`. Instead it should wait for feedback from the daemon.
* [x] `slotCallStateChanged` is handling conference state changes very badly. From the three possible conference states, only `HOLD` is handled properly. The rest is just considered to be an internal error....Next major releaseHugo LefeuvreHugo Lefeuvrehttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/377segfault during trust request during interactionStatusUpdated signal2020-06-09T18:27:46ZHugo Lefeuvresegfault during trust request during interactionStatusUpdated signalThe GNOME client crashes during `interactionStatusUpdated` signal (right after opening the trust requests tab).
ASan stacktrace:
```
registered name found for unknown account ""
ASAN:SIGSEGV
============================================...The GNOME client crashes during `interactionStatusUpdated` signal (right after opening the trust requests tab).
ASan stacktrace:
```
registered name found for unknown account ""
ASAN:SIGSEGV
=================================================================
==7770==ERROR: AddressSanitizer: SEGV on unknown address 0x61104d0000be (pc 0x7fc4a74991ee bp 0x7ffe14708940 sp 0x7ffe147080c8 T0)
#0 0x7fc4a74991ed (/lib/x86_64-linux-gnu/libc.so.6+0x16f1ed)
#1 0x7fc4aead774e in memcmp (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x7774e)
#2 0x4bb737 in std::char_traits<char>::compare(char const*, char const*, unsigned long) /usr/include/c++/5/bits/char_traits.h:262
#3 0x4d951a in __gnu_cxx::__enable_if<std::__is_char<char>::__value, bool>::__type std::operator==<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&) /usr/include/c++/5/bits/basic_string.h:4914
#4 0x5ba700 in webkit_chat_container_ready(_ChatView*)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, lrc::api::interaction::Info)#2}::operator()(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, lrc::api::interaction::Info) const (/usr/bin/gnome-ring+0x5ba700)
#5 0x5bd8b8 in call /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:495
#6 0x5bd48d in call<QtPrivate::List<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, long unsigned int, const lrc::api::interaction::Info&>, void> /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:552
#7 0x5bd318 in impl /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject_impl.h:192
#8 0x7fc4ac5b7bae in QMetaObject::activate(QObject*, int, int, void**) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2b4bae)
#9 0x7fc4ae6c593b in lrc::api::ConversationModel::interactionStatusUpdated(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, lrc::api::interaction::Info const&) const (/usr/lib/libringclient.so.1.0.0+0x27493b)
#10 0x7fc4ae6c9469 in lrc::api::ConversationModel::setInteractionRead(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long const&) (/usr/lib/libringclient.so.1.0.0+0x278469)
#11 0x5ba3a9 in print_text_recording /home/hlefeuvre/Development/ring-client-gnome/src/chatview.cpp:487
#12 0x5ba9a0 in webkit_chat_container_ready /home/hlefeuvre/Development/ring-client-gnome/src/chatview.cpp:512
#13 0x5bc6f8 in build_chat_view /home/hlefeuvre/Development/ring-client-gnome/src/chatview.cpp:682
#14 0x5bc8c9 in chat_view_new /home/hlefeuvre/Development/ring-client-gnome/src/chatview.cpp:697
#15 0x516060 in displayChatView /home/hlefeuvre/Development/ring-client-gnome/src/ringmainwindow.cpp:1233
#16 0x5157a0 in changeView /home/hlefeuvre/Development/ring-client-gnome/src/ringmainwindow.cpp:1177
#17 0x52001e in slotShowChatView /home/hlefeuvre/Development/ring-client-gnome/src/ringmainwindow.cpp:1931
#18 0x519835 in (anonymous namespace)::details::CppImpl::updateLrc(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&, lrc::api::conversation::Info)#8}::operator()(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, lrc::api::conversation::Info) const (/usr/bin/gnome-ring+0x519835)
#19 0x528004 in call /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:495
#20 0x5276dc in call<QtPrivate::List<const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, const lrc::api::conversation::Info&>, void> /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:552
#21 0x526f9a in impl /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject_impl.h:192
#22 0x7fc4ac5b7bae in QMetaObject::activate(QObject*, int, int, void**) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2b4bae)
#23 0x7fc4ae721df6 in lrc::api::BehaviorController::showChatView(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, lrc::api::conversation::Info const&) const (/usr/lib/libringclient.so.1.0.0+0x2d0df6)
#24 0x7fc4ae6c6d2c in lrc::api::ConversationModel::selectConversation(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const (/usr/lib/libringclient.so.1.0.0+0x275d2c)
#25 0x5cfaf1 in select_conversation /home/hlefeuvre/Development/ring-client-gnome/src/conversationsview.cpp:396
#26 0x7fc4acafa1d3 (/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0+0x101d3)
#27 0x7fc4acb149a5 in g_signal_emit_valist (/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0+0x2a9a5)
#28 0x7fc4acb1508e in g_signal_emit (/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0+0x2b08e)
#29 0x7fc4ade59fe3 (/usr/lib/x86_64-linux-gnu/libgtk-3.so.0+0x337fe3)
#30 0x7fc4ade5cab3 (/usr/lib/x86_64-linux-gnu/libgtk-3.so.0+0x33aab3)
#31 0x7fc4acafa1d3 (/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0+0x101d3)
#32 0x7fc4acb149a5 in g_signal_emit_valist (/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0+0x2a9a5)
#33 0x7fc4acb1508e in g_signal_emit (/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0+0x2b08e)
#34 0x7fc4ade76579 in gtk_widget_grab_focus (/usr/lib/x86_64-linux-gnu/libgtk-3.so.0+0x354579)
#35 0x7fc4ade5225c (/usr/lib/x86_64-linux-gnu/libgtk-3.so.0+0x33025c)
#36 0x7fc4add3552b (/usr/lib/x86_64-linux-gnu/libgtk-3.so.0+0x21352b)
#37 0x7fc4acaf9efe in g_closure_invoke (/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0+0xfefe)
#38 0x7fc4acb0c56d (/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0+0x2256d)
#39 0x7fc4acb147f8 in g_signal_emit_valist (/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0+0x2a7f8)
#40 0x7fc4acb1508e in g_signal_emit (/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0+0x2b08e)
#41 0x7fc4ade772c9 in gtk_widget_child_focus (/usr/lib/x86_64-linux-gnu/libgtk-3.so.0+0x3552c9)
#42 0x7fc4addb8bc7 (/usr/lib/x86_64-linux-gnu/libgtk-3.so.0+0x296bc7)
#43 0x7fc4add3552b (/usr/lib/x86_64-linux-gnu/libgtk-3.so.0+0x21352b)
#44 0x7fc4acaf9fa4 in g_closure_invoke (/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0+0xffa4)
#45 0x7fc4acb0c56d (/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0+0x2256d)
#46 0x7fc4acb147f8 in g_signal_emit_valist (/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0+0x2a7f8)
#47 0x7fc4acb1508e in g_signal_emit (/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0+0x2b08e)
#48 0x7fc4ade772c9 in gtk_widget_child_focus (/usr/lib/x86_64-linux-gnu/libgtk-3.so.0+0x3552c9)
#49 0x7fc4add67755 (/usr/lib/x86_64-linux-gnu/libgtk-3.so.0+0x245755)
#50 0x7fc4acaf9fa4 in g_closure_invoke (/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0+0xffa4)
#51 0x7fc4acb0c56d (/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0+0x2256d)
#52 0x7fc4acb14d5b in g_signal_emit_valist (/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0+0x2ad5b)
#53 0x7fc4acb1508e in g_signal_emit (/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0+0x2b08e)
#54 0x7fc4add624aa (/usr/lib/x86_64-linux-gnu/libgtk-3.so.0+0x2404aa)
#55 0x7fc4add35099 (/usr/lib/x86_64-linux-gnu/libgtk-3.so.0+0x213099)
#56 0x7fc4acafa1d3 (/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0+0x101d3)
#57 0x7fc4acb144b7 in g_signal_emit_valist (/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0+0x2a4b7)
#58 0x7fc4acb1508e in g_signal_emit (/usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0+0x2b08e)
#59 0x7fc4ade72c3b (/usr/lib/x86_64-linux-gnu/libgtk-3.so.0+0x350c3b)
#60 0x7fc4add323bd (/usr/lib/x86_64-linux-gnu/libgtk-3.so.0+0x2103bd)
#61 0x7fc4add341bb in gtk_main_do_event (/usr/lib/x86_64-linux-gnu/libgtk-3.so.0+0x2121bb)
#62 0x7fc4ad8a1d91 (/usr/lib/x86_64-linux-gnu/libgdk-3.so.0+0x5ad91)
#63 0x7fc4ac823196 in g_main_context_dispatch (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x4a196)
#64 0x7fc4ac8233ef (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x4a3ef)
#65 0x7fc4ac82349b in g_main_context_iteration (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x4a49b)
#66 0x7fc4acdead7c in g_application_run (/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0+0xadd7c)
#67 0x4b6df4 in main /home/hlefeuvre/Development/ring-client-gnome/src/main.cpp:37
#68 0x7fc4a734a82f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)
#69 0x4b6a48 in _start (/usr/bin/gnome-ring+0x4b6a48)
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV ??:0 ??
==7770==ABORTING
```Next major releasehttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/375SIP register fails: No username on digest authentication2018-07-31T14:34:17ZAlba MendezSIP register fails: No username on digest authenticationThis bug has been driving me mad for quite some time. I just installed Ring for Ubuntu 16.04 following official instructions, opened, set up a SIP account with hostname=10.139.205.101, username=10, password=test and it fails to register....This bug has been driving me mad for quite some time. I just installed Ring for Ubuntu 16.04 following official instructions, opened, set up a SIP account with hostname=10.139.205.101, username=10, password=test and it fails to register.
My Asterisk server sends:
From: "main" <sip:10@10.139.205.101>;tag=8005b703-201b-47e8-be88-03d7564a5ba8
To: "main" <sip:10@10.139.205.101>;tag=as3f952c47
...
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="0074f5d0"
And Ring then sends:
From: "main" <sip:10@10.139.205.101>;tag=8005b703-201b-47e8-be88-03d7564a5ba8
To: "main" <sip:10@10.139.205.101>
...
Authorization: Digest , realm="asterisk", nonce="0074f5d0", uri="sip:10.139.205.101", response="631415fcf3715907a48f11fec1e6a880", algorithm=MD5
i.e. notice the space and comma after `Digest`
ring-daemon version 2018-07-07. Bug could be on upstream, for some reason username is not set on `pjsip/src/pjsip/sip_auth_client.c` when adding the Authorization header, [header printed here](https://github.com/asterisk/pjproject/blob/106ec876a371b57bb3db8231a55cb5f368e6266b/pjsip/src/pjsip/sip_auth_msg.c#L73).Next major releaseSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/373newaccountmodel: race conditions and bad signal used for creating accounts2018-10-02T20:10:50ZHugo Lefeuvrenewaccountmodel: race conditions and bad signal used for creating accountsThe new account model is currently affected by two major issues:
1. The `accounts_` map is not protected again race conditions, in any kind of way. This should *really* be fixed.
2. The `accountsChanged` daemon signal is not used to det...The new account model is currently affected by two major issues:
1. The `accounts_` map is not protected again race conditions, in any kind of way. This should *really* be fixed.
2. The `accountsChanged` daemon signal is not used to detect changes in the accounts list. Instead we use `registrationStatusChanged` which works but is kind of inappropriate and may create various kind of weird issues when creating accounts offline.Next major releaseHugo LefeuvreHugo Lefeuvrehttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/372smartlist: contact list reordered when sending messages2018-08-06T18:35:06ZHugo Lefeuvresmartlist: contact list reordered when sending messages**Affects**: Latest LRC + GNU/Linux GNOME client
**How to reproduce**:
1. Set up a Ring account with several contacts where the conversation is empty (completely empty, clear history was called)
2. Open the topmost conversation and sen...**Affects**: Latest LRC + GNU/Linux GNOME client
**How to reproduce**:
1. Set up a Ring account with several contacts where the conversation is empty (completely empty, clear history was called)
2. Open the topmost conversation and send messages while looking at the conversations list: the order of empty conversations changes
This makes the smartlist blinky, we should really avoid that.Next major releaseSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/368Database: AccountID should be used to identify account instead URI2018-12-05T18:17:03ZSébastien BlinDatabase: AccountID should be used to identify account instead URIFor example if the device certificate is removed the account ID is the only thing accessible to identify an account. So we should use this.For example if the device certificate is removed the account ID is the only thing accessible to identify an account. So we should use this.Swarm-chatKateryna KostiukKateryna Kostiukhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/362SIP: relink to blind and save transfer2018-06-11T23:12:16ZSébastien BlinSIP: relink to blind and save transferWe need to be able to transfer SIP calls.We need to be able to transfer SIP calls.SIP support - first iterationSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/490Remove conversation in slotConversationRemoved2022-01-07T21:30:36ZSébastien BlinRemove conversation in slotConversationRemovedcf https://review.jami.net/c/jami-libclient/+/19455
> Create conversation betwwen A and B
B removes conversation
right away conversation removed on B sides but new conversation createdcf https://review.jami.net/c/jami-libclient/+/19455
> Create conversation betwwen A and B
B removes conversation
right away conversation removed on B sides but new conversation createdSébastien BlinKateryna KostiukSébastien Blin