Add support for group calls using MSC3401 #2553
Group call improvements (#1985)
0148ad07
Rermove session id
e9b52e23
Merge branch 'develop' into robertlong/group-call
431d7a09
Use glare resolution to manage group call setup
8131b390
Fix unnecessary param to placeCallWithCallFeeds
159e8258
Only send to device messages to a single device
0555f9db
Fix screensharing and webrtc races
305de541
Merge branch 'develop' into robertlong/group-call
5110e0b9
Add check for existing group call session
3b0d1b26
Fix updating member state with no existing calls
b4d8c0b6
Start processing member state events only after we've set out own (#2…
fc8a867e
Fix inbound calls in Safari
119ce2e4
untested first cut at factoring out a encryptAndSendToDevices method
9f3f9990
clarify the factoring
aeeed6ec
make it build
24406d24
fix example in readme
56c0c9be
switch encryptAndSendToDevices to return a promise rather than use a cb
5a83635e
lint
53397ee0
don't choke on missing promise
f46355e7
chain promises correctly; log rejects
2f09e964
fix the tests (thanks @turt2live!!!)
a48546f6
handle promises normally now tests are fixed
841e6e99
lint
067ac622
Merge branch 'to-device-olm' into robertlong/group-call
32aca09f
Fix stopping all media streams
13d62e71
Ensure that member call state is set correctly
923e9c4a
Fix handling null call
8c5f88c4
Sanitize call member state
4c9648a2
Remove duplicate call answer
d99428f2
Ignore call call state in glare resolution
6f695c1b
Check if call ended before getting user media
5a92597a
Revert changes to gotCallFeedsForAnswer
bdc12a25
Send candidate queue again on finish to flush out queue
7998817f
Fix indentation
c1f56ba3
Preserve the disabled tracks when updating local usermedia stream
b253ad9e
Keep track of original stream id for sdp stream metadata
17f7dc54
Ad a longer wait to safari media stream hack
f76f708c
Update local usermedia streams serially
4b87907b
Temporarily disable safari hack
74c5a203
Merge branch 'robertlong/group-call' of github.com:matrix-org/matrix-…
a2e255c2
Re-enable safari hack
f28cb48f
Clean up replacing calls for Safari
97e8fcea
Add restart ICE
e880cece
Add retry call loop
28da62c0
Don't immediately start retry call loop
7d48a839
Clean up logging
31391121
Add unknown device errors
4e26f290
Add additional logging for removing feeds/tracks
c2fe2ab2
Update sync state to error when aborting
139904f2
Merge branch 'robertlong/abort-sync-error' into robertlong/group-call
32918467
Properly stop screensharing feed
5f06df8a
Stop screenshare when screensharing track ended
64c3ac55
Dont start retry loop until weve sent the member state event
0683133d
Make unknown device error more useful
96ef535e
Hopefully resolve a race condition with missing device ids
d0e37ee3
Make updateLocalUsermediaStreams stop tracks
ffbd10a7
Set initial audio/video input ids
d1a62edd
Add LocalStreamsChanged event to MediaHandler
fcc4b71f
Expose webrtc related types/props
e336acea
Send device id along with to device signaling messages
06d9d620
Disable retries
549f9b7e
Emit sent voip events
bef55797
Log opponentDeviceId
7993dd76
Emit sent voip events
f3f9e417
Log opponentDeviceId
18bb5c30
Use session ids to resolve refresh during invite/answer
87bf1159
Force hangup replaced calls
c91617a7
Merge branch 'robertlong/group-call-session-id' into robertlong/group…
487bfc88
Replace outbound calls only
3fac6d71
Add NewSession CallErrorCode
7529af43
Ensure call events are processed once and in order
ee995cb3
Dont filter unstable call events
eeacf8c2
Remove call from callEventHandler after hangup
d8285aad
Use replace error code when replacing incoming calls
28f3169a
Add user id to all send voip events
42fef0e7
Add sender/dest session ids
015eb5d5
Re-enable retries
592fb0cf
Remove log
bbf70207
Fix restartIce on FF Android
1a78301a
Don't send candidates after the call has ended
4a4465b9
Ignore duplicate streams when adding local feeds
d42e2fe2
Add answer/negotiate response promise chain
b4fe00a3
Don't reuse local call feeds that have been added to a RTCPeerConnection
c801690e
Avoid glare
d8e597cc
Remove safari hack
d12bccd2
Remove unused isSafari check
a2a127d9
Enable max-bundle (#2182)
3db056ad
Log complete sync errors
fa5eae70
Process toDevice events in order
7f21f569
Fix and add a test for toDevice ordering
353d6bab
Switch media devices on disconnect
7a249e3e
Add callId to all logs
0ef6c2e3
Fix call log
e270f075
Move device changes to the application. Add methods to set device ids
17f5ab41
Fix updating local media streams
c819ac63
Add logging for all stream creation/cloning/muting
e68cabc7
Add checks for call/groupCall ended for updateLocalUsermediaStream
49994ac4
Allow calls to terminate properly when calling stopClient
09fee4a2
Fix import
94c5e375
Send / add end-of-candidates messages
6e25b133
Fix bug with ine-way audio after a transfer (#2193)
2a0dc39e
Don't remove streams that still have tracks (#2104)
ee4cbd1e
Fix shouldRequestAudio logging
96ba0617
Support for PTT group call mode (#2338)
8d9cd0fc
Merge remote-tracking branch 'origin/develop' into robertlong/group-call
d82c041b
Remove test 'fix'
9702e8a5
Make tests pass again
85a6a552
Merge remote-tracking branch 'origin/develop' into dbkr/group-call-merge
83f61c96
Merge remote-tracking branch 'origin/develop' into dbkr/group-call-merge
f475251d
Merge branch 'develop' into dbkr/group-call-merge
f4f05550
More setTimeout typings
da615fd5
Merge branch 'dbkr/group-call-merge' of github.com:matrix-org/matrix-…
acef1d7d
Remove PTT 'other user speaking' logic (#2362)
38e54ae7
Fix races when muting/unmuting (#2370)
87791cd3
Add support for sending encrypted to-device events with OLM (#2322)
942a28dd
Handle other members having no e2e keys (#2383)
aa0d3bd1
Wait for mute event to send in PTT mode (#2401)
18e2052a
Mute disconnected peers in PTT mode (#2421)
34ef7bc6
Set PTT mode on call correctly (#2445)
5e766978
Emit unknown device errors for group call participants without e2e (#…
b97b862f
Only clone streams on Safari (#2450)
404f8e13
Change CODEOWNERS for element-call feature branch (#2457)
04d0d61a
Disable playback of audio for muted users (#2456)
9192b876
Expire call member state events after 1 hour (#2446)
70449ea0
Don't ignore call member events with a distant future expiration date…
df9ffdc4
Don't block muting on determining whether the device exists (#2461)
5b4263bf
Merge branch 'develop' into robertlong/group-call
ebcb26f1
Fix call.collectCallStats() (#2480)
c89bbf4b
Remove the feature to disable audio from muted members (#2479)
f5538547
Enable DTX on audio tracks in calls (#2482)
e7493fd4
Fix some MatrixCall leaks and use a shared AudioContext (#2484)
f9672cf3
Revert hack to only clone streams on safari (#2485)
ca5ac799
Remove empty decryption listener (#2486)
6ea28857
Don't mute the remote side immediately in PTT calls (#2487)
e980c889
Add config option for e2e group call signalling (#2492)
9a150943
Set max average bitrate on PTT calls (#2499)
bdb91b38
Prevent double mute status changed events (#2502)
984dd26a
Merge develop into group call branch again (#2513)
544b1c67
Add local volume control (#2525)
e876482e
add missing events from reemitter to GroupCall (#2527)
38a6949e
Make SDP munging media type specific (#2526)
9e2e1445
Add support for audio sharing (#2530)
8ba2d257
Merge remote-tracking branch 'origin/develop' into robertlong/group-call
b711781f
Delint group calls (#2554)
22c5999f
Merge changes from develop (#2563)
2cc51e0d
Merge remote-tracking branch 'origin/develop' into robertlong/group-call
c0dacb50
Merge remote-tracking branch 'origin/develop' into robertlong/group-call
471f1748
Fix return types of event sending functions (#2576)
88ce0173
Add basic creation / entering tests for group calls (#2575)
0b8de251
Support nested Matrix clients via the widget API (#2473)
3334c011
Merge branch 'develop' into robertlong/group-call
5f5a9b1a
Tidy up imports (#2584)
02074314
Test placing a call in a group call (#2593)
e8f682f4
Add group call tests for muting (#2590)
c698317f
Add test for updateLocalUsermediaStream (#2596)
e4cf5b26
Merge branch 'develop' into robertlong/group-call
099cac01
Add tests for incoming calls in group calls (#2597)
2566c40e
Test muting in PTT mode (#2599)
9589a979
Add screensharing tests (#2598)
448a5c9a
Update lockfile (#2603)
e95947dc
Add `disposed` to `CallFeed` (#2604)
45e56f8c
Add unit tests for hangup / reject (#2606)
92cd84fc
Test call timeouts (#2611)
e7a7ec06
Merge branch 'develop' into robertlong/group-call
5f9369ab
Fix imports
be94f5ea
1:1 screenshare tests
4a294c9d
Revert 4a294c9dd36109233041ede34e780685c5d69801
c527f85f
1:1 screenshare tests (#2617)
9e1b1268
Fix ICE end-of-candidates messages (#2622)
965f4fb1
Add types to the call unit test suites (#2627)
d5b82e34
Add logging to diagnose connection issue (#2629)
db32420d
Add GroupCallEventHandlerEvent.Room (#2631)
0981652d
Wait for client to start syncing before making group calls (#2632)
d656b848
Test disabling screenshare in group calls (#2634)
40ecfa79
Refactor the group call placing calls test (#2636)
0d6a93b5
Test that calls in a group call are retried (#2637)
c78631bd
Test call mute status set on call state chnage (#2638)
aca51fd8
Add client.waitUntilRoomReadyForGroupCalls() (#2641)
98d119d6
Log ID instead of object (#2643)
fa6f70f7
MediaHandler Tests (#2646)
83c84809
Merge branch 'develop' into robertlong/group-call
d950cda0
Merge branch 'develop' into robertlong/group-call
60e175a0
GroupCallEventhandler Tests (#2654)
aebe26db
Misc fixes for group call widgets (#2657)
36a6117e
Test active speaker events (#2658)
02f6a09b
Test fallback screensharing (#2659)
00629e6d
Add test for removing RTX codec (#2660)
37118991
Merge branch 'develop' into robertlong/group-call
276849f0
Fix import in failed merge
3e1e99f8
Fix race in creating calls (#2662)
41cee6f1
Prevent exception when muting (#2667)
c605310b
Add tests for call answering / candidate sending (#2666)
586a313c
Merge branch 'develop' into robertlong/group-call
c05cb3ad
Unused imports from merge
f52c5eb6
Add tests for ice candidate sending (#2674)
6fc9827b
Target widget actions at a specific room (#2670)
de694459
Upgrade matrix-widget-api (and fix the lockfile) (#2676)
f41b7706
Add a few new `GroupCall` tests (#2678)
c400dd4f
Add test for call transfers (#2677)
72b89fde
Add a few group call event handler tests (#2679)
72a6ec0d
Fix group call tests getting stuck (#2689)
2a0ffe12
Merge remote-tracking branch 'upstream/develop' into SimonBrandner/ta…
6f7a72d6
Merge pull request #2695 from matrix-org/SimonBrandner/task/gc-merge
4625ed73
Add `MatrixClient` group call tests (#2692)
a2981efa
Add `CallEventHandler` tests (#2696)
af6f9d49
Add more `MatrixCall` tests (#2697)
ab39ee37
Fix ICE restarts (#2702)
e48d919c
Merge branch 'develop' into robertlong/group-call
93551774
Merge pull request #2712 from robintown/merge
ce3b72c8
Don't block muting/unmuting on network requests
c0a52997
Merge pull request #2754 from robintown/unblock-mute
d521f974
Merge branch 'develop' into robertlong/group-call
3c33c422
robintown
force pushed
from
f6927dca
to
3c33c422
3 years ago
More debugging for multiple group calls (#2766)
dfe535bc
Fix screenshare failing after several attempts (#2771)
c57c8978
Fix connectivity regressions (#2780)
5a078734
Add throwOnFail to groupCall.setScreensharingEnabled (#2787)
eddd0caf
Add event and message capabilities to RoomWidgetClient
8cd5aac1
Merge remote-tracking branch 'origin/develop' into dbkr/gcmerge_oct22_3
193d8a42
Merge pull request #2797 from robintown/matryoshka-events
35f697a0
Merge branch 'robertlong/group-call' into dbkr/gcmerge_oct22_3
b4ab7fc0
Merge pull request #2800 from matrix-org/dbkr/gcmerge_oct22_3
450ff00c
TS strict mode compliance in the call / groupcall code (#2805)
c374ba23
Merge remote-tracking branch 'origin/develop' into dbkr/gcmerge_26oct22
384116c8
Clean up group call tests (#2806)
0d211dfb
Fix types
0f101227
Merge pull request #2807 from matrix-org/dbkr/gcmerge_26oct22
4cd50e48
More TS strict mode fixes
5679c86c
Don't commit the strict mode flag
87115d18
Merge pull request #2808 from matrix-org/dbkr/groupcall_more_strict
13c751c0
Let leave requests outlive the window
dbdaa154
A few more strict mode fixes
d979302e
Merge pull request #2816 from matrix-org/dbkr/groupcall_more_strict
77ef8558
Merge branch 'develop' into robertlong/group-call
9ff6b357
Replace the keepAlive flag with request options
4c6e1e5c
Merge pull request #2815 from robintown/keepalive-leave
849e3d67
Merge remote-tracking branch 'origin/develop' into robertlong/group-call
f0d4ef7f
Resolve races between initLocalCallFeed and leave
b9cccf91
Merge pull request #2826 from robintown/init-leave-race
94072a09
Merge remote-tracking branch 'origin/develop' into robertlong/group-call
6729c7d4
dbkr
marked this pull request as ready for review 3 years ago
dbkr
requested a review
3 years ago
Add public/private modifiers
cb8123de
Add more access modifiers
476f6f78
Give everything that isn't web rtc back to element-web
7ec726e1
Merge remote-tracking branch 'origin/develop' into robertlong/group-call
7fb313c1
Don't remove our own member for a split second when entering a call
32d535c2
Merge pull request #2844 from robintown/dont-remove-self
8235b65d
turt2live
approved these changes
on 2022-11-04
Merge remote-tracking branch 'origin/develop' into dbkr/gcmerge_20221104
fff4cdab
Fix strict mode errors
2dda837d
Merge pull request #2854 from matrix-org/dbkr/gcmerge_20221104
c8dc71eb
Merge branch 'develop' into robertlong/group-call
4f63ff21
Merge remote-tracking branch 'origin/develop' into robertlong/group-call
f09853cc
dbkr
merged
df2b65f1
into develop 3 years ago
dbkr
deleted the robertlong/group-call branch 3 years ago
Assignees
No one assigned
Login to write a write a comment.
Login via GitHub