Because the encoded avatar can be greater than 64k, a SIP message
will fail, and the trust request may not be sent.
https: //git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1491
https: //git.jami.net/savoirfairelinux/jami-client-android/-/issues/1537
Change-Id: Ieba2db521a3c7e72890be75d3578f93e496dc968
This heavily changes the API for the client. The goal here is
to move the logic to construct the history to show in the daemon
and not the client. This has several advantages:
1. Logic is common across every platforms, so bugs should not be
platform-specific
2. Client got less logic
3. Signal are simplified, if an edition comes, "MessageUpdated"
will be triggered instead MessageReceived.
4. Some tests are added for linearizing the history.
5. Search on edition is fixed.
Tests got heavily re-written, but the content didn't change (2 tests
are added, the rest is simplification).
GitLab: #831
Change-Id: Ie7c81077067e9e49db1dd396829c9225c0512c16
setKnownNodes will add new nodes that may be already connected
with a TCP link, but maintainBuckets may not choose those nodes,
delaying the bootstrap.
If we detect a new node that we're already connected with, we can
add it in the list of nodes we want to connect with.
Change-Id: I422a32495693e1e2d925a3af127a4a59903c1833
If we receive a conversation request for a contact where we
already have a conversation, we can just accept the new one.
GitLab: #924
Change-Id: I9e5d0f7302567ce488c52b45377117f034cd5da5
If first connection fails and presence is not tracked, the
conversation will not sync until the receiver restarts its jami,
causing the conversation to be stuck a very long time even if
peer is online and can sync.
In this patch, if we receives a trust request, we retry to sync
(this will be the case because the sender will re-send a trust
request to the contact who is still detected as an invited member)
GitLab: #922
Change-Id: I8866ceda98d50b0ddd2ea5402ef34f067f560e97
1. When a audio-only participant leaves, the video mixer is updated
and all audio-only streams are now removed.
2. If a audio-only calls try to join a swarm-call, it was hanging
due to a bad number of medias. So ignore video for audio-only calls.
GitLab: #917
Change-Id: Ifdd66e2ab138c078ef9e9c1402a07a6ae6a36b00
If a new device is doing some actions for the first time, the merge
will detect a new certificate that is not yet in the certificate
store (unless if the sender is the new device).
This will block the validation. So, instead, use the certificate
in the processed commit.
GitLab: #892
Change-Id: I0ab492e700a2aa7ef4258e2bf711117f67e29fae
When a trust request is confirmed with an old conversationId, new
messages will be transferred and the conversation will be replaced
to avoid duplicates.
However, because erasePending() wasn't used after a lock, the
removal was failing with "operation not permitted" causing a duplicate
to stay.
A test is added to avoid any further regression.
Change-Id: Ic0fd960005a064ddd7b410f014f67d9125e50446
Else, opening p2p socket will allow the peer to perform call actions
causing weird experiences where a banned contact is calling the user.
GitLab: #886
Change-Id: Ia76ddda03f41b6eaf6b937c11c362aa72d983cd5
If the signature creations fails due to an invalid display name, the
signature will use the device Id instead.
GitLab: #885
Change-Id: Ifddf0c8afec03f26f43aebe12e56d028ca5200d0