jami-libclient issueshttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues2018-08-28T19:48:59Zhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/381Merging two conferences is not possible / glitched2018-08-28T19:48:59ZHugo LefeuvreMerging two conferences is not possible / glitched```
void
NewCallModel::joinCalls(const std::string& callIdA, const std::string& callIdB) const
{
if (!hasCall(callIdA) || !hasCall(callIdB)) return;
auto& call1 = pimpl_->calls[callIdA];
auto& call2 = pimpl_->calls[callIdB];...```
void
NewCallModel::joinCalls(const std::string& callIdA, const std::string& callIdB) const
{
if (!hasCall(callIdA) || !hasCall(callIdB)) return;
auto& call1 = pimpl_->calls[callIdA];
auto& call2 = pimpl_->calls[callIdB];
if (call1->type == call::Type::CONFERENCE)
CallManager::instance().addParticipant(callIdB.c_str(), callIdA.c_str());
else if (call2->type == call::Type::CONFERENCE)
CallManager::instance().addParticipant(callIdA.c_str(), callIdB.c_str());
else if (call1->type == call::Type::CONFERENCE && call2->type == call::Type::CONFERENCE)
CallManager::instance().joinConference(callIdA.c_str(), callIdB.c_str());
else
CallManager::instance().joinParticipant(callIdA.c_str(), callIdB.c_str());
}
```
The third else if is never executed and should appear first in the if. This is a bug.Hugo LefeuvreHugo Lefeuvrehttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/380Useless call status in new call model2018-08-28T15:47:57ZHugo LefeuvreUseless call status in new call modelThe new call model contains some call status which appear to be useless, such as `call::Status::AUTO_ANSWERING`. We should probably get rid of them.The new call model contains some call status which appear to be useless, such as `call::Status::AUTO_ANSWERING`. We should probably get rid of them.Hugo LefeuvreHugo Lefeuvrehttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/379Better handle daemon call creation failure2018-08-28T15:28:21ZHugo LefeuvreBetter handle daemon call creation failureEven if the daemon fails to create a call, the new LRC's call model still creates an invalid call entry and adds it to `pimpl_->calls`.
This is a bug, in this case we should return an empty string and leave the map untouched.
https://g...Even if the daemon fails to create a call, the new LRC's call model still creates an invalid call entry and adds it to `pimpl_->calls`.
This is a bug, in this case we should return an empty string and leave the map untouched.
https://git.ring.cx/savoirfairelinux/ring-lrc/blob/master/src/newcallmodel.cpp#L178Hugo LefeuvreHugo Lefeuvrehttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/378lrc_fr_FR.ts is the same thing as lrc_fr.ts2022-12-08T01:15:39ZTineilrc_fr_FR.ts is the same thing as lrc_fr.tsHello,
it would be cool if lrc_fr.ts was copied as lrc_fr_FR.ts (changing line 1 appropriately).
Or at least leave the user change the language in settings, because now I'm still forced to tolerate "Missed outgoing call" instead of "...Hello,
it would be cool if lrc_fr.ts was copied as lrc_fr_FR.ts (changing line 1 appropriately).
Or at least leave the user change the language in settings, because now I'm still forced to tolerate "Missed outgoing call" instead of "Appel sortant raté".
Thank youhttps://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/376newaccountmodel: setCredentials only if getCredentials is different2022-12-06T14:03:02ZSébastien Blinnewaccountmodel: setCredentials only if getCredentials is differentsetCredentials can be avoided if the credentials are correct. We should use getCredentials and compare with new values.setCredentials can be avoided if the credentials are correct. We should use getCredentials and compare with new values.Aline Gondim SantosAline Gondim Santoshttps://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/374newaccountmodel: still using old LRC for removing accounts2018-10-02T20:09:48ZHugo Lefeuvrenewaccountmodel: still using old LRC for removing accountsWe are still using the old lrc's `accountRemoved` signal to remove accounts. This is obviously not something we want to do and that should be handled 100% in the new LRC.We are still using the old lrc's `accountRemoved` signal to remove accounts. This is obviously not something we want to do and that should be handled 100% in the new LRC.Next major releaseHugo LefeuvreHugo Lefeuvrehttps://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/371segfault during call hangup2019-11-21T04:52:15ZHugo Lefeuvresegfault during call hangup**Affects**: latest LRC/GNOME client master
My GNU/Linux GNOME client crashed (segfault) during a call hangup.
**ASan stacktrace**:
```
(gnome-ring:3643): Gtk-WARNING **: Theme parsing error: <data>:1:652: Missing name of pseudo-class
...**Affects**: latest LRC/GNOME client master
My GNU/Linux GNOME client crashed (segfault) during a call hangup.
**ASan stacktrace**:
```
(gnome-ring:3643): Gtk-WARNING **: Theme parsing error: <data>:1:652: Missing name of pseudo-class
** (gnome-ring:3643): DEBUG: call has status Talking, hiding
** (gnome-ring:3643): DEBUG: call has status Talking, hiding
** (gnome-ring:3643): DEBUG: call has status Talking, hiding
slotCallStateChanged, call: 10000172967648819012 - state: FAILURE
slotCallStateChanged, call: 10000172967648819012 - state: OVER
Call State Changed for call "10000172967648819012" . New state : "FAILURE"
Call found Call(0x603000d50850) "Ringing"
State changing from "Ringing" to "Failed" on Call(0x603000d50850)
Starting call. callId : Call(0x603000d50850) ConfId: Call(0x603000d50850)
QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed.
Calling stateChanged "FAILURE" -> 6 on call with state "Ringing" . Become "Failed"
Call State Changed for call "10000172967648819012" . New state : "OVER"
Call found Call(0x603000d50850) "Failed"
Origin and destination states are identical "Failed" "Failed" doing nothing Call(0x603000d50850)
Calling stateChanged "OVER" -> 7 on call with state "Failed" . Become "Failed"
Call State Changed for call "13304699374124811861" . New state : "CONNECTING"
slotCallStateChanged, call: 379597161990976675 - state: HUNGUP
ASAN:SIGSEGV
=================================================================
==3643==ERROR: AddressSanitizer: SEGV on unknown address 0x61105200008a (pc 0x7ff4518ac1ee bp 0x7ffeeb261610 sp 0x7ffeeb260d98 T0)
#0 0x7ff4518ac1ed (/lib/x86_64-linux-gnu/libc.so.6+0x16f1ed)
#1 0x7ff45960f74e in memcmp (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x7774e)
#2 0x4ba225 in std::char_traits<char>::compare(char const*, char const*, unsigned long) /usr/include/c++/5/bits/char_traits.h:262
#3 0x4d825e 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 0x5ad60c 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+0x5ad60c)
#5 0x5b07ae in call /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:495
#6 0x5b0383 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 0x5b020e in impl /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject_impl.h:192
#8 0x7ff4569cabae in QMetaObject::activate(QObject*, int, int, void**) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2b4bae)
#9 0x7ff458f6eaf8 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 /home/hlefeuvre/Development/ring-lrc/build/api/moc_conversationmodel.cpp:238
#10 0x7ff458f66c10 in lrc::ConversationModelPimpl::addOrUpdateCallMessage(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&) /home/hlefeuvre/Development/ring-lrc/src/conversationmodel.cpp:1544
#11 0x7ff458f65ecf in lrc::ConversationModelPimpl::slotCallEnded(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/hlefeuvre/Development/ring-lrc/src/conversationmodel.cpp:1494
#12 0x7ff458f92849 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, void, void (lrc::ConversationModelPimpl::*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>::call(void (lrc::ConversationModelPimpl::*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), lrc::ConversationModelPimpl*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:501
#13 0x7ff458f8d6b4 in void QtPrivate::FunctionPointer<void (lrc::ConversationModelPimpl::*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>::call<QtPrivate::List<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, void>(void (lrc::ConversationModelPimpl::*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), lrc::ConversationModelPimpl*, void**) (/usr/lib/libringclient.so.1.0.0+0x7296b4)
#14 0x7ff458f87046 in QtPrivate::QSlotObject<void (lrc::ConversationModelPimpl::*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), QtPrivate::List<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject_impl.h:143
#15 0x7ff4569cabae in QMetaObject::activate(QObject*, int, int, void**) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2b4bae)
#16 0x7ff458f3e121 in lrc::api::NewCallModel::callEnded(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /home/hlefeuvre/Development/ring-lrc/build/api/moc_newcallmodel.cpp:198
#17 0x7ff458f3c060 in lrc::NewCallModelPimpl::slotCallStateChanged(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) /home/hlefeuvre/Development/ring-lrc/src/newcallmodel.cpp:422
#18 0x7ff458f4742d in QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1, 2>, QtPrivate::List<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>, void, void (lrc::NewCallModelPimpl::*)(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)>::call(void (lrc::NewCallModelPimpl::*)(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), lrc::NewCallModelPimpl*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:501
#19 0x7ff458f45eda in void QtPrivate::FunctionPointer<void (lrc::NewCallModelPimpl::*)(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)>::call<QtPrivate::List<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>, void>(void (lrc::NewCallModelPimpl::*)(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), lrc::NewCallModelPimpl*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:520
#20 0x7ff458f43e0e in QtPrivate::QSlotObject<void (lrc::NewCallModelPimpl::*)(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), QtPrivate::List<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>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject_impl.h:143
#21 0x7ff4569cabae in QMetaObject::activate(QObject*, int, int, void**) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2b4bae)
#22 0x7ff4590e1231 in lrc::CallbacksHandler::callStateChanged(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) /home/hlefeuvre/Development/ring-lrc/build/moc_callbackshandler.cpp:618
#23 0x7ff459018cf4 in lrc::CallbacksHandler::slotCallStateChanged(QString const&, QString const&, int) /home/hlefeuvre/Development/ring-lrc/src/callbackshandler.cpp:232
#24 0x7ff4590214c5 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1, 2>, QtPrivate::List<QString const&, QString const&, int>, void, void (lrc::CallbacksHandler::*)(QString const&, QString const&, int)>::call(void (lrc::CallbacksHandler::*)(QString const&, QString const&, int), lrc::CallbacksHandler*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:501
#25 0x7ff45901f58f in void QtPrivate::FunctionPointer<void (lrc::CallbacksHandler::*)(QString const&, QString const&, int)>::call<QtPrivate::List<QString const&, QString const&, int>, void>(void (lrc::CallbacksHandler::*)(QString const&, QString const&, int), lrc::CallbacksHandler*, void**) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:520
#26 0x7ff45901e5ea in QtPrivate::QSlotObject<void (lrc::CallbacksHandler::*)(QString const&, QString const&, int), QtPrivate::List<QString const&, QString const&, int>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject_impl.h:143
#27 0x7ff4569cabae in QMetaObject::activate(QObject*, int, int, void**) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2b4bae)
#28 0x7ff4590bfac9 in CallManagerInterface::callStateChanged(QString const&, QString const&, int) /home/hlefeuvre/Development/ring-lrc/build/callmanager_dbus_interface.moc:656
#29 0x7ff4590bb3ee in CallManagerInterface::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) /home/hlefeuvre/Development/ring-lrc/build/callmanager_dbus_interface.moc:332
#30 0x7ff4590bf6ef in CallManagerInterface::qt_metacall(QMetaObject::Call, int, void**) /home/hlefeuvre/Development/ring-lrc/build/callmanager_dbus_interface.moc:628
#31 0x7ff45a69c912 (/usr/lib/x86_64-linux-gnu/libQt5DBus.so.5+0x20912)
#32 0x7ff4569cbc00 in QObject::event(QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2b5c00)
#33 0x7ff45699c36b in QCoreApplication::notifyInternal(QObject*, QEvent*) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x28636b)
#34 0x7ff45699e785 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x288785)
#35 0x7ff4569f23c2 (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2dc3c2)
#36 0x7ff456c36196 in g_main_context_dispatch (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x4a196)
#37 0x7ff456c363ef (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x4a3ef)
#38 0x7ff456c3649b in g_main_context_iteration (/lib/x86_64-linux-gnu/libglib-2.0.so.0+0x4a49b)
#39 0x7ff4571fdd7c in g_application_run (/usr/lib/x86_64-linux-gnu/libgio-2.0.so.0+0xadd7c)
#40 0x4b5414 in main /home/hlefeuvre/Development/ring-client-gnome/src/main.cpp:37
#41 0x7ff45175d82f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)
#42 0x4b5068 in _start (/usr/bin/gnome-ring+0x4b5068)
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV ??:0 ??
==3643==ABORTING
```https://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/369Save last used account2018-07-10T13:32:11ZSébastien BlinSave last used accountWhen we have multiple accounts, LRC keep always the same order for these accounts.
So if we want to use a lot the second account, each time we open Ring, we have to select the second account.
The daemon has the `setAccountsOrder` metho...When we have multiple accounts, LRC keep always the same order for these accounts.
So if we want to use a lot the second account, each time we open Ring, we have to select the second account.
The daemon has the `setAccountsOrder` method. New models should use this.Gnome 2018.07.15Sé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/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/366"Searching..." displays as a contact2018-07-13T20:50:16ZJami Bot"Searching..." displays as a contactIssue generated from Tuleap's migration script.
**Originally submitted by: Jan (kromka_chleba)**
After typing ring id in the search bar, adding contact with invite button, and clearing search bar with backspace, search icon appears amon...Issue generated from Tuleap's migration script.
**Originally submitted by: Jan (kromka_chleba)**
After typing ring id in the search bar, adding contact with invite button, and clearing search bar with backspace, search icon appears among contacts.
Platform: GNU/Linux Mint 18.3 cinnamon, kernel 4.13.0-41 generic
Ring build: 2018-05-01Sé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/364Self messaging on android appear in the last conversation history of linked d...2019-09-27T18:39:18ZTimothee MenaisSelf messaging on android appear in the last conversation history of linked device using a LRC based clientWhen one self messages on android the messages on the other device appear as being sent by the user in the last conversation of the account which is self messaging.
How to reproduce:
1/ Create an account and link it to a second device (...When one self messages on android the messages on the other device appear as being sent by the user in the last conversation of the account which is self messaging.
How to reproduce:
1/ Create an account and link it to a second device (android + any desktop using a client with LRC, bug reproduced on gnome and mac)
2/ On android search your own name and self message
3/ On your other device the message will appear in the conversation at the top of your historyhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/363LRC build failure with Qt 5.11 / deprecated cmake functions2018-07-03T20:29:35ZSébastien BlinLRC build failure with Qt 5.11 / deprecated cmake functionsFrom **Baptiste Jonglez** https://tuleap.ring.cx/plugins/tracker/?aid=1887
Arch Linux recently updated to Qt 5.11, and it broke builds for LRC.
Here is the output of CMake:
```
-- The C compiler identification is GNU 8.1.1
-- The CXX ...From **Baptiste Jonglez** https://tuleap.ring.cx/plugins/tracker/?aid=1887
Arch Linux recently updated to Qt 5.11, and it broke builds for LRC.
Here is the output of CMake:
```
-- The C compiler identification is GNU 8.1.1
-- The CXX compiler identification is GNU 8.1.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found GCC version >= 4.8: 8.1.1
-- Ring daemon header is in /usr/include/dring
-- Ring library path is /usr/lib/libring.so
-- VIDEO enabled
-- Using Ring DBus-XML interfaces in /usr/share/dbus-1/interfaces
CMake Error at CMakeLists.txt:710 (QT5_USE_MODULES):
Unknown CMake command "QT5_USE_MODULES".
```
According to the doc https://doc.qt.io/qt-5/cmake-manual.html , QT5_USE_MODULES is deprecated, so it probably got removed in Qt 5.11. The doc also says that TARGET_LINK_LIBRARIES should be used instead:
qt5_use_modules(target [LINK_PUBLIC|LINK_PRIVATE] module ... ) Indicates that the target uses the named Qt 5 modules. The target will be linked to the specified modules, use the include directories installed by those modules, use the COMPILE_DEFINITIONS set by those modules, and use the COMPILE_FLAGS set by the modules. The LINK_PRIVATE or LINK_PUBLIC specifiers can optionally be specified. If LINK_PRIVATE is specified then the modules are not made part of the link interface of the target. See the documentation for target_link_libraries for more information.
Note that this macro is only available if using CMake 2.8.9 or later. This macro is obsolete. Use target_link_libraries with IMPORTED targets instead.Gnome 2018.07.15Sébastien BlinSébastien Blinhttps://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 Blin