Commit Graph

15714 Commits

Author SHA1 Message Date
05ff5b3bfe fileutils: migrate to boost::nowide
Change-Id: Iceae2a19ce3febce62f7916af8b4242e06a7e1d4
2022-09-08 13:13:13 -04:00
95b580b573 nodejs: add binding for MessagesFound
Change-Id: Ifc2d7853ba58311356a4c33e80987424f3bff283
2022-09-07 16:35:03 -04:00
7509c5c311 misc: fix tests build
Change-Id: I238f452f77e10c16ebc5f69bef1b768f44e57e2e
2022-09-07 15:41:23 -04:00
0d23dff746 contrib: fix secp256k1 build on iOS
Fix x86_64 build on Apple silicon.

Change-Id: I233a1e4f48d52a5f9dc56090c864c957a69a2221
2022-09-06 20:45:24 -04:00
1fa8dfe69c contrib: homogeneize jsoncpp versions across platforms
Seems that JSONcpp symbols changed between 1.7.4/1.7.6 causing
some versions to fail.
We already uses 1.9.3 since a long time on other platforms
and ubuntu 22 got a version recent enough too.

Change-Id: I21a4c44ee1359a7d89e45770cb2bad9f2eb00cce
GitLab: #824
2022-09-06 15:38:58 -04:00
e73a85d0a5 swarm: add a sending status while first fetch
This clarify the UI to know what message was not synced with
someone.

Change-Id: If58b9858eaab4b9f161c5968e691c7fd5531ee97
2022-09-06 14:57:53 -04:00
e16ded663a test/sip: Nuke it
These tests were never run on the CI and are not even in the build of Meson.

Change-Id: I0109633de2fd03b8589734d92c039b34d5b729bc
2022-09-06 11:39:55 -04:00
5eb4d10da7 unitTest/sip_account/sip_empty_offer: Nuke it
This test has not been compiled for a long time.  Even if fixed, the test does
not pass anymore.

Change-Id: I6e14cc42e1874962734c1592e47a780e04080a1f
2022-09-06 11:39:55 -04:00
5f3d6dc4eb unitTest/Makefile: Add AM_TESTS_ENVIRONMENT
This will setup the correct environment for each tests and echo tests that are
running.  Users can extend this with the TESTS_ENVIRONMENT variable.

Change-Id: I7aa0f04721251a6ea48cb4c2e7c2238f95d67267
2022-09-06 11:39:55 -04:00
c6659035c7 test/test-env: Add setup of environment for tests
Change-Id: I9c619d9492f3109e432a9803ae0a99cb2ab45d2c
2022-09-06 11:39:55 -04:00
2b19b69f91 plugins: use JAMI_LANG variable
To apply translations, first try to read if the JAMI_LANG variable is
set, if not, try to get the system language.

GitLab: #747

Change-Id: Ie458abcc07c0d0fd151172e172fe1418e5f06e7f
2022-09-06 11:26:20 -04:00
5af1041bf8 proposal: swarm: use log to search messages in conversations
This gives to clients the ability to perform search for messages
with several parameters (account's id, conversation's id, author,
period, max number).
(To discuss) This patch introduces the search API, and a signal
(MessagesFound) to return a result.

GitLab: https://git.jami.net/savoirfairelinux/jami-project/-/issues/1382
Change-Id: Ibc4665449fa0da71a015d1d18d6d0d3209331d43
2022-09-06 09:32:08 -04:00
8145803524 meson: remove subprojects
Change-Id: I384328c002aa1dc495e29dfa16ada3044cdeda28
2022-09-06 11:15:21 +03:00
673dc5f525 conversation: fix crash when block contact
This patch fixes crash that happened when block contact
for not active account.

GitLab: #758
Change-Id: I5347394a67cdffe0d95c9ee03aedf9d2618cec55
2022-09-04 16:03:50 -04:00
92f98bf78d README: Recommend to build with autotools on Linux
Change-Id: Ib91b2a994129b8dc63686d9ffc6f5166765e319a
2022-09-02 20:14:45 -04:00
a835266fbb unittest: add plugins
Create a minimal test for the plugins system.

GitLab: #745

Change-Id: I17d48860ce24cfdc5423d4dcc3cb44bb4d4531f6
2022-09-01 10:38:48 -03:00
0b652eb787 jamiaccount: resend profile when necessary
+ Some code were unused
+ Ask for profiles in one to one after a clone, this
allow to get the profile after adding/removing/re-adding
the contact as the peer will not know and got a cache
where they sent the avatar before.
+ Update unit-test

Change-Id: Ide1df647dbec63f343b60c1c622d1a214f4c3016
2022-08-30 20:59:06 -04:00
f895de0937 jamiaccount: do not stop all subcall if one fails
+ In jamiaccount, if a requestSIPConnection was failing, all subcalls
were stopped causing the main call to fail if not connected. In this
patch we only stop the subcall linked to that request.
+ In connectionmanager, if a request failed, we stopped all other
connections instead of just using the id of the request.

This fix calls whenever somebody called a contact right after the
contact changed its connectivity (and the keep-alive is not sent).

Change-Id: I0d9b14795aad37363de992cb29d4d4ca44668285
2022-08-30 20:59:01 -04:00
21ce9443f0 tls_session: place timeout on request, not connection
This allow to cancel the request if the connection is too long
(ipv6 un-resolvable for example)

Change-Id: I24757dd7a9893c36a86eccdc46271d5453205de5
2022-08-30 20:58:57 -04:00
3a7ccb3dd4 Revert "video device: recheck the video properties"
This reverts commit 2f6f35cf04.

Change-Id: I8b7d0b0fcccd010f03e1e29774ff9afe8e968452
2022-08-30 15:38:15 -03:00
d97c9aae8e misc: remove incorrect error
EFETCH error should be given if libgit got an error, not upper
layer

Change-Id: Icdf08238573d435014e820cd63313a9d92381618
2022-08-30 09:54:33 -04:00
9d1aa894a1 sync_module: send initialized buffer
Change-Id: I8bdd1edef75f728464728644c159777e77d7f7d8
2022-08-26 11:38:46 -04:00
f6a7ab13b7 misc: fix onnx upstream reference
Change-Id: Ib857693a75dfa0f91e9deffd2a475ab97e27bd2b
2022-08-26 09:50:36 -04:00
871942b52c audiolayer: do not round sample_rate
Rounding the sample rate adds artifacts to the sent audio stream.

Change-Id: If82017c3cb69cb065ecfbdc5bfa96f2891874c25
2022-08-26 07:53:14 -04:00
5962210088 conversation: fix ConversationSyncFinished
This patch increase fetched conversation number earlier,
so ConversationSyncFinished would not be emitted in case when
second call to fetchNewCommits happened before receiving callback
from onNeedSocket_.

Change-Id: I72263768426fcce671029fd165323ce89e49e91b
2022-08-25 11:07:54 -04:00
53f60a1aa4 trace: add audio tracing and plotting script
Change-Id: Ie5c8fe1d9cc4e5a38a623a1cd4755c00ad4f4904
2022-08-24 13:18:57 -04:00
cb3d3c3c85 swarm: avoid duplicated conversation after a ban
Several improvements are included with this patch:

1. confirmed is resetted when account is removed, this allow to
send a request when conversation is added back and reset the
whole matrix, avoiding duplicates
2. Banned can be due to harrasement. In this case, keeping the
conversation like the old behavior (pre-swarm) is better, to keep
proofs. Also re-adding back a contact is immediate if it was a
mistake as the conversation is kept back.

https://git.jami.net/savoirfairelinux/jami-project/-/issues/1449

Change-Id: I13da8ce9bd431b91ce7b7d455dae561358c62f10
2022-08-24 10:46:22 -04:00
1f77dce51a removeContact: actually close all channels not only SIP
Removing a contact was not actually closing all connections, causing
the remote contact to be able to call even if it was banned if there
was more than two channels opened.
Rewrite closeConnectionsWith as it was unused to use it to close
connections with the banned contact.

https://git.jami.net/savoirfairelinux/jami-project/-/issues/1449

Change-Id: I147f437370a553f0682b0cea060720a6c473f8a2
2022-08-24 09:34:36 -04:00
4fb85d505c misc: remove hacky underlyingICE()
upper layer should not need to interact with the IceTransport
directly and only uses the API of the socket endpoint.

Change-Id: Iea65b03b37e87e9a7ab542ba88be5a2c6790ae98
GitLab: #703
2022-08-24 09:11:04 -04:00
5a3768f31a ice_transport: avoid dirty underlyingIce()
Let the IceTransport layer stopped it's current read if destroyed
(as it uses a peerChannel, this channel should be cancelled to
let upper layer stop correctly all operations).
Call the shutdown callback whenever the ICE is really destroyed
(so caller must not re-use the ICE pointer).
Finally, remove some dirty underlyingIce() accesses in peer_connection

Change-Id: Icca73d9af273297a558121ffddc991ac6617ece2
GitLab: #703
2022-08-24 09:10:42 -04:00
800e2293d8 sync_module: split SyncMsg and use max pkt size
This is a first version. This avoid "insufficent bytes"' errors due
to the pack with a max size of 8k (which can be the case)
In a future version, the SyncMsg will be splitted in partial data
to only use the necessary size and could take any wanted size.

Change-Id: Ic4b86a8ac8c3c49063e5650fefbb1f969b458db6
2022-08-19 10:03:51 -04:00
ef6e677891 contrib: switch libressl repo source
This patch updates libressl repo source, since according
to https://github.com/libressl-portable/openbsd/issues/128,
releases from libressl-portable could be regenerated.

Change-Id: If050a282341ccec76eb85ab78d44e10508b22f9d
2022-08-17 13:48:02 -04:00
2f6f35cf04 video device: recheck the video properties
We could recheck for the video device capabilities whenever the
devices list is requested. This can avoid having a virtualcamera,
like OBS, with mismatching information from what is available on the system.

GitLab: https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/747

Change-Id: I012cfb71e12c8e9965b9d112e3ff0488c7cb285c
2022-08-17 08:57:20 -04:00
5df9251e20 video_encoder: fix fps in windows
Virtual camera with non conventional fps where not working
properly due to a mismatch between the framerate rational in
daemon and AVRational in ffmpeg.

GitLab: https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/478

Change-Id: Ida3a575be1dedae0e581257e38bf7469154a6ef5
2022-08-17 09:52:38 -03:00
626b563867 tests: re-enable conversation's tests
Change-Id: I3eaa39c81fe816e3149ae8599fb8e95f84e18bc0
2022-08-16 09:16:33 -04:00
a032cb1d8d fix: audio jittering
Use the bigger sample_rate to avoid loosing data in the audio
processing.

GitLab: #741

Change-Id: I8f96923ee9f67767d4f2d4c73785a88925c5f031
2022-08-15 09:41:14 -04:00
c41e22f779 contrib: bump opendht
+ Fix timeout on OCSP requests
+ Fix addresses when switching between two interfaces (proxy_client)

Change-Id: Id6b65e665bc8e150bdefa040fc49bd21f666d352
2022-08-15 09:19:18 -04:00
d4ee3d52b9 conversation: emit ConversationSyncFinished when all fetches done
Change-Id: If2c5e86a160998ddc25e095bba1de3add89f37e0
2022-08-12 10:11:26 -04:00
521107ed5a swarm: do not send message displayed notification if unneeded
Change-Id: Iafc78c75cc935bd7b91f39cbd43159f1a7eeaa02
2022-08-11 12:38:52 -04:00
5d3412e1d0 meson: make a Speex audio processor a feature
Change-Id: I6542e049809ab2526fa652986a4078f3a9969733
2022-08-11 11:34:34 +03:00
8105fa0d3b audioprocessing: fix cmake
+ Adds some missing references to the recently added files.
+ Removes the include of 'speex_config_types.h' on native Windows.

TODO: Refactor the cmake to be in one file. Way too complicated for
nothing. Also, "source_group" is probably not used by most devs.

Change-Id: I020caf40544d2a7502c70d96fec99b08278ac2ff
2022-08-10 12:38:57 -04:00
aa9a39e26d audio: integrate audio processor preferences
* add check for PulseAudio system echo cancel module
* audio processor preferences can currently only be changed in dring.yml
  * not yet integrated into daemon/client signaling system

Gitlab: #692
Change-Id: I57af6e844acbbfdb5a78d95a87a98873757c506d
2022-08-09 14:09:13 -04:00
869c3fe9bd audio: send voice activity
* send over SIP if not in conference
* send via ConfInfo for conferences
* multiple streams not yet supported

Change-Id: Ie43c43dd860f5ceed138eafef81359799961ead9
2022-08-09 14:09:13 -04:00
6ff875cb59 audio: add voice activity detection
* rename EchoCanceller to AudioProcessor
* enable echo cancellation and voice activity detection
* add minimum active duration and trigger time to voice activation

Gitlab: #741
Change-Id: I98662462c17539fca1d042482e97fdb3eff86130
2022-08-09 14:09:13 -04:00
7e74098cbe swarm: announce all messages updated when merging
This will facilitate the work of the client in order to order messages
as linearized parents for all commits until the merge base can be
updated.

Change-Id: I95266174d58913fbfb2ca665da18b08475aa9c93
2022-08-08 14:26:59 -04:00
3bc5888fe2 connectionmanager: announce non ready channel on shutdown
This is useful for the conversation_module if any channel is pending
while shutting down, as the previous fetch status was not updated.
More generally, every connectDevice() should call the associated
callback.

Add a unit test to replicate this scenario.

Change-Id: I72f2975dc15dd4bac3f55c2f899ebb1ae5a7a7f3
2022-08-08 14:09:28 -04:00
03ed11b92c messageengine: allow user to replace a sending message
As we only need one git notification, we can just refresh the
last sending token to avoid to populate the cache with lot of
notifications that will be unused.

Change-Id: Icb8252c8a4b4068e0bd8475a8cc70d77224858da
2022-08-08 13:31:53 -04:00
99564afb6a ConversationRepository: use fmt in fetch
Change-Id: I2cb56b8320a2a0f8fa8cdef0c163bf4f662bdf0d
2022-08-08 11:36:39 -04:00
ac79223764 ConversationRepository: consume vcard info
Change-Id: I7c2e6b95fad95049565f9298e2690c3ef8b0b5d1
2022-08-08 11:36:31 -04:00
c99fd0f906 ConversationRepository: use string_view for checkVote
Change-Id: I1df11887d2c1e9a3e18333e7eb42c297d5ef14f5
2022-08-08 11:36:26 -04:00