Skip to content

C.6: Join Meeting

Summary

Clients join meetings from internal meeting links or public share links. Internal joins use /meeting/:meetingId and show a pre-join device check before requesting LiveKit credentials. Shared links use /join/:token, where authenticated clients can join with their account or continue as a guest.

Role

  • Primary: Client
  • Secondary: Guest, Counselor, System, LiveKit

Entry Point

  • Internal URL: /meeting/:meetingId
  • Public URL: /join/:token
  • Navigation: Dashboard session card, My Sessions detail, Calendar panel, My Bookings

Preconditions

  • Internal flow: authenticated client with access to the meeting
  • Public token flow: valid share token
  • Browser camera/microphone permissions may be required for preview

Steps

  1. Client clicks Join from dashboard, session details, calendar, or booking.
  2. Internal flow opens /meeting/:meetingId; public token flow opens /join/:token.
  3. System loads meeting details or token-based meeting info.
  4. If the meeting is cancelled or ended, system shows a terminal state and does not enter the room.
  5. System shows the pre-join screen with meeting title, host, status, time, optional description, linked session, and share URL when available.
  6. Client previews camera, toggles microphone/camera, and chooses devices in settings.
  7. Client clicks Join Meeting.
  8. System joins the meeting, or falls back to host start behavior only when applicable.
  9. System receives LiveKit token and URL.
  10. System renders the meeting room.

Diagram

Edge Cases

  • Invalid token: /join/:token shows a not-found state and Go Home action.
  • Cancelled or ended meeting: Join page shows a clear cancelled/ended message.
  • Meeting not started: Public share links can show a waiting lobby after device check until the host starts the meeting.
  • Camera permission denied: Pre-join shows a permission instruction and reload action.
  • Authenticated share link: A logged-in client can join with their account; the public page can also show a guest form path.
  • Credential failure: Page shows an error state with Try Again or Back to Details depending on route.

Screenshot Status

  • Client pre-join screenshot captured with Playwright on 2026-04-17 using dev-only fixture data. Shared guest join screenshots were refreshed on 2026-04-18:
    • Client minimal pre-join: minimal-pre-join.png
    • Guest details form: guest-form.png
    • Guest pre-join: pre-join.png
    • Guest waiting lobby: waiting-lobby.png
    • Cancelled meeting: cancelled.png
    • Ended meeting: ended.png