Voice Chat
RushChat supports WebRTC voice calls in private channels.
Feature Overview
Voice chat allows users to make real-time voice calls in private channels, supporting multiple users online simultaneously, screen sharing, and more.
Voice Chat Overview
Features
Multi-user Voice Calls
- ✅ Supports multiple users online simultaneously (no fixed limit)
- ✅ Real-time audio transmission
- ✅ Low latency communication
- ✅ WebRTC peer-to-peer communication
Voice Controls
- ✅ Mute/Unmute
- ✅ Volume control
- ✅ Microphone switch
- ✅ Owner can mute other members
- ✅ Owner can kick members
Screen Sharing
- ✅ Supports screen sharing
- ✅ Real-time sharing status notification
- ✅ Other members can see sharing status
Permission Management
- ✅ Voice chat owner permissions (independent from channel owner)
- ✅ Channel owner automatically takes over voice chat owner permissions
- ✅ Owner can mute specific users
- ✅ Owner can kick voice room members
- ✅ Owner can invite other users to join voice chat
- ✅ Permissions automatically transfer when owner leaves
Invitation Feature
- ✅ Voice chat owner can invite other users
- ✅ Invited users receive notifications
- ✅ Supports accept/reject invitation
Usage
Join Voice Room
- Enter private channel
- Click "Join Voice" button
- Allow browser to access microphone
- Automatically join voice room
- System notifies other members in channel
Leave Voice Room
- Click "Leave Voice" button
- Or close channel page
- Automatically disconnect
- If user is voice chat owner, permissions automatically transfer to other participants
Invite Other Users
- As voice chat owner, click "Invite" button
- Select user to invite
- Invited user receives notification
- Invited user can choose to accept or reject
Manage Voice Room
- Mute Members: Owner can click mute button in member list
- Kick Members: Owner can kick inactive or violating members
- View Status: Can view current voice chat participant list
Technical Implementation
WebRTC
Uses WebRTC technology for peer-to-peer communication:
- ✅ Low latency audio transmission
- ✅ High quality audio codec
- ✅ Peer-to-peer direct connection (reduces server load)
- ✅ Automatic NAT traversal
Signaling Server
Uses WebSocket as signaling server:
- ✅ Establish WebRTC connections
- ✅ Exchange SDP (Session Description Protocol)
- ✅ Exchange ICE candidates (NAT traversal)
- ✅ Real-time state synchronization
- ✅ Signaling data forwarding
State Management
- ✅ Active voice chat records
- ✅ Participant list management
- ✅ Voice chat owner management
- ✅ Automatic permission transfer
- ✅ Status query interface
Event System
Supports the following WebSocket events:
voice:join- Join voice chatvoice:leave- Leave voice chatvoice:signal- WebRTC signaling forwardingvoice:mute- Mute operationvoice:kick- Kick operationvoice:invite- Invite to joinvoice:invite_reject- Reject invitationvoice:screen_share- Screen sharing statusvoice:status- Query voice chat status