TryVox

Vapi guide

End-to-end setup for connecting a Vapi agent to a TryVox phone number — inbound and outbound.

Vapi guide

Step-by-step setup for the most common pairing: Vapi for the AI agent, TryVox for the phone number and PSTN. This guide produces a working inbound and outbound flow in under 10 minutes.

Prerequisites

  • A TryVox account with at least one Active phone number (Numbers).
  • A Vapi account with at least one published assistant.
  • Your Vapi Private API key (dashboard.vapi.ai → Settings → API Keys).

1. Connect Vapi to TryVox

  1. TryVox dashboard → AI AgentsConnect provider.
  2. Provider: Vapi.
  3. Display name: anything memorable (e.g. Production support agent).
  4. API key: paste your Vapi Private key.
  5. Connect.

You should see the integration appear with a green Active badge. If you see Key invalid, the key was rejected — double-check you copied the Private key, not the Public one.

2. Connect a number for inbound

  1. Open the Vapi integration you just created.
  2. Click Connect number.
  3. Pick a TryVox number you want to use for the agent.
  4. Pick your Vapi assistant (we fetch the live list — no IDs to copy).
  5. Connect.

That's it. Place a test call to the TryVox number — your Vapi agent should answer within a couple of seconds.

What we configure under the hood

WhatValue
Routing destinationsip:<your-assistant-id>@sip.vapi.ai
SIP headersX-TryVox-Direction, X-TryVox-Route: ai-agent, X-TryVox-AI-Provider: vapi, X-TryVox-From, X-TryVox-To
Media bridgingrtpengine ↔ Vapi SIP edge (direct, no FreeSWITCH leg)

You don't need to touch anything in Vapi's "Phone Numbers" tab — TryVox handles all inbound delivery.

3. Outbound — 🚧 in progress

When you bound the number in step 2, TryVox called Vapi's API to register a SIP trunk + import the DID on your Vapi side and set the assistant + server URL on it. The Vapi-side resource is in place, but the egress path from your assistant through TryVox to the PSTN is being polished and is not GA in v1. Don't rely on agent-originated outbound for production yet; if you need it, coordinate with support.

You'll see the auto-provisioned entry under Phone Numbers in your Vapi dashboard (named TryVox <E.164>). Don't delete it manually from Vapi — disconnect the number from TryVox instead and we'll clean up the Vapi side for you.

4. Call events — automatic

Vapi posts call lifecycle events (status updates, end-of-call reports) to TryVox automatically. The server URL is set on the phone-number resource at provisioning time using a per-integration secret embedded in the URL. No paste step.

Troubleshooting

SymptomLikely causeFix
Key invalid badgePublic key instead of PrivateUse the Private key from Vapi Settings. The Public key cannot hit the API surface we need.
Call rings forever, no answerThe assistant ID was disabled in Vapi after bindingRe-create the binding with a current assistant.
Connect button fails: "vapi credential"TryVox couldn't create the BYOC trunk on Vapi (usually because your Vapi org already has too many credentials)Delete unused TryVox Trunk entries in Vapi → Credentials, then retry.
One-way audioCodec mismatchForce G.711 µ-law in the Vapi assistant transport settings.
Inbound goes to your old TwiML / answer-URL insteadThe TryVox number still has a Voice Application boundPick "override" in the conflict warning when binding, or delete the application binding first.

Pricing example

A 5-minute inbound call from a US caller to your TryVox US number routed to Vapi:

  • TryVox: US local inbound minute × 5 + DID rental (prorated).
  • Vapi: their published per-minute (STT + LLM + TTS) × 5.

No TryVox surcharge for the AI bridging. The two bills are independent.

On this page