To connect VICIdial® to VoiceOI, you create an API user, allow VoiceOI’s addresses, and take part in the script, dialplan and test steps. The VoiceOI team does the VoiceOI side: it connects your server on Integrations, creates the bot users and remote agents, and adds a SIP route on your dialer with your VICIdial administrator. Each bot then works in VICIdial as a remote agent: VICIdial’s Asterisk sends the answered call to a VoiceOI bot server over SIP, and VoiceOI writes the outcome back to the lead.
Applies to:VICIdial® accounts
Last checked against the product: . Found a mistake? Tell us.
What are the steps to connect VICIdial?
There are nine steps, in this order. Each step shows who does it. What you need first is in What do I need before I start?.
1
Get your VICIdial ready
You
Make sure the campaign the bots will work exists, has a list with test leads, and runs the way you want.
In your VICIdial admin, create a user for VoiceOI with the settings in What does the VICIdial API user need?. Give the user name and password to the team the way the team asks during onboarding. Do not put them in a support message or a screenshot.
3
Open the network path in both directions
Both
The team gives you VoiceOI’s addresses, and you allow them on your VICIdial and firewall.
You send the team the address of every VICIdial server that places calls, as single addresses, and the team adds them to your account’s allow-list. See Which addresses must be allowed, and where?.
4
Connect the server on Integrations
VoiceOI team
The team enters your Server URL, API user and API password on Integrations and presses Test connection. A message that starts “Connection successful” means the web server answered and VICIdial’s reply held no login or API error.
If you would rather enter the password yourself, the Connect Vicidial panel on Integrations has the fields.
5
Set up the in-group, the campaign and a test script
Both
The team sets up the in-group that receives transfers, allows it in the campaign settings so transfers are accepted, and creates the test campaign in VoiceOI.
You decide who the closers are and keep them signed in and ready. You build or review the script in Scripts and try it in the Simulator, which tests the conversation only, not the VICIdial connection.
6
Create the bot users, phones and remote agents
VoiceOI team
The team creates a VICIdial user and a phone for each bot, then a remote agent entry that starts Inactive, and normally adds the matching rows to Remote Agents. Tell the team your free User ID range first.
On Remote Agents, check that each bot is listed with the full External Extension (for example 888881001) and the right Lines. Press START. In your VICIdial admin, the remote agent entries should now show Active.
9
Test end to end
Both
Place a test call to a phone you control. Check the audio in both directions, the status in VICIdial and a transfer to your in-group. See How do I check that it works?.
What do I need before I start?
A working VICIdial with the campaign the bots will work, a list of test leads, a status list with the codes you want, and an administrator who can create an API user, change the firewall and apply a dialplan change with the VoiceOI team.
The address of every VICIdial server that places calls: the web server, and each Asterisk server in a cluster.
A range of VICIdial User IDs that no person uses, for the bot users, the number of bots you want (one call each at a time), and the closers and in-group for transfers.
How does VoiceOI connect to VICIdial?
VoiceOI bots appear in VICIdial as remote agents. A remote agent is a VICIdial entry with no agent screen: VICIdial forwards the calls it routes to that entry to a number you set, the External Extension. For VoiceOI, that number leads to a route on your VICIdial’s Asterisk server, which dials a VoiceOI bot server over SIP.
On the bot server, the bot plays its script or holds an AI conversation. When the call ends, VoiceOI writes the outcome back through VICIdial’s own API: the lead’s status, the call log entry and, on a transfer, notes for the closer. SIP is the current call path, and this page covers it only. VoiceOI also has an older FastAGI path. If you are not sure which one your account uses, ask the VoiceOI team.
VICIdial dials a lead from your campaign. When the lead answers, VICIdial passes the call to a ready line of a bot’s remote agent entry, as it would to a person who is ready.
Your Asterisk dials the bot server over SIP and adds headers that say which lead, campaign and bot line the call is for.
The bot server checks that the call comes from an address on your allow-list, finds the script named in the dial string, and answers.
The bot talks, and can hand a qualified call to your closers with notes in the lead’s Comments. When the call ends, VoiceOI writes the status to the lead and to VICIdial’s call log.
Who does what when VICIdial is connected?
The VoiceOI team does the onboarding. You do the VICIdial side that only your administrators can do, and the decisions that are yours. The team’s provisioning tool is not part of customer logins, so you never run it.
Who does what on a VICIdial account
Task
Who
Allow VoiceOI’s addresses on your VICIdial and firewall, on every server of a cluster
You, with the addresses the team gives you
Add your dialer’s addresses to your VoiceOI account’s allow-list
VoiceOI team, from the addresses you send
Server connection, in-group and campaign setup, bot users, phones, remote agents, SIP peer and bot route
VoiceOI team, with you choosing the closers and the in-group, and your VICIdial administrator for the route
API user, script, closers signed in and ready, START and STOP
You, or the team for START and STOP
Lists, dial method, hopper, dial level, Local Call Time and recording
You, in VICIdial
Consent, do-not-call lists, calling hours, caller ID and recording notices
VoiceOI uses VICIdial’s own API to read the lead, write the status and the notes, and start and stop remote agents. It authenticates each request with the API user you create, on the standard VICIdial API pages of your web server: /vicidial/non_agent_api.php and /agc/api.php. Create a separate user for this. Do not reuse a person’s login.
Settings the API user must have
Setting
Value
Why
API Access
1
Lets the user call VICIdial’s non-agent API.
Agent API Access
1
Lets the user call VICIdial’s agent API, used for remote agent call control during a transfer.
Modify Leads
1
Lets VoiceOI change the lead’s status and Comments.
These three settings are required. The VoiceOI team confirms the exact settings and permissions with you during onboarding. Do not remove any other permission from this user until the team has confirmed them.
What the connection on Integrations contains
Field
What to enter
Name
How this connection is shown across your scripts and campaigns.
Server URL
The address of your VICIdial web server, starting with http:// or https://, for example https://192.0.2.10. Use https:// when your web server has a certificate: VoiceOI sends the API user name and password with every request, and over http:// they travel unencrypted. VoiceOI’s servers must be able to reach it.
API user
The user name of the API user from step 2.
API password
The password of that user.
Agent user (under Fallbacks)
Used when a call does not say which agent it is. Leave it as the team sets it. If you create the connection yourself, leave it blank and ask the team.
Campaign ID (under Fallbacks)
Used when a call does not carry its campaign. Leave it as the team sets it. If you create the connection yourself, leave it blank and ask the team.
Press Test connection after any change. A message that starts “Connection successful” means the web server answered and VICIdial’s reply held no login or API error. It does not prove that the user may change leads or remote agents. If the message goes on to say the API user lacks the check_phone_number permission, VICIdial would not run that check for this user, so its API permissions are limited: tell the team before you go further. For a failed test, see connection troubleshooting.
Which addresses must be allowed, and where?
Traffic must be allowed in both directions, and each side keeps its own list. The team gives you VoiceOI’s addresses. You send the team yours. Only your VICIdial administrator can change your VICIdial and firewall settings. If you are not sure who will do it, say so during onboarding.
VoiceOI has two kinds of server, and both need access. The master server handles Test connection, START, STOP and the notes sent to a closer dialer. The bot servers take the calls and write statuses and notes during and after them.
Where
What
Who
Your VICIdial and firewall
Allow VoiceOI’s master server and bot server addresses to reach the web server in your Server URL, and allow UDP and TCP between your dialer and the bot server addresses for SIP and audio.
You
VoiceOI’s allow-list for your account
VoiceOI accepts calls only from the addresses on your account’s list. Send the address of every VICIdial server that places calls to the bots.
VoiceOI team adds them
Audio
Audio (RTP) must also pass in both directions between your Asterisk and the bot server. The team confirms the audio ports and firewall rules during onboarding.
Both
A VICIdial cluster: add every server
A VICIdial cluster sends calls from every one of its Asterisk servers. A call from a server that is not on the list is refused or gets no answer, even when the other servers of the cluster work. Your dialer may report SIP 403, or see nothing at all when the bot server’s firewall drops the call first. Send single addresses, not ranges: the address the call arrives from, as seen from outside your network (a server behind NAT uses its public address). When you add a server later, send its address to the team before it starts sending bot calls.
Example list to send the team (documentation addresses)
Web server (API): 192.0.2.10
Asterisk server 1: 198.51.100.11
Asterisk server 2: 198.51.100.12
Example addresses from the ranges reserved for documentation. Send your real ones. The Asterisk servers are the addresses calls arrive from. The web server address is for the team to match your calls to your connection.
Which SIP settings, transport and codec does the bot use?
The path between your Asterisk and the bot server is plain SIP. The bot server answers SIP OPTIONS pings, so a peer that checks whether the bot is reachable (qualify) works.
Item
Value
Signaling
SIP over UDP or TCP, on your bot server’s SIP port. The port is set at install and can differ between installs, so use the one the team gives you.
Encryption
The bot path does not use TLS for SIP or SRTP for audio.
Codec
G.711 u-law (PCMU) only.
Audio ports
The VoiceOI team will confirm them during onboarding.
Example SIP peer (the team gives you the entry for your server)
[voiceoi_bot]
type=peer
host=203.0.113.10
port=<SIP port from the team>
allowtransfer=yes
transfer_context=default
dtmfmode=rfc2833
context=default
qualify=yes
disallow=all
allow=ulaw
insecure=port,invite
nat=force_rport,comedia
directmedia=no
Do not copy this as it is. The host and port differ for every install, and the team sets the equivalent on your server whichever SIP setup it uses. Change the other lines only together with the team.
Why the main settings matter
Setting
Why it matters
disallow=all and allow=ulaw
The bot path uses G.711 u-law only.
allowtransfer=yes and transfer_context
The example peer sets both lines. Keep them as the team gives them. Your Asterisk can refuse a SIP transfer (REFER) from the bot, and your dialer’s SIP log shows the reply. The bot ends its side of the call either way, so a refused transfer drops the caller. Test a transfer before you go live.
nat=force_rport,comedia
Makes Asterisk reply to the address the bot’s packets come from, which keeps the audio flowing when the bot server advertises a different address.
qualify=yes
Asterisk pings the bot server, which answers, so the peer shows as reachable.
What is the dialplan hook?
The dialplan hook is the route on your VICIdial’s Asterisk that handles the External Extension of the bots. It adds SIP headers that tell VoiceOI which lead, campaign and bot line the call is for, and it dials the bot server through the SIP peer. The VoiceOI team writes the route with your VICIdial administrator.
Example bot route (the team adds it with you)
; In the route for the External Extension of the bots (prefix 88888 here).
; Lines before these load the lead variables and keep the lead ID for transfers. Keep them.
same => n,SIPAddHeader(X-VICIdial-Lead-Id: ${lead_id})
same => n,SIPAddHeader(X-VICIdial-Caller-Id: ${phone_number})
same => n,SIPAddHeader(X-VICIdial-User-Id: ${EXTEN:5})
same => n,SIPAddHeader(X-VICIdial-Campaign-Id: ${campaign_id})
same => n,SIPAddHeader(X-VICIdial-CallerID-Code: ${CALLERID(name)})
same => n,Dial(SIP/<script-id>@voiceoi_bot)
same => n,Hangup()
The variable names depend on how your route loads the lead, so do not paste this into your dialplan. The team writes the lines for your install, and you should not remove or reorder them.
The headers and what VoiceOI uses them for
Header
What it carries
What VoiceOI uses it for
X-VICIdial-Lead-Id
The lead’s ID in VICIdial
Looking up the lead’s details for the script, and writing the status and notes to the right lead.
X-VICIdial-Caller-Id
The phone number of the person called
Knowing which number the call is for.
X-VICIdial-User-Id
The bot’s slot: the part of the External Extension after the prefix
Identifying the bot’s remote agent entry.
X-VICIdial-Campaign-Id
The VICIdial campaign ID
Working out the campaign when the dial string names no script, and telling VICIdial which campaign the status belongs to when VoiceOI writes it back. It is not a substitute for naming the script.
X-VICIdial-CallerID-Code
VICIdial’s call code for this call: a letter, a date and time, and the lead ID
Writing the status into VICIdial’s call log, and working out which line of the entry took the call. Without it, the call log entry can stay at its default status, XFER, even when the lead’s status was updated.
Always dial the script ID
The text before the @ in the Dial line is the ID of the script the call runs. Find it in VoiceOI under Scripts: open the row menu and choose Copy Script ID. Always name the script. If the dial string names none, VoiceOI tries to work out the script from the campaign and can pick the wrong one.
If the ID names a script the bot server does not have, for example one that has not synced yet or a mistyped ID, the bot server refuses the call with SIP 480. Press Force bot sync on Integrations, compare the ID with Copy Script ID, and check the Campaign Assignment column on Scripts. If it says Unassigned, ask the team to link the script to a campaign. Then place the call again.
What VoiceOI answers when it refuses a call
SIP answer
What it means
What to do
403
The address is not on your account’s allow-list, or the account has none (for example while paused for balance). If the bot server’s firewall drops the call first, there is no 403, only a timeout.
Send the team the server’s address. Add every server of a cluster.
404
The call carried none of these: a script ID, a lead, a bot slot or a campaign.
Ask the VoiceOI team to check the bot route with you.
480
The script ID in the dial string is not on that bot server.
What are the bots in VICIdial, and what do START and STOP do?
Each bot is a line on a remote agent entry in VICIdial. The entry has a User ID, a campaign, an External Extension, a number of lines and a status of Active or Inactive. Each line takes one call at a time, so the lines of all your bot entries add up to the calls the bots can hold at once.
An entry’s extra lines use the numbers above its User ID, so the ranges of different entries must not overlap. Leave room between the starting User IDs. If you run more than one VICIdial, give each system its own User ID ranges so VoiceOI can tell which one a bot belongs to, and set each row’s Dialer Connection: see two agents that share lines and two VICIdial servers and the wrong one is used.
Setting
What it is
User ID
The VICIdial user of the bot’s remote agent entry. The VoiceOI team creates it.
External Extension
The full number VICIdial dials for this entry: the prefix plus the User ID, for example 888881001. Your dialplan route matches it. A value of only 88888 carries no User ID, so the call cannot be matched to a bot. See the extension is short or wrong.
Lines
How many calls this entry can hold at once.
Campaign / Category
Groups the row on the Remote Agents page. The VICIdial entry keeps its own campaign, set in VICIdial.
Dialer Connection
Which VICIdial connection from Integrations the row uses.
The Remote Agents page (titled Remote Agent Command Center) lists the rows VoiceOI keeps for your bots. Single Agent, Bulk Fleet and Import CSV link users that already exist in VICIdial to rows on this page. Their buttons read “Provision Bot” and “Link existing Fleet”, but they create nothing in VICIdial: the VoiceOI team creates the users, phones and remote agent entries, so you normally do not need these dialogs. If you edit a row, a change to its name or user group is also sent to the VICIdial user. Ask the team what to enter in the password field before you use Single Agent. Rows linked this way have a default of 1 line, and START, STOP and Update Dialer Parameters send the row’s Lines to VICIdial, so on an entry with more lines they cut it to the row’s number: set Lines to match the VICIdial entry first.
START, STOP and Live Status
START asks VICIdial to set the bot’s remote agent entry to Active, with the row’s Lines. New entries start Inactive, so no bot takes calls until START.
STOP sets the entry to Inactive. VICIdial may need a short time after that before it stops sending calls to the entry.
START, STOP and Update Dialer Parameters apply to every line of that agent.
Live Status is the last START or STOP that VICIdial accepted. It is not VICIdial’s live state. To see the real state, open the live agent view in VICIdial’s admin.
The message “Bulk Operation Initiated” appears for every START or STOP, even for one agent. It means the request was queued, not that VICIdial accepted it.
Purge Agent removes only the row on this page. The entry in VICIdial stays as it was.
START sends the row’s External Extension, but VICIdial’s own API notes list no extension field for that call. Do not rely on START to correct a wrong extension in VICIdial. The team or your VICIdial administrator changes it there.
Which statuses does VoiceOI write back to VICIdial?
VoiceOI writes one status per call to the lead in VICIdial and to VICIdial’s call log. VICIdial sets a status only if it is on the campaign’s status list. For any other, the lead keeps the status it had. VoiceOI cannot add statuses to your VICIdial, so check the list before you go live.
How a call is written back
The call ends: the person hangs up, or the script finishes.
VoiceOI works out the status: the one a script step sets, or else the hang-up rules in the table below.
VoiceOI updates the lead in VICIdial, then, a few seconds later and with one retry, the call’s entry in VICIdial’s call log.
VoiceOI saves its own record, which you see in Call Logs.
A transferred call is different: VoiceOI writes the notes, then hands the call over, and the status goes with the transfer, without the two final writes. Call Logs shows the status VoiceOI chose, even when VICIdial did not accept it, so compare the code with the campaign’s status list.
Statuses VoiceOI writes
Code
Meaning
When it is written
XFER
Qualified, and the bot started the hand-off to your closers
The AI agent’s “Qualified - transfer” outcome, or a transfer step that sets no other status. XFER is written only if the transfer was started. If the call ends before that, for example the person hangs up first, VoiceOI writes HANGUP instead. XFER does not prove that a closer received the call. If your Asterisk refuses a SIP transfer (REFER), the call is still logged as XFER and the caller is dropped, so test a transfer before you go live.
SALE
Qualified, no transfer
An AI agent set to “No transfer - mark it a sale”, or a script step you set to SALE.
DEC
Not qualified
The AI agent’s “Not qualified” outcome, or a script step you set to DEC.
NI
Not interested
The AI agent’s “Not interested” outcome, or a script step you set to NI.
CALLBK
Callback requested
The AI agent’s “Callback requested” outcome, or a script step you set to CALLBK.
DNC
Do not call
The AI agent’s “Do not call” outcome, or a rule in the DNC Keywords (Profanity/Abuse) category on Immediate Hangups.
AM
Answering machine
A rule in the Machines (Voicemail/Beeps) category matched, a long first answer at an AM Detect step, or a call that runs away: several silent turns in a row, or a script that loops through the same step or too many steps.
N
The person hung up
The AI agent’s “Caller hung up” outcome. Call Logs and Dialer Dispositions show N as “No answer”. If the AI step has no hang-up code saved, the bot writes HU (“Hung up”) instead.
NA
Words were heard, but nothing the bot could use
The person spoke, but nothing they said could be used as an answer. A call with sound but no words is written as DAIR.
DAIR
Dead air: no words were heard from the person
No words were heard from the person at any point in the call, even if there was noise on the line.
NP
No clear outcome
The person hung up after one usable answer, or the AI agent ran out of turns or began repeating itself without a result.
HANGUP
The person engaged and then hung up
The default when a call ends with no step setting a status and none of the codes above applies. It is also what XFER becomes when the call ends before the transfer starts.
DROP
VoiceOI ended a call that ran too long or stalled
A safety limit on call length, or a call that stopped making progress.
A script step can also set a status from its Vicidial Disposition list, which includes A, B, CALLBK, CBHOLD, DAIR, DC, DEC, DNC, N, NI, NP, NQ, SALE and XFER. The list also shows OVERAGE: do not pick it, because VICIdial cannot store a status of 7 characters. Check the campaign’s status list for every code you use and for every code in the table above, including HANGUP, HU, DROP and NQ. Ask your VICIdial administrator to add any that are missing, or change the step to use a status the campaign has.
When a call qualifies, the script can hand the live call to your closers. The bot does not stay on the line to introduce the caller. The transfer is a hand-off with notes.
Two transfer methods work on the VICIdial path. The other modes in the Transfer Mode list of the Script Builder belong to the Asterisk engine of the built-in dialer, so do not use them here.
ViciDial Native API Transfer (Instant Release): VoiceOI asks VICIdial, through its API, to move the call to the destination you enter.
SIP Blind Transfer (REFER): VoiceOI sends a SIP REFER to your Asterisk, which then sends the call to the destination. Your Asterisk must accept the transfer, and the destination must exist on your dialer. If the REFER is refused, the bot still ends its side of the call and the caller is dropped, so test it first. See SIP settings.
The destination is a number or extension that your dialer routes to the in-group your closers use. In the Transfer Call step the field is labelled Destination Phone Number for the default hand-off (the label changes with the transfer mode), and the team sets it with you. If a transfer step has no destination, no transfer happens and the script ends, so the caller is hung up. Check that every transfer step has one.
A transfer reaches your closers only if the in-group is allowed in the campaign and at least one closer is signed in and ready in it. Otherwise the call arrives at the in-group and nobody answers.
Notes for the closer
Before the transfer, VoiceOI writes the caller’s answers into the lead’s Comments in VICIdial, so the closer sees them when the call arrives. Comments holds 255 characters, and longer text is cut. VoiceOI sends the notes as the whole new value, so text that was there may be replaced: do not keep your own text in that field on leads the bots call. In the Script Builder this is the Notes for the closer section of the Transfer Call step. In the AI Voice Agent editor, it is Comments on the Handoff tab. If the write fails, the closer may see the previous value.
If your closers work on a separate VICIdial, the switch Also send the notes to a closer dialer on the Transfer step sends the same notes to the lead with the caller’s phone number on that system. It uses the Closer dialer connection on Integrations, which the team sets up. Only one closer dialer connection receives the notes. If the closer dialer has no lead with that phone number, VoiceOI adds one in the list you set under List for new leads on that connection (list 999 if you set none). It sends only for phone numbers with at least 10 digits. For transfer modes and closer routing rules, see Transfers and closers.
How do I check that it works?
1
Check the connection
You
On Integrations, find the Vicidial connection. Its card should read Live. Press Test connection and look for “Connection successful”. Remember that a pass only means VICIdial’s reply held no login or API error.
2
Start one bot and look at VICIdial
You
On Remote Agents, press START on one bot. In your VICIdial admin, open Remote Agents and check that the same User ID shows Active, with the right External Extension and number of lines. Then open the live agent view in VICIdial’s admin: the bot’s lines should appear for your campaign.
3
Place a test call
You
Put a lead with a phone number you control in a test list and let the campaign dial it. Check that the list and campaign are active and that the lead may dial now under your campaign’s Local Call Time. If nothing dials, see Integrations shows VICIdial as Live, but nothing dials. Make sure no person is signed in to that campaign, because VICIdial chooses which ready agent gets the call. Answer, and listen for the bot to start its script.
4
Find the call in Call Logs
You
Open Call Logs (the page is titled Interaction Logs) and search for your number. Only Admin and SubManager logins can open it. Expand the row: Bot Said and User Spoke lines show the conversation, and Show System Nodes shows the full log. If there is no row at all, the call never got past the bot server’s checks, or never arrived: see What VoiceOI answers when it refuses a call.
5
Check the status in VICIdial
You
Open the lead in your VICIdial admin, on the lead search and the lead’s detail page. A few seconds after the call, its status should be the one VoiceOI chose, and the call log entry should show the same.
If the lead keeps its old status, the code is probably not on the campaign’s status list, or the API user’s Modify Leads is 5. If the call log entry stays at XFER, the route is missing the X-VICIdial-CallerID-Code header.
6
Test a transfer
Both
Run a test lead through the script until it qualifies. Check that the call arrives in your in-group, that a closer who is signed in and ready hears the caller and the caller hears the closer, and that the lead’s Comments show the notes.
After you change a script or a setting, the change reaches your bots on their next sync, which can take longer than a minute. To push it now, press Force bot sync on Integrations.
What if the test fails?
The connection test fails, calls are refused, or no row appears in Call Logs: see connection troubleshooting.
If the checks do not explain it, contact the VoiceOI team through Contact. Send the time of the call with the time zone, the lead ID, the campaign, the remote agent’s User ID and External Extension, and what the screen showed. Do not send passwords. What to send support has the full list.
What stays with you when calls go through VICIdial?
Topic
Where it is controlled
What VoiceOI does
Calling hours
VICIdial’s Local Call Time setting on your campaign
Nothing. VoiceOI does not set or enforce calling hours for calls VICIdial places.
Do-not-call
Your own lists and your VICIdial campaign and list settings
VoiceOI’s do-not-call list is checked only by the built-in dialer, never by calls your VICIdial places. A matching rule in the DNC Keywords category on Immediate Hangups, or the AI agent’s “Do not call” outcome, ends the call and writes DNC to the lead if DNC is on your campaign’s status list. VoiceOI adds the number to no list, and whether VICIdial dials it again depends on your campaign and list settings. Pressing a key to opt out is not supported here.
Which numbers you call
Your lists in VICIdial
VoiceOI does not check national, state, litigator or reassigned-number lists. You scrub against the registries that apply to you.
Caller ID
Your carrier and your dialplan
VoiceOI does not verify that you own a number. Use only numbers you own or are authorized to use.
Recording
VICIdial’s own recording settings
The VICIdial path records no calls in VoiceOI. Call Logs shows a timeline, with no recording. Recording notices and consent stay with you.
AI-voice disclosure
The Safety tab of the AI Voice Agent editor
An optional disclosure line plays at the start of the AI conversation. You choose whether to use it and what it says. The editor suggests wording that says the call is recorded, so change it to match what is true: VoiceOI records nothing on the VICIdial path. Pre-recorded bots have none built in.
What are the limits of the VICIdial connection?
VoiceOI does not do predictive or power dialing for your human agents. VICIdial keeps your lists, hopper and dial method.
The bot cannot leave a voicemail message. It hangs up on a machine and logs AM.
Calls are in English only today, and the VICIdial path records no calls in VoiceOI.
There is no native CRM sync, no outbound webhook, and no public API or SDK. To move results, use the Google Sheets step (one row per call that reaches it), Call Logs, or VICIdial’s own dispositions.
VoiceOI is built for outbound campaigns. It does not offer an inbound receptionist.
Common questions
How do I connect VICIdial to an AI voice bot?
With VoiceOI, you create an API user in VICIdial and allow VoiceOI’s addresses on your dialer. The VoiceOI team then connects your server, creates the bot users and remote agents, and adds a SIP route on your dialer. Each bot appears in VICIdial as a remote agent, and your campaign keeps dialing from your own lists.
Do I have to create the VICIdial users and remote agents myself?
No. The VoiceOI team creates the VICIdial users, phones and remote agent entries for your bots. You tell the team which User ID range is free and press START when you are ready.
What permissions does the VICIdial API user need?
API access and Agent API access switched on, and Modify Leads set to 1. Do not set Modify Leads to 5, which is read-only and makes status updates fail. The VoiceOI team confirms the exact settings and permissions with you during onboarding.
Which IP addresses do I need to allow for a VICIdial voice bot, and who adds them?
You allow the VoiceOI addresses the team gives you on your VICIdial and firewall. The VoiceOI team adds your dialer’s addresses to your VoiceOI account, so send the team the address of every VICIdial server that places calls (each Asterisk server of a cluster), as single addresses, not ranges. A call from a server that is not on the list is refused or gets no answer: your dialer may see SIP 403, or nothing at all.
Which codec and transport does the VoiceOI bot use with VICIdial?
G.711 u-law over SIP on UDP or TCP, to the SIP port of your bot server. The bot path does not use TLS or SRTP. The team gives you the port and confirms the audio ports during onboarding.
Which VICIdial version do I need?
VoiceOI does not publish a list of supported VICIdial or Asterisk versions. The VoiceOI team confirms compatibility with your setup during onboarding.
Does VoiceOI replace my dialer or carrier, or dial for my human agents?
No. VICIdial keeps your lists, hopper, dial method and carrier, and VoiceOI does not do predictive or power dialing for human agents. Carrier minutes are never part of the bot price. You can use your own carrier, or ask the team about carrier service from VoiceOI, which is a separate product.
Why did a status not appear on the lead in VICIdial?
VICIdial sets a status only if it is on the campaign’s status list; otherwise the lead keeps its old status. Ask your VICIdial administrator to add the code to the campaign, or change the script step to use a status the campaign has. Also check that the API user has Modify Leads set to 1.
VoiceOI provides tools. The customer is the caller and is responsible for consent, do-not-call lists, calling hours, caller ID, recording and monitoring consent, and disclosures. This page is not legal advice.
VICIdial is a registered trademark of the Vicidial Group. VoiceOI is an independent product and is not affiliated with or endorsed by the Vicidial Group. Asterisk, Twilio and other product names are trademarks of their respective owners.