Commit Graph

15360 Commits

Author SHA1 Message Date
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
0ae5d6681f SIP - prevent race condition when writing contact header
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
2021-10-14 12:13:48 -04:00
1cff5df877 call: fix pause
GitLab: #644
Change-Id: Ia2b8e05d6ffbb22336bb284ea9ac5fc292eacb85
2021-10-14 11:33:50 -04:00
54f7a30258 multistream: add support to ios
GitLab: jami-client-ios#145
Change-Id: Ic4ae63ce2f1df1176c4a74339d1c3d82a9570ad5
2021-10-13 15:30:47 -04:00
064efa9024 agent/README: Update README
Change-Id: I2bcbbf872b54262f8e4406fb01921a1ec07be3b3
2021-10-13 12:08:29 -04:00
26f04d0a5c agent: Remove junks
Change-Id: I09876059293d18e25c34e755deafba8d224dc740
2021-10-13 12:08:29 -04:00
448b4e1e2b agent/examples: Update examples with new bindings
Change-Id: Ib5194ef6ca475df5be621c923d7660266cf7256e
2021-10-12 23:35:58 -04:00
dd132c8628 agent/agent: Add agent helper
Change-Id: I0c44b1a5fdd9727a8acf3d9deb88f9c2b5f71dd8
2021-10-12 23:35:53 -04:00
877f8cd210 agent: Add Jami's signal bindings
Change-Id: I1b21d80b7ea24bfc9334f2f63f3a57f0d4a57522
2021-10-12 23:35:50 -04:00
ecc4a089fd agent: Add Jami's call bindings
Change-Id: I59d9d812b6b5a2c66e2832328fbfdf663d9019af
2021-10-12 23:35:46 -04:00
904f74de22 agent: Add Jami's account bindings
Change-Id: I42fe3a4682bb9468ecf5417d6d9823e151e10bec
2021-10-12 23:35:42 -04:00
aa3299b36b agent: Use Jami's scheme bindings
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
2021-10-12 23:35:38 -04:00
bfa324bcb1 pupnp: remove duplicate logs
Change-Id: Iab2caaa3fb8377b7a42301c3635d70233f0cc623
2021-10-12 13:32:25 -04:00
5e7a64653f upnp: make mapping operations atomic
Change-Id: I2c04e3831f68a55b7682c42eb93464e1fab78b1b
2021-10-12 13:32:21 -04:00
a37e4631b1 opensl: handle Enqueue failure
Change-Id: I4bdef901c2a2bc07dc1a9263eb0a9796655c051a
2021-10-12 13:30:25 -04:00