Voice AI

Voicemail detection for AI voice agents: stop the bot talking to voicemail

An AI voice agent that speaks the moment a call connects will deliver its opening line to voicemail greetings, IVRs and call screeners. VM Hunter tells the agent what answered, about two seconds in, so it knows whether to talk, wait or hang up.

Outbound voice agents inherit the dialer's oldest problem in a new form. A human agent hears a voicemail greeting and hangs up. A bot hears nothing it was not told to listen for, so it starts the script. The call is billed, the conversation budget is spent, and if the script runs long enough the voicemail records a fragment of it.

The fix is the same one dialers use: decide what answered before anyone speaks. VM Hunter listens to the first two seconds of the callee's audio and returns a verdict with a reason. The agent gates on it.

What actually answers an outbound call

On real campaign traffic, live people are a minority of answered calls. A typical mix from our logs:

What answeredWhat the agent should do
Voicemail greeting (personal, business or carrier)Hang up, or wait for the beep and leave a short message
IVR or hold promptHang up, or navigate if that is the point of the call
Call screening (iPhone, Google, call blockers)State who is calling and why, then wait for the person
Disconnected number (SIT tone)Retire the number
No audio at allWait briefly, then hang up; usually a trunk problem
A live personStart the conversation

VM Hunter labels each of these, so the agent's first action can depend on which one it is.

How the integration works

  • At answer, fork the callee's audio to VM Hunter over the WebSocket API: 8 kHz 16-bit PCM in 20 ms frames.
  • Keep the agent silent for the detection window. Do not play a greeting; silence is what makes a person say "Hello?".
  • Read the verdict, about two seconds in, and branch: speak, wait, leave a message, or hang up.
  • Log the AMDCAUSE with the call so you can see what your list is made of.

On Asterisk or FreeSWITCH the bundled clients do the fork and set channel variables your agent logic can read. On Twilio the Media Streams bridge redirects the call to one TwiML for a person and another for a machine. Any other stack that gives you the raw audio can use the API directly; the clients are open source on GitHub as references.

Why not the platform's built-in AMD?

  • Evidence. Built-in AMD returns a label. VM Hunter logs the transcript, reason and audio for every call, so a wrong verdict can be heard and fixed rather than guessed at.
  • Categories. Call screening and disconnected numbers are separate verdicts, not folded into "machine".
  • Portability. One detector across every platform you run, with the same verdicts and the same logs.
FAQ

Questions

Why does an AI voice agent need voicemail detection?

Without it the agent starts its script the moment the call is answered, whether a person or a voicemail greeting answered. The result is a bot talking over a greeting, leaving half a script after the beep, or spending its conversation budget on an IVR. Detection in the first two seconds lets the agent wait, speak, or hang up.

How does VM Hunter plug into a voice agent?

Through the audio stream. If your agent stack controls the telephony, through Asterisk, FreeSWITCH, Twilio Media Streams or a SIP layer you run, you fork the callee's audio to VM Hunter at answer and gate the agent on the verdict. If the platform hides the call audio from you, you cannot add an external detector.

Does it work with Vapi, Retell, LiveKit or Pipecat?

There is no native plugin for any hosted agent platform today. Frameworks where you own the telephony layer, such as a LiveKit or Pipecat deployment behind your own SIP or Twilio setup, can use the WebSocket API or the Twilio bridge. Hosted platforms that expose only their own AMD cannot. Tell us which platform you use and we will say plainly whether it fits.

What should the agent do with each verdict?

HUMAN: start the conversation. MACHINE with voicemail wording or a beep: hang up or leave a short message after the beep. CALLGUARD: say who is calling and why, then wait for the person. DISCONNECT: retire the number. INITIALSILENCE: wait briefly or hang up; many of these are trunk problems rather than people.

How long does it take?

About two seconds after answer on a normal call, up to three if the callee is still talking. The agent should play nothing during that window; silence is what makes the callee speak.

Test it with your agent

Get a free key, fork one campaign's audio, and read the verdicts in your call logs. 5,000 calls a month on the free plan.