In some cases, the infos were not correctly refreshed, causing some
pending callbacks to never be called.
Also, split getInfo() in two methods to improve readability.
Change-Id: I1b60f2cf2ac5bf97c9a44a53794b56906d314e6a
GitLab: #TODO
iceMutex_ was used before because icest_ could change asynchronously. This is
not the case anymore, since icest_ is initialized synchronously by
IceTransport::initIceInstance().
Furthermore, signaling of the iceCV_ condition variable is now done under the
group lock of the ICE transport, since it's under this lock that the state of
the session is changed.
Change-Id: I3f2b4b4141777b950c916553b45da880dd7056b6
The two tracepoints are used to delimit the beginning and the end of the
execution of a task by a scheduler. The beginning tracepoint contains all the
meta information related to the the execution context of the task and an unique
cookie. This cookie is then reused in the end tracepoint to match the pair of
begin/end without duplication of information.
Change-Id: Ibbf64fe49325e7cb72c60aa6c9d8d8d1ab074f2a
Merge's commits were'nt checked, while comitting and while pulling.
This means that the author could be incorrect. Add a check before
doing a merge commit and when validating it.
This avoid incorrect repository in case a merge commit is generated
after a migration.
Misc: fix incorrect test
GitLab: #738
Change-Id: Id9748eb7d3dd5db023dd2ab4a30261c31af5d514
Any exception other than YAML::Exception was not caught when
loading the account map. We should catch other types of exceptions
as well to prevent a malformed YAML config from preventing daemon
initialization.
Change-Id: If7491fbe97eb8f988edce334a20ddc14e0a0a5fd
Gitlab: #735
Instances of std::shared_ptr are not thread-safe, even if the control block is.
Since AVBufer already has a refcounting system, use a unique_ptr instead,
and add a mutex to protect access during copy.
In practice, the mutex should almost never block since it's locked for
the minimum scope.
Change-Id: I5122e76dadb5da6c3738f8dc711698744b52315b
pjsip scans the contact header but keep a string view of it internally instead of
copying it. Thus, duplicate the contact header and bind its lifetime to the
pool allocator of the tdata structure.
Gitlab: #668
Change-Id: Ief31fcc6033b394dcb43ee0403f9459654d29f1f
callbacks from OnChangeCallback are called during account's
initialization. This will triggers signals that the client will
already retrieve via dedicated methods and those signals are emitted
when the account is not usable (accountManager or id_ not initialized).
Change-Id: I8d16c077bbf8b827c91be9047b202cd5e859167a
This patch fixes several behaviours:
+ Banning a member now stores the previous state of the member
+ This allow to store empty .crt files for invited
+ Unbanning a member is now possible for an admin
+ This re-add the member in its previous state
https://git.jami.net/savoirfairelinux/jami-product-backlog/-/issues/51
Change-Id: I34d5913c023043e07544f1b8bb6211aea5db0065
Now that every client uses either
FrameBuffer::avframe with SinkTarget,
or VideoFrame with AVSinkTarget,
we can remove the obsolete fields in FrameBuffer
and make it a simple typedef.
Change-Id: Icf88f3d7df4f04f5cfb389f83e67aec94c17b5dc
Previously, AllocConsole was called from the client. This has been
moved into the ConsoleLog class. When calling Logger::setConsoleLog
an attempt to attach to the console of the parent process will be
made first. This will be the case when Jami is being run from a
command line with the debug option. Otherwise, the logger will use
AllocConsole to instantiate a console window for the logs. The
latter will have it's lifetime bound by Jami.
Change-Id: I7f1728626962a2f702ad564bb16deadc2d92dfb7
While in a conference, the video split added a transfer to
main memory for each of the participants. This makes the sinkClient
a observable and the participants sinks are attached to the main
conference sink. The main sink has its frame transferred and the
subsequent observers do not need to repeat the process.
GitLab: #709
Change-Id: I1f4ea9460c052a100b4809101c35d196cd79acbe
This warning is caused by ASIO, is harmless, and likely won't be fixed for a while.
Mute it for now.
Change-Id: Ib387aec8138ebed9dc45449ffd19d8ad340044c6
The agent and unit tests can now be compiled without requiring
`--disable-shared' at configuration time.
The agent requires the logger functions to have default visibility instead of
hidden. Thus, `jami::logger::[v]log' can be considered part of the public API.
The unit tests however require hidden symbols. Thus, we link the tests against
a static version of libjami instead.
Change-Id: I59d9e67679766e0310a19f9a879c06a31c5124c4
Mute/un-mute audio is done only locally, i.e. without requesting
a media change (re-invite) as done for the video, thus the media
direction in the SDP must not change for the audio stream.
Gitlab: #688
Change-Id: I3775a29f6c566a159d5b9269b4d9462ab4e3c36f
Before this change, the default ringtone path would be for example set
to "/data/data/cx.ring/files/ringtones/default.opus" on Android;
migrating the account to GNU/Linux would cause the ringtone to not be
found. The change leverages existing code that searches for a base
file name in a JAMI_DATADIR-prefixed location.
* globals.mk: Set JAMI_DATADIR from the environment if it's defined.
* src/account.cpp (DEFAULT_RINGTONE_PATH): Universally set to
"default.opus";
* src/manager.cpp: Add a definition check for the JAMI_DATADIR macro.
(Manager::playRingtone): Go through the ringtone path resolution
scheme on all platforms. Some platforms will need to define the
JAMI_DATADIR macro correctly for this to work; for example the
libjami build on Android should have the JAMI_DATADIR macro set to
"/data/data/cx.ring/files" for this to work correctly.
Accompanying client-android change:
https://review.jami.net/c/jami-client-android/+/21148
Co-authored-by: Amin Bandali <amin.bandali@savoirfairelinux.com>
Change-Id: Ia408a8db263af91c2734f61aa38c4ed717605359