Blog · 11 October 2026 · 2 min read
Testing an agent without a phone
Four ways to exercise an agent before it dials anyone, from a scripted call to talking to it in a browser tab.
The slowest way to test a voice agent is to call it. You wait for the ring, you say your lines, you listen, and at the end you have tested one path. Most of what goes wrong with an agent can be found faster, and without a telephony account at all.
1. A simulated call
The mock engine runs a whole call without dialling. The execution goes through its statuses, a transcript is produced, the cost is calculated, webhooks fire, and there is even a playable recording made of tones. Ask for it per call:
curl -X POST https://api.sevennadi.si/call \
-H "Authorization: Bearer vk-0123456789abcdef0123456789abcdef" \
-H "Content-Type: application/json" \
-d '{
"agent_id": "123e4567-e89b-12d3-a456-426655440000",
"recipient_phone_number": "+919876500000",
"agent_data": {
"engine": "mock",
"mock_script": ["Yes, this is Asha.", "I can pay on the fifth.", "Thank you, bye."]
}
}'mock_script is the caller's side of the conversation. This is the right tool for testing everything around the conversation: your webhook handler, your extraction fields, your retry settings.
2. Outcomes on demand
On the mock engine, the last four digits of the recipient number choose how the call ends.
| Number ends in | Outcome |
|---|---|
0000 | no answer |
1111 | busy |
2222 | failed |
3333 | voicemail |
| anything else | a completed conversation |
That makes it easy to check what your system does with a call nobody picked up, which is otherwise awkward to arrange.
3. Scripted tool calls
If the agent has function tools, agent_data.mock_tool_calls says which tool is called on which turn and with what arguments. The mock engine really makes the HTTP request for a custom function, so you can test your endpoint, and the call record lists each tool call with its result.
4. Test chat, then your own voice
The dashboard's test chat talks to the agent in text, using the agent's own model when one is configured. It walks graph agents too, and shows which node you are on.
When the words are right, the browser voice test lets you talk to the agent from a tab: the same engine pipeline as a phone call, with your microphone in place of a phone line. Nothing is dialled and no telephony cost is recorded. It needs the voice engine and its models to be running.
What simulation cannot tell you
- How the agent sounds, and how its turn-taking feels. Only the voice test and real calls show that.
- How a real line behaves: noise, echo, delay, a caller on speakerphone.
- How your telephony provider's account is set up.
So keep a short list of real test calls for the end. The point of everything above is that by then you are testing the phone line, not discovering that your webhook handler rejects the payload.
The full guide, including the development email outbox, is Testing without a phone.