is it possible using livekit server to have a grou...
# ask-ai
r
is it possible using livekit server to have a group meeting and while the meeting is continue one can have private chat or call with the selected participant
t
Thanks for reaching out, Jovinary. I'm an AI assistant and I'm here to help. Give me a moment while I research this topic.
Thanks — good question. You can support private 1:1 or small private calls during a group meeting, but LiveKit does not provide in-room private sub-conversations. Private audio/video/data must be in a separate room. How to implement this pattern: • Keep the main group meeting in one room. • When two (or more) participants want a private chat/call, create a new private room for them. • Have the participants join that private room in addition to staying in the main room (your app manages multiple room connections per user). • Audio/video tracks and data messages are scoped to the room, so anything sent in the private room stays private. If you’d like, tell me which client platform you’re using (web, iOS, Android) and whether you want simultaneous audio in both rooms or to mute the main room while in the private room — I can give concrete implementation steps. Sources: livekit/livekit_composite | DeepWiki | Use Case: Video Conferencing | LiveKit
r
WEB APP LARAVEL API WITH REACT
t
Thanks — that helps. Below are concise implementation options and concrete steps for a Web (React) frontend with a Laravel API backend using LiveKit. Summary • LiveKit does not support in-room private sub-conversations. Implement private chats/calls by creating separate private rooms and having users join them in addition to the main room. • Your app (Laravel + React) will manage creating private rooms, issuing tokens, and coordinating clients to join/leave rooms and mute/unmute tracks as needed. High-level flow 1. Main meeting: everyone joins a shared room (Room A). 2. Private session: when participants start a private call/chat, your backend creates a new private room (Room P) and issues access tokens for the selected participants. 3. Clients join Room P (in addition to Room A) or transition audio to Room P (see options below). 4. Tracks/data in Room P are isolated from Room A, so privacy is preserved. Implementation options (pick one based on UX you want) • Option A — Simultaneous rooms (recommended for flexibility): ◦ Clients maintain two connections concurrently: Room A and Room P. ◦ Allow both audio streams simultaneously, or mute the main-room mic locally while in the private room. ◦ Pros: participants can keep seeing/presenting in main room; easy isolation. ◦ Cons: additional bandwidth/CPU; slightly more complex client connection management. • Option B — Move to private room (single active room): ◦ Client leaves Room A and joins Room P; rejoin Room A when done. ◦ Pros: simpler and lower resource use. ◦ Cons: participant temporarily absent from main room. Backend (Laravel) responsibilities 1. Create private rooms: ◦ Use your LiveKit server / admin API to create a new room for the private session (unique name/ID). 1. Issue short-lived join tokens: ◦ Generate tokens scoped to the private room for the selected participants. Return tokens to clients via your Laravel API endpoints. 1. Manage room lifecycle: ◦ Optionally auto-delete or expire private rooms when session ends. 1. Authorization and mapping: ◦ Ensure only intended users receive tokens; map user IDs across rooms so your app UI can correlate participants. Frontend (React) responsibilities 1. Connect to LiveKit: ◦ Use LiveKit’s JS SDK to connect to Room A at meeting start with a token from your Laravel API. 1. Starting a private session: ◦ Call your Laravel endpoint to create Room P and get join tokens for participants. ◦ For Option A: open a second LiveKit connection to Room P using the token. ◦ For Option B: disconnect from Room A and connect to Room P. 1. Manage tracks: ◦ Mute/unmute or replace local microphone/camera tracks as needed when joining private room. ◦ Stop/unpublish tracks in one room if you don’t want them sent to that room. 1. Messaging: ◦ Use LiveKit data channels for in-room chat; private room chat is separate and private. Concrete next steps I can help with • Example React code to open a second room connection and mute/unpublish tracks in the main room. • Laravel example for creating rooms and issuing tokens (endpoint patterns). • Guidance on UX patterns (muting main room automatically, notifications, room cleanup). Which concrete example would you like first: React code for Option A (simultaneous rooms) or Laravel token/room creation examples?