Video Appointments
Use the Video Appointments screen to manage an appointment video session.
Available controls and session actions derive from device capability and session state.
This screen includes:
| # | Element | Description |
|---|---|---|
| 1 | Video area | Displays active participant video streams |
| 2 | Participant label | Displays participant information |
| 3 | Session timer | Displays active session duration |
| 4 | Mute action | Toggles microphone state |
| 5 | Disable video action | Toggles local video stream |
| 6 | Swap camera action | Switches active camera |
| 7 | Chat action | Opens the session chat |
| 8 | End call action | Terminates the video session |
| 9 | Report issue action | Opens the issue reporting flow when supported |
Session States
| State | Description |
|---|---|
waiting | Waiting for participant connection |
active | Video session active |
reconnecting | Connection retry in progress |
ended | Session terminated |
error | Session unavailable |
Workflow
- Open the video appointment.
- Validate camera and microphone permissions.
- Initialize the video session.
- Wait for participant connection.
- Start the active session.
- Update session controls during the call.
- End the session.
Validations
| Scenario | App Behavior | SDK Output |
|---|---|---|
| Camera permission missing | Block session start | error = camera_permission_required |
| Microphone permission missing | Block session start | error = microphone_permission_required |
| Permission request dismissed | Keep session inactive | state = waiting_permissions |
| Camera switching unsupported | Hide swap camera action | camera = unsupported |
| Network unavailable | Block session connection | error = network_unavailable |
| Connection interrupted | Start reconnection flow | state = reconnecting |
| Session timeout reached | End session | state = timeout |
| Participant unavailable | Display waiting state | state = waiting |
Actions
| Scenario | App Behavior | SDK Output |
|---|---|---|
| Video room opened | Load session | PUT /api/v3/appointments/{appointment-id}/video-room |
| Start call triggered | Initialize session | session = started |
| Mute selected | Toggle microphone | audio = updated |
| Disable video selected | Toggle local video stream | video = updated |
| Swap camera selected | Switch camera source | camera = updated |
| Chat selected | Open chat interface | chat = opened |
| End call selected | Terminate session | state = ended |
Endpoint Resources
PUT
v3/appointments/{appointment-id}/video-room
Initializes the appointment video room.
| Level | Reference | Type | Value | Placement |
|---|---|---|---|---|
| 1 | start-call | Button | Start call (invisible and autostart) | |
| 1 | — | Can’t find link | — | |
| 1 | — | Can’t find link | — | |
| 1 | end-call | Link | [End call] | ~ |
| 1 | report-issue | Link | [Report issue] | ~ |
| 1 | spacer | Spacer | — | ~ |
| 1 | swap-camera | Link | [Swap camera] | ~ |
| 1 | disable-video | Link | [Disable video] | ~ |
| 1 | mute | Link | [Mute] | ~ |