feat: Add video call support#2599
Conversation
… as an in place option on send)
…m widget info at start instead)
…a state and hangup
…pe instead of using any) in widgetUrl
… based on join + hang up actions
|
I've been following this and able to use this just fine when built for web over the last few days, but when I build cinny-desktop with cinny on this branch, joining voice rooms hangs indefinitely from cinny-desktop (shows "Joining"). I just thought saying this sooner might get more eyes on the cinny-desktop angle. Works fine with chrome, firefox. /public/element-call/index.html requests end up returning cinny's index instead. Query params break the file lookup in cinny-desktop. I was able to test:
I'm assuming (based on some research of tauri's localhost plugin) that Tauri's localhost resolver doesn't strip query parameters before looking up the file. It tries to find index.html?embed=true literally (including query params), fails, and falls back to the root index.html. I've been able to fix it a couple different ways in my testing but that's the core problem I hit. I don't know what the most elegant solution is if I'm right about this being a problem. I was able to fix it in just cinny by changing to url.hash from url.search, which caused other problems but I could at least join voice rooms. But changing cinny-desktop to not use the tauri localhost plugin could be another path. Maybe someone more experienced with cinny-desktop should run this branch through a test. Edit: The solution for me was to patch Tauri's localhost plugin (though it seems 2.x of tauri includes a localhost plugin with this fix). This made the fix entirely on the cinny-desktop side and I can use this branch unchanged. // Original plugin: // Patched plugin: With that change, cinny-desktop works with this branch. Without it, joining voice rooms fails (the element-call iframe fails) |
group duplicate conditions into one
- rename CreateRoomVoice to CreateRoomType and modal voice state to type - rename CreateRoomKind to CreateRoomAccess and KindSelector to AccessSelector - propagate access/defaultAccess through create room and create space forms - set voice room power levels via createRoom power_level_content_override
- bump folds from 2.5.0 to 2.6.0 - replace separate room/space join-rule icon hooks with useJoinRuleIcons(roomType) - route join-rule icons through getRoomIconSrc for consistent room type handling - simplify getRoomIconSrc by removing the locked override path - use VolumeHighGlobe for public call rooms and VolumeHighLock for private call rooms
- show filled User icon when the drawer is open
|
@jeanbono I've pushed some changes to address that, see if it works now |
Looks good now 👍 |
- fixes not working on firefox
|
I've been testing this, and I've found a bug: When you join a room, and then close the tab, your user never leaves the call, not even after a server restart. If the user was sharing their screen, the screen remains perpetually shared. I'm not sure if the behavior is the same on Element. |
You can do this on Element too. Quirk of Element Call I imagine. User has to timeout from the LiveKit SFU. That is why a server restart doesn't DC them even unless you restart that too I believe. |
Ah yeah, I've seen this as well in fact when my browser has crashed whilst in a call. @GigiaJ Is it possible to add something in to trigger the user leaving the call properly when the tab is closed? i.e. Using the beforeunload window event or similar? |
|
Is the preview up to date with the current PR diff? Calls do not seem to work for me using the preview. |
Yeah I'm getting stuck trying to join a call in a call room without it ever resolving, can join the room successfully on Element. |
|
Merging this in voice-calls PR for further testing. #2680 |
Description
Fixes #528
Revives and continues #2335 (Element Call support), as the original PR has stalled.
Merged
devinto this branch, resolved conflicts, and incorporated patches from @YoJames2019 to bring everything up to date and reviewable.Marked as draft for now since some UX/polish improvements are still needed.
Credits to @GigiaJ for the original implementation and @YoJames2019 for follow up patches.
Here's laundry list of things I feel like should be addressed before merging: (Feedback welcome!)
Need to fix (help would be appreciated):
Nice to haves:
Type of change
Checklist:
Preview: https://2599--pr-cinny.netlify.app/
Any feedback/Questions, please post in the dedicated thread: #2599 (comment)