Bandwidth SIP for VICIdial
Direct US carrier (not a reseller) for high-volume outbound. Templated PJSIP, IP-auth by default. Live in 30 seconds.
Bandwidth owns the lines — they're a direct US carrier, not a reseller — so per-minute pricing scales well past Twilio's tier. Onboarding is slower (real KYC) but A-attestation comes by default and the answer rates show it.
What you'll need from Bandwidth
- An account with billing live (Bandwidth's underwriting is multi-week for new accounts; expedite at scale)
- A SIP peer configured (Dashboard → Voice → SIP Peers)
- Your server's public IPv4 whitelisted on the peer (Bandwidth is IP-auth, not credentialed)
- DIDs purchased + assigned to your peer
Add the trunk
Dashboard → your server → Manage Trunks → + Add trunk.
Partner: Bandwidth
Direction: Outbound (add another row for Inbound)
Trunk name: bandwidth-out
Auth mode: IP auth
Host: <your bandwidth egress host>
No username / password — Bandwidth identifies you by source IP. Save and the platform writes the PJSIP endpoint, regenerates the dialplan, allocates a 4-digit dialplan prefix, and reloads Asterisk.
What gets written on the box
/etc/asterisk/pjsip.conf (IP-auth shape — no outbound_auth):
[bandwidth-out]
type=endpoint
context=trunkoutbound
disallow=all
allow=ulaw
allow=alaw
aors=bandwidth-out-aor
from_domain=<your bandwidth egress host>
[bandwidth-out-aor]
type=aor
contact=sip:<your bandwidth egress host>
qualify_frequency=60
For inbound trunks an identify block is added so Asterisk accepts traffic from Bandwidth's source IPs:
[bandwidth-in-identify]
type=identify
endpoint=bandwidth-in
match=<bandwidth source IP / range>
The Bandwidth IP list comes from their dashboard. The platform's TrunkPartner row has the up-to-date set.
Whitelist YOUR IP at Bandwidth
The dashboard surfaces your server's public IPv4 on the IP Addresses page. Copy it into Bandwidth's SIP peer "Source IPs" field. Without this, outbound calls fail with 403.
Inbound DIDs
On the Bandwidth side, set the DID's Termination URL to:
sip:<your-server-ipv4>;transport=udp
Then in our dashboard: Manage Trunks → Inbound DIDs → Add. Pick the routing target (in-group, campaign, extension, IVR).
Caveats
- KYC window: budget 2–3 weeks for Bandwidth to fully provision a new account. Talk to a sales rep if you have a launch date.
- DID portability: porting to Bandwidth is straightforward but takes 5–10 business days. Don't cut over until LOAs are signed.
- STIR/SHAKEN: A-attestation by default on DIDs purchased through Bandwidth. Numbers ported in keep whatever attestation their previous carrier gave them — confirm in the Bandwidth dashboard.
- Rate tier: at low volume Bandwidth is not cheaper than Telnyx. The math flips around 500K minutes/month outbound.