Overview
Fluxer provides enterprise-grade voice and video calling capabilities powered by LiveKit, supporting both direct calls and voice channels with advanced features like screen sharing, regional selection, and adaptive quality.Architecture
LiveKit Integration
Scalable WebRTC infrastructure with multi-region support
Regional Routing
Automatic or manual selection of voice regions for optimal latency
Permission-Based Access
Granular controls for speak, stream, and video capabilities
Participant Management
Real-time participant state synchronization and control
Voice Channels
Voice channels provide persistent voice rooms within communities where members can join and leave freely.Connecting to Voice
Voice Permissions
Voice channels support granular permission control:Region Selection
Fluxer automatically selects optimal voice regions based on user location and preferences.- Automatic Selection
- Manual Selection
- Available Regions
Voice servers are “pinned” to channels once selected, ensuring all participants connect to the same server instance for the duration of the session.
Direct Calls
Direct calls enable one-on-one or group voice/video conversations in DMs and group DMs.Starting a Call
Call Eligibility
Fluxer respects user privacy preferences for incoming calls:Incoming Call Settings
Incoming Call Settings
Users can configure who can call them:
- Friends Only: Only accepted friends can ring
- Friends of Friends: Mutual friend connections can ring (may be silent)
- Guild Members: Members of shared guilds can ring (may be silent)
- Everyone: Anyone can call (may be silent)
- Nobody: No incoming calls allowed
- Silent Everyone: Calls from non-friends don’t ring but still notify
Unclaimed Account Restrictions
Unclaimed Account Restrictions
Unclaimed (guest) accounts have limitations:
- Cannot join one-on-one DM calls
- Can only join voice channels in guilds they own
Ringing Recipients
Call Management
Participant Management
Manage participants in real-time during voice sessions.Updating Participant State
Disconnecting Participants
- Disconnect User
- Disconnect Channel
Screen Sharing and Streaming
Fluxer supports screen sharing and video streaming with permission controls.Gateway Events
Voice state changes are synchronized via WebSocket events:VOICE_STATE_UPDATE
VOICE_STATE_UPDATE
VOICE_SERVER_UPDATE
VOICE_SERVER_UPDATE
Provides connection details for voice server
CALL_CREATE
CALL_CREATE
Dispatched when a call starts in a DM/group DM
CALL_UPDATE
CALL_UPDATE
Dispatched when call state changes (region, ringing users)
CALL_DELETE
CALL_DELETE
Dispatched when a call ends
Permission Requirements
Required to connect to voice channels
Required to transmit audio in voice channels
Required to transmit video
Required to screen share or stream
Required to server-mute other users
Required to server-deafen other users
Required to disconnect users or move them between channels
Best Practices
Handle Region Changes Gracefully
When users change regions, existing connections need to be re-established. Implement smooth transitions with loading states.
Implement Connection Recovery
Voice connections can drop due to network issues. Use LiveKit’s reconnection events to automatically restore connections.
Monitor Participant States
Subscribe to LiveKit room events to track when participants join, leave, mute, or start streaming.
Respect Privacy Settings
Always check call eligibility before ringing users to respect their privacy preferences.
Troubleshooting
Connection Fails
Connection Fails
- Verify the user has
CONNECTpermission - Check if the voice region is accessible
- Ensure the LiveKit server is operational
- Validate the voice token hasn’t expired
No Audio/Video
No Audio/Video
- Confirm microphone/camera permissions in browser
- Check if user has
SPEAKorVIDEOpermissions - Verify device selection in client settings
- Look for server-mute/deafen state
Poor Quality
Poor Quality
- Try switching to a closer voice region
- Reduce video resolution or disable video
- Check network bandwidth and latency
- Use adaptive streaming features
Related Resources
Communities
Learn about guild voice channels
Messaging
Combine voice with text chat
LiveKit Documentation
Official LiveKit documentation
API Reference
Complete API documentation