-
Notifications
You must be signed in to change notification settings - Fork 123
Description
What would you like to do?
I would like to initiate voice/video calls to any Matrix user or group of users without requiring a pre-existing room. Currently, Element Call requires manual room creation and invitation acceptance before any call can begin, creating a significant barrier to spontaneous communication.
Current unpleasant workflow:
- Search for contact(s)
- Create DM/room
- Hope they notice the room
- Wait for invitation acceptance
- Finally start call
Desired workflow:
- Click call button on any contact
- They receive incoming call notification
- Call connects
Why would you like to do it?
This limitation makes Element Call unsuitable as a primary VoIP solution for organizations and individuals who need:
- Emergency Communications: Security teams need instant contact with any employee
- Customer Service: Support staff must call users without pre-chat setup
- Sales Operations: Outbound calls to new contacts are impossible
- Healthcare: Medical staff need immediate colleague consultation
- Cross-team Collaboration: Spontaneous calls between users
Real-world impact examples:
- IT Incident Response: "Server down, need to call on-call engineer" - Cannot reach them without existing room
- Medical Emergency: "Code call, assemble trauma team" - Must individually invite each doctor first
- Business Development: "Quick call with prospective client" - Requires awkward "accept my chat first" conversation
- Private Scenarios: "Call specific group of friends for an event" - Must create room probably days in advance for every one to be able to join.
This represents a severe adoption blocker when organizations evaluate Element against Teams, Zoom, or traditional phone systems. As well as private users searching a replacement for systems like WhatsApp.
How would you like to achieve it?
Implement Seamless Auto-Join functionality that creates rooms transparently during call initiation.
Configuration options:
- Server-level: Enable/disable seamless calling per homeserver
- Federation policy: Control cross-server call permissions
- User preferences: Opt-out of receiving seamless calls
- Admin controls: Allowlist for seamless calling domains
Technical approach:
- Extend
m.call.invite
to include auto-join tokens - Create (ephemeral) rooms (with special retention policies)
- Implement "ring-first, join-later" notification flow
Have you considered any alternatives?
** Alternative 1: Pre-create Rooms for Everyone**
Automatically create DM rooms with all possible contacts. Rejected: Scales terribly, clutters room list, privacy concerns. Not possible for group calls.
** Alternative 2: External Call Routing**
Use SIP/PSTN for contact. Rejected: Breaks E2EE, requires additional infrastructure, defeats Matrix-native approach.
** Alternative 3: Accept Current Limitations**
Train users on current workflow. Rejected: Users expect click-to-call functionality. Does not satisfy requirements.
Additional context
Implementation Benefits
For Organizations:
- Instant employee reachability
- Emergency response readiness
- Reduced onboarding friction
- Familiar calling patterns
For Matrix Ecosystem:
- Increased adoption in enterprise
- Competitive parity with centralized platforms
- Gateway to Matrix for voice-first users
- Showcase of protocol flexibility
** Consent mechanisms: **
- Global "accept calls from" settings (everyone/contacts/nobody)
- Per-domain allowlists for federated calls
- Block lists inherited from existing Matrix ignore functionality
** Federation Considerations**
- Respect remote server policies
- Clear capability negotiation