Commit Graph

15730 Commits

Author SHA1 Message Date
5c55f5efa8 Add jami.pc
Change-Id: If13a246aa50953c99d72937daeb7866de2d82e8d
2022-09-22 10:08:37 -04:00
ea327ff28e Rename libring to libjami
Change-Id: Id123f733759d6147f0f8fb9975b21fd8b0f1e558
2022-09-22 10:08:36 -04:00
0ac8c2341f Dockerfile: add missing dependencies
Change-Id: I15fc7859a645f51918df0a911ae3ba1d077f6211
2022-09-18 15:31:27 -04:00
c482366eb8 contrib: detect vpx from system
Change-Id: Ia493ea8d6375e923185d3b8fccdf94ce669f07fe
2022-09-18 15:31:11 -04:00
52228283fd nodejs: fix build with clang
Change-Id: Id980bc5eecf11424e32dc14275b2dba6862aae24
2022-09-18 12:53:34 -04:00
02ac61d4d7 agent: Bundle bindings as a shared library
Instead of creating an agent executable, bundle the bindinds into a shared
library.  That way, we're adding an extension that Guile can load at runtime.
This shared library can be installed along with libjami so that users can use
the full power of Scheme to control their Jami accounts.

Also create a `guile-wraper' that compiles against the configuration flags.
This is necessary when building libjami with ASAN because then the executable
either has to LD_PRELOAD ASAN or compile against it.  This minimal wrapper
really just boot guile and start a REPL.

Change-Id: I984d211ff03322b102ebe8650950ac8487711e9d
2022-09-16 16:39:48 -04:00
44f4b0037f agent/utils: Add more integer types and remove ensure_type
Guile already checks for the type of its objects before converting to C.  Thus
we don't have to do the check ourself.

The check is still made in `apply_to_guile' to avoid packing values unnecessary
if the procedure is not really a procedure.  The check is also made when
registering callbacks because of their delayed nature.

Change-Id: Id879c04d119884ad1226ed2495b880681125bccc
2022-09-16 16:39:48 -04:00
a6148e7420 agent: Remove AGENT_ASSERT in favor of Guile exception
Instead of crashing the agent every time there's an error, just throw an
exception that can be handled by the user.

Change-Id: I18ac929e54b9cda6485754ccd52325db7dff66d9
2022-09-16 16:39:48 -04:00
3eb7416985 Add Dockerfile to build in a Docker container
update readme for instruction on how to build in Docker

Change-Id: I6c450db3502ea6f96407b745fffc22a791976a33
2022-09-16 16:00:35 -04:00
edeeda0b20 ice_transport: remove useless stop
as the destructor take care of everything now, also it fix some
sporadic crashes in ConnectionManager

Change-Id: I5115c0493cb006ffcbe32ae53565edd3e3d1e98c
GitLab: #764
2022-09-16 11:06:46 -04:00
2bf69dcae8 misc: fix ut_recorder
GitLab: #761

Change-Id: Iebcb1dfed3ebd1919c99e00b9528f3e09a77683c
2022-09-15 10:16:03 -04:00
1cc1af80aa peer_connection: ice must be always true
This avoid the TlsSocketEndpoint to use an invalidated ICE.

GitLab: #763
Change-Id: If89a70521e523e19c38fd61c20c483b89a9b6413
2022-09-09 13:04:51 -04:00
206112b579 agent/main: Remove atexit(Dring::fini)
DRing::fini is currently unsafe for atexit.

Change-Id: If4643a5f5455190351c45eebad816cba5b8c642f
2022-09-09 07:48:45 -04:00
bcabb5f764 mic: fix conversationMembersEvent
Change-Id: Ib595ab696edddd0271b85933b26c591b078ad21c
2022-09-08 16:45:37 -04:00
76226044f5 Revert "fileutils: migrate to boost::nowide"
Causes issues with yaml-cpp. Reverting temporarily until we fix the issue.

Change-Id: I2df0823554ad87880bc965bdff4f4707a6129789
2022-09-08 14:23:55 -04:00
cc2f9efb47 misc: fix tests
+ search method was incorrect if no type provided
+ some tests were not waiting for correct signals

Change-Id: If6ba59829defb168f51c4a8e25f2054cd649b8c2
2022-09-08 14:07:31 -04:00
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