How to add AI agents to VICIdial - remote agents, AudioSocket and SIP
VICIdial has no built-in AI that talks to callers, but it has the hooks. Where an AI agent or voice bot plugs in, how the audio reaches it, and what trips people up.
Short answer: VICIdial does not ship an AI that holds a conversation, but it already has the two hooks an AI agent needs. On outbound, an AI takes calls as a remote agent. On inbound, a number routes to it like any other DID route. What differs between setups is how the call audio gets from VICIdial to the AI, and how the result gets back into VICIdial.
This guide covers both halves, the trade-offs between the usual ways of doing it, and the things that make an AI voice bot sound broken on a real dialing floor even when the AI itself is good.
Does VICIdial have AI agents built in?
No. VICIdial dials, routes, records and reports; it does not include a speech model or anything that can hold a conversation. Every "VICIdial AI agent" or "VICIdial AI bot" you will find is something connected to VICIdial, either running on the same server or on someone else's.
That is not a gap so much as a boundary. VICIdial's job stays the same - pacing the dialing, screening answering machines, queuing transfers, keeping the lead history - and the AI takes the part of the call a person used to take.
Where does an AI agent plug into VICIdial?
Outbound: as a remote agent. VICIdial's Remote Agents feature exists for agents who are not logged into the agent screen. A remote agent entry has a starting user ID, a number of lines, a campaign and a conference extension. When the dialer connects an answered call to one of those lines, the call continues at that extension in your dialplan. Point the extension at your AI and the AI is now the agent: VICIdial keeps dialing your lists and pacing to the number of lines you gave it, and it does not know or care that nobody is wearing a headset.
Two details matter:
- Each line needs a user. A remote agent with 5 lines uses 5 consecutive user IDs, so create those users (in their own user group, so they never show up as people in your reports).
- The number of lines is your concurrency limit. Set it to how many calls your AI can actually run at once, not to how many you would like it to run.
Inbound: as a DID route. In Inbound DIDs, a number can route to an extension in a dialplan context instead of to an in-group. Send it to the extension that reaches your AI and it answers that number. Keep the old route written down: when you pause the AI, the number should go back to the in-group it came from.
How does the call audio reach the AI?
There are three common ways. They differ mostly in who runs the speech side and how the outcome gets back.
| Your own AI service over AudioSocket | An AI platform over a SIP trunk | Built into the server | |
|---|---|---|---|
| Where the AI runs | A program you run, fed raw audio | The vendor's servers | Installed with your dialer |
| What you build | Speech handling, prompts, tools, results | The handoff and the write-back | Nothing - you configure it |
| Call legs | One | Two: the caller's and a second leg to the vendor | One |
| Outcome back in VICIdial | You write it | Depends on the vendor's integration | Written for you |
| Billing | Your model provider | The vendor, on top of your carrier | One bill |
AudioSocket (Asterisk 18 or newer). Asterisk's AudioSocket application opens a TCP connection to a program you run and streams the call in both directions, by default as 16-bit signed linear audio at 8 kHz in 20 ms frames. Your program feeds that to a speech model and plays its replies back. You get full control and the lowest latency, and you own everything: turn-taking, interruptions, retries, recording and the write-back to VICIdial.
A SIP trunk to an AI platform. The extension dials out to the vendor's SIP address and bridges the caller to their AI. Very little to build, but the call now has a second leg leaving your server, you are paying for minutes twice (your carrier and the vendor), and whether the status, the answers and the transfer end up in VICIdial depends entirely on what the vendor built. Check that before you sign: an AI that qualifies leads but leaves every lead marked as a plain answer is not much use to a VICIdial floor.
Built into the server. The AI connects locally, the way AudioSocket does, but someone else has built and maintains the speech side and the VICIdial write-back. This is what VICIfast AI agents are.
What has to come back into VICIdial?
This is where most homemade setups fall short. When the AI finishes a call, a human agent would have left behind:
- A status on the lead, so recycling, list resets and reports keep working. Map the AI's outcomes (qualified, not interested, callback, wrong number) to your own statuses.
- The answers, written into the lead fields your team already reads, custom fields included.
- A callback at the time the person asked for, so "call me tomorrow at 3" is not lost.
- Do-not-call, applied during the call. This one is not optional.
- A transfer for the calls that need a person: send the caller into one of your in-groups through VICIdial's inbound AGI, so the call queues for your closers like any other, ideally with a short summary on the lead.
And if the caller hangs up first - which is most calls - the same outcome still has to be written. Code that only runs after the AI hangs up will silently lose it.
What trips people up?
Answering machines. Let VICIdial's answering-machine detection run before the AI joins, so the AI only ever talks to people. For voicemail, VICIdial can play a recorded message after the beep; record it once in the agent's voice and leaving a voicemail costs no AI minutes.
The first words. On an outbound call the person says "hello" and expects an answer at once. Some realtime speech models take several seconds to say their first words on a fresh session; that pause is long enough for people to hang up. Measure the gap from "hello" to the first syllable, not the model's advertised latency.
Replies and interruptions. People talk over the agent. The AI has to stop when they do and reply within about a second when they stop. On our own calls through VICIdial the reply started roughly 0.1 to 1.3 seconds after the caller finished.
Silence is not "no audio". Some speech models only produce output while they are receiving input. If your bridge sends nothing while the caller is quiet, the AI can stall mid-call. Send silence, not nothing.
Consent and disclosure. In February 2024 the FCC ruled that AI-generated voices count as artificial voices under the TCPA, so outbound calls using them need the same prior express consent as prerecorded calls. Have the agent say it is an AI if asked, and honour do-not-call requests on the spot.
Concurrency. Every AI call is a remote-agent line in use. Size the number of lines to what you pay for, and decide what happens when they are all busy: inbound callers should fall through to an in-group, not ring out.
What is the quickest way on VICIfast?
On a VICIfast server it is a few minutes in the dashboard:
- Describe your business, the questions that qualify a lead and the facts the agent may use.
- Pick one of ten voices.
- Choose the campaign it takes answered calls from, or the numbers it answers.
- Install it. We create the remote-agent lines, the users, the dialplan and the number routes on your server. Delete the agent and your numbers and campaigns go back the way they were.
- It calls your own phone first, free. Go live when it sounds right.
Statuses, lead fields, callbacks, do-not-call and transfers to your in-groups are written for you, including when the caller hangs up first. Plans and minutes come out of your VICIfast wallet. See AI agents for VICIdial for voices, pricing and a demo call, or the setup guide for every option.