add API to ask for a failed transfer. This can be used when the
client detects a transfer they doesn't have yet. It will ask all
members of the conversation to send the transfer back.
GitLab: #136
Change-Id: I1484298c4fa0eabb614132e22d8032612e14b949
Sometimes a non swarm can send a text message via the DHT but not the trust
request confirm. In this case, the discussion must use the old path.
Change-Id: Id0d5223c830abe0840bef167b4be50abc276a72c
Pass all methods in async and on the io pool if they write into
the repository. Moreover, now MessageReceived guarantees to be
ordered if announced. e.g. if a parrallel merge and commit are done
previously if the merge was done before the commit you could receives
MessageReceived(merge) after MessageReceived(commit). Now it's
impossible. So the linearizedParent is guaranteed to be announced
before.
Change-Id: If4b94f19f5bf5abd4841fc19074231e3411e077d
If a TrustRequest is confirmed without conversationId this means
that the contact don't support swarm. So, we can drop the
conversation and fallback on old path.
Change-Id: Ic8238312fe79e10f340460d20880dbfc8dccf3f7
Modify the CallSignal::MediaNegotiationStatus signal to report
the list of negotiated media in addition to the status event.
Gitlab: #564
Change-Id: I9ac77656f4f268317ddd87b085f1581ceac0b5b9
Signal handlers can be called after lifetime of stack variables within
`wait_for_*` functions. Thus, moving or copying the accounts vector to avoid
race condition.
Change-Id: I25eaed11e04b3c3cc6e40662bef326c4fe319603
Else, the closing is not guaranteed due to potential 481 errors when invite is
deleted before the message sent.
Change-Id: I7e02b55c7967e336ca6357869034103a36ecb262
GitLab: #559
Add some basic tests to generate a new conference and validate the mute status
and getConferenceList()
Change-Id: Ie7a0415a2c9f77462044c0c26f237cf1ce5c92fe
GitLab: #558
The ICE component IDs are numbered relative to the SDP session, i.e.,
starts from 1 and incremented for each component.
However, RFC-5245 requires that the ICE component IDs are numbered
relative to the media stream, e.g., component IDs 1 and 2 for audio
and component IDs 1 and 2 for video.
This patch allows parsing ICE components IDs in format specified by
the RFC and in the current format.
This patch also allows generating component IDs compliant with
RFC-5245. The generation is disabled by default, and can be enabled
per account on runtime.
Gitlab: #516
Change-Id: I40c0fa54a64b7d729f714c9769ea36335568f4c9
Due to 6f81927c70 PJSIP_SC_BUSY_HERE is sent
instead of PJSIP_SC_DECLINE. This means that the signal received must be
taken into account for closing other subcalls on a multi-device context.
Change-Id: Iad36d2a5b07eb75d89a31a5476c6aa5ddeec2ced
GitLab: #547
2 seconds is too short on some system to spawn 1024 threads. Increase this by a
second. This is highly system dependent and we might want to change the logic
of the test instead.
Gitlab: #545
Change-Id: Id939ad4809e47a2cdce19885387464289110e137
If not called, other threads might read memories freed by the exit handlers of
the main thread, resulting in a race condition that can cause a segmentation
fault.
Gitlab: #545
Change-Id: I29ec4c1ffee96b6a083e36f31cd738daf622315d
Detecting that a socket is down via a keep alive can take time, moreover
if a relay is used, because the keep alive can continue to work even if the
connection is half closed.
In this patch, we add a mechanism where a beacon is sent over the multiplexed
socket to know if the peer can answer. This message can be used to detect
if a socket is usable and is sent whenever the user starts a call or that
a connectivityChanged() occurs.
Moreover, the multiplexedsocket can now sends a version to enable features
and if a bad packet on the control socket comes, the socket is not stopped.
GitLab: #542
Change-Id: Ia66d8d7f9b66bba02927f4ea41c21ef27089bceb
Wrong constructor was used, resulting in buffer overflows. Although it's benign
because of read only of a data section, ASAN doesn't like it at all.
Also added missing newline at end of file.
Signed-off-by: Olivier Dion <olivier.dion@savoirfairelinux.com>
Change-Id: I15553855ea368ec00456db80abb065599adc0d49
Currently, an incoming call is always assumed to have either audio
and video media or only audio media.
This assumption was removed and the incoming call are reported with
the list of included media with some of their attributes as found in
the call invite (SDP). This will allow to process calls with an
arbitrary number of media.
It will also allow to add new media to a call by requesting a media
change using a SIP re-invite (with new SDP). For instance, add video
to an audio-only call. The peer will receive the new offer and may
choose to accept or not the new media.
Not all media change requests require validation from the user/client.
Meaning that for instance, if a new SDP (media change request) is
received to notify that the peer muted it's audio, the media change
request can be processed without requiring validation from the
user/client.
Gitlab: #445
Change-Id: Ibc2b2501a3ec7e2c22f4e9d47cec3eda3dd43fef
Some informations should be save into the archive to allow the
daemon to be able to auto-clone from remote and re-ask for invites
when re-importing an account. Also fix some sync issues caused
by some locks.
Change-Id: I37ba32bcd1c748c933bd264502c5aa5664875bc0