Phone numbers for Vapi — SIP trunk setup with DIDHub
Connect a DIDHub SIP trunk to Vapi for inbound and outbound voice agents. Vapi's BYOC support means you bring your own phone numbers and your own carrier — you control Caller-ID, STIR/SHAKEN attestation, regional ingress, and per-DID economics. Setup is roughly 10 minutes.
Why DIDHub for Vapi
- STIR/SHAKEN A-attestation by default. DIDHub-allocated US/CA numbers are signed with attestation A on every outbound call. Vapi's bundled DIDs are typically B-attestation, which mobile carriers increasingly flag as “Spam Likely.” Bring your own DIDHub trunk and the spam labeling problem goes away on day one.
- 136-country DID inventory. Vapi's bundled US numbers are great for US-only deployments. For multi-country campaigns — UK, Germany, Brazil, Israel, UAE, Singapore — bring DIDHub DIDs via BYOC.
- Per-DID flat pricing, no commit. $1.99 for a US number, ~$1.10 for German, ~$0.63 for UK London. No minimum order quantity, no monthly minimum, no setup fee on standard SKUs.
- Bulk DID provisioning API. POST one DID per onboarding, attach via Vapi's BYOC config. The Vapi assistant assignment can be metadata-driven so you bind DID ↔ agent in your application logic.
- Regional SIP/RTP edges. Sub-50ms ingress to your Vapi inference region. Lower latency = more natural conversation.
BYOC setup — step by step
- Sign up at /signup and provision the DID(s) you need.
- In the DIDHub dashboard, generate SIP credentials for your Vapi tenant (or get an IP-allowlist if your Vapi org runs from fixed IPs).
- In Vapi: open the Phone Numbers section, choose BYO SIP Trunk (or equivalent label), and paste the DIDHub SIP URI (typically
sip.didhub.io) plus authentication. - Create a Vapi assistant if you don't already have one. Assign the assistant to the BYOC phone number.
- Test inbound: dial the DID from a mobile. The Vapi assistant should answer.
- Test outbound: trigger Vapi to place a call from the DID. Verify Caller-ID, STIR/SHAKEN attestation, and audio quality.
Caller-ID configuration
Set the DIDHub-provisioned DID as the outbound Caller-ID in your Vapi assistant config. Vapi will pass that as the From-header on outbound SIP INVITEs; DIDHub validates the Caller-ID against your allocated/ported inventory and signs the call with A-attestation.
For US/CA outbound: DIDHub signs every call with STIR/SHAKEN attestation A on DIDHub-allocated and DIDHub-ported numbers. This is the level that mobile carriers (T-Mobile, Verizon, AT&T) treat with baseline trust — calls signed with weaker attestation are increasingly flagged as “Spam Likely” or sent straight to voicemail. See STIR/SHAKEN explained for the full background.
For non-US destinations: present a local DID as Caller-ID for best answer rates. AI agent calling a Madrid customer should present a +34 (Spanish) Caller-ID, not a US number. DIDHub serves 136 countries with dedicated landing pages so you can match Caller-ID to destination.
Latency & regional ingress
Realtime AI voice is brittle to network latency — an extra 100ms of SIP egress can break the natural-conversation feel. DIDHub operates SIP/RTP edges in:
- NOAM: Ashburn (US-East), San Jose (US-West), Dallas
- EU: Frankfurt, Amsterdam
- APAC: Singapore, Tokyo
- MENA: Dubai
Pick the edge nearest to your Vapi inference region. Typical sub-50ms regional ingress for the closest pair. If you need a region we don't list, talk to [email protected] — we add edges in response to customer demand.
FAQ
Do I need to leave Vapi's bundled phone numbers behind to use DIDHub?
No. You can run both in parallel. Vapi's BYOC support is additive — bundled numbers continue to work for the use cases where they fit, and BYOC DIDs handle everything else (international, A-attestation, per-DID economics).
Does DIDHub support Vapi's outbound campaign use case?
Yes. Outbound voice via DIDHub respects per-DID rate limits, mobile-carrier ML scoring, and STIR/SHAKEN signing requirements. For campaign volume, allocate a pool of DIDs and rotate via Vapi's outbound logic.
Can I use a Vapi assistant on a non-US DID?
Yes. DIDHub supports DIDs in 136 countries; bind whichever country DID to your Vapi assistant via BYOC. Most non-US numbers don't have STIR/SHAKEN (it's a US/CA regulation), but answer-rate optimization through local Caller-ID still applies.
How do I handle inbound to specific Vapi assistants?
Map DID ↔ assistant in Vapi's BYOC routing config. DIDHub passes the To-header (the called DID) intact; Vapi routes to the right assistant based on it.
Provision your first Vapi DID
Sign up at /signup, pick a country / area code, and route the DID to your Vapi BYOC SIP trunk. $1.99/mo for a US number, sub-60-second activation on most countries. No commits.
Ready to get a number?
Pick a DID in 130+ countries from $1.99/month. Activates instantly on most numbers.