Skip to content
TriedDocs
Test

Phone testing

Test an agent over a real phone line by calling its number or placing an outbound call from the dashboard, and pick which agent version answers.

A phone call is the only test that covers the whole path: the carrier, SIP, phone-quality audio, transfers, keypad digits and the caller's real number. Run at least one before you send traffic to a number.

Needs keys Phone calls need a telephony provider (Telnyx or Twilio, or your own SIP trunk) and LiveKit SIP. Without them the API runs telephony in mock mode and no real call is placed.

Test inbound calls#

Attach the agent to a number#

On Phone Numbers, select the number. Under Inbound Call Agent, pick the agent in Call Agent.

Choose the version#

In the Agent version card, set Inbound calls to the version to test (see Choose the version that answers).

Call the number#

Call it from a mobile or desk phone. If Allowed Inbound Countries is set, call from one of those countries.

Review the call#

Open it in Call History: recording, transcript with tool calls, latency and post-call analysis.

A phone number with its inbound agents (A/B weights), outbound agent and Agent version bindings

Place an outbound test call#

Open the number#

On Phone Numbers, select the number to call from and choose Make an outbound call.

Fill in the modal#

  • From shows the selected number.
  • To: the number to call, in E.164 format, for example +61412345678.
  • Agent: the number's outbound agent by default, shown as "Number's outbound agent (name)". Pick another agent to override it for this call. If the number has no outbound agent, the modal says "This number has no outbound agent. Pick one to override."
  • Don't call numbers on the do-not-call list: refuse the call if the destination is on your workspace's do-not-call list.
  • Dynamic variables: values for {{variables}} in this call.

Choose Call#

A "Call started" toast shows the call id. Choose View to open the call in Call History.

The modal calls create phone call. The same request from your own code:

curl -X POST https://api.tried.com.au/v2/create-phone-call \
  -H "Authorization: Bearer $TRIED_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from_number": "+61355505030",
    "to_number": "+61412345678",
    "override_agent_id": "agent_46117b4b00fe0358e861a6d3",
    "retell_llm_dynamic_variables": { "first_name": "Sam" }
  }'
Field Type Description
from_number string A number in your workspace.
to_number string The number to call, E.164.
override_agent_id string Use this agent instead of the number's outbound agent.
override_agent_version integer Use this version of the agent.
retell_llm_dynamic_variables object Dynamic variables for the call.
metadata object Stored on the call.

Choose the version that answers#

The Agent version card on a number binds inbound and outbound calls to a version: "Point this number at an environment tag such as prod, so publishing and rollbacks move it without editing the number. Tag variables are added to each call."

Option Calls use
Agent setting (latest draft unless pinned) The agent's own setting.
Latest published The newest published version.
Tag: name The version an environment tag points to, with the tag's variables.
Fixed: Vn One published version.

For testing, a common setup is two numbers: a test number bound to the draft, and the production number bound to a prod tag. Test on the first, then move the tag.

What to test on a phone call#

Feature Why it needs a phone call
Transfers (cold, warm, agentic) Web calls cannot be transferred.
Keypad input and IVR navigation DTMF travels over the phone leg.
Voicemail detection and IVR screening on outbound calls Needs a real answering machine or phone menu.
Caller ID and the {{user_number}} and {{agent_number}} variables Web calls have no phone numbers, so both are empty.
Phone-quality speech recognition Phone audio is narrowband and noisier than a browser.
End-to-end latency Includes the carrier and SIP legs.

A/B weights on test numbers#

If a number has A/B Testing on with several agents, each call picks an agent by weight. Turn A/B off on a test number so every call reaches the agent you are testing.

Local SIP testing without vendor keys#

The repo includes scripts/sip-smoke.sh, which runs a real SIP call end to end on your machine: a local livekit-server and livekit-sip, the API and the voice worker with fake speech and voice. It covers a web call, number provisioning, an inbound SIP call with DTMF and SIP headers, outbound calls (answered and busy), and a SIP OPTIONS connection test. Use it to check telephony changes before vendor keys exist.

scripts/sip-smoke.sh