jami-daemon issueshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues2021-02-03T16:29:41Zhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/390audio: use Opus PLC and FEC2021-02-03T16:29:41ZAdrien Béraudaudio: use Opus PLC and FECAudio glitches are noticed in case of packet drop. Use Opus PLC and FEC to improve audio qualityAudio glitches are noticed in case of packet drop. Use Opus PLC and FEC to improve audio qualityIteration 27Pierre LespagnolPierre Lespagnol2021-04-01https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/795Call in large groups - multi-host?2023-01-07T14:02:03ZSébastien BlinCall in large groups - multi-host?If we remove the limit for swarm, creating a call may have issue for the hosts as they will be able to receive and host thousands of calls.If we remove the limit for swarm, creating a call may have issue for the hosts as they will be able to receive and host thousands of calls.2023-12-31https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/794[Design needed]Public swarm discovery2023-11-30T04:15:58ZSébastien Blin[Design needed]Public swarm discovery+ Some ideas https://www.rfc-editor.org/rfc/rfc7033
+ Announce public known conversations to contact
+ Change nameserver to get public invite+ Some ideas https://www.rfc-editor.org/rfc/rfc7033
+ Announce public known conversations to contact
+ Change nameserver to get public invite2023-12-31https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/930POC: new linking account mechanism2024-03-28T00:05:08ZSébastien BlinPOC: new linking account mechanism# Goal
Do not use the DHT to transfer the account archive while linking a new device, but rather use a p2p link between the new and old device
# TODO
+ Define architecture
+ POC (client)
+ add docs to docs.jami.net
+ Finalize daemon c...# Goal
Do not use the DHT to transfer the account archive while linking a new device, but rather use a p2p link between the new and old device
# TODO
+ Define architecture
+ POC (client)
+ add docs to docs.jami.net
+ Finalize daemon code
+ Ping design & clients to implement the featureKessler DuPont-TeevinAdrien BéraudKessler DuPont-Teevin2024-01-31https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/949composingStatusChanged should be fully managed daemon side2024-03-05T13:50:09ZSébastien BlincomposingStatusChanged should be fully managed daemon sideActually, the daemon only forward the reception of the status change, but a lot of logic is implemented client side:
1. The preference to send/receive typing indicators MUST be moved in daemon (like read status)
2. The 12s timeout shoul...Actually, the daemon only forward the reception of the status change, but a lot of logic is implemented client side:
1. The preference to send/receive typing indicators MUST be moved in daemon (like read status)
2. The 12s timeout should be managed by the daemon
3. If a member of a conversation is removed while typing should be managed by the daemonSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/895windows: UT: make and run unit tests in windows2023-11-17T16:34:28ZAline Gondim Santoswindows: UT: make and run unit tests in windowshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/831Add abstraction layer around conversation2024-01-19T13:25:49ZPierre NicolasAdd abstraction layer around conversationConversation are very complex partly because we keep history (git system).
Deamon should manage the data to give a simplified version to clients.
Then it will be cleaner and reduce bugs in the client conversation implementation.Conversation are very complex partly because we keep history (git system).
Deamon should manage the data to give a simplified version to clients.
Then it will be cleaner and reduce bugs in the client conversation implementation.Pierre NicolasPierre Nicolashttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/754Better handling of SyncMsg2022-08-18T19:21:16ZSébastien BlinBetter handling of SyncMsgin the daemon, SyncMsg can be big, for now it's limited to UINT16_MAX bytes, but ideally we want this to be generic.
`SyncModule::Impl::syncInfos` we should write juste enough data in SyncMsg to get the limit and split in multiple messa...in the daemon, SyncMsg can be big, for now it's limited to UINT16_MAX bytes, but ideally we want this to be generic.
`SyncModule::Impl::syncInfos` we should write juste enough data in SyncMsg to get the limit and split in multiple messages if necessaryhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/752Windows: offer full fps range for video camera2022-12-23T20:29:35ZSébastien BlinWindows: offer full fps range for video cameraEg from https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/747
```
$ ffmpeg -f dshow -list_options true -i video="ManyCam Virtual Webcam"
[dshow @ 000001F46BD265C0] DirectShow video device options (from video devices)
[dsho...Eg from https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/747
```
$ ffmpeg -f dshow -list_options true -i video="ManyCam Virtual Webcam"
[dshow @ 000001F46BD265C0] DirectShow video device options (from video devices)
[dshow @ 000001F46BD265C0] Pin "Capture" (alternative pin name "0")
[dshow @ 000001F46BD265C0] pixel_format=yuyv422 min s=1920x1080 fps=0.015625 max s=1920x1080 fps=60.0002
[dshow @ 000001F46BD265C0] pixel_format=yuyv422 min s=1600x1200 fps=0.015625 max s=1600x1200 fps=60.0002
```
Jami only displays 60fps (max fps). However with some modification we can offer the range 1,5,10,15...60
I think it's not important as anyway the virtual camera will probably be encoded to 60fps by the original app anyway, and codec will already do optimize, so the data reduction will be minor.https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/745Add some unit tests for plugins2022-09-09T12:56:18ZSébastien BlinAdd some unit tests for pluginsAline Gondim SantosAline Gondim Santoshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/714Conversation: status erased, removed but conversation is still in contact.yaml2022-02-09T21:49:59ZMaxime CalletConversation: status erased, removed but conversation is still in contact.yamlWhile syncing conversations data from another device, some conversations are still listed in the conversation.yml file while their status is erased and removed.
The daemon should clear this conversation.
json example for a conversatio...While syncing conversations data from another device, some conversations are still listed in the conversation.yml file while their status is erased and removed.
The daemon should clear this conversation.
json example for a conversation:
```
"7e20d508e92e58928003c8a6b580e4374004ada4": {
"created": 1643907807,
"erased": 1643924392,
"id": "7e20d508e92e58928003c8a6b580e4374004ada4",
"lastDisplayed": "",
"members": [
{
"uri": "77d1acf5b271d7c73032ef010241b94fb3a32b07"
}
],
"removed": 1643924392
},
```Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/703Remove hacky underlyingIce()2022-08-24T13:58:31ZSébastien BlinRemove hacky underlyingIce()underlyingIce() is hacky. This method should not exists and the chain should be clean.
However this issue is quite complex, because the socket can be cut pretty everywhere in the chain and it should correctly close all the layer.
The m...underlyingIce() is hacky. This method should not exists and the chain should be clean.
However this issue is quite complex, because the socket can be cut pretty everywhere in the chain and it should correctly close all the layer.
The most hacky part is in TlsSocketEndpoint::ImplSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/692Support " echoCanceller: software"2022-08-15T21:08:19ZSébastien BlinSupport " echoCanceller: software"Webrtc should be enabled with echoCanceller: software in the dring.yml
For now "echoCanceller: system" is only used in pulselayer to do `bool ec = preference_.getEchoCanceller() == "system";`Webrtc should be enabled with echoCanceller: software in the dring.yml
For now "echoCanceller: system" is only used in pulselayer to do `bool ec = preference_.getEchoCanceller() == "system";`https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/689Update our code and test due to FFmpeg new release2022-08-04T11:59:59ZMehdi GhayourUpdate our code and test due to FFmpeg new releaseIt's not the priority at the moment, we'll handle it later and will consider a timeline aligned with the product.It's not the priority at the moment, we'll handle it later and will consider a timeline aligned with the product.Aline Gondim SantosAline Gondim Santoshttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/666Call re-invite - restart media only after successful ICE negotiation2022-01-05T18:21:56ZSébastien BlinCall re-invite - restart media only after successful ICE negotiationIf media transport uses ICE, and when a new media session is negotiated (incoming or outgoing re-invite) the current ICE session must be kept until the new ICE session is successfully negotiated, and the media is stopped and restarted us...If media transport uses ICE, and when a new media session is negotiated (incoming or outgoing re-invite) the current ICE session must be kept until the new ICE session is successfully negotiated, and the media is stopped and restarted using the new ICE session.
If the new session fails, the media transport must continue using the current ICE session.
# Scenario
+ In a call cut video
# Expected
+ the remote video should not be cut and retrieved a few secs after
# Current
During the negotiation remote video/audio is stopped and a glitch is seenMohamed ChibaniMohamed Chibanihttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/603Extract conversation's code from jamiaccount2021-09-13T17:03:00ZSébastien BlinExtract conversation's code from jamiaccountJamiAccount is too big. Split this classJamiAccount is too big. Split this classSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/599Account preferences: add preferences to send or not displayed status2021-08-09T13:30:43ZSébastien BlinAccount preferences: add preferences to send or not displayed statusFor now clients are doing their own logic. This should be moved into the daemon. This allow us to group code from differnt clients.For now clients are doing their own logic. This should be moved into the daemon. This allow us to group code from differnt clients.Sébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/592Swarm: move last read per participant daemon' side2021-07-28T17:15:46ZSébastien BlinSwarm: move last read per participant daemon' side+ getMembers() should return last read
+ react to messageDisplayed/setMessageDisplayed
+ Add test
+ Add method to compute how many messages between two interactions
+ Update LRC
+ Update doc+ getMembers() should return last read
+ react to messageDisplayed/setMessageDisplayed
+ Add test
+ Add method to compute how many messages between two interactions
+ Update LRC
+ Update docSwarm-chatSébastien BlinSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/579Uses long key instead sha1 for devices2021-07-30T15:06:28ZSébastien BlinUses long key instead sha1 for devicesSébastien BlinAdrien BéraudSébastien Blinhttps://git.jami.net/savoirfairelinux/jami-daemon/-/issues/578Agent: Determine a way to send logs (with agent + callee ideally)2022-08-26T23:56:47ZSébastien BlinAgent: Determine a way to send logs (with agent + callee ideally)+ Retrieve logs
+ How does the team get the logs?
+ How to identify both sides?+ Retrieve logs
+ How does the team get the logs?
+ How to identify both sides?Olivier DionOlivier Dion