Commit Graph

128 Commits

Author SHA1 Message Date
td 06728b4b75
fix: make sure room is postLoaded before starting calls
more logging
2024-05-23 14:10:20 +05:30
td 25437f8a18
fix: nonLocal join/left values 2024-05-22 22:55:41 +05:30
td fd6c7a1016
feat: preShareKey using fetchOrCreateGroupCall
fix: only fire backend.onNewParticipant and backend.onLeftParticipant when it is not the local participant, this fixes the issue where onNewParticipant would get triggered when it detects a new call even though you were not in the call, as of now there is no code in those functions which needs to be triggered before you have joined the call so this should be fine

chore: also improve participants join leave tracking logic
2024-05-22 22:15:00 +05:30
td 48043ec753
feat: hide _makeNewSenderKey and expose a new preShareKey function
also bumps version
2024-05-22 19:06:33 +05:30
td d313cbb18e
feat: make voip key generator public
with this you can now send the key before joining the call to the participants, make sure to call onMemberStateChanged first to ensure groupCall.participants is populated
2024-05-22 18:19:18 +05:30
td b5fb43af51
chore: add MatrixSDKVoipException and some more logging 2024-05-21 15:47:19 +05:30
td 39a8b8ce89
chore: throw exception if you cannot send famedly call member event 2024-05-21 15:07:44 +05:30
td d10befcac5
fix: allow famedly calls for everyone before choosing an existing one 2024-05-21 15:04:25 +05:30
td d4566d7512
fix: minor perm issue typo while setting famedly call member event 2024-05-21 15:02:30 +05:30
td 59703aef75
fix: ice restart mechanism 2024-05-13 22:07:38 +05:30
Krille 1dbb81ed83
chore: Revert check message size before fake sync
This lead to the huge problem that there is no
user feedback between sending a message and
seeing it in the timeline as it is encrypted
before the first user feedback is shown. But
the encryption step is async and also includes
fetching devices if necessary so that can take
seconds or even forever on bad internet
connection.

This reverts commit 981c3ea94d.
2024-05-10 08:22:09 +02:00
Krille 5b46ae6e31
refactor: Use strippedstatevent as base for room state and user class
Before we have used the Event class for all
state events while for invite rooms those
actually were StrippedStateEvent objects. This
created some problems like we needed to set a
fake originServerTs (usually to DateTime.now()).
Actually we don't need the additional keys for
state events most of the time so just using
StrippedStateEvent for all states and typecasting
them to event where needed is not much of a
hassle while we benefit from a more clear
structure.
This also now uses StrippedStateEvent as a base
class for the User class which makes the User
class more minimal as keys like event_id and
origin_server_ts are no longer necessary. As we
create a lot of fake User objects where we had to
put fake values in it, it brings more benefits
than problems to just get rid of those fields.
2024-05-03 14:06:49 +02:00
td c5b5a1cf14
chore: reduce isValidMemEvent log level 2024-04-30 21:40:43 +05:30
td 0ff643f652
fix: allow mesh group call invite 2024-04-30 17:12:25 +05:30
td 66bd16208d
chore: update voip readme 2024-04-26 20:07:20 +05:30
td 20a31c1908
feat: famedly calls 2024-04-23 15:52:35 +05:30
td f7a4518c5f
fix: userMediaConstraints 2024-04-09 00:39:23 +05:30
td 981c3ea94d
chore: check message size before fake sync 2024-03-25 19:31:01 +05:30
td 76ca4243bc
chore: emit handleCallEnded on ice fail 2024-03-25 17:09:07 +05:30
td 1e90fcee93
chore: add noice/echo cancelling flags to getUserMedia 2024-03-11 10:45:43 +05:30
td aa77812e8e
fix: ignore expired calls rather than killing them 2024-02-14 03:27:09 +05:30
td c2a2e419cb
fix: group calls terminator having sync glares
this will be removed with the new calls, we should ignore expired calls rather than cleaning up unless you have complete ownership of the event
2024-02-13 11:34:28 +01:00
td b6d5ce02c4
feat: add tests for calls 2023-12-19 21:55:30 +05:30
td 6a2f31de39
fix: ignore calls with age older than lifetime
feat: add barebones WebRTCDelegateMock
2023-12-18 21:28:26 +05:30
td 520dfdbe3e
fix: check negotiate party and call ids
chore: making some call naming schemes better
2023-12-15 21:39:06 +05:30
Karthikeyan S 0811b8911b
fix: set cid before initWithInvite to handle getUserMedia exception correctly 2023-12-04 17:41:16 +05:30
Karthikeyan S f4b0a629c7
chore: add null check for remotePartyId before ignoring reject/hangup 2023-11-29 12:32:57 +05:30
Karthikeyan S 6b9be63a4d
fix: ignore reject/hangup events for a live call from a different device 2023-11-29 12:32:57 +05:30
Nicolas Werner 8b8a647cf9
chore: enable discarded_futures lint
BREAKING CHANGE: This changes the runInRoot method to not return a
future. As a user, if you need the result of an async computation passed
to runInRoot, please await it directly. Also the KeyVerification start
and a few call methods now return a future.
2023-11-17 12:59:27 +01:00
Nicolas Werner a0970b7fcb
chore: don't manually enable default rules 2023-11-17 12:59:20 +01:00
Mohammad Reza Moradi d5447c62f7
fix: hangup on call crash 2023-11-15 08:49:35 +01:00
Karthikeyan S 243275d644
Merge branch 'main' into karthi/fix-hangup-timeout 2023-11-06 17:31:22 +05:30
Nicolas Werner 37582a3a8e
fix: stale call checker leaks memory 2023-11-04 00:30:14 +01:00
Karthikeyan S 88110773ab
fix: call hangup on timeout race condition 2023-11-03 16:05:37 +05:30
td 66a53786e7
fix: do not proceed call if getUserMedia fails
fix: added a few missing awaits

fix: add a workaround for not having state updates for staleCallChecker till sync

chore: fix some logging
2023-07-10 14:19:16 +05:30
Malin Errenst 395ef0eb8e
refactor: Use tryGet for type casts whenever possible 2023-06-21 15:04:46 +02:00
Malin Errenst 5943576b1b
refactor: Added type casts to match refactored matrix_api_lite 2023-06-16 12:42:10 +02:00
td 26e0d0954d
chore: add missing awaits to to_device call events listener 2023-05-13 20:06:04 +05:30
td 8e4f4486b2
chore: add missing awaits to to_device call events listener 2023-05-13 20:05:09 +05:30
Nicolas Werner a250384eca Merge branch 'td/singleShotSyncBeforeStaleChecker' into 'main'
chore: oneShotSync before staleCallChecker

Closes famedly/company/product-management#658

See merge request famedly/company/frontend/famedlysdk!1284
2023-05-03 06:35:56 +00:00
td 444ba47022
chore: oneShotSync before staleCallChecker
fix: while singleShotStaleCallChecker code seems to be correct we are seeings some random disconnects in group calls, this makes sure we have all the to-device messages we are supposed to have before checking for stale calls
2023-04-29 19:47:13 +05:30
td f240ece32c
fix: updateMuteStatus after kConnected
fix: makes sure any state/race issues we had with sdp packets or cloned streams get fixed automatically
2023-04-29 19:33:34 +05:30
td 046e2caf7d
fix: allow passing a WrappedMediaStream to GroupCall.enter() to use as the local user media stream
currently in the app we start the group call (but do not enter it), then we use the localStreams provided by it to show the setup page (enable/disable media devices). This causes some issues because the user hasn't joined the group call so the member state events don't update and the group call is killed if they just sit on the setup call page. Also creating a group call, sends notifications in our apps but no one has entered it. With this MR, apps can get their own user media, then edit that stream on setup page add it to GroupCall.enter(stream). This way, a group call doesn't have to be started and we get to do the setup page as well.
2023-04-25 14:18:45 +05:30
td 412bd71b23 Merge branch 'td/trySetTrackenabled' into 'main'
fix: update mute status on participants changed.

See merge request famedly/company/frontend/famedlysdk!1263
2023-04-13 14:57:04 +00:00
td 32ba85dc74
chore: stopMediaStream on all streams and make sure dispose runs everytime 2023-04-12 16:36:05 +05:30
td 05ba6368eb
fix: test if setting track enabled on participants changed helps with the media not working randomly issue 2023-04-06 01:18:09 +05:30
td d8d111b1b4
chore: ignore stale call checking for archived rooms 2023-03-29 19:04:10 +05:30
td b776e8f9df Merge branch 'td/asyncmesh' into 'main'
fix: make group call stuff async, let clients await what they need

See merge request famedly/company/frontend/famedlysdk!1244
2023-03-03 15:03:32 +00:00
Nicolas Werner 99036ca178 Merge branch 'td/stopCheckerLeave' into 'main'
chore: stop stale group call checker on room leave

See merge request famedly/company/frontend/famedlysdk!1245
2023-03-03 12:43:27 +00:00
cloudwebrtc f2e4126e0c chore: update. 2023-02-27 21:02:30 +08:00