Appearance
CO.7: Join Meeting
Summary
Counselors join a scheduled or instant meeting from session details, dashboard, or direct room route. The flow performs a pre-join device check before connecting to the LiveKit room.
Role
- Primary: Counselor
Entry Point
- URL:
/meeting/:meetingId - Buttons from dashboard/session details.
Preconditions
- User is authenticated and authorized for the meeting.
- Meeting is joinable.
Steps
- Counselor clicks Join or Start.
- App opens
/meeting/:meetingId. - Meeting page loads meeting details.
- Counselor completes pre-join audio/video choices.
- Frontend calls start or join meeting API.
- Returned LiveKit credentials connect the room.
Diagram
Edge Cases
- Not started: Host can attempt start if normal join fails because the meeting has not started.
- Token failure: Room page shows an error and retry path.
- Pre-passed credentials: Router state can carry a token and URL directly.
Current Implementation Notes
- Frontend:
frontend/src/app/pages/meeting-room.tsx,frontend/src/features/meeting/components/meeting-pre-join.tsx
Screenshot Status
- Captured with Playwright on 2026-04-17 using dev-only fixture data:
- Counselor detailed pre-join:

- Counselor detailed pre-join: