VoiceOI

Connect your dialer

VICIdial remote agent and answering machine troubleshooting

VoiceOI bots run in VICIdial® as remote agents: agent entries with no agent screen that VICIdial forwards calls to. Three common sources of remote agent problems are: the row on the Remote Agents page does not match VICIdial’s own entry, Live Status is read as live state when it is only the last START or STOP, or an Immediate Hangups rule matches the wrong words. This page gives the cause, the check and the fix for 20 symptoms, and says which steps are yours and which the VoiceOI team does.

Applies to:VICIdial® accounts

Last checked against the product: . Found a mistake? Tell us.

How do VoiceOI bots work as VICIdial remote agents?

A remote agent is a VICIdial entry with no agent screen. Nothing logs in: START sets the entry to Active and STOP sets it to Inactive. The VoiceOI team creates the users, phones and entries, and adds the dialplan route with your VICIdial administrator. See who does what in Connect VICIdial® and VICIdial remote agents explained.

Two things stay with you in VICIdial: your lists, the campaign’s dial method, dial level, hopper and Local Call Time, and which people are logged into the campaign. The rules on Immediate Hangups are yours too.

What does the Remote Agents page show, and what can’t it tell you?

The Remote Agents page (titled Remote Agent Command Center) is a control panel for the rows VoiceOI keeps for your bots. It shows what VoiceOI last sent to VICIdial and does not read VICIdial back.

What the status columns and tiles show

What the status columns and tiles really mean
On the pageWhat it shows or doesWhat it does not tell you
Live Status columnThe last result VoiceOI saved: a ready status after a START that VICIdial accepted, OFFLINE after an accepted STOP. The page reloads this saved value every 5 seconds. It does not ask VICIdial.Whether the agent is ready, on a call or paused in VICIdial. It changes only when START, STOP or Update Dialer Parameters is accepted.
Online (Ready), In-Call Activity, Active Accounts and Total Fleet tilesCounts of rows, not of live agents. Online (Ready) (“Logged into Vicidial”) counts rows that are not OFFLINE. In-Call Activity (“Handling Leads”) counts rows with the status INCALL, QUEUE, XFER or CLOSER. Active Accounts (“Enabled & Authorized”) counts rows that are not OFFLINE or are marked active. Total Fleet (“Bot Identities”) counts all rows.Nothing logs in or is authorized in VICIdial. In-Call Activity normally stays at 0 even during calls. One row can hold several lines, so Total Fleet is not the number of lines.
Dialer ConnectionWhich connected VICIdial server the row uses. The column reads “System Default” (Edit Details calls it “System Default (Latest Integration)”) when no connection is set on the row. VoiceOI then uses the campaign’s connection if there is one, and otherwise the most recently updated connection.Whether that server is the one running your campaign, if you have more than one.

What each button does

What each button and dialog really does
On the pageWhat it doesWhat to know
STARTAsks the VICIdial server in Dialer Connection to set that User ID’s remote agent entry to Active, with the row’s Lines.Whether it worked: the toast “Bulk Operation Initiated” appears for every START before VICIdial has answered.
STOPAsks VICIdial to set the entry to Inactive, with the row’s Lines.VICIdial may need a short time before it stops sending calls.
Manage Bot, then Update Dialer ParametersSends Active Lines and the Status switch together, for every line of that agent. With the Status switch off it sets the entry Inactive.It sets the number of lines too: see the warning below.
Edit Details, then Update BotSaves the row, including Lines. It also sends the row’s Internal Name and User Group to the VICIdial user on the connected server. Rows linked with Single Agent, Bulk Fleet or Import CSV start with the User Group AGENTS, which may not be the group the VoiceOI team put the VICIdial user in.It does not send External Extension, Campaign / Category, Lines or Active Mode to the VICIdial remote agent entry. Only START, STOP and Update Dialer Parameters talk to that entry.
Purge Agent and the bulk purge buttonDeletes the row from this page only. Purge Agent in the row menu deletes at once with no confirmation. The bulk purge button asks first.The entry in VICIdial keeps its status.
Single Agent, Bulk Fleet and Import CSVLink existing VICIdial users to rows on this page. The buttons say “Provision Bot” and “Link existing Fleet”. New rows start with 1 line unless you set another number.They create nothing in VICIdial: the VoiceOI team does that. They do not check for an existing row, so the same User ID can be added twice.

How do I check a remote agent in five minutes?

  1. Compare the row with VICIdial’s entry

    You

    In VoiceOI, open Remote Agents, then the row menu and Edit Details. Note the User ID, Campaign / Category, External Extension, Lines and Dialer Connection.

    In your VICIdial admin, open Remote Agents and find the same User ID. Compare the campaign, External Extension, number of lines and Status. They should match.

    If Lines differs, correct it on the row before you press START, STOP or Update Dialer Parameters, because each of them sends the row’s Lines to VICIdial.

  2. Open the live agent view in VICIdial’s admin

    You

    Find the bot’s lines for your campaign. An Active, idle line waits for a call. A line that stays on a call for a long time with no customer is a stuck slot (see below).

  3. Place one test call through the campaign

    You

    Dial a lead whose phone you control. Open Call Logs and search for the number. If there is no row at all, the call never got past the bot server’s checks, or never arrived: see connection troubleshooting. If there is a row, expand it. For a pre-recorded script, Bot Said lines mean the bot spoke. For an AI agent, its lines are labeled AI Opening, AI Voice or AI Bot with the step name. A row with neither means the bot answered but said nothing: see audio troubleshooting.

  4. Check your Immediate Hangups rules

    You

    Open Immediate Hangups and read the active rules. A short or common phrase in a rule is a common reason for a call that ends too early.

  5. Collect the details for support

    Both

    If the checks do not explain it, gather what is listed in What should I send support? and contact the VoiceOI team.

Why won’t my remote agent start, stop or take calls?

I pressed START and nothing happened

Likely cause

START asks your VICIdial server to set the remote agent entry to Active. The row changes only when VICIdial answers that the change worked. Otherwise it stays on START and the page shows no error. The toast “Bulk Operation Initiated … Processing 1 agents in the background” means the request was queued, not accepted.

Likely reasons: the API user on Integrations may not change remote agents; VICIdial has no entry for that User ID (the page links existing agents and creates none); the row’s Dialer Connection points at a different server; the connection on Integrations is switched off; VoiceOI’s master server is not on your VICIdial allow-list, so the request times out; or your VICIdial lacks the remote agent update function in its API. A Test connection pass does not prove START works: it only means the web server answered and VICIdial’s reply held no login or API error.

How to check

Wait about 30 seconds. START runs in the background and VoiceOI waits up to 5 seconds for VICIdial’s answer for each agent, so allow longer with several agents. If the row still shows START, VoiceOI did not get a success answer from VICIdial.

In your VICIdial admin, open Remote Agents and check that the entry for that User ID exists, and read its Status and lines.

On Integrations, check that the connection shows Live, not “Switched off”, then press Test connection. A failure message points at the URL, the credentials or the allow-list.

How to fix it

If the VICIdial entry does not exist, ask the VoiceOI team to create it. Do not add a second entry by hand with another User ID.

Ask your VICIdial admin to confirm that the API user may change remote agents, and check that the master and bot server addresses the team gave you are on your allow-list, on every server of a cluster. The team can check the API user with you.

With more than one VICIdial connection, set Dialer Connection in Edit Details. Check Internal Name and User Group first (see what each button does) and that Lines matches the VICIdial entry. Then press Update Bot and press START again.

If the connection shows “Switched off”, or your VICIdial may lack the remote agent update function, send the details below to support and the team will check.

Still stuck

The time you pressed START (with time zone), a screenshot of the row and the toast, and the Status of the entry in VICIdial.

Remote Agents shows my agent as ready, but VICIdial shows nothing

Likely cause

The status is what VoiceOI saved after the last accepted START, so it can stay ready while VICIdial has no entry, an Inactive entry, or an entry on another server. Common reasons: the row’s Dialer Connection is a different VICIdial server from the one you are looking at, or someone set the entry Inactive in VICIdial after the START.

How to check

In your VICIdial admin, open Remote Agents, search for the row’s User ID and compare the campaign, lines and Status with Edit Details. Then look for the agent’s lines in the live agent view for the campaign.

How to fix it

Correct the row in Edit Details (User ID, Dialer Connection). Check Internal Name and User Group first (see what each button does). Then press Update Bot, or ask the VoiceOI team to do it.

To send START again when the row already shows a ready status, press START in Manage Bot, which always offers both START and STOP. Check that Lines matches the VICIdial entry first.

Still stuck

The row’s User ID, the VICIdial entry’s Status, and the time you last pressed START (with time zone).

Remote Agents shows OFFLINE or START, but calls are reaching the bots

Likely cause

The row shows VoiceOI’s last saved result, so it can show OFFLINE while the entry is Active in VICIdial, for example when the entry was set Active in VICIdial itself or by the VoiceOI team. It can also happen after a START on an entry that VICIdial already had Active: VICIdial’s API notes list a notice instead of a success message for that case (and for STOP on an entry that is already Inactive), so the row keeps its old status although nothing is wrong.

How to check

In your VICIdial admin, open Remote Agents and check the entry’s Status, then check the live agent view for the campaign.

How to fix it

Nothing needs fixing on the calling side. To make the row match, check that Lines matches the VICIdial entry, then press STOP and START from Manage Bot when no calls are running.

Still stuck

The row’s User ID, the VICIdial entry’s Status, and the time you last pressed START or STOP (with time zone).

A remote agent line stays INCALL in VICIdial with no customer on it (stuck slot)

Likely cause

VICIdial still has a call recorded on the line after the call ended. The Remote Agents page cannot show this, because its status is only the last START or STOP. It can happen when a call that the bot ended itself, such as an answering machine or dead air, was not released in VICIdial, or when a bot restart or update during live calls left lines in this state. The VoiceOI team checks the bot server’s side of the call.

How to check

Open the live agent view in VICIdial’s admin and find the line. A line that stays on a call for several minutes after calls have stopped, with no lead on the phone, is stuck.

Open the last call on that line in Call Logs. If it shows as ended while VICIdial still shows the line on a call, send the details below to support.

How to fix it

Do not press STOP or Update Dialer Parameters to clear one line: both apply to every line of that agent. Send the details below to support so the team can check the bot server’s side of the call.

Still stuck

The time of the last call on the line (with time zone), the lead ID, the remote agent’s User ID, and whether a bot update or restart happened around then.

Calls never reach the bot because the External Extension is short or wrong

Likely cause

The External Extension must be the full number your dialplan hook expects: the prefix plus the VICIdial User ID of the bot, for example 888881001 for User ID 1001 when the prefix is 88888. Your prefix may differ, and the VoiceOI team tells you yours. A value of only 88888 carries no User ID, so the call cannot be matched to a bot.

Rows end up short because Single Agent starts with 88888 and stores what you type, and Import CSV stores 88888 on every row when you use the template as it is, because it has no extension column. Bulk Fleet adds each User ID to Base Ext. Extension for you. The Single Agent extension box and the Bulk Fleet Base Ext. Extension box are one box that Edit Details does not clear, so check that it holds only the prefix before you add more agents. The number VICIdial dials is on VICIdial’s own entry. START sends the row’s value, but VICIdial’s API notes list no extension field for that call, so editing the row alone may not change it.

How to check

Read External Extension in Edit Details, then read it on the remote agent entry in your VICIdial admin. Both should be the same full number.

How to fix it

Correct the row in Edit Details. Check Internal Name and User Group first (see what each button does). Check that Lines matches the VICIdial entry, because START sends it. Then press Update Bot, press START again from Manage Bot and place a test call.

If VICIdial’s own entry is wrong, ask the VoiceOI team to correct it. Your VICIdial admin can do it with the team’s guidance.

Still stuck

Both External Extension values, the User ID, and the time of a failed call (with time zone).

Bulk Fleet or Import CSV added fewer agents than I entered

Likely cause

The message after Bulk Fleet always reads “Linked: N, Skipped: 0”, and rows that failed to save are not listed. Import CSV reports “Imported” and “Skipped” counts, but no reason per row. Rows with a blank User ID or a value that is too long are counted in neither figure.

Look for: a blank User ID; a CSV User ID column not named vicidialUser (the importer also reads vicidial_user); a value too long for its field (External Extension holds at most 20 characters); or a Start User ID or Total Bots value in Bulk Fleet that is not a number, which shows an error and adds nothing. A missing name or vicidialUserGroup column loses no rows: each row gets a default name and the User Group AGENTS.

A User ID already on the page is not skipped but added again as a second row (see the duplicate rows entry), so Skipped normally stays at 0. The tools only add rows. They do not check VICIdial, whatever the “Auto-Verification Enabled” box in Bulk Fleet says.

How to check

Search the page with Filter by name or User ID... for the missing IDs, and compare the Total Fleet tile with the number you expected.

Press Download Template under Bulk Actions and compare its headers with your file.

How to fix it

Run the import again with only the missing IDs, using the template headers. Uploading the whole file again would add every existing row a second time.

The import also reads the columns externalExtension, numberOfLines and vicidialCampaignId if you add them, so the file can hold the full extension and the lines.

Without those columns, the import sets External Extension to 88888 and Lines to 1 on every row. START, STOP and Update Dialer Parameters send that Lines value to VICIdial and would cut a larger entry to 1 line. After a CSV import, set the full External Extension and Lines in Edit Details on each row (see the callout under what each button does), or ask the VoiceOI team to link a large set.

Still stuck

The file you used, the message the page showed, and the list of User IDs that did not appear.

The agent still gets calls after I pressed STOP

Likely cause

After an entry is set Inactive, VICIdial may need a short time before it stops sending calls. Other reasons: the STOP was not accepted, so the row still shows a ready status; the row’s Dialer Connection is a different server from the one running the campaign; or a second row or VICIdial entry for the same bots, or another remote agent entry in the campaign, is still Active.

How to check

Wait a minute or two, then check that the row shows OFFLINE and the entry in VICIdial shows Inactive. Search the page for the User ID to see whether there is a second row, and look in VICIdial for other remote agent entries in the campaign.

How to fix it

Fix Dialer Connection first if it is wrong. Check that Lines matches the VICIdial entry, because STOP sends it. Then press STOP again from Manage Bot.

Remove duplicates as described in the duplicate rows entry. To stop all dialing at once, pause or stop the campaign in VICIdial.

Still stuck

The time you pressed STOP (with time zone), the row’s User ID, and the Status of every VICIdial entry in the campaign.

I changed the number of lines and the agent stopped taking calls

Likely cause

Update Dialer Parameters sends Active Lines and the Status switch together, for every line of that agent. With the Status switch off, VoiceOI sets the entry Inactive. The switch starts on only when the row is not OFFLINE, so a row that wrongly shows OFFLINE turns it off and stops a working agent.

How to check

Check the entry’s Status and number of lines in your VICIdial admin.

How to fix it

Open Manage Bot, turn Status on, set Active Lines, and press Update Dialer Parameters. Do this when no calls are running, because it applies to every line.

Still stuck

The row’s User ID, the lines value you set, and the time you pressed the button (with time zone).

I deleted (purged) an agent but VICIdial still sends it calls

Likely cause

Purge Agent and the bulk purge button delete only the row on this page. The remote agent entry in VICIdial keeps its status. If it was Active, VICIdial keeps routing calls to it, and you no longer have a button for it.

How to check

In your VICIdial admin, open Remote Agents and look for the User ID.

How to fix it

Ask your VICIdial admin to set the entry Inactive, or ask the VoiceOI team to link the agent again so you can press STOP. Next time press STOP first, wait for the row to show OFFLINE, then purge.

Still stuck

The User ID you purged, when you purged it (with time zone), and the VICIdial entry’s Status.

There are two rows for the same bot, or two agents that seem to share lines

Likely cause

The same User ID was linked more than once, for example with Single Agent and then Import CSV, or with Bulk Fleet run twice. The page does not check for an existing row. START and STOP on either row act on the same VICIdial entry, and a duplicate usually starts at 1 line.

Line numbers can also overlap. In VICIdial, each extra line of a remote agent gets its own User ID, counting up by one from the starting User ID. A row with User ID 1001 and 5 lines covers 1001 to 1005, so another agent with User ID 1003 overlaps it. VoiceOI also uses these ranges to tell which dialer a line belongs to, so overlaps between two dialers cause wrong-server problems.

How to check

Search the page for the User ID. Two rows with the same User ID are duplicates. The Total Fleet tile counts rows, and one row can hold several lines.

If any agent has more than 1 line, check that no other agent’s User ID falls inside its range.

How to fix it

Keep the row with the correct External Extension, Lines and Dialer Connection. Do not press START or STOP on the duplicate: it sends its own Lines to the real VICIdial entry. Purge the extra row, which removes only the row on this page.

For overlapping ranges, ask the VoiceOI team to renumber.

Still stuck

The User IDs and Lines involved, and a screenshot of the rows next to the VICIdial entries.

I have two VICIdial servers and START, statuses or notes go to the wrong one

Likely cause

VoiceOI picks the dialer from the remote agent’s Dialer Connection first, then from the connection set on the campaign, and for calls from the address the call came from when the account has two or more connections. Otherwise it falls back to the most recently updated VICIdial connection, which can be the wrong server.

If two dialers use the same or overlapping User IDs, VoiceOI cannot tell which one a call belongs to, and refuses some writes, such as notes for the closer, rather than guess.

How to check

Read the Dialer Connection column for each row on Remote Agents. On Integrations, check that each VICIdial connection shows Live (switched on) and press Test connection.

How to fix it

Set Dialer Connection on every remote agent in Edit Details instead of leaving the default. Check Internal Name and User Group first (see what each button does). Leave the Active Mode switch in Edit Details on for bots that take calls: it does not start or stop the bot in VICIdial, but VoiceOI can ignore a row that is off when it matches a line to a dialer by User ID range.

Ask the VoiceOI team to set the connection on each campaign, and to cover every server of a cluster. Keep the User ID ranges different on each dialer, then press Force bot sync on Integrations.

Still stuck

Both connection names, a failed call’s time (with time zone) and the remote agent User ID.

Answered calls go to a human agent instead of the bot

Likely cause

VICIdial decides which ready agent gets an answered call. A bot is a remote agent assigned to a campaign, so if people are logged into the same campaign, VICIdial can choose them. VoiceOI does not route between people and bots. The other reason is a mismatch: the remote agent entry in VICIdial belongs to a different campaign from the one that is dialing.

How to check

In the live agent view in VICIdial’s admin, list who is logged into the campaign. In your VICIdial admin, open the remote agent entry and read its Campaign.

How to fix it

Ask your VICIdial admin to keep people on a separate campaign, or to use a campaign that has only the bots.

If the campaign on the entry is wrong, ask the VoiceOI team to correct it. START does not change a VICIdial entry’s campaign.

Still stuck

The campaign IDs on both sides, the users logged in, and the time of a call that went to a person (with time zone).

How do answering machine detection and Immediate Hangups work?

VoiceOI turns what the person says into text and compares it with your rules. Both checks work on words, not on tones, and neither is perfect: a misheard word, a long greeting or background noise can give a wrong result in either direction, and VoiceOI publishes no accuracy figure. Tune your phrases by reading real calls in Call Logs, then watch the share of AM calls on Dialer Dispositions. A call that is ended as a machine is hung up: VoiceOI has no voicemail drop and leaves no message.

What can end a call as a machine
What ends the callApplies toCode loggedWhere you change it
A rule in the Machines (Voicemail/Beeps) category matches what the person saidAI agent and pre-recorded scriptsAMImmediate Hangups
A rule in the DNC Keywords (Profanity/Abuse) category matchesAI agent and pre-recorded scriptsDNCImmediate Hangups
A long first answer at an AM Detect stepPre-recorded scripts that include that stepAMThe AM Detect step, in Scripts. See Script Builder.
Several turns in a row with nothing heardPre-recorded scriptsAM by defaultUsually an audio problem, not a rule. See audio troubleshooting.
A script that repeats the same step, or runs very many stepsScripts with several stepsAM by defaultThe script in Scripts: look for a loop back to the same step.

Dial method, dial level, drop settings and any machine detection you turned on inside VICIdial belong to your VICIdial. VoiceOI does not change them.

The Immediate Hangups page

The sidebar item Immediate Hangups opens a page titled Automatic Call Rejection, with a list called Rejection Rules.

ControlWhat it does
Add PatternOpens Add New Rule with Pattern Name, Category, Pattern Type (only Phrase Detection (Text)), Keywords to Detect and Action on Match (only Hang up immediately). In Keywords to Detect, type a phrase and press Enter, or paste a comma-separated list. Each phrase is matched on its own.
Upload & Transcribe AudioTurns an audio file, such as a recorded greeting, into text and adds it as a trigger. The text can arrive as one long phrase, which matches only if the call contains all of it. Cut it into shorter phrases.
Export, Import and Search patterns...Export downloads your rules as a JSON file, Import reads such a file, and the search box finds rules by name or phrase.

How rules are matched

  • A rule matches whole words and whole phrases, anywhere in what the person said, and capital letters do not matter. “leave a message” matches “please leave a message after the tone”. A rule for “mail” does not match “email”.
  • Rules are checked on each thing the person says, from their first reply on, before the bot answers.
  • Only text is matched. A beep or tone is not a word, so the category name “Voicemail/Beeps” does not mean beeps are detected.

Changes reach your bots on their next sync, which can take longer than a minute. To push them now, press Force bot sync on Integrations. “Your bot is fully in sync” or “All N bots are fully in sync” means the change arrived. “No bot answered” or “Sync not delivered” means the bot servers need the VoiceOI team.

Codes you will see on these calls

CodeWhat it means here
DAIRDead air: no words were heard from the person at any point in the call, even if there was noise on the line. Dialer Dispositions words its hint as “The bot never heard a sound from the other side”, but a call with noise and no words is still DAIR.
NAWords were heard from the person, but nothing the bot could use as an answer. With an AI agent it also covers a person who spoke earlier and then stopped answering.
NPNo 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.

AM and DNC are in the first table of this section, and the full list is in Which statuses does VoiceOI write back to VICIdial?. VICIdial sets a status only if the campaign’s status list has it. For any other, the lead keeps the status it had. If AM or DAIR never appear on leads in VICIdial, ask your VICIdial admin to check that list. See also audio, transfer and disposition troubleshooting and the glossary.

Why do bots hang up on people, pitch voicemails or stay silent?

Bots hang up on real people (false machine detection)

Likely cause

Any reason in the first table of the previous section can hang up on a real person. A rule on Immediate Hangups can match words the person said (see the next entry), including background noise, a television or a second person that the recognizer wrote as a greeting. An AM Detect step can treat a long first answer as a machine.

A pre-recorded script that heard nothing for several turns in a row, or a script that ran very many steps or came back to the same step many times, logs AM by default. The loop case ends with the event “Runaway call force-ended” and a reason.

How to check

Open the call in Call Logs and expand the row. The User Spoke lines show what was heard.

Press Show System Nodes. The event that ended the call starts with “Answering Machine:” and names the rule or the reason, or it reads “Runaway call force-ended” and gives the reason.

To see the calls of one campaign that ended as AM, set Campaign and set Status to “AM · Answering machine” in Call Logs.

How to fix it

If a rule matched, fix the rule as described in the next entry.

For long-answer cut-offs or a “Runaway call force-ended” event, open the script in Scripts and look at the AM Detect step, or for a step that loops back to an earlier one. The VoiceOI team can review it with you.

If many calls end for silence, treat it as an audio problem. See audio troubleshooting.

Still stuck

The call’s time (with time zone), the phone number and the text after “Answering Machine:”.

A normal sentence ended the call as a machine or as DNC

Likely cause

Rules match whole words and phrases anywhere in what the person says, on every turn, and ignore capitals. A short or common phrase in a rule, such as “not available”, also matches a person who says “I’m not available on Tuesdays”. The same applies to the DNC Keywords category: a word in a rule there ends the call and logs DNC whenever a person uses it.

How to check

Read the User Spoke lines in Call Logs and press Show System Nodes to see which rule is named on the “Answering Machine:” event. On Immediate Hangups, type a word from the person’s sentence into the search box and look at the active rules that contain it.

How to fix it

For a rule in Machines (Voicemail/Beeps): replace a short phrase with a longer one that only a greeting would contain, such as “the person you are trying to reach is not available”, or switch the rule off with its Status switch.

For a rule in DNC Keywords (Profanity/Abuse): do not delete or switch off opt-out wording only to stop a false match. Narrow it to the exact words people use when they opt out, then re-test with real calls. A rule you remove no longer catches a real opt-out. You decide which wording to catch.

Then press Force bot sync on Integrations.

Still stuck

The rule’s name, the person’s words from User Spoke, and the call’s time (with time zone).

The bot talks to voicemail greetings (machines are not detected)

Likely cause

No active rule matches the words of that greeting. Rules match text only, so a beep does not count, and a greeting worded differently from your phrases, or misheard by the recognizer, slips through. Other reasons: the rule is switched off, the phrase sits in the DNC Keywords category so a match logs DNC instead of AM, or the account has no active rules at all.

How to check

In Call Logs, find long calls with one long speaker: the User Spoke lines show the greeting as the recognizer wrote it. Open Immediate Hangups and check that matching rules exist, are switched on, and are in the Machines (Voicemail/Beeps) category.

How to fix it

Press Add Pattern, choose the Machines (Voicemail/Beeps) category, and add phrases copied from real greetings in User Spoke. Use phrases short enough to match, but not so short that a person would say them. Upload & Transcribe Audio can also turn a recording into phrases.

Press Force bot sync, then test again. Some greetings will still slip through, and VoiceOI cannot leave a message on them.

Still stuck

The call’s time (with time zone), the phone number, and the greeting text from User Spoke.

I expected beeps or ring tones to count as a machine

Likely cause

Detection works on words only (see how rules are matched). A beep or ring-back tone is not a word, and the category name “Machines (Voicemail/Beeps)” does not add tone detection.

How to check

In Call Logs, open a call that reached voicemail and read the User Spoke lines. If they hold the greeting words, a rule can match them. If they are empty, there is nothing to match.

How to fix it

Add phrases copied from the greeting words you can see, as in voicemails that get a pitch. Any machine detection you turned on inside VICIdial is VICIdial’s own, and VoiceOI does not change it.

Still stuck

The call’s time (with time zone), the phone number and the User Spoke lines.

The person answers and hears nothing from the bot (dead air at pickup)

Likely cause

The silence can include the time VICIdial takes to connect the answered call to the remote agent, and then the bot’s first step. VICIdial’s own install notes (dated 2010) warn that a remote agent needs extra time to dial a number out. The first step of a pre-recorded script may also be a listen step that waits for the person to speak. VoiceOI publishes no figure for this time.

Another cause is capacity. One bot takes one call at a time, so if VICIdial dials faster than there are free bot lines, an answered call can have no free bot. Dial level and drop settings belong to your VICIdial.

How to check

Place a test call to a phone you hold and time it. In Call Logs, compare the time of the first bot line (Bot Said, AI Opening, AI Voice or AI Bot) with the call’s start.

In VICIdial, compare the dial level with the number of Active lines.

How to fix it

Ask your VICIdial admin to lower the dial level, or ask the VoiceOI team about more lines or bots, and about the script’s first step. See why remote agents add a step.

If the bot goes quiet in the middle of a call instead, open the call in Call Logs. If the bot’s lines stop while the User Spoke lines continue, send the call to support. Otherwise see audio troubleshooting.

Still stuck

The time of a slow call (with time zone), how many seconds of silence the person heard, the campaign, the dial level and the number of lines.

Many calls end as DAIR (dead air)

Likely cause

DAIR means VoiceOI heard no words from the person at any point in the call, even if there was noise on the line. This happens on a silent connect, or when the other side’s audio never reaches the bot.

NA is different: words were heard from the person, but nothing the bot could use as an answer. A person who picks up and says nothing is normally DAIR, even on a noisy line, unless the recognizer wrote the noise down as words. Then the call has words and is NA.

How to check

On Dialer Dispositions, pick the period and read the Dead air group. In Call Logs, filter the Status list on DAIR - Dead Air, and set Campaign to compare one campaign at a time. Call Logs has no list filter, so compare lists in your VICIdial reports.

Place your own test call and check that the bot hears you.

How to fix it

If only some lists or carrier routes show it, the cause is probably in that list or route. Check with your VICIdial admin, and send the examples below to support so the team can compare them.

If your own test call is also DAIR, treat it as an audio problem. See audio troubleshooting.

Still stuck

The time range, the campaign, and three example calls with time (with time zone) and phone number.

The bot talks over the person, or cuts them off

Likely cause

By default the AI agent finishes what it is saying, and a pre-recorded step plays to the end, so a person who talks early is talked over. The opposite problem is a bot that replies too soon: the AI agent decides a sentence is finished after a short pause, and a pause for breath looks the same.

How to check

In the editor, read Interruptions and How fast the agent replies on the Handoff tab. For a pre-recorded script, open the step and read the Allow Interruption switch.

How to fix it

To let people cut the agent off, turn Interruptions on, so it reads “The caller can cut the agent off”. Line noise can then cut the agent off too.

If the bot jumps in too early, raise Reply delay under How fast the agent replies. The editor suggests 700 ms for most campaigns and allows 300 to 1500 ms.

In pre-recorded scripts on this path, a Play Audio step always plays to the end. On a Listen step that uses Turbo or Turbo 2.0, turn Allow Interruption on. See AI Voice Agent editor and Script Builder.

Still stuck

The script’s name, the call’s time (with time zone), and the bot and User Spoke lines around the problem.

A person asked to be taken off the list and the bot kept talking

Likely cause

VoiceOI ends a call on opt-out wording only if a rule in the DNC Keywords category contains it, or the AI agent chooses its “Do not call” outcome. No phrases ship by default, so wording that is not in a rule is not caught.

A call that ends as DNC is logged with that code. VoiceOI does not add the number to any list. On a VICIdial account the DNC status is written to the lead only if your campaign’s status list has it, and whether the lead is dialed again depends on your VICIdial campaign and list settings. You add the number to your own do-not-call list.

The default closing line of the AI agent’s “Do not call” outcome says “Understood, I will remove you from our list.” VoiceOI does not remove the person, so change that line on the Outcomes tab, or make sure you remove the number yourself.

How to check

Read the User Spoke lines in Call Logs for the exact words.

On Immediate Hangups, search for those words in the active DNC Keywords rules. For an AI agent, open the Outcomes tab and read the “Do not call” outcome.

How to fix it

Add the wording as a phrase to a rule in the DNC Keywords category, then press Force bot sync.

Add the number to your own do-not-call list, for example in VICIdial. Scrubbing against the registries that apply to you stays with you.

Still stuck

The call’s time (with time zone), the phone number, and the person’s words from User Spoke.

What should I send support?

Send these details with your message so the VoiceOI team can find the call quickly. Use Contact to reach the team.

  • The time of the call or of the button press, with the time zone.
  • The lead ID, the phone number and the VICIdial campaign ID.
  • The remote agent’s User ID and External Extension, and what the Remote Agents row showed (toast, Live Status, Lines, Dialer Connection), with a screenshot of the row and of the matching VICIdial entry.
  • The outcome code of the call (for example AM, DAIR or NA) and, for machine problems, the User Spoke lines and the text after “Answering Machine:”.
  • What changed recently: a VICIdial upgrade, a new server, an allow-list change or a dialplan edit.

Common questions

What does Live Status mean on the Remote Agents page?

Live Status shows the last result VoiceOI saved when a START or STOP was accepted. It does not read VICIdial, so it can differ from what VICIdial is doing. Open the live agent view in VICIdial’s admin to see the real state.

Does START log the bot in to VICIdial, and how long after STOP do calls stop?

No login happens. START asks VICIdial to set the remote agent entry to Active, and STOP sets it to Inactive. Both run in the background, and the page shows Bulk Operation Initiated for every request, which means it was queued, not accepted. The row changes only if VICIdial accepted the change, which can take about 30 seconds or longer with several agents. After a STOP, VICIdial may need a short time before it stops sending calls, and VoiceOI publishes no figure for it. If calls continue after a minute or two, check that the STOP was accepted and that no second entry is still Active.

Can pressing START or STOP change the number of lines in VICIdial?

Yes. START, STOP and Update Dialer Parameters each send the row’s Lines to VICIdial and replace the number of lines on the entry. A row linked with Single Agent, Bulk Fleet or Import CSV has a default of 1 line, so pressing one of them can cut a larger entry, for example 25 lines, down to 1. Set Lines in Edit Details to match the VICIdial entry first.

Can the bot leave a voicemail message when it detects an answering machine?

No. VoiceOI has no voicemail drop. When it detects a machine it hangs up and logs the call as AM. Detection works on the words it hears and is not perfect, so tune your Immediate Hangups phrases on your own lists.

How accurate is answering machine detection?

VoiceOI publishes no accuracy figure. Results depend on your phrases, the greetings your leads’ phones play and how you tune them. Read real calls in Call Logs, add the greetings that slipped through, and remove phrases that real people say.

Which Immediate Hangups category should I use for do-not-call wording?

Use the DNC Keywords category. A matching rule ends the call and logs it as DNC. No phrases ship by default, so you write them. VoiceOI does not add the number to any list. On a VICIdial account the DNC status is written to the lead only if your campaign’s status list has it. Keeping your own do-not-call lists stays with you.

Why do answered calls go to a human agent instead of the bot?

VICIdial decides which ready agent gets an answered call. If people are logged into the same campaign as the bot’s remote agent, VICIdial can choose them. VoiceOI does not route between people and bots. Keep people on a separate campaign, or use a campaign that has only the bots.

Related

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.

Questions about your setup? Talk to the VoiceOI team.