Commit Graph

15678 Commits

Author SHA1 Message Date
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
25353e0c0e Conversation: refactor pull
Change-Id: If659bfb7f1140fed5159b193f9e6757ab8f8b103
2022-08-08 11:36:26 -04:00
06f2a0ae13 ice_transport: revert last change
Change-Id: Ie810524fa960832154be0319d1c4e2383e87eb90
2022-08-06 09:03:19 -04:00
f68be61aab connectionmanager: call callbacks when account is disabled
If an account is disabled during the initialization of the ICE,
the callacks must be called to correctly clean conversation_module.
This was not correctly done as we only check the onShutdown() after
that the TLSSocketEndpoint is initialized.
It was a problem when the account was disabled, because in
connectDeviceStartIce() isDestroying_ was true at this point, so
we didn't erase the pending callback.

Change-Id: I21cdd30057d9879b6d6fef189fc43bf916d4c310
2022-08-05 20:31:10 -04:00
e679f436a9 logger: cleanup
Change-Id: I58028cad9b28b694ed271ebd1e9ebad7cd72f9fa
2022-08-05 18:57:34 -04:00
14221db375 video: fix conference cropping
* fixes black bar on the left of conference videos

Change-Id: Ie3725ad144035529288e0a97353a977abffb1133
2022-08-05 17:19:24 -04:00
6be3b469f2 connectionmanager: remove unwanted re-schedule on IO pool
Change-Id: Ic2f1cf4151e55f5f6a1fc18c857c90143656ad35
2022-08-05 13:43:38 -04:00
120eb26bcc misc: bump pjproject to 2.12
Change-Id: Ic8576fbb9633d768cdb6ac5e895e954ee460aa05
2022-08-05 12:35:29 -04:00
68bb1e8323 logger: use fmt/std.h or fmt/ostream.h depending on availability
Change-Id: I3a1c6b59083426ceb28c8fb2fe4b3c2d7866e491
2022-08-05 11:43:17 -04:00
878def4c76 ringtones: customRingtone can be an absolute or relative path
Change-Id: I434255ea4caf66c630927bdfea572c49e7e1c658
GitLab: #748
2022-08-05 10:19:40 -04:00
13e9fe9a18 Revert "fmt: bump default version check"
This reverts commit 80abd8b77c.

Reason for revert: should now work with {fmt} 6

Change-Id: I9e7f287a8fb79e33d343eadbceb84c4290629699
2022-08-04 17:27:51 -04:00
d831a64146 logger: Only include <fmt/std.h> on Windows
Change-Id: I561e60a14a363bb8a1658eb7f740bd67a85c2d99
2022-08-04 17:25:54 -04:00
200d63456e logger: check all format strings at compile-time
Change-Id: Ib8fcedb805085add521d27eaef521b2c7faecea8
2022-08-04 15:34:04 -04:00
19f666f0df nodejs: fix binding
Change-Id: I6d7fe3f7593764bbb99570ba02b987943ba35a18
2022-08-04 15:11:51 -04:00
2088e38425 readme: fix project name
Project name is Jami

Change-Id: I844d2933c49249806b89c2530194e468935ad3cf
2022-08-04 15:11:51 -04:00
8dee8e2d29 logger: Resize arguments buffer to avoid junk
Also, extend padding of function name to 24 characters.

Change-Id: I98b39048152fc65bd9c04112393e47e481498170
2022-08-04 13:14:17 -04:00
1ea9cb1f6b ios: ignore point-to-point network
On a lot of iOS devices, a lot of weird IPv6 candidates seems to
be added from generally unused interfaces (tun0->2, ipsec_0-9, pdp_ip1->4)
Those interfaces seems to be up and running but instead a classic
link-local address (fe80:: like on macOS), some un-assigned ipv6
seems to be generated (2605:8d80:: or  2001:56f::) and seems un-documented.

Except ignoring point to point network for now, I don't see any good
solution. And this problem seems to only appears on iOS (macOS got tun0->2
but with a correct link local address).

Change-Id: I7724150ea2fdd93fbccac83cfa0c0c691452e820
2022-08-04 12:58:03 -04:00
80abd8b77c fmt: bump default version check
Change-Id: I5f427f924fc34f7f5218de815ba4077e61b45ea5
2022-08-03 12:12:41 -04:00
a17a44c4f7 Conversation: refactor pull
Change-Id: I9560cb0bd8bfab5a07039e93d4db8827906982ef
2022-08-03 08:33:36 -04:00
c7be4ea421 ConversationRepository: use std::string_view for changedFiles
Change-Id: I3638c05a8bccad9326fb74dff0c0cc4acbaf1e65
2022-08-03 08:33:36 -04:00
be67fed6fb ConversationRepository: use std::string_view for verifyCertificate
Change-Id: Ic7a89119c5db5023e91529402377bdc591afdf3a
2022-08-03 08:33:36 -04:00
0358e7091b fix: erase exit function when unload plugin
Unloading a plugin without erasing the exit function might cause Jami
to crash when closing.

Change-Id: I63d5c481036c4718507396f76df3f132e543c48c
2022-08-03 07:01:01 -04:00
e74fa6247d misc: fix ut_conversationRequest
bad CPPUNIT_ASSERT and timing issue

Change-Id: I16267d00325ebc1875cb4a92f73eaefb50614f99
2022-08-02 18:23:16 -04:00
bdf7fb07df misc: fix winmake clean option
Change-Id: I50593324cef00af15f5a77d73e2b60eae7d8f63b
2022-08-02 14:46:19 -04:00
7a888cf04e misc: windows link static ffmpeg
Change-Id: I2d8d29077e15967f3869ffc341eda07852aa8fe8
2022-08-02 13:12:33 -04:00
b48db3dfbf logger: add {fmt} logging support
Change-Id: Ib2ba3429d0bc7b63a4608d34b321e4ae2759b48d
2022-08-01 18:23:18 -04:00
e688565436 logger: use {fmt} for header generation
Change-Id: I3ee8a5051e8aace1737d40364bd5defae044636c
2022-08-01 18:23:18 -04:00
a990260c74 contrib(msc): fix Windows natpmp build
The natpmp CMake build has no installation specified, so currently
we use the root source directory which contains the header files as
an include path in the daemon build. This may cause issues as case
insensative header includes for the standard library <version> will
incorrectly load natpmp's 'VERSION' file.

This patch copies the project's headers to an include directory
post-build, and adjusts the daemon's include path.

Change-Id: I4b318fb0309c72b94f4ea4e757035780ee2a8a63
2022-08-01 15:28:52 -04:00
0cc48cfdfb logger: move more symbols in jami namespace
Change-Id: I0fe99a8d44f8bc5271bea0b7b6a0e377f051f0ab
2022-08-01 15:28:52 -04:00
e7ca4d2904 logger: use DRING_PUBLIC
Change-Id: I55664ee12cb3b7ca372ec9efcb654cb9f68242fb
2022-08-01 15:28:52 -04:00
3150964dbb jamiaccount: retry to resolve TURN if necessary
Because an incorrect TURN can cause long delay for connections,
we cache the resolved address in a file which is refresh at the
next status changes.
However if the resolution fails it can take a long time (moreover
on servers) to retry the resolution if it fails.
Here, if turn is enabled but not resolved, we do the resolution
on incoming requests to avoid to wait too long before re-using
the TURN.

Change-Id: I39a8e83b43c7342a6c296e57316bd85497360011
2022-07-30 11:25:22 -04:00
dc3d248275 macOS: bump minimum version to 10.15
Change-Id: I97867faadfcdbe3896464c6ca05c5857f042f1e2
2022-07-29 14:16:24 -04:00
ec2517ff3a misc: clear some warnings
Change-Id: Ib3bbc21e513e0dd22ce28d099356f3286b9dffd1
2022-07-29 13:49:57 -04:00
d352fb8f19 cleanup: remove downgrade to non swarm
Now that it's been months since all clients supports swarm, we
can assume that everybody is using a version compatible with
swarm now.
So, downgrading conversations to a non swarm if a DHT message
comes is not necessary and it's just unwanted code.

Change-Id: I83b83d592ea43219cbdecb31fa8b5a71b897e487
GitLab: #312
2022-07-29 11:41:18 -04:00
fb8a4a7094 logger: add debugEnabled, use memory_order_relaxed
Change-Id: I77f0617371f59cba662289f53a08d6037c709cd2
2022-07-28 19:39:34 -04:00
b641aea731 logger: cleanup SysLog
* Android log API is thread-safe
* We should not call openlog on Android

Change-Id: If5eb45debe7666cb8430fedd761c668db2e8fa63
2022-07-28 19:39:34 -04:00
20a32dcdda logger: cleanup FileLog
* move pending queue to the stack

Change-Id: Ib44578aab4b8e27fd19ff564abab8d67e9b1ad00
2022-07-28 19:39:34 -04:00