Voice Connections
Call your voice agent over phone, SIP, or WebRTC and evaluate it with simulated conversations.
Voice Connections let you evaluate a voice agent directly on the platform. Instead of sending your AI app HTTP requests, Confident AI places a real call to your agent, speaks each simulated user turn out loud, and transcribes what your agent says back. Every call can be recorded, so you can listen to the conversation that produced each test case.
Confident AI can reach your agent in three ways, called transports:
- Phone: dial a phone number over the public telephone network.
- SIP: call a SIP address directly, skipping the phone network.
- WebRTC: join your agent in a LiveKit room, a Pipecat session, or your own WebRTC session.
Setting Up a Voice Connection
To create a voice connection:
- Open Voice Connections from the project sidebar
- Click New Voice Connection
- Pick a Transport (you can change this later)
- Give it a name that is unique within your project
- Click Create
You'll land on the connection's page, which has three parts: the Connection card, where you configure how Confident AI reaches your agent, the Call limits card, and a Test call console on the side.
Configuring Your Connection
The Connection card has a tab for each transport. Each tab only shows the settings that transport needs, and changes stay in a draft until you click Save. Switching tabs starts the new transport from its defaults, and Cancel brings back what you last saved.
| Transport | Address you enter | Example |
|---|---|---|
| Phone | A phone number with its country code | +1-415-555-0100 |
| SIP | A sip: address | sip:agent@sip.example.com |
| WebRTC | Your LiveKit URL or signaling URL | wss://your-project.livekit.cloud |
See the page for your transport for every setting it has:
Phone
Dial a phone number from a Confident AI number or your own SIP trunk.
SIP
Call a SIP address with digest auth, custom headers, and SRTP media encryption.
WebRTC
Join your agent through LiveKit, Pipecat, or your own signaling URL.
Call Limits
The Call limits card applies to test calls and to every simulated conversation:
| Setting | Description | Default | Minimum |
|---|---|---|---|
| Max concurrent calls | The maximum number of calls Confident AI places at the same time during a simulation. | 1 | 1 |
| Ring timeout | How long to wait for your agent to answer before giving up. Only shown for Phone and SIP. | 45 seconds | 5 seconds |
| Max call length | Hangs up even if the conversation hasn't ended. | 30 minutes | 1 minute |
| Silence timeout | Hangs up when neither side has spoken for this long. Switch it off to never hang up for silence. | 30 seconds | 5 seconds |
| Record calls | Keeps the full recording alongside each turn's audio, so you can replay the call from the test run. | On |
Set Max concurrent calls to what your agent and its telephony provider can handle. Each call ties up a line for the length of the conversation, so voice simulations take longer than text ones with the same number of goldens.
Testing Your Connection
The Test call console lists what still needs to be filled in before a call can be placed. Once everything is set, click Dial (or Connect for WebRTC) to call your agent. Confident AI connects, waits for your agent to greet the caller, and records what it hears.
Once the call ends, the console shows one of three results:
- Your agent answered: the call connected. You'll see a recording of the greeting and its transcript.
- No answer: nobody picked up before the ring timeout.
- Call failed: the call couldn't be placed. The error explains why.
A connection that answered its last test call shows Verified next to its name. Saving a change to the Connection card sets it back to Not verified until you place another test call.
✅ Done. Your voice connection is ready to run simulations.
Recent Calls
Below the dialer, Recent calls lists the last 20 calls placed with this connection. Each row shows whether the call was Answered, got No answer, or Failed, when it was placed, whether it was a Test call or an Evaluation, and how long it lasted. Open a row to see the address that was called, the greeting audio and transcript or the error, and how long your agent took to answer.
Running a Voice Simulation
There's nothing extra to set up at run time. Start a multi-turn evaluation on your dataset with Include Simulation on, and pick your connection on the Voice Connection tab. Each golden becomes one call. You can also pick a voice connection when you schedule a dataset evaluation.
While a test case is generating, its status shows where the call is:
- Preparing caller...: the real-time caller is starting up (Speech-to-Speech only)
- Dialing...: Confident AI is placing the call
- In call...: the conversation is in progress
Your agent always speaks first. If a conversational golden's turns start with an assistant turn, Confident AI skips it and waits for your agent's greeting instead. The call ends when the conversation is over, when your agent hangs up, or when it reaches the Max call length or Silence timeout.
Once a test case finishes, open it to see:
- Call Recording: the full recording of the call (when Record calls is on)
- Turn audio: each turn has its own audio clip alongside its transcript
- Answered in: how long your agent took to respond to each turn
- Interrupted: shown on turns where one side talked over the other
Shaping the Simulated Caller
Two other places control how the simulated caller sounds and behaves:
- Personas set how often the caller interrupts your agent, what it does when both sides talk at once, and the background noise played under its speech.
- Voice Models choose the text-to-speech and speech-to-text models the caller uses, or replace them with a single real-time speech-to-speech caller.
Next Steps
With your voice connection set up, run your first simulation.
Multi-Turn Evals
Run multi-turn evaluations against your voice connection.
Personas
Give the simulated caller interruptions and background noise.
Last updated on