Commit Graph

15527 Commits

Author SHA1 Message Date
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
dabccb4da0 conference: fix resolution change
Change-Id: I55568eac3c95105131751d245224fbc3fd44a782
2021-10-12 12:22:10 -04:00
e6e47942d9 audiolayer: don't lock in putUrgent
RingBuffer has its own mutex. This avoids potential deadlocks.

Change-Id: I93175aafe9fbb3f927da28124a7d42e61585523d
2021-10-12 11:34:35 -04:00
3b9983453b ringbuffer: add write lock
Change-Id: Idde24be13daf0fca55ce5a2607e6b9835c18f3c5
2021-10-12 10:39:58 -04:00
0623347c37 sinkclient: videocrop fix
Change-Id: Iaa356f723a34c67cfd66190c04a53aea88bbea07
2021-10-12 09:29:36 -04:00
84093cf135 jamiaccount: cleanup log for tracking presence
Change-Id: I30b7d9db2cbac84c6ae15d15b0fe8a0f93e3a271
2021-10-12 09:13:10 -04:00
c9fa6304d5 string utils: add concat
Change-Id: I3b0fd2a34289545dbf06b85c2e825fbf87bb42ad
2021-10-11 10:33:08 -04:00
32b777f987 archiver: cleanup
Change-Id: Idbb8720de936661b01fcea97faeab92d0526b6c2
2021-10-11 10:33:08 -04:00
8f0e570b78 accel: ignore codec level
Hardware decoding will still be used even if the codec level is unknown
or higher than the hardware's reported supported level.

From FFmpeg: "It's generally a good idea to pass this flag unless you
have a specificreason not to, as hardware tends to under-report
supported levels."

Change-Id: I83614b0eab6166a42973f062e666783c2a8e7627
2021-10-11 10:20:07 -04:00
17f31b5941 meson: update the list of sources and dependencies
Change-Id: I19bc2fe4edef3c8dc7992473235f6ffd002c6e0b
2021-10-10 17:21:32 -04:00
d987d63455 jni: release buffer if window lock failed
Change-Id: I12148f354905cd888e284ab5583a80f9fe721248
2021-10-07 17:29:37 -04:00
377bc4a2e0 dring: remove deprecated API
Change-Id: Ieb61181e437278e1975fadfa9908c0bc413b1add
2021-10-07 15:26:49 -04:00
204b3fbcbf api: remove getDisplayNames
Change-Id: If641609b25cf6dad1a2c91fe534c2fa3a7119ad1
2021-10-07 10:27:23 -04:00
dc514c8cc6 api: remove switchToCamera()
Change-Id: I5e328cc2d0e38aa26bf62cb3a5bd083d499b9a02
2021-10-07 10:26:13 -04:00
e2c5eb02cb api: remove hasCameraStarted
Change-Id: If509355da31d71e9301d463fbbd64c202530cdfc
2021-10-07 10:26:13 -04:00
e3240d5781 upnp/natpmp: register controller only if account is enabled
If UPNP is enabled by the user, the UPNP controller must registered
only if the account is enabled.

Gitlab: #639

Change-Id: I993b50ea37fafa847460650d901ac3c3d5039718
2021-10-06 16:13:13 -04:00
042ad25ca2 SIPCall/ICE: add some logs
Add logs to help debug ICE intialization issues

Gitlab: #619

Change-Id: If81067e2261cf7fbb054b4c9abe641e2ebc84a0a
2021-10-04 09:42:03 -04:00
c5d5298655 swarm: replay text messages when cloning an old conversation
After removing and re-adding a contact, the second conversation
will be deleted and the first conv will be recloned. However,
some text messages can be present. In this case, we can re-add
them.

Change-Id: I7cafcf76b5d36769ea939729a2fbf6730853cafb
2021-10-01 15:41:23 -04:00
0a3503941f data transfer: fix cancel in swarm
cancel a file from the user should removes the file from the
waiting map to avoid to relaunch the download on the next sync.

Change-Id: I0696364d0131c8dde563b97b8b965e99d1f5686a
2021-10-01 13:47:10 -04:00
6ec4c687b3 jamiaccount: cache compressed vcard given by the client in sendTrustRequest
For now, the daemon doesn't handle the profile of the account nor
the compression. However, it does handle sendTrustRequest, which uses
the DHT to transmit requests. DHT values must be small, else it will
not be sent. So, this patch cache the compressed payload generated
by the client and removes it as soon as the confirmation is received.
This allow the daemon to retry to send request with the payload sent
originally.

Change-Id: I3fac542c6a53febdb7f1d0c516ec2d9ff5b317be
2021-10-01 11:14:42 -04:00
830d48573a test: split ut_conversation
Change-Id: I14df750d459a0771f4e60923a1ecf3bfb938a78b
2021-09-30 13:23:06 -04:00
f045eb9764 swarm: link trust requests and conversation's requests
This is only to avoid to return weird states from the daemon to the
client. But if a conversation is added through addContact,
removeContact should be called to removes it. However, if
removeConversation() is called, the conversationId in contact's
details MUST be updated.
Same for acceptConversationRequest, this should removes related
trust requests

Change-Id: I4b273075862cdcdffc7f13c1b5e581a2eebc411d
2021-09-30 13:23:06 -04:00
d459037f84 jamiaccount: extract code related to sync
Change-Id: I2af34ba8055903541d04d87c12082ffd03f47d8c
2021-09-30 13:23:06 -04:00
ec0e947777 webrtc-audio-processing: allow using system version
Change-Id: Ie12b5962f37f4e35aa3d2f71031bce605b24551a
2021-09-30 13:22:42 -04:00
55d1218408 sipcall: fix various race conditions
Change-Id: Idda022b8085d15224fc41139fc5868eaf07900c0
2021-09-30 13:08:59 -04:00
7a5c8e8511 tls session: move rx flush logic to thread, remove scheduler
Change-Id: I73484d9a5d060680c1b8f60121c3ae6021c5f6eb
2021-09-30 10:32:03 -04:00
4991945ecf ICE/SIPCall: prevent a race between init ICE and remove call
While waiting for ICE initialization, the call state may change
and also the ICE instance. This patch handle a race between
ICE initiliazation and call removal

Gitlab: #619

Change-Id: I4a18a9901ddbd35969b85cf0b17213b1ac277b02
2021-09-29 16:49:10 -04:00
c8b30de0f6 jamiaccount: emit signals on main thread
No need to start a thread pool for this.

Change-Id: Ifabb41549f6b0620f38cae4fd80af688bfc2e642
2021-09-29 15:37:37 -04:00
2a6761236f ice: decouple instantiation and initialization of ICE transport
Instantiation and initialization of ICE are done in a single
stage (in the class constructor).
To initialize the ICE instance, connection information must
first be gathered asynchronously.
However, when sharing ICE media instance between subcalls,
it's better to have a valid ICE instance as soon as possible
(even if not fully initialized) to proceed with the call
initialization process, then wait for ICE initialization to start
the call.
Thus, the ICE instantiation will be performed synchronously as
soon as the parent (main) call is created, then it will be
initialized asynchronously when the connection info are ready.

Gitlab: #619

Change-Id: I9c97516238f1a690603975ec968c8c6733155d4a
2021-09-29 11:24:47 -04:00
b98db961da ice: share ice instance between subcalls
Currently, when making an outgoing call to a Jami account with
multiple registered devices, a new ice media instance is created
for each subcall. This is not necessary, because all ice instances
will be similar until the peer answers (and provide its candidates)
But when the answer is received from the peer, all ice instances are
destroyed except the instance of the successful subcall, which will
be used to negotiate the media path.
Instead, only one instance will be created for the parent call, and
shared amongst the attached subcalls.

Gitlab: #619

Change-Id: I001c27f69d21b3ea640b189aea401e43c3f6bdef
2021-09-29 11:24:47 -04:00
910a5c5de3 sipcall/ice: remove obsolete temporary shared pointer
This patch removes the temporary ICE shared pointer

Gitlab: #619

Change-Id: Icacac9df1102327d4d1a0f0d67dfa457016048cd
2021-09-29 11:24:47 -04:00
2053afe934 plugin: fix duplicate handlers in memory
Make sure we unload plugin before trying to load it.

Change-Id: I87ac7b36378c0e70ecd101b68c8fcb8b7ea7fde8
2021-09-29 11:12:29 -04:00
a6177c9471 gitreview: update gerrit project name
Change-Id: I8b64659932709aa5642ef88be4bd6707812f7148
2021-09-29 10:19:37 -04:00
6d4630bfc2 ICE: flush timer heap when destroying ICE instance
When requesting destruction of ice session and stream
transport instances from PJNATH, some operation will be
done asynchronously through scheduled timers. If not
properly handled, the timer heap will still contain
timer entries when the timer heap and the IO queueu are
destroyed.
Now, the timer heap is given more time to flush the
remaining timer entries before the IO queue and the
timer heap are destructed.
The timer heap may still contain timer entries if
PJNATH does not process all the timers within the
givent max time (currently set to 3s).

Gitlab: #637

Change-Id: I5ef2fe9d824e8b57191a51fac8f9e53e0e626fcd
2021-09-28 20:53:37 -04:00