jami-libclient issueshttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues2018-10-31T17:52:49Zhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/401Lights setting off motion2018-10-31T17:52:49ZManuelLights setting off motionThe system should be smart enough to know that a translucent light (shadow) is not an object and should not set off the motion. For example a car turning around in front of your house at night, the headlights set off the motion. Also if ...The system should be smart enough to know that a translucent light (shadow) is not an object and should not set off the motion. For example a car turning around in front of your house at night, the headlights set off the motion. Also if a car brakes the brake lights set off the motion.https://git.jami.net/savoirfairelinux/jami-libclient/-/issues/400account (un)register: bad daemon method used, setAccountActive never called2018-10-21T13:47:12ZHugo Lefeuvreaccount (un)register: bad daemon method used, setAccountActive never calledThe setAccountActive() method from the daemon API is not used by the new LRC.
```
220 void
221 NewAccountModel::enableAccount(const std::string& accountId, bool enabled)
222 {
223 auto accountInfo = pimpl_->accounts.find(accountId);...The setAccountActive() method from the daemon API is not used by the new LRC.
```
220 void
221 NewAccountModel::enableAccount(const std::string& accountId, bool enabled)
222 {
223 auto accountInfo = pimpl_->accounts.find(accountId);
224 if (accountInfo == pimpl_->accounts.end()) {
225 throw std::out_of_range("NewAccountModel::getAccountConfig, can't find " + accountId);
226 }
227 accountInfo->second.enabled = enabled;
228 }
```
Instead, the account is registered and unregistered via setAccountdetails(). Obviously, this is not a very good idea. It might even be the root of our issues with the register/unregister feature.Hugo LefeuvreHugo Lefeuvrehttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/399Document how LRC is structured.2019-11-21T04:53:12ZSébastien BlinDocument how LRC is structured.In https://git.ring.cx/savoirfairelinux/ring-project/wikis/homeIn https://git.ring.cx/savoirfairelinux/ring-project/wikis/homeNew media APISébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/398Video API2018-12-11T22:42:00ZSébastien BlinVideo APIWe should be able to:
+ List devices
+ Get current device
+ Configure devices
# Patch
https://gerrit-ring.savoirfairelinux.com/c/ring-lrc/+/10319
We should be able to:
+ List devices
+ Get current device
+ Configure devices
# Patch
https://gerrit-ring.savoirfairelinux.com/c/ring-lrc/+/10319
New media APISébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/397Audio API2018-12-11T22:42:03ZSébastien BlinAudio APIWe should be able to:
+ List devices
+ Get current device
+ Configure devices
# Patch
https://gerrit-ring.savoirfairelinux.com/c/ring-lrc/+/10319
We should be able to:
+ List devices
+ Get current device
+ Configure devices
# Patch
https://gerrit-ring.savoirfairelinux.com/c/ring-lrc/+/10319
New media APISébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/396new Renderer implementation2018-12-11T22:42:01ZSébastien Blinnew Renderer implementationThe new API should provide the necessary functions to render a call and preview. Moreover, this should also fix the issue when a crash occurs when the preview is open.
# Patch
https://gerrit-ring.savoirfairelinux.com/c/ring-lrc/+/10319
The new API should provide the necessary functions to render a call and preview. Moreover, this should also fix the issue when a crash occurs when the preview is open.
# Patch
https://gerrit-ring.savoirfairelinux.com/c/ring-lrc/+/10319
New media APISébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/395Define new media API for clients2018-12-11T22:41:55ZSébastien BlinDefine new media API for clientsThe AVModel class should be completed to provide an API to manage Renderers, Video and Audio devices.
# Patch
https://gerrit-ring.savoirfairelinux.com/c/ring-lrc/+/10319
The AVModel class should be completed to provide an API to manage Renderers, Video and Audio devices.
# Patch
https://gerrit-ring.savoirfairelinux.com/c/ring-lrc/+/10319
New media APISébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/394Migrate Medias to new LRC2018-12-11T22:42:14ZSébastien BlinMigrate Medias to new LRCSprint meta.
# TODO
## Call view
+ [x] Get Video's input (name/resolutions/etc)
+ [x] Get Audio's input (name/resolutions/etc)
+ [x] Add the ability to change the input
+ [x] Video
+ [x] Monitor (full/area)
+ [x] Stream fi...Sprint meta.
# TODO
## Call view
+ [x] Get Video's input (name/resolutions/etc)
+ [x] Get Audio's input (name/resolutions/etc)
+ [x] Add the ability to change the input
+ [x] Video
+ [x] Monitor (full/area)
+ [x] Stream file
+ [x] Get advanced informations (call id/resolutions/codecs) from current side and peer
+ [x] Classes not based on Call and Profiles from old LRC
+ [x] Verify old options (pause/mute/recording/quality)
+ [x] Crash client without daemon resilient?
## Avatar view & Let a message view
+ [x] Preview rendered
## Media settings
+ [x] Enable hardware decoding
+ [x] Set managers / devices for audio and video
# Issues + estimates:
+ #395 = 1d
+ #396 = 2d
+ #397 = 2d
+ #398 = 1d
+ #399 = 1dNew media APISébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/393Redo slotAccountStatusChanged2018-10-18T01:51:29ZSébastien BlinRedo slotAccountStatusChangedRedo
```
if (accountInfo.profileInfo.type != profile::Type::SIP) {
// HACK TODO(sblin) change daemon or add signal to know when a Ring
// account is ready (when the keys are generated and the id present)
if (s...Redo
```
if (accountInfo.profileInfo.type != profile::Type::SIP) {
// HACK TODO(sblin) change daemon or add signal to know when a Ring
// account is ready (when the keys are generated and the id present)
if (status == api::account::Status::REGISTERED && accountInfo.profileInfo.uri.empty()) {
// This part detect when a new Ring account is created.
accounts.erase(accountID);
addToAccounts(accountID);
emit linked.accountAdded(accountID);
} else if (!accountInfo.profileInfo.uri.empty()) {
accountInfo.status = status;
emit linked.accountStatusChanged(accountID);
}
} else {
accountInfo.status = status;
emit linked.accountStatusChanged(accountID);
}
```
This is dirty!
There is a lot to say, but two main points:
1. The account creation detection must not happen here
2. SIP signals are bugguy.Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/392Invalid call state transition blocks incoming call view in "finished" state2018-09-28T13:58:45ZHugo LefeuvreInvalid call state transition blocks incoming call view in "finished" state**How to reproduce (GNOME client)**:
* call a contact
* stop the call using the hangup button while the call is still in "searching" state
The incomingcallview will remain open forever because no showChatView signal is emitted.
This is...**How to reproduce (GNOME client)**:
* call a contact
* stop the call using the hangup button while the call is still in "searching" state
The incomingcallview will remain open forever because no showChatView signal is emitted.
This is because of an invalid SEARCHING -> ENDED call state transition.
The call state machine expects a two step state transition: the daemon should first transition to a terminating state, and then to OVER. This is almost always the case, expect for the SEARCHING state.
In fact this state is a bit special since it does not correspond to any well defined daemon state.
In order to avoid issues resulting from an invalid SEARCHING -> ENDED transition, we should add a temporary state transition to TERMINATING before going on with OVER.Hugo LefeuvreHugo Lefeuvrehttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/391Broken Ring InfoHash support2018-09-20T20:54:35ZHugo LefeuvreBroken Ring InfoHash support20e8d7b3 has broken Ring InfoHash support in the smartlist.20e8d7b3 has broken Ring InfoHash support in the smartlist.Hugo LefeuvreHugo Lefeuvrehttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/390Regression: presence broken by 20e8d7b32018-09-12T16:20:33ZHugo LefeuvreRegression: presence broken by 20e8d7b3Presence is not working anymore since 20e8d7b3. It seems like URI scheme is not included in the URI set to the daemon during `subscribeBuddy` call.Presence is not working anymore since 20e8d7b3. It seems like URI scheme is not included in the URI set to the daemon during `subscribeBuddy` call.Hugo LefeuvreHugo Lefeuvrehttps://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/388SIP: contact search/add bar filtering issues2018-09-12T15:21:28ZSIP: contact search/add bar filtering issuesI'm looking at using Ring as a SIP client and I seem to have been able to successfully install the 2018.6.6 version from the Gentoo overlay. However, I've been having a couple of problems with adding/searching contacts using the text inp...I'm looking at using Ring as a SIP client and I seem to have been able to successfully install the 2018.6.6 version from the Gentoo overlay. However, I've been having a couple of problems with adding/searching contacts using the text input at the top left of the interface:
* I can't seem to call any contacts with `*` in their numbers. This might not be an issue normally since normal phone numbers don't use that character, but my VoIP provider has voicemail set up as `*97` and there doesn't seem to be any way to call that number to check my voicemail using Ring. I even tried manually adding a conversation to the database using SQLite and still didn't see it in the list.
* I tried typing a `'` into the search box to see if that would let me use special characters like `*` and it crashed LRC with an SQL error. I suppose that there really aren't any phone numbers with `'` in them, but at the same time the fact that Ring uses SQL but doesn't seem to be properly escaping its queries is a major red flag for security-conscious users.Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/387Migrate account with ring.db should back-up conversations and avatars2019-01-27T15:01:47ZannaMigrate account with ring.db should back-up conversations and avatarsRunning Fedora 28 with latest repository update from
https://dl.ring.cx/ring-nightly/fedora_28/ring-nightly.repo
Exported my account to .gz. Saved /home/user/.config/ring & /home/user/.local/share/gnome-ring.
Finally I imported all of ...Running Fedora 28 with latest repository update from
https://dl.ring.cx/ring-nightly/fedora_28/ring-nightly.repo
Exported my account to .gz. Saved /home/user/.config/ring & /home/user/.local/share/gnome-ring.
Finally I imported all of them to my freshly installed new system.
My account & settings are there. My contacts & conversations are all gone.
I noticed that ring.db contains all of my messages -> checked with sqlite3 ~/.local/share/gnome-ring/ring.db
and /home/user/.local/share/gnome-ring/peer_profiles contains all of my contacts.
But nothing is displayed.
Any idea how to get my data visible again?Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/386Smartlist should not display INVALID items2018-09-11T19:29:29ZHugo LefeuvreSmartlist should not display INVALID itemsprofileInfo might have `type` field set to `INVALID`. In this case the smartlist should not display it.
This might allow user to create invalid conversations in some obscure circumstances.profileInfo might have `type` field set to `INVALID`. In this case the smartlist should not display it.
This might allow user to create invalid conversations in some obscure circumstances.Hugo LefeuvreHugo Lefeuvrehttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/385Exception chain during call termination2018-09-10T19:25:21ZHugo LefeuvreException chain during call terminationWhen a call terminates
1. `slotCallEnded()` (conversationmodel) is executed. Since false is passed to `getCallFromURI()` the call is not found and `std::out_of_range` is thrown. Consequently callId is set to `""`.
2. `selectConversation...When a call terminates
1. `slotCallEnded()` (conversationmodel) is executed. Since false is passed to `getCallFromURI()` the call is not found and `std::out_of_range` is thrown. Consequently callId is set to `""`.
2. `selectConversation()` is then executed. Since callId has been set to `""`, the newcallmodel fails to find the call and `std::out_of_range` is thrown. What happens is the same as without exception, namely `showChatView` signal is emitted.
There might be other exceptions thrown under the hood. I understand that the newcallmodel is designed to set the callId to `""` when the call finished, but this has to be done without exceptions.Hugo LefeuvreHugo Lefeuvrehttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/384Bad handling of URIs in smartlist2018-09-11T21:31:36ZHugo LefeuvreBad handling of URIs in smartlist**Affects**: latest LRC master
Any URI beginning with `ring:` is recognized as a valid RingID by the LRC. Some URIs beginning with `sip:` and followed by letters like `sip:pol` are recognized as valid RingID. This is a big bug.**Affects**: latest LRC master
Any URI beginning with `ring:` is recognized as a valid RingID by the LRC. Some URIs beginning with `sip:` and followed by letters like `sip:pol` are recognized as valid RingID. This is a big bug.Next major releaseHugo LefeuvreHugo Lefeuvrehttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/383regex_error crash when entering "*" in search box2018-08-30T20:05:51ZEric Drechselregex_error crash when entering "*" in search boxI am trying to enter "\*97" to access voicemail on voip.ms. Entering "\*" in the search box triggers a crash. Reproduced with latest arch linux ring-gnome package as well as latest head via ring-gnome-git AUR package.
> terminate calle...I am trying to enter "\*97" to access voicemail on voip.ms. Entering "\*" in the search box triggers a crash. Reproduced with latest arch linux ring-gnome package as well as latest head via ring-gnome-git AUR package.
> terminate called after throwing an instance of 'std::regex_error'
> what(): regex_error
> /usr/bin/ring.cx: line 46: 12705 Aborted (core dumped) gnome-ring $*
Is this due to some library version in Arch, or is this reproducible elsewhere?Hugo LefeuvreHugo Lefeuvrehttps://git.jami.net/savoirfairelinux/jami-libclient/-/issues/382Better handling of paused calls2022-01-07T21:30:58ZHugo LefeuvreBetter handling of paused calls**Currently**: User A and B are in a call. User A pauses the call. User A's screen becomes black while user B's screen freezes (it displays the last received frame).
This is ugly. We should be able to better represent a paused call on b...**Currently**: User A and B are in a call. User A pauses the call. User A's screen becomes black while user B's screen freezes (it displays the last received frame).
This is ugly. We should be able to better represent a paused call on both sides. All needed info is already provided by the daemon.Hugo LefeuvreHugo Lefeuvre