In a swarm, if something is wrong, the peer will retry the connection
but for the sender, they have the file so they should be able to see
it and should not see any "Cancelled" error here.
However, in the future, we will need to update the API to provide
status per users and what peers received the file.
Change-Id: Id02ea3f6552557bdc01d3f13504b5b81efb443e9
When hosting a conference a video session and video mixer are
created regardless if the video enabled state in account settings.
The video enable/disabled in the account settings must be applied
to the created conferences as well.
Gitlab: #646
Change-Id: Iddd72e9056974e50041e693dd964420557c6c331
- extend the scope of contact string
- protect with a mutex
- simplify contact address and header rewrite
in SIP account.
Gitlab: #633
Change-Id: I413261bb4e9cb80bf37b8c69d3a4cd7506b6a58b
Guile is confused by agent.scm and agent. It will try to load the ELF file
instead of the Scheme script when `(use-modules (agent))`.
Change-Id: Ieead4c384f10df9ead351a6ae66b21f708e97424
This work follow the JamiAccount split started before. This moves
the ConnectionManager's callbacks code related to data transfer into
transfer_channel_handler and improves syncing by sending contact's
avatars (where a swarm is present) to new devices.
Note: for now, contact's avatar are managed by the client. So, this
code will only transmit avatars if the profile is found. For now,
the only path tested is the one used by jami-libclient. To be able
to fully sync all avatars, the avatar management should be moved in
the daemon with future work.
Finally, in syncHistory a test is added to validate the behavior.
Doc: https://git.jami.net/savoirfairelinux/ring-project/-/wikis/technical/3.8-Sync-profiles
GitLab: https://git.jami.net/savoirfairelinux/ring-project/-/issues/1282
Change-Id: Ic98da34aabf1be070a57dcac55bba0a00c555445
ASAN does not like this:
--------------------------------------------------------------------------------
runtime error: reference binding to null pointer of type 'const value_type'
--------------------------------------------------------------------------------
Change-Id: Idca4720dda401c756bd6ea5dc054dd9e63779153
If a conversation is not cloned, when detecting a new presence,
needsSyncingWith MUST return true if one conversation needs to be
cloned. Else, it will result in an infinite syncing.
Change-Id: I3a9bcab9f8a845161ceac7d75d8842f8b338ed57
Changing the media source of a media stream (video in particular)
must trigger a reinvite.
Since currently we do not support changing video properties (resolution
in particular) in the same media session, any changes in the video
properties must trigger a re-invite to restart the media locally and on
the remote peer.
Gitlab: #653
Change-Id: Ibd6192135d272908963cfbc585bec95c66881a28
A ChannelSocket can starts to receive datas while waiting acceptance
for the channel. In this case, received datas will be injected when
setOnRecv will be called on the channel.
However, in channeled_transport, setOnRecv injects data to pjsip and
is handled by the SIPVoIPLink where transaction_request_cb will retrieve
the infos via the transports_. This means, that, in order to successfully
handle data, we MUST inject data when transports_ is correct.
In this patch, SipTransportBroker::getChanneledTransport is modified
to connect the callbacks after adding the transport to the map and
inject data in the correct methods.
This fix sporadic failures for testInviteFromMessageAfterRemoved
Change-Id: I2767801a9dad77439fb2f2adedbc9b900add8cea
The contact header field was stored in a member varialbe of Jami/SIP
accounts. There was a condition in which the contact header could
be concurrently accessed by multiple threads. This typically happens
when terminating calls in batch (when calling hangupCalls() for
instance).
Managment of SIP contact header in Jami and SIP accounts was
reworked to prevent such race.
Gitlab: #633
Change-Id: Ib9295070a5295969bf114ec29e66e36b1c5c5e03
The agent will be written in Guile Scheme instead of C++ in
order to give maximum flexibility to developers of scenarios.
Thus, bindings will be added for the public Jami interface.
In other words, the agent will be a client of yet another
Jami's bindings.
Change-Id: Ic2cd333007d0b1aad56c02b116ea708b56e96cc5