---
audience: everyone
summary: "Audio, video, screen share, recording, and live transcription \u2014 inside\
  \ any room."
title: Calls
path: concepts/calls
status: published
---

# Calls

Every room is call-capable. Click the **phone** (audio) or **camera**
(video) icon in the chat header to start one. Other room members get
a ringing notification with **Answer** / **Reject** buttons.

## Stack

ScaiWave uses **LiveKit** as the SFU. Each call gets its own room on
the LiveKit server, with a one-to-one mapping between the ScaiWave
room and the LiveKit call session. Tokens are short-lived; ScaiWave
mints fresh ones per join.

## Features

- **Audio and video** with adaptive bitrate.
- **Screen share** — any participant can share at any time. The
  client picks a single source (display, window, tab) per share
  session.
- **Picture-in-Picture (PiP)** — pop the call into a floating window
  that stays on top while you keep working in ScaiWave. Chromium-only
  (uses the Document Picture-in-Picture API); falls back gracefully
  elsewhere.
- **Recording** — admins can start a recording on any active call.
  Recordings land in MinIO/S3 and show up as media attachments in the
  room. Start with `POST /v1/calls/{call_id}/recording/start`.
- **Live transcription** — recordings are transcribed asynchronously
  via ScaiGrid's audio model and posted as a transcript message in
  the room.

## Permissions

- **Start a call**: every room member.
- **Start a recording**: requires `power_level >= 50` (default).
- **End a call for everyone**: the call initiator or any member with
  `power_level >= 50`.

## Calls and federation

Calls work across federated rooms — the LiveKit server is your local
one, and federated peers receive call invites the same way they
receive messages. Token minting happens locally; the foreign
participant gets a LiveKit token signed by your server.

## Where to go next

- Tutorial: (none yet — calls are click-and-go in the UI; if you need
  to script them, see the [Calls API reference](/docs/scaiwave/reference/api/calls)).
- API: [Calls](/docs/scaiwave/reference/api/calls).
