A sent file was linked after the commit was announced
to the client and to other devices, which was causing various
race conditions.
We add a new onCommit callback allowing to take action after a commit
is made and before it's announced to clients and other devices,
and we use this callback to link the file.
Change-Id: If5c64271b08a71749e5bf84426c5a6ecb9806ea6
If a new stream is requested, and the client-qt does not specifically
states that it should be not mute, then accept muted media.
GitLab: #770
Change-Id: I1d9d6bdddfb40216d1750d4246e63745773033a6
shutdownSIPConnection must not be called in pjsip callback (can be
called in shutdownSIPConnection)
GitLab: #775
Change-Id: I4d05d38e863c0f2b1f4e72d2fc827d17ca4bad8b
Although not harmful, the race conditions could make Jami hang for many seconds
when closing the library.
Change-Id: I88186adbcde309671de6502a22e52ab440f61f4b
Exit hooks are only called when in a REPL. Thus, provide the user with bindings
for initialization and finalization of the daemon. The syntax `with-jami' can be
used to ensure that finalization happens if initialization succeed.
Change-Id: I2f84a76844866a1de06300cde26618c8576045e5
This store user's preferences per conversation into
conversation_data/<convId>/preferences
In this way, the daemon is able to sync this file across devices
and remove preferences at the same time we remove the conversation.
For now, only support "color" and "ignoreNotifications"
The preferences are synced via partial SyncMsg sent across devices.
Change-Id: I8fe74cc06733ad61d45d721e0264b1941d4cf122
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
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
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
as the destructor take care of everything now, also it fix some
sporadic crashes in ConnectionManager
Change-Id: I5115c0493cb006ffcbe32ae53565edd3e3d1e98c
GitLab: #764
+ search method was incorrect if no type provided
+ some tests were not waiting for correct signals
Change-Id: If6ba59829defb168f51c4a8e25f2054cd649b8c2
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