# FAQ

## Calls

**Does CallQA really place phone calls?**
Yes. Each test case is a real call over the phone network (SIP/PSTN) to your number, like a
customer would make. That is what tests telephony, latency, DTMF and audio end to end.

**Which numbers can I call?**
Numbers your organization controls, once verified (a code in the greeting, see
[Number verification](number-verification.md)).
Emergency, premium-rate, shared-cost and unclassified numbers are always refused. Your plan
sets how many countries you can call.

**Why is my call `blocked_policy` with `number_not_verified`?**
Every new number starts `unverified`. Verify it once: dashboard, **Phone numbers**, **Verify
ownership**, or `POST /targets/{id}/verification/start` then `.../verification/call`. See
[Number verification](number-verification.md).

**Why is my call still `queued`?**
Calls wait for a free slot: your plan's concurrent call limit, 30 calls per hour per number,
and, for scheduled runs, the scenario's call window in the run's environment. An unverified
number in the sandbox is only called one call at a time, between 8:00 and 21:00 local time.

**Can I hear a call while it is in progress?**
Yes. Open the call page and click **Listen live**: you hear both voices, or only the caller or
only your agent. Nothing is recorded by listening. See [Concepts](concepts.md#call).

**How long does a call last?**
Usually 1 to 5 minutes. It stops at `limits.max_duration_s` (5 minutes by default, 10 minutes
at most on current plans).

**Can the caller press keys in an IVR?**
Yes. Add `steps` with `type: dtmf` (digits `0-9`, `*`, `#`, and `w`/`W` for pauses). See the
[IVR example](../../examples/scenarios/ivr-dtmf-navigation.yaml).

**Can the caller speak another language?**
Yes. Set `target.language` (BCP-47, for example `es-US`, `fr-FR`). Your assertions can stay
in English: they are judged on meaning. See the
[Spanish example](../../examples/scenarios/spanish-language.yaml).

**Can I use test credit cards and customer ids?**
Yes, with `test_data` (Growth plan and above). The caller uses them when asked. Use test
values only: they are stored with the scenario and appear in transcripts and bundles.

## Results

**Why is my run `warn` and not `pass`?**
At least one `severity: warn` check failed. Open the calls to see which one. Without a
`threshold`, a CI gate only passes on `pass`; with a threshold, a `warn` run passes if the
score is high enough.

**Why did the CI gate fail with a good score?**
With a threshold, the gate also fails when a call ended in `error` or was blocked, for example
by insufficient credit. The run's `errored` and `blocked` counters tell you which.

**Can I trust the LLM judge?**
Every semantic verdict must quote the transcript, and the quote is checked in code: a quote
that is not in the transcript cannot fail a call. Scores are computed from verdicts by a fixed,
versioned grid, never by the LLM. Deterministic checks (latency, duration, interruptions,
regex) do not use an LLM at all.

**Where are the transcript and the audio?**
`GET /calls/{id}` returns the transcript, the verdicts and the `recording` information.
`GET /calls/{id}/events` returns the full trace.

## Help

**How do I reach the CallQA team?**
Open a ticket: **Support** in the app sidebar, `POST /support/tickets` in the API, or ask
your coding agent, which calls `contact_support` on the [MCP server](mcp.md). A person
answers, usually within a few hours on business days, in the app, by email and to your
agent (`get_support_ticket`). See [Getting help](support.md).

**Can my agent report a bug on its own?**
Yes, with any API key, even a `read` only one. It includes what it tried, the error codes
and the call or run ids. Secrets are removed from tickets, but it should never send them.

## API and CI

**Is everything in the dashboard available in the API?**
Almost. Scenarios, variants, numbers, environments and their schedules, versions, runs, calls,
traces, replays, LLM exports, tags, members, API keys, webhooks, alert channels, the API
journal, the audit log, usage, the wallet, the spend cap, overage settings, the forecast and
the subscription are. Dashboard only: the assistant and **Fix this test**, the test case
builder, saved reports, listening live, single sign-on settings and the deletion of the call
history. The [MCP server](mcp.md) also offers **Fix this test** to a coding agent
(`fix_test`, `apply_fix`). See the [API reference](api-reference.md).

**Is there an SDK?**
Not yet. The [OpenAPI document](api/openapi.json) works with client generators, and the
[CLI](../../examples/cli/) covers CI use.

**Which scopes does my CI key need?**
`read` and `run` (sending a `version` with the run is enough to create it). Add `write` if
the pipeline also imports scenarios or manages versions with `/versions`.

**My pipeline passed although the run was not finished.**
You probably used `curl --fail` with `?wait=true`: a `202` (still running) is a success for
curl. Check for `200` explicitly, or use the CLI. See [CI/CD](ci-cd.md).

**How do I keep scenarios in Git?**
Store the YAML files in your repository and run `callqa scenario import <file>` (or
`POST /scenarios/import`) in CI: it creates or updates by `name`, and keeps variant ids
when titles do not change.

## Billing

**Is there a free trial?**
Yes: a new organization comes with 10 free test calls to try CallQA, no card needed, with no
time limit. It goes to the first organization you create. When they are used, choose a plan in
**Billing**; the calls you have not used are kept. See [Free trial](billing.md#free-trial).

**What happens when my quota is used up?**
With paid overage on, extra calls are paid from the prepaid wallet at your plan's extra call
price, up to your monthly spend cap. If the wallet cannot cover a call, the call is not placed
(`blocked_insufficient_credit`). With overage off, or once the cap is reached, calls are
blocked, and you can choose to also pause the schedules until the next month. CallQA never
advances money. See [Billing](billing.md).

**How do I delete old calls?**
Calls lose their transcript, trace and audio at the end of your plan's retention period. An
admin can delete them earlier on **Data and privacy**: only the audio, or the call history,
for a period; scores and verdicts stay for the dashboards unless you also remove the calls.
One call or one run: `DELETE /calls/{id}`, `DELETE /runs/{id}` (admin).

**Does a failed call cost anything?**
A call that ends in `error`, is canceled or blocked releases its reservation. A call that is
dialed and judged counts, even if your agent fails the test or does not answer.
