> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usetuner.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Outbound Simulation overview

> How outbound simulation works: Tuner calls your server or provider with who to call, your agent dials Tuner's simulation agent, and the call is linked back automatically.

Outbound simulation tests agents that **place** calls. Tuner can't dial into an outbound agent, so the flow is flipped: Tuner tells your system **who to call**, and your agent makes the call to a **simulation agent**, the AI caller that plays the customer in each case.

## A SIP URI instead of a phone number

Your outbound agent normally dials phone numbers. Tuner's simulation agents don't have phone numbers, they have **SIP URIs**, the internet equivalent of one: instead of `+15551234567`, it looks like `sip:sim-abc123@sip.usetuner.ai`. It works the same way, it's an address your telephony platform can dial, and most providers (Twilio, Telnyx, LiveKit, etc.) accept a SIP URI anywhere they accept a phone number.

So for a simulated call, the SIP URI simply **takes the place of the phone number**: it goes in the same "who to call" field your API already has, and your platform dials it like any other call.

## The flow

1. **You give Tuner a way to start a call on your side.** Every outbound agent has some API that kicks off a call, on your own server, or on a platform like Vapi or Retell. You provide Tuner with that API call once, and Tuner uses it to start every simulated call.
2. **Tuner builds the scenarios.** When you run a simulation, Tuner generates simulation agents, each with a persona, an intent, and something to stress-test, exactly like inbound simulation.
3. **Tuner triggers a call for each scenario.** Tuner calls your API and tells it who to call: a **SIP URI** where the simulation agent is waiting, plus scenario context your agent can use.
4. **Your agent dials, and the conversation happens.** From your agent's perspective this is a normal outbound call, the simulation agent picks up, and the scenario plays out.
5. **The call is linked back to the simulation.** The SIP URI that was dialed is the key: when the call reaches Tuner, that URI matches it to the simulation that triggered it, instead of being treated as production traffic.
6. **Your production Evals run.** The call is scored against the same Evals, Intents, and Call Outcomes as your live traffic, and the results appear in the **Simulations** table.

## Setting it up

How you provide the API call in step 1 depends on where your agent runs:

* **Your own server or stack** (LiveKit, Pipecat, or a custom integration), follow the [Individual platforms guide](/docs/simulation/outbound/individual-platforms).
* **Managed platforms** (Vapi, Retell, and others), step-by-step guides are **coming soon**.

***

<Card title="Individual platforms" icon="layer-group" href="/docs/simulation/outbound/individual-platforms">
  Set up outbound simulation on your own stack: LiveKit, Pipecat, a custom integration, and more.
</Card>
