Commit Graph

15474 Commits

Author SHA1 Message Date
e40faa6961 coverage: ignore autogenerated files (bin/dbus/*)
Change-Id: Ied4f74e51c7c0f7e97c66ef04e51f2efe521acd7
2021-11-10 17:15:54 -05:00
6ba2ce016a build: disable SHM if DBUS is not used
As libwrap is used by default, HAVE_SHM should only be true
if directrenderer is not used to avoid useless work

Change-Id: I9f819a7c06c667ccf08066f70104dcd3667f8546
2021-11-09 12:34:34 -05:00
1c1a7f8487 screensharing: add framerate preference
GitLab: client-qt#514
Change-Id: Iaad758cd52dd0837b00ca520aa4da87929215fcb
2021-11-08 13:17:19 -05:00
90005c437d conversation_module: sync with other accounts
Change-Id: I3959292bd6cc06d579e5aa9ce4aa04ab68a39b4d
2021-11-08 13:04:09 -05:00
d5935ede87 test: ignore bin/ for coverage
Change-Id: Ifd27498304158b51f6547eeb4bd316af61cbfd6d
2021-11-08 11:32:49 -05:00
f4a6985eb8 namedirectory: don't return name as address
Change-Id: I0a4528115568be718a008111f3006c686b83e2c8
2021-11-05 16:49:21 -04:00
b370ada711 multi-stream: handle media change request in conference
Handle media change request in conference, specifically when adding
video to a an audio only call.

Gitlab: #638

Change-Id: I0eb892eb941d2a62b6046c7b2ac9d128f4bcbd12
2021-11-05 13:15:37 -04:00
c28f0af5bc conversation: use getMemberUris
Change-Id: I5c8d744ddf8ef0a424efe305deade4fdc73e7aa4
2021-11-04 14:19:22 -04:00
ea94a55078 swarm: update convInfos on sync
Also detects incorrect conv infos and fix it.

Change-Id: Idef35e0f15da97b8d91523a6e963b2d6384d7c5a
2021-11-04 14:19:22 -04:00
dd5e65098b Hold/Resume: fix media direction and add unit test
When a call is held, the media direction in the SDP
for an active media must be set to sendonly.
Also add unit test for simple hold/resume operations

Gitlab: #644

Change-Id: Ib41434c55f9be1a6d34a7d51c9127af89081c8e8
2021-11-03 12:26:07 -04:00
c7a48b2421 agent/scenarios: Add peer-monitor scenario
Change-Id: Idba6d4b23add47382d64afd06808ccce61b90bc8
2021-11-01 17:32:13 -04:00
24bf24edae ICE/PJNATH - rework TCP connection retry
Introduce 2  main changes to the TCP patch:
- limit the number of connection retries.
- use a higher Ta for TCP connection retry (500 ms)

Gitlab: #634

Change-Id: I2281addf072c6f0e9ff2fc0457e08a590af1e178
2021-11-01 15:08:41 -04:00
01594813f5 conference: add handsUp feature
GitLab: jami-project#855
Change-Id: I425a4b0049f1ade8c8eeeb93fc79f8d36bd25585
2021-11-01 10:06:31 -04:00
9d0c33b24d conference: improve media handling
+ set initial rdv conference as muted (a/v)
+ update a/v mute state when joining or detaching host participant

Change-Id: I38d2dc219446ba526e6a3fc40e53ee73a2e87785
2021-11-01 10:06:31 -04:00
f6a48f89e9 agent/bindings/account: Add bindings
Change-Id: Ifc363fee36bd10fba9211cddaa03d6fbd8e99d49
2021-11-01 09:35:43 -04:00
d182919763 agent/utils: Add from_guile()::operator uint8_t()
Change-Id: I00df0524c8b00ad55fffe1ab17e82ba8a8ee9c0a
2021-11-01 09:35:43 -04:00
282a5e6247 datatransfer: do not emit failures for outgoing files
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
2021-10-29 15:02:53 -04:00
1317bb3372 tests: fix testRemoveContactRemoveSyncing
wait for contactAdded before actually removing it.

Change-Id: I29a6a2220a2e77ca023abdccab44c1f6a65bd5e5
2021-10-29 10:39:18 -04:00
4a35478da4 pjproject: use our own repository
Change-Id: Ifb28f17a705a9c46185c96ff8c23d3283128a0bc
2021-10-28 16:53:46 -04:00
85422c76d0 multiplex socket: pass full certificate in callbacks
Change-Id: I40171f3c5872bd5bf5719fd22a6a2af20ce6263f
2021-10-28 15:19:31 -04:00
566e7fdbc5 MediaStream: Add binding for android
Change-Id: I3dbed60d7b0d53e720a564f28a32b6e2fa73fcea
2021-10-28 14:59:22 -04:00
77a2d0c048 contrib: bump opendht
https://git.jami.net/savoirfairelinux/jami-client-ios/-/issues/150

Change-Id: I4f6d1b5e8db5be8e1c31b1bb7534080a13766edc
2021-10-28 11:07:05 -04:00
555445f30f conference: enable/disable video according to account settings
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
2021-10-27 15:46:26 -04:00
f82f7abd24 SIPAccount - rework contact header
- extend the scope of contact string
- protect with a mutex
- simplify contact address and header rewrite
in SIP account.

Gitlab: #633

Change-Id: I413261bb4e9cb80bf37b8c69d3a4cd7506b6a58b
2021-10-27 14:55:02 -04:00
c43c054012 conversation_module: do not break for loop during sync
Change-Id: I7bfa72e8c4e370bcf40611151c28e46c79b3bafd
2021-10-26 16:33:18 -04:00
707b09532d swarm: banContact should also remove conversation's requests
Change-Id: Idbe771a647bf16b45d88755d684623895e5a8e82
2021-10-26 10:25:00 -04:00
d3cfb5bff2 agent/Makefile.am: Rename agent binary
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
2021-10-25 17:21:05 -04:00
ddecafc724 agent/utils: Add ensure_type() method to from_guile caster
With the help of a macro, we also get the context where the casting failed.

Change-Id: I7be3d63de9dd07994fb5c8cad39d5a93eedb7e8f
2021-10-25 17:21:05 -04:00
c02a8fd3d1 ice: don't perform unnecessary move
Change-Id: Id9176818cdc0162e4ac689a34c8927aadba4fd7b
2021-10-25 16:22:59 -04:00
38ab04ebdc call: disable unneeded logs
Change-Id: I1a9e5c02d5678c6c9057dbfd372c636406593f3f
2021-10-25 13:06:19 -04:00
947c7d40d8 ice: unset callback on close
Change-Id: Iba4b98a1b9dd58c24945ee752084697419173049
2021-10-25 11:54:26 -04:00
8806899a52 agent/bindings/signal: Add all Jami's signal bindings
Change-Id: I373ddb0efdeca41bf54e80aec4b9d1db69f77300
2021-10-25 09:59:11 -04:00
522e4c325a agent/bindings: Add LOG_BINDING() macro
Change-Id: I95edfc348e9ef431e4ad26827bdfdadbba0fc746
2021-10-25 09:48:54 -04:00
490384875e agent: Add logging to (agent) and examples
Change-Id: I39c2bca72f8b6feb1578aecf32f97738eadfd235
2021-10-25 09:48:54 -04:00
7a71ff44b2 sync: synchronize avatars from swarm members
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
2021-10-25 09:20:12 -04:00
7e6d84ee1a agent/jami/logger: Add (jami logger) module
Change-Id: I1d39a963ef3efe64059da82d99e23589c4920a2d
2021-10-24 10:41:29 -04:00
39626f45d9 agent/bindings/logger: Add Jami's logger foreign function bindings
Change-Id: Ib70fdc0739a0ab7216be851b35f55a1ecb72a9a2
2021-10-23 12:43:27 -04:00
e60e88f02b agent/bindings/bindings.h: Add macros for constant definitions
Change-Id: I8c18baa7f42f06a99e56acba0ce7863f1db28938
2021-10-23 12:43:04 -04:00
da270b2ac4 agent/utils: Add to_guile::operator int()
Change-Id: I12a30be4d77574f66bd6fc207cfee501bdb41bfa
2021-10-23 12:43:04 -04:00
cbcb68214e agent/agent: Fix wait for announcement problems
Change-Id: I1de543265671728148e02d5b4d7d1878e22d6e18
2021-10-23 12:43:04 -04:00
95617cc2ec meson: update the list of sources
Change-Id: Ic5862a3e7ce879d8015a50dd348489c81b893603
2021-10-23 10:50:24 -04:00
12c74ad251 jamidht/jamiaccount: Fix read of empty payload
ASAN does not like this:
--------------------------------------------------------------------------------
runtime error: reference binding to null pointer of type 'const value_type'
--------------------------------------------------------------------------------

Change-Id: Idca4720dda401c756bd6ea5dc054dd9e63779153
2021-10-23 09:29:31 -04:00
a0a0f8306e conversation_module: fix needsSyncingWith
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
2021-10-22 11:02:32 -04:00
d2a833db9d SIPCall - trigger a re-invite on media source change
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
2021-10-21 15:26:11 -04:00
932bf8182e conversationRequest: fix testRemoveConversationRemoveSyncing
acceptTrustRequest will set the conversation as ready.
removeConversation should be done after

Change-Id: I966cc2142d00bda880d63f11c52c36faceb11aa7
2021-10-21 11:09:59 -04:00
09f143cc82 channeled_transport: connect setOnRecv when ready to receive data
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
2021-10-21 11:09:51 -04:00
47563d0202 sipaccount: cleanup stun configuration
Change-Id: I724883bf523ce7670f87979c884d97a86688cc38
2021-10-20 15:49:36 -04:00
1665e6ee33 call: allow state listeners to cancel themselves
Change-Id: If306734d2c29c017115e829b3fb4811333cea1f4
2021-10-19 16:51:04 -04:00
68f1732948 jamiaccount: cleanup getContactHeader
* use fmt for better performances
* fix dtls
* remove double space after display name

Change-Id: I9daeb69c65838b130432dfee0b4a5f92d0e53ad9
2021-10-19 10:37:56 -04:00
ff6acce6ca jamiaccount: don't fail call if no DHT device but connection exists
Change-Id: I53308fca61c46551129320babc99915d927a81dd
2021-10-19 09:56:37 -04:00