-
-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Video Call doesn't hang up when camera is not available #17975
Comments
This is debatable since you might want to give other devices a chance to answer the call/give the user a chance to connect their microphone instead of hanging up the call |
Yes, I fully agree. I think either both sides should terminate the call or both sides should engage in the call. I would really appreciate if you are able to fix this issue. I'm currently trying to find my way through the matrix-react-sdk but I'm not really familiar with react and typescript. Thanks |
With trying to follow what I wrote in #17975 (comment) would it make sense to you to let the call keep ringing if Element fails to access the camera/mic...? |
Yes, that seems like a good solution. Then the receiver would have the change to plugin the device or decline the call which would also end the call on the callers side. |
Partially related to #12646 |
S-Critical because the workaround is to ask the other person to end the call. O-Intermediate because it is likely to happen to everyone who hasn't allowed browser to access camera and some people with desktops. Needs design confirmation that the solution is to keep the call ringing while showing the error message. |
From a product perspective, I agree that the preferred solution is to keep the call ringing and give the recipient the chance to either:
Anyone see any issues with that approach? |
Reject (the user won't be able to answer on other devices) or hangup (the user will still be able to answer on other devices)?
I think we should be able to do that
I am not sure I understand how would that work? |
Good questions: I would say 'reject' not 'hangup'. We'd need to look at the design but, logically, if someone calls and I press a red button, I don't expect the call to keep ringing on other devices. Connect a camera and then accept the call: This is in no way a must-have, but in theory the following flow should be possible:
|
Hmm, to be honest, that sound unnecessarily complex when we could just figure out call upgrades and let the user upgrade the call after answering. It feels like presenting a dialog such as this could be a bit annoying My personal favourite is to accept without a camera as letting the call ring while you connect a camera feels rather weird in my mind - a pressure is put on you to be quick |
I agree that sorting out call upgrades would remove the problem, but even if we had call upgrades, I would still want the ability to connect a camera before accepting the call. If I've disconnected my camera and all I have to do is plug it in and then accept the call, it feels odd to force me to accept the call first. Just to note - it doesn't have to be a dialogue. This could be handled purely through some nice UI on the call acceptance, such as a green 'phone' button changing to a green 'camera' button when I plug the camera in. This use case is secondary though. I think the priority is to fix the flow so they have the option to reject the call, accept on a different device, or accept as voice-only. If we can sort that, then we can look at a) upgrading the call or b) adding a camera before accepting or c) both options. |
You have that already, it's just that if you try to accept the call hangs up (though you can still answer elsewhere). I wasn't arguing for removing that. I am just saying if you try to answer a call without a camera it makes sense to make it a voice call from your side, imo |
Ah sorry, I see what you mean - I misunderstood the point at which the error message is displayed. |
No worries and great! I am quite busy atm but hopefully, I should have time to do this over the weekend, should I or do you want to discuss this further with other designers before I start working on it? |
Thanks. I don't think this needs additional design input, based on what we've discussed above, so happy for you to work on it if you have time. Thank you for the help! |
* Use `ICallFeedOpts` in the `CallFeed` constructor. To construct a new `CallFeed` object you have to pass `ICallFeedOpts` e.g. `const callFeed = new CallFeed({client ([\matrix-org#1964](matrix-org#1964)). Contributed by [SimonBrandner](https://github.com/SimonBrandner). * Make threads use 'm.thread' relation ([\matrix-org#1980](matrix-org#1980)). * Try to answer a call without video if we can't access the camera ([\matrix-org#1972](matrix-org#1972)). Fixes element-hq/element-web#17975 and element-hq/element-web#17975. Contributed by [SimonBrandner](https://github.com/SimonBrandner). * Make `opts` in `importRoomKeys()` optional ([\matrix-org#1974](matrix-org#1974)). Contributed by [SimonBrandner](https://github.com/SimonBrandner). * Enable TypeScript declaration maps ([\matrix-org#1966](matrix-org#1966)). Contributed by [Alexendoo](https://github.com/Alexendoo). * Fix `requestVerificationDM` with chronological `pendingEventOrdering` ([\matrix-org#1943](matrix-org#1943)). Contributed by [freaktechnik](https://github.com/freaktechnik).
Description
When receiving a video call on a PC without webcam the call ends on the receiving side with "Unable to access webcam / microphone" (throwing an "Uncaught (in promise) DOMException") and continues on the calling side.
Steps to reproduce
I would expect the video call at least to stop on both sides (calling and receiving). Ideally, the call would start without video feed if no webcam is found.
Logs being sent: yes
Version information
For the web app:
The text was updated successfully, but these errors were encountered: