Commit Graph

152 Commits

Author SHA1 Message Date
td 6c17e3cfdf
feat: reactions for voip calls
Co-authored-by: Karthikeyan S <karthikeyan.s@famedly.com>
Co-authored-by: Yash Garg <me@yashgarg.dev>
2025-10-02 16:27:50 +02:00
Karthikeyan S 6b73fc6354
refactor: migrate to web and js_interop pkgs 2025-09-26 14:08:01 +02:00
td 9b0e9b7c56
fix: (BREAKING CHANGE) remove only your device call membership if room is not msc3757 2025-09-16 10:52:22 +02:00
td 2489682f1b
refactor: (BREAKING CHANGE) you can now get the matrix eventId from CallMembership(s) 2025-09-09 15:41:15 +02:00
td 19df680dee
feat: (BREAKING CHANGE) delayed and device owned state events support for group calls
feat: allow setting keyring size

feat: allow setting custom call timeout values, you will have to pass the voip class to a bunch of existing call related methods though

feat: also debounce join key rotation
2025-09-09 14:33:01 +02:00
Christian Kußowski b94677240b
refactor: Clean up new dart version lints 2025-06-22 17:02:01 +02:00
Yash-Garg 2738451ff6
fix: handling of existing calls in `onCallInvite` 2025-04-23 22:10:03 +05:30
Karthikeyan S f3e25596ac
fix: BREAKING! missed initial updates for stream listener callbacks in P2P & mesh calls 2024-12-17 18:11:13 +05:30
Krille 04a46226cb
refactor: Fix new lints from flutter 3.27 2024-12-15 12:21:26 +01:00
Karthikeyan S 9b800db175
fix: rejecting a call doesn't send m.call.reject event 2024-12-06 12:38:58 +05:30
Mohammad Reza Moradi 9c32193dff
chore: add require trailing comma lint 2024-11-07 16:13:37 +01:00
Krille b1198f7b80
fix: AsyncCache is not invalidating on error
This fixes for example that if a
fetch from an asynccache once
failed it never gets retried. So we
only want to cache results, not
exceptions/errors
2024-10-21 14:53:52 +02:00
td b2e747bb3a
feat: add equality and hashCode overrides for autogenerated models (BREAKING CHANGE) 2024-10-18 14:02:55 +02:00
Krille 2d73192a40
refactor: Use Object.hash instead of hashCode ^ 2024-10-16 15:13:30 +02:00
Krille b913b40fd8
chore: Lower loglevel for call event with unexpected sender 2024-10-07 10:31:29 +02:00
td 53c75a8dbf
chore: allow clients to set their own voip key delays 2024-06-22 07:34:16 +05:30
td 373518557f
chore: make ignored call mem logging verbose 2024-06-11 19:00:44 +05:30
td 7f41b2d4c8
fix: ignore call events from own user even if todevice 2024-06-11 18:43:18 +05:30
td 325fb19f55
chore: do not create participant object on every key 2024-06-11 18:18:32 +05:30
td 7241bb8dc5
revert: "feat: retry call encryption key request logic"
This reverts commit 9896ebb814.
2024-06-11 18:11:44 +05:30
td 188eb0f387
chore: bump make and use key delays to have more buffer 2024-06-07 14:55:10 +05:30
td 9896ebb814
feat: retry call encryption key request logic 2024-06-06 01:19:51 +05:30
td 2e1e3a48c7
feat: expose matrixRTCEventStream
currently only supports participant join/leave updates
2024-05-30 18:21:13 +05:30
td 10687d88a1
fix: do not fire missedCall on answeredElseWhere 2024-05-30 15:38:10 +05:30
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