jami-libclient issueshttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues2018-05-25T13:38:10Zhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/354Singletons are not safe in LRC2018-05-25T13:38:10ZJami BotSingletons are not safe in LRCIssue generated from Tuleap's migration script.
**Originally submitted by: Guillaume Roguez (guillaume)**
LRC uses massively Singletons with an implementation based on class global static member (a pointer).
The first initialization i...Issue generated from Tuleap's migration script.
**Originally submitted by: Guillaume Roguez (guillaume)**
LRC uses massively Singletons with an implementation based on class global static member (a pointer).
The first initialization is done by checking the value of the static member, set to nullptr during compilation unit initialization.
This implementation is not thread-safe and hides loop-dependency between classes.
I propose to use C++11 safe way by using local static initialization inside a static method of the class (i.e. instance()).
This is known as "Construct Members On First Use Idiom"Guillaume RoguezGuillaume Roguezhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/353lrc uses DBus as namespace2018-05-25T13:38:05ZJami Botlrc uses DBus as namespaceIssue generated from Tuleap's migration script.
**Originally submitted by: Alexandre Lision (alision)**
This is confusing when developping on Windows or Mac since we do not use DBus.
It's an implementation detail and should be used as...Issue generated from Tuleap's migration script.
**Originally submitted by: Alexandre Lision (alision)**
This is confusing when developping on Windows or Mac since we do not use DBus.
It's an implementation detail and should be used as a generic namespacehttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/352Fix unattended transfer2018-05-25T13:37:56ZJami BotFix unattended transferIssue generated from Tuleap's migration script.
**Originally submitted by: Alexandre Lision (alision)**
When making an unattended transfer, the peer that got transfered does not see the new call, although it's properly handled in the da...Issue generated from Tuleap's migration script.
**Originally submitted by: Alexandre Lision (alision)**
When making an unattended transfer, the peer that got transfered does not see the new call, although it's properly handled in the daemon.
After some investigation I found out that when the peer receive a transfer request (refer\_to field in invite), the daemon creates a new outgoing call, and hang up the previous one (as explained here: http://www.in2eps.com/fo-sip/tk-fo-sip-service-04.html).
Problem is, daemon doesn't warns that it is doing that, therefore clients can't handle this new outgoing call.
The next thing emitted by the daemon about that call is a state changed to CONNECTING. But LRC has no knowledge of this call, and rejects it.
We need to agree on what daemon should emit:
- a simple call state change, and LRC will handle the unknown call. But in this case, we should remove the incomingCall signal and replace it by a call state change as well.
- create a new signal just as incomingCall (or reuse the NewCallCreated signal)Guillaume RoguezGuillaume Roguezhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/351setting history limit to 0 does not prevent history from being saved2018-05-25T13:37:45ZJami Botsetting history limit to 0 does not prevent history from being savedIssue generated from Tuleap's migration script.
**Originally submitted by: Stepan Salenikovich (ssalenik)**
Setting the history limit to (via LRC which modifies dring.yml) does not prevent history from being saved in the history.ini fil...Issue generated from Tuleap's migration script.
**Originally submitted by: Stepan Salenikovich (ssalenik)**
Setting the history limit to (via LRC which modifies dring.yml) does not prevent history from being saved in the history.ini file, nor in LRC as is the expected bahaviour.
Also, having to set the history limit to 0 to disable it is a bit confusing since that could also be interpreted as no limit.
Some users may want to be able to disable their history or limit it... this functionality should be tested to see if it actually works...https://git.jami.net/savoirfairelinux/jami-libclient/-/issues/350Add dialpad access2020-05-29T22:30:32ZJami BotAdd dialpad accessIssue generated from Tuleap's migration script.
**Originally submitted by: Alexandre Lision (alision)**
Multiple users have contacted us asking for a dialpad.
This is used with a SIP client when calling automated services, or compo...Issue generated from Tuleap's migration script.
**Originally submitted by: Alexandre Lision (alision)**
Multiple users have contacted us asking for a dialpad.
This is used with a SIP client when calling automated services, or composing extensions.
Gnome provides support for that, allowing to send DTMF during a call by typing on the keyboard but it's not easily discoverable.
Brief analysis:
- sending DTMF is already implemented in Daemon and LRC.
- Therefore the work will be in clients, providing a button popping a dialdap.
- Dialpad could be in a separate small window (like Skype does)
- Stepan mentions a bug with SIP DTMF that may require some investigationhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/349Share context menus between clients2018-05-25T13:37:22ZJami BotShare context menus between clientsIssue generated from Tuleap's migration script.
**Originally submitted by: Emmanuel Lepage Vallee (elv13)**
This issue track the advancment of the shared context menu implementation designed and discussed in May. The implementation was ...Issue generated from Tuleap's migration script.
**Originally submitted by: Emmanuel Lepage Vallee (elv13)**
This issue track the advancment of the shared context menu implementation designed and discussed in May. The implementation was done in spare time by Stepan and me since May.
\* Create the UserActionModel (done, May)
\* Define a set of actions for each assets (done, May)
\* Allow to define context for assets (done, June)
\* Abstract access to assets across all models (done, August)
\* Port the UserActionModel to the unified asset access (done, October)
\* Move action code from clients into LRC (WIP)
\* Add a platform specific extension interface (Unstarted)
\* Support tree based actions (Unstarted)
\* Support multi selection actions like join calls (WIP, postponed)
\* Integration into all clients (Unstarted)https://git.jami.net/savoirfairelinux/jami-libclient/-/issues/348DHT unattended transfer crash2018-05-25T13:37:17ZJami BotDHT unattended transfer crashIssue generated from Tuleap's migration script.
**Originally submitted by: Edric Milaret (edric)**
LRC is asserting on creation of transfer callIssue generated from Tuleap's migration script.
**Originally submitted by: Edric Milaret (edric)**
LRC is asserting on creation of transfer callhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/347[LRC] Implement DecorationRole for all relevant objects roleData()2018-05-25T13:37:11ZJami Bot[LRC] Implement DecorationRole for all relevant objects roleData()Issue generated from Tuleap's migration script.
**Originally submitted by: Emmanuel Lepage Vallee (elv13)**
Currently,some models have DecorationRole (icons), but some others need to dereference the object and play with the pixmapmanipu...Issue generated from Tuleap's migration script.
**Originally submitted by: Emmanuel Lepage Vallee (elv13)**
Currently,some models have DecorationRole (icons), but some others need to dereference the object and play with the pixmapmanipulationinterface to get them.
While dealing with icons is tricky because the actual icon "object" is dependant on the GUI toolkit (GDK pixmaps or Cairo surfaces for GTK, QIcon for Qt, etc), the API should at least be consistent on how this is handled. For now, there is no coherent way for "dumb" model bindings to display icons.
For the KDE and Windows client, Qt5 offer the QIconEngine() class that allow to create resolution independant icons.
The reason why this wasn't done sooner was the lack of "proper" research on how to handle resolution independence. After further investigation, it is not really an issue at all and can totally be implemented.https://git.jami.net/savoirfairelinux/jami-libclient/-/issues/346[LRC] Some variants of history sorting are broken2018-05-25T13:37:07ZJami Bot[LRC] Some variants of history sorting are brokenIssue generated from Tuleap's migration script.
**Originally submitted by: Emmanuel Lepage Vallee (elv13)**
Many categories that should be sorted by integer IDs are sorted by their string representation
One of the bug was "always" ...Issue generated from Tuleap's migration script.
**Originally submitted by: Emmanuel Lepage Vallee (elv13)**
Many categories that should be sorted by integer IDs are sorted by their string representation
One of the bug was "always" there while the other one was introduced in the history model rewrite earlier this yearhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/345[LRC] Add finer date and time related roles to calls2018-05-25T13:37:02ZJami Bot[LRC] Add finer date and time related roles to callsIssue generated from Tuleap's migration script.
**Originally submitted by: Emmanuel Lepage Vallee (elv13)**
I made a new proxy model that deduplicate/merge QModelIndex when a role is identical. So I used the displayname, but for categor...Issue generated from Tuleap's migration script.
**Originally submitted by: Emmanuel Lepage Vallee (elv13)**
I made a new proxy model that deduplicate/merge QModelIndex when a role is identical. So I used the displayname, but for categories like "last year", it is strange to see 2 calls from 2 different months being merged. So I need to add a second role for "do not merge if the day is different" but LRC have no such role
I also noticed formattedDate could be better cached as it is called quite a lot be the viewhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/344LRC: Add more metadata to text recordings2018-05-25T13:36:57ZJami BotLRC: Add more metadata to text recordingsIssue generated from Tuleap's migration script.
**Originally submitted by: Emmanuel Lepage Vallee (elv13)**
With the increased use of text messaging (not with offline one), manipulating TextRecording object is now more and more common. ...Issue generated from Tuleap's migration script.
**Originally submitted by: Emmanuel Lepage Vallee (elv13)**
With the increased use of text messaging (not with offline one), manipulating TextRecording object is now more and more common. Such new features need easy access to various metadata collected by the recording, but not currently easily exposed. The most pressing one is knowing if the recording contains relevant payloads. Some TextRecording may only contain "invisible" MIME payloads. In those case, raising the text widget and sending notifications is only spamming the user.https://git.jami.net/savoirfairelinux/jami-libclient/-/issues/343[lrc] ability of translation missing in `Call::formattedName()`2018-05-25T13:36:52ZJami Bot[lrc] ability of translation missing in `Call::formattedName()`Issue generated from Tuleap's migration script.
**Originally submitted by: Nicolas Jager (nicolasjager-sfl)**
"error" is returned by `Call::formattedName()` without `tr()`Issue generated from Tuleap's migration script.
**Originally submitted by: Nicolas Jager (nicolasjager-sfl)**
"error" is returned by `Call::formattedName()` without `tr()`https://git.jami.net/savoirfairelinux/jami-libclient/-/issues/342lrc: issue during the saving of a new account2018-05-25T13:36:46ZJami Botlrc: issue during the saving of a new accountIssue generated from Tuleap's migration script.
**Originally submitted by: Stepan Salenikovich (ssalenik)**
From: https://gerrit-ring.savoirfairelinux.com/\#/c/3342/2
\* The username field of new RING account wasn't fully validated...Issue generated from Tuleap's migration script.
**Originally submitted by: Stepan Salenikovich (ssalenik)**
From: https://gerrit-ring.savoirfairelinux.com/\#/c/3342/2
\* The username field of new RING account wasn't fully validated
\* id() was called before the account is saved, this is invalid
\* The codec model, when saved, set the account back into modified state
There is still some issues to be solved in the future:
\* Saving codecs and credentials before the account id is set wont work
\* The daemon certificate API need an account, it doesn't exist until the account is saved, causing no certificates to be saved
\* The profiles is saved too early and have an empty account ID, this cause an orphan account on the next starthttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/341lrc: heap-use-after-free detected by ASAN when deleting an account2018-05-25T13:36:42ZJami Botlrc: heap-use-after-free detected by ASAN when deleting an accountIssue generated from Tuleap's migration script.
**Originally submitted by: Stepan Salenikovich (ssalenik)**
systematic
Removing "Test" "a8d2da906eae7749"
=================================================================
==30971...Issue generated from Tuleap's migration script.
**Originally submitted by: Stepan Salenikovich (ssalenik)**
systematic
Removing "Test" "a8d2da906eae7749"
=================================================================
==30971==ERROR: AddressSanitizer: heap-use-after-free on address 0x60400031df90 at pc 0x4ebfa9 bp 0x7fffffffc150 sp 0x7fffffffc140
READ of size 4 at 0x60400031df90 thread T0
\#0 0x4ebfa8 in QModelIndex::isValid() const /usr/include/x86\_64-linux-gnu/qt5/QtCore/qabstractitemmodel.h:64
\#1 0x4ebfa8 in operator() /home/ssalenikovich/projects/ring-client-gnome/src/accountview.cpp:461
\#2 0x4ebfa8 in call /usr/include/x86\_64-linux-gnu/qt5/QtCore/qobjectdefs\_impl.h:494
\#3 0x4ebfa8 in call<QtPrivate::List<const QModelIndex&, const QModelIndex&>, void> /usr/include/x86\_64-linux-gnu/qt5/QtCore/qobjectdefs\_impl.h:551
\#4 0x4ebfa8 in impl /usr/include/x86\_64-linux-gnu/qt5/QtCore/qobject\_impl.h:192
\#5 0x7ffff50db359 in QMetaObject::activate(QObject\*, int, int, void\*\*) (/usr/lib/x86\_64-linux-gnu/libQt5Core.so.5+0x312359)
\#6 0x7ffff505b099 in QItemSelectionModel::currentChanged(QModelIndex const&, QModelIndex const&) (/usr/lib/x86\_64-linux-gnu/libQt5Core.so.5+0x292099)
\#7 0x7ffff50637a9 (/usr/lib/x86\_64-linux-gnu/libQt5Core.so.5+0x29a7a9)
\#8 0x7ffff50652e8 (/usr/lib/x86\_64-linux-gnu/libQt5Core.so.5+0x29c2e8)
\#9 0x7ffff50db9c8 in QMetaObject::activate(QObject\*, int, int, void\*\*) (/usr/lib/x86\_64-linux-gnu/libQt5Core.so.5+0x3129c8)
\#10 0x7ffff51593d3 in QAbstractItemModel::rowsAboutToBeRemoved(QModelIndex const&, int, int, QAbstractItemModel::QPrivateSignal) (/usr/lib/x86\_64-linux-gnu/libQt5Core.so.5+0x3903d3)
\#11 0x7ffff5053589 in QAbstractItemModel::beginRemoveRows(QModelIndex const&, int, int) (/usr/lib/x86\_64-linux-gnu/libQt5Core.so.5+0x28a589)
\#12 0x6023db in AccountModel::remove(Account\*) /home/ssalenikovich/projects/ring-lrc/src/accountmodel.cpp:904
\#13 0x4edb43 in remove\_account /home/ssalenikovich/projects/ring-client-gnome/src/accountview.cpp:282
\#14 0x7ffff562b503 (/usr/lib/x86\_64-linux-gnu/libgobject-2.0.so.0+0x10503)
\#15 0x7ffff5644fa6 in g\_signal\_emit\_valist (/usr/lib/x86\_64-linux-gnu/libgobject-2.0.so.0+0x29fa6)
\#16 0x7ffff56458fe in g\_signal\_emit (/usr/lib/x86\_64-linux-gnu/libgobject-2.0.so.0+0x2a8fe)
\#17 0x7ffff674121c (/usr/lib/x86\_64-linux-gnu/libgtk-3.so.0+0x10821c)
\#18 0x7ffff6741274 (/usr/lib/x86\_64-linux-gnu/libgtk-3.so.0+0x108274)
\#19 0x7ffff562b503 (/usr/lib/x86\_64-linux-gnu/libgobject-2.0.so.0+0x10503)
\#20 0x7ffff5644fa6 in g\_signal\_emit\_valist (/usr/lib/x86\_64-linux-gnu/libgobject-2.0.so.0+0x29fa6)
\#21 0x7ffff56458fe in g\_signal\_emit (/usr/lib/x86\_64-linux-gnu/libgobject-2.0.so.0+0x2a8fe)
\#22 0x7ffff673f1ff (/usr/lib/x86\_64-linux-gnu/libgtk-3.so.0+0x1061ff)
\#23 0x7fffee813d8f in ffi\_call\_unix64 (/usr/lib/x86\_64-linux-gnu/libffi.so.6+0x5d8f)
\#24 0x7fffee8137f7 in ffi\_call (/usr/lib/x86\_64-linux-gnu/libffi.so.6+0x57f7)
\#25 0x7ffff562bf3b in g\_cclosure\_marshal\_generic\_va (/usr/lib/x86\_64-linux-gnu/libgobject-2.0.so.0+0x10f3b)
\#26 0x7ffff562b503 (/usr/lib/x86\_64-linux-gnu/libgobject-2.0.so.0+0x10503)
\#27 0x7ffff5644fa6 in g\_signal\_emit\_valist (/usr/lib/x86\_64-linux-gnu/libgobject-2.0.so.0+0x29fa6)
\#28 0x7ffff56458fe in g\_signal\_emit (/usr/lib/x86\_64-linux-gnu/libgobject-2.0.so.0+0x2a8fe)
\#29 0x7ffff67e4290 (/usr/lib/x86\_64-linux-gnu/libgtk-3.so.0+0x1ab290)
\#30 0x7ffff562e29d in g\_cclosure\_marshal\_VOID\_\_BOXEDv (/usr/lib/x86\_64-linux-gnu/libgobject-2.0.so.0+0x1329d)
\#31 0x7ffff562b503 (/usr/lib/x86\_64-linux-gnu/libgobject-2.0.so.0+0x10503)
\#32 0x7ffff5644fa6 in g\_signal\_emit\_valist (/usr/lib/x86\_64-linux-gnu/libgobject-2.0.so.0+0x29fa6)
\#33 0x7ffff56458fe in g\_signal\_emit (/usr/lib/x86\_64-linux-gnu/libgobject-2.0.so.0+0x2a8fe)
\#34 0x7ffff67e187d (/usr/lib/x86\_64-linux-gnu/libgtk-3.so.0+0x1a887d)
\#35 0x7ffff67e2cca (/usr/lib/x86\_64-linux-gnu/libgtk-3.so.0+0x1a9cca)
\#36 0x7ffff67e5704 (/usr/lib/x86\_64-linux-gnu/libgtk-3.so.0+0x1ac704)
\#37 0x7ffff67b8daa in gtk\_event\_controller\_handle\_event (/usr/lib/x86\_64-linux-gnu/libgtk-3.so.0+0x17fdaa)
\#38 0x7ffff6954fdc (/usr/lib/x86\_64-linux-gnu/libgtk-3.so.0+0x31bfdc)
\#39 0x7ffff6827608 (/usr/lib/x86\_64-linux-gnu/libgtk-3.so.0+0x1ee608)
\#40 0x7ffff562b503 (/usr/lib/x86\_64-linux-gnu/libgobject-2.0.so.0+0x10503)
\#41 0x7ffff5644a4f in g\_signal\_emit\_valist (/usr/lib/x86\_64-linux-gnu/libgobject-2.0.so.0+0x29a4f)
\#42 0x7ffff56458fe in g\_signal\_emit (/usr/lib/x86\_64-linux-gnu/libgobject-2.0.so.0+0x2a8fe)
\#43 0x7ffff69588c3 (/usr/lib/x86\_64-linux-gnu/libgtk-3.so.0+0x31f8c3)
\#44 0x7ffff6824f1d (/usr/lib/x86\_64-linux-gnu/libgtk-3.so.0+0x1ebf1d)
\#45 0x7ffff6826b2d in gtk\_main\_do\_event (/usr/lib/x86\_64-linux-gnu/libgtk-3.so.0+0x1edb2d)
\#46 0x7ffff63c3b41 (/usr/lib/x86\_64-linux-gnu/libgdk-3.so.0+0x50b41)
\#47 0x7ffff5355c3c in g\_main\_context\_dispatch (/lib/x86\_64-linux-gnu/libglib-2.0.so.0+0x49c3c)
\#48 0x7ffff5355f1f (/lib/x86\_64-linux-gnu/libglib-2.0.so.0+0x49f1f)
\#49 0x7ffff5355fcb in g\_main\_context\_iteration (/lib/x86\_64-linux-gnu/libglib-2.0.so.0+0x49fcb)
\#50 0x7ffff591667b in g\_application\_run (/usr/lib/x86\_64-linux-gnu/libgio-2.0.so.0+0xa967b)
\#51 0x4b957f in main /home/ssalenikovich/projects/ring-client-gnome/src/main.cpp:45
\#52 0x7ffff2c14a3f in \_\_libc\_start\_main (/lib/x86\_64-linux-gnu/libc.so.6+0x20a3f)
\#53 0x4b93d8 in \_start (/home/ssalenikovich/projects/ring-client-gnome/build/gnome-ring+0x4b93d8)
0x60400031df90 is located 0 bytes inside of 40-byte region [0x60400031df90,0x60400031dfb8)
freed by thread T0 here:
\#0 0x7ffff6f556af in operator delete(void\*) (/usr/lib/x86\_64-linux-gnu/libasan.so.1+0x586af)
\#1 0x7ffff505094e in QPersistentModelIndex::operator=(QModelIndex const&) (/usr/lib/x86\_64-linux-gnu/libQt5Core.so.5+0x28794e)
previously allocated by thread T0 here:
\#0 0x7ffff6f551af in operator new(unsigned long) (/usr/lib/x86\_64-linux-gnu/libasan.so.1+0x581af)
\#1 0x7ffff504d485 (/usr/lib/x86\_64-linux-gnu/libQt5Core.so.5+0x284485)
SUMMARY: AddressSanitizer: heap-use-after-free /usr/include/x86\_64-linux-gnu/qt5/QtCore/qabstractitemmodel.h:64 QModelIndex::isValid() const
Shadow bytes around the buggy address:
0x0c088005bba0: fa fa fd fd fd fd fd fa fa fa fd fd fd fd fd fa
0x0c088005bbb0: fa fa fd fd fd fd fd fa fa fa 00 00 00 00 04 fa
0x0c088005bbc0: fa fa fd fd fd fd fd fd fa fa 00 00 00 00 00 fa
0x0c088005bbd0: fa fa fd fd fd fd fd fa fa fa 00 00 00 00 02 fa
0x0c088005bbe0: fa fa fd fd fd fd fd fa fa fa fd fd fd fd fd fd
=>0x0c088005bbf0: fa fa[fd]fd fd fd fd fa fa fa fd fd fd fd fd fd
0x0c088005bc00: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c088005bc10: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c088005bc20: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c088005bc30: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c088005bc40: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Heap right redzone: fb
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack partial redzone: f4
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Contiguous container OOB:fc
ASan internal: fe
==30971==ABORTING
[Thread 0x7fffdba76700 (LWP 30978) exited]
[Thread 0x7ffff7f15a40 (LWP 30971) exited]
[Inferior 1 (process 30971) exited with code 01]https://git.jami.net/savoirfairelinux/jami-libclient/-/issues/340lrc: fix warnings2018-05-25T13:36:33ZJami Botlrc: fix warningsIssue generated from Tuleap's migration script.
**Originally submitted by: Stepan Salenikovich (ssalenik)**
There are many warnings, some seemingly trivial to fix, which pop up when compiling lrc and when linking the clients against it....Issue generated from Tuleap's migration script.
**Originally submitted by: Stepan Salenikovich (ssalenik)**
There are many warnings, some seemingly trivial to fix, which pop up when compiling lrc and when linking the clients against it... This is distracting and makes it harder to see errors as well as notice when a new patch introduces new warnings thus potentially reducing code quality.
These warnings should be removed as much as possible, especially the ones easy to fix.https://git.jami.net/savoirfairelinux/jami-libclient/-/issues/339LRC: AccountModel "cancel" action is broken2018-05-25T13:36:29ZJami BotLRC: AccountModel "cancel" action is brokenIssue generated from Tuleap's migration script.
**Originally submitted by: Emmanuel Lepage Vallee (elv13)**
It wont correctly restore the model stateIssue generated from Tuleap's migration script.
**Originally submitted by: Emmanuel Lepage Vallee (elv13)**
It wont correctly restore the model statehttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/338New year crash in LRC2018-05-25T13:36:24ZJami BotNew year crash in LRCIssue generated from Tuleap's migration script.
**Originally submitted by: Emmanuel Lepage Vallee (elv13)**
The new time calculation code is broken as each values can be negative and this isn't taken into account.
I will revert to ...Issue generated from Tuleap's migration script.
**Originally submitted by: Emmanuel Lepage Vallee (elv13)**
The new time calculation code is broken as each values can be negative and this isn't taken into account.
I will revert to a version based on my old code but including the changes introduced by the rewrite.
It is faster anyway. In my opinion, it is also clear and simple and don't depend on 3rd party APIs at all, just plain C and decimal logichttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/337lrc: wrong or missing audio device selection in certain cases2018-05-25T13:36:13ZJami Botlrc: wrong or missing audio device selection in certain casesIssue generated from Tuleap's migration script.
**Originally submitted by: Stepan Salenikovich (ssalenik)**
The audio device selection can be lost or incorrectly set when chaning the audio driver selection.
The primary reason seems...Issue generated from Tuleap's migration script.
**Originally submitted by: Stepan Salenikovich (ssalenik)**
The audio device selection can be lost or incorrectly set when chaning the audio driver selection.
The primary reason seems to be because the device selection for each driver is not individually stored nor checked against what is selected in the daemon.https://git.jami.net/savoirfairelinux/jami-libclient/-/issues/336daemon/lrc: bizzare call state transitions when call fails immediately2018-05-25T13:36:07ZJami Botdaemon/lrc: bizzare call state transitions when call fails immediatelyIssue generated from Tuleap's migration script.
**Originally submitted by: Stepan Salenikovich (ssalenik)**
It seems like when a call fails, lrc puts in Failed -> Over state, but then a new call object is created in the Failed state.
...Issue generated from Tuleap's migration script.
**Originally submitted by: Stepan Salenikovich (ssalenik)**
It seems like when a call fails, lrc puts in Failed -> Over state, but then a new call object is created in the Failed state.
lrc log:
Creating the call to "ring" failed
Calling action ACCEPT (0) on Call(0x603000b18aa0) with state "Dialing" . Become "Failed"
Call State Changed for call "15222503668050492823" . New state : "FAILURE"
Call not found "15222503668050492823" new state "FAILURE"
New foreign call: "15222503668050492823"
Building call "15222503668050492823" failed, it may already have been destroyed by the daemon
Call State Changed for call "15222503668050492823" . New state : "OVER"
Call not found "15222503668050492823" new state "OVER"
New foreign call: "15222503668050492823"
Building call "15222503668050492823" failed, it may already have been destroyed by the daemon
State changing from "Failed" to "Over" on Call(0x603000b18aa0)
Cannot remove Call(0x603000b18aa0) : call not found in tree
Calling action REFUSE (1) on Call(0x603000b18aa0) with state "Failed" . Become "Over"https://git.jami.net/savoirfairelinux/jami-libclient/-/issues/335LRC: own ContactMethod appears in RecentModel2018-05-25T13:36:02ZJami BotLRC: own ContactMethod appears in RecentModelIssue generated from Tuleap's migration script.
**Originally submitted by: Stepan Salenikovich (ssalenik)**
This seems to happen sometimes when a call immediately fails, or is hung up before it is answered by the peer... though not 100%...Issue generated from Tuleap's migration script.
**Originally submitted by: Stepan Salenikovich (ssalenik)**
This seems to happen sometimes when a call immediately fails, or is hung up before it is answered by the peer... though not 100% sure how to reproduce.
The result is that the user's own RingID appears in the RecentModel, though it is appended by "@bootrstrap.ring.cx"
Another weird thing is that sometimes when sending a text message to someone else, the user's RingID in the recent model will jump to the top (ie: its lastUsed is updated).