element-hq / element-hq/element-web

Better detection for whether Element Call is supported.

Open
#31,405 0 comments 0 reactions 0 assignees View on GitHub
A-Element-Call O-Occasional S-Major T-Enhancement Team: VoIP
Dominant language
TypeScript
Stars
13.5k
Forks
2.8k
PR merge metrics
PR metrics pending

Description

### Your use case

Currently we let users place an Element Call as long as they [can create room state for call membership](https://github.com/vector-im/riot-web/blob/f3a880f1c31388eb79491fee7f70bde642fd5bf0/src/hooks/room/useRoomCall.tsx#L136-L139), but this vastly insufficient.

Element Call needs a SFU to work, and this transport is calculated via https://github.com/element-hq/element-call/blob/a731981388f387ad9f2f4522427ae8740c8b61f2/src/state/CallViewModel/localMember/LocalTransport.ts#L118-L188. Element Web doesn't do any of these checks, and most users can send state.

The outcome here is that users who do not run an SFU (and do not disable Element Call in their config) are likely to see errors such as https://github.com/element-hq/element-call/issues/3612 when creating an Element Call.

We should only allow Element Call if there is a reasonable chance that the call will be successful.

### Have you considered any alternatives?

_No response_

### Additional context

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.