---
id: voice-engine
title: Voice engine
description: How Chatley powers live browser voice calls, and what that means for you.
---

Chatley's live **in-browser** voice calls (the [Talk to Assistant](./talk-to-assistant.md)
button) are powered by Chatley's real-time **voice engine**. You don't need any
extra accounts or keys — Chatley handles it for you. This page explains how it
works and what to expect.

## How it works

![The browser requests a short-lived token from the Chatley server, then opens a live audio session with the voice engine](/img/voice-engine-flow.svg)

- When you start a browser call, Chatley requests a **short-lived session token**
  from its own server for the specific agent you're testing.
- The browser uses that token to open a live audio session with the voice engine
  using your **microphone**.
- Sensitive credentials **never touch the browser** — tokens are issued
  server-side, per session, so nothing sensitive is exposed on the client.

## What you need

- **Microphone access.** Your browser will ask for permission the first time —
  allow it, or the call can't start.
- **You must be signed in.** Tokens are tied to your authenticated account and
  workspace.
- A modern browser with a stable internet connection (the call has a short
  connect timeout and will retry briefly under load).

## Demo mode

If live voice isn't configured in an environment, the engine runs in **Demo Mode**:
calls are **simulated**, you'll see an amber *Demo Mode* badge, and no real audio
session is placed. The flow behaves the same so you can still click through it.

## Concurrent-call limits

Your plan allows a certain number of **simultaneous calls**. If you're at the
limit, a new call waits **in queue** and starts automatically when a slot frees
up. If the voice service is momentarily busy, Chatley retries the start for you
before giving up.

## Troubleshooting

| Problem | What to check |
| --- | --- |
| **"Voice Assistant Unavailable"** | Voice isn't available for this agent yet, or no agent is selected. Reopen the agent. |
| No audio | Confirm the browser has **microphone permission** and the right input device. |
| Call won't start / times out | Check your connection and retry; the connect timeout is short by design. |
| **"Voice service is busy"** | The engine hit a temporary rate limit — wait a few seconds and try again. |
| Stuck in demo/simulated calls | The environment is in **Demo Mode**; live voice isn't configured there. |

## Next steps

- [Talk to Assistant](./talk-to-assistant.md) — start a live browser call.
- [Outbound](./outbound.md) — place real phone calls and run campaigns.
