Setting up an inbound trunk from your carrier
Use context=trunkinbound on the carrier account entry so calls your carrier sends to your IP land in VICIdial's DID handling and reach an in-group.
An inbound trunk is just your carrier connection set to accept calls coming in, not only send them out. The key is one line on the carrier account entry: context=trunkinbound, which tells VICIdial to route any inbound call into its DID (direct inward dialing) handling instead of dropping it.
How inbound flows into VICIdial
When a caller dials one of your numbers, your Carrier sends the call to your server's public IP on port 5060. VICIdial reads the dialed number, matches it against your configured DIDs, and follows that DID's route to wherever it should land — usually an Ingroup where agents wait, or a call menu. None of that works unless the carrier's account block points inbound traffic at the right context.
sequenceDiagram
participant C as Caller
participant K as Carrier
participant V as VICIdial trunkinbound
participant D as DID
participant I as Ingroup
participant A as Agent
C->>K: Dials your number
K->>V: Sends call to your IP:5060
V->>D: Match dialed number
D->>I: DID route to in-group
I->>A: Connect to available agentSet the trunkinbound context
On the carrier you already added under Admin then Carriers, open the Account Entry and confirm the peer block includes context=trunkinbound. That single setting is what hands inbound calls to VICIdial's DID logic. A typical SIP block looks like this:
- disallow=all then allow=ulaw
- type=friend — required so the peer accepts inbound, not just outbound.
- host=<carrier IP> or host=dynamic
- context=trunkinbound — the line that makes inbound work.
Make sure the carrier can reach you
Your carrier needs to know where to send inbound calls. Give them your server's public IP and make sure port 5060 for SIP signaling is open to them. Most carriers tie inbound DIDs to the same trunk you authorized for outbound, so once the account block is right and Active is Y, calls to your numbers arrive on the same peer.
- Confirm your public IP is whitelisted on the carrier side for inbound.
- Wait about a minute after saving for the conf files to rebuild.
- Run sip show peers on the Asterisk CLI to confirm the peer is reachable, then dial one of your numbers from a cell phone.
Inbound and outbound on one trunk
You usually do not need a separate carrier entry for inbound. Because type=friend lets a peer carry calls in both directions, the same Trunk that places your outbound campaign calls can also accept inbound, as long as context=trunkinbound is present. The carrier authorizes your server once, by IP or by Registration string, and both directions ride that same authorization.
When the call arrives, VICIdial reads the dialed number — the DNIS — and matches it against your DID list. If you have not yet added a DID entry for that number, the call reaches trunkinbound but has no destination, so adding the DID is the next required step after the context is set.
Once the trunkinbound context is set and the carrier is pointed at your IP, the last step is mapping each number to a destination. For that, read how to add a carrier trunk and the broader carrier integration guide.
Spinning up a fresh dialer to take inbound calls? See VICIfast pricing — a dedicated VICIdial server with a fixed public IP in under 40 seconds.
About VICIfast LLC
VICIfast LLC operates a managed VICIdial hosting + BYOI service for outbound and inbound call centers. We run the dialers, the carriers, the recordings pipeline, and the compliance plumbing so operators don’t have to.
Citing this article
VICIfast Engineering. “Setting up an inbound trunk from your carrier”. VICIfast LLC, June 24, 2026. Retrieved from https://vicifast.com/blog/vicidial-carrier-inbound-trunk
Have questions?
Related posts
You might be interested in
VICIfast newsletter
Liked this? Get the next one in your inbox.
We ship the kind of stuff you just read — concrete, numbers-first, no drip. One email when a new post goes live. Unsubscribe in one click.
Comments
No comments yet — be the first.