AI answering machine detection for VICIdial
nomoVM is AI answering machine detection that listens to how a call is answered, not just how long the silence is. Live people reach your agents, voicemail and carrier recordings are dropped, and the decision takes about 2 seconds.
Stock AMD hangs up on the people you paid to reach
Asterisk's AMD(), which VICIdial and GoAutoDial use out of the box, decides by counting silences and word lengths. That works on a quiet line with a polite caller. Real answers are messier.
Live people dropped
Someone says "Hello?", waits, says "Hello?" again. Long silence plus short words looks like a machine, so the call is dropped and a lead is burned.
Voicemail sent to agents
A short greeting ("Hi, it's Sam, leave a message") ends before AMD is sure. The agent hears a beep instead of a customer, again and again.
Dead air and ghost calls
While AMD waits to be sure, the person who answered hears nothing and hangs up. Too many of those and your numbers get flagged as spam. Why dead air happens
Measured, not promised
Results on 400 hand-labelled calls the model never saw in training, from a real outbound day. We publish where it fails too.
of live people sent to agents
of the calls sent to agents were people
answer to verdict for most calls; unclear ones get up to 3.2 s
known carrier recordings recognised from the very first call
How it works
One script on your dialer, one change to your dialplan. Your agents, carriers and campaigns stay as they are.
The call is answered
Your VICIdial or Asterisk server runs
nomovm.agi.pyin the AMD extension. It streams the first seconds of audio to nomoVM over an encrypted WebSocket.The model listens
An acoustic model hears the difference between a person's hello and a recorded greeting. Tone detectors catch busy, SIT, fax and ringback; a fingerprint check catches the same "Hello?" recording played to thousands of numbers.
Your dialplan gets a verdict
AMDSTATUSis set to HUMAN or MACHINE, the same variable VICIdial'sVD_amd.agialready reads. If anything goes wrong, it is FALLBACK and Asterisk's own AMD() takes the call.
Built for outbound call centers
Acoustic AI model
Trained on real answered calls at 8 kHz telephone quality. It hears breath, room noise and the rhythm of a real hello. How the AI decides
Call screening detection
Google Call Screen and iPhone screening answer like a person but are machines. nomoVM reports them as SCREENING so you choose what happens. More on screening
Tones and carrier recordings
Busy, reorder, SIT, fax and ringback are recognised by their frequencies, and repeated carrier recordings by their fingerprint, before the model is even asked.
Never loses a call
Wrong key, plan limit reached, service unreachable: the call falls back to Asterisk AMD() before any audio is used. Fallback calls are never billed.
Call logs and recordings
Every verdict with its cause, confidence and timing. Listen to the audio the model heard, export CSV, delete recordings any time, keep them 1 to 90 days.
White-label ready
Run the WebSocket and dashboard on your own domain with your logo, for your own customers. White-label AMD
Works with the dialer you already run
nomoVM hears the audio your Asterisk or FreeSWITCH server already has, so it works with any carrier and any SIP trunk. Nothing about your call routing changes.
- VICIdial and ViciBox 11 and 12
- GoAutoDial
- Asterisk 13 and newer, any dialplan
- FreeSWITCH with mod_audio_stream, including FusionPBX
- Anything else that can stream 8 kHz audio: WebSocket API
The whole dialplan change
exten => 8370,n,EAGI(nomovm.agi.py,wss://amd.nomovm.com/,KEY,4500)
exten => 8370,n,GotoIf($["${AMDSTATUS}" = "FALLBACK"]?native)
exten => 8370,n(vdamd),AGI(VD_amd.agi,${EXTEN})
Copy your existing 8369 AMD extension, add these lines, and point the campaign at 8370.
Simple pricing
Pay for calls judged. Unlimited servers on every paid plan. Fallback calls and health checks are never billed.
More than 10 million calls a month? Talk to us about Enterprise. Full pricing details
Common questions
What is answering machine detection (AMD)?
Answering machine detection is the step where an outbound dialer decides, in the first seconds after a call is answered, whether a live person or a machine picked up. Live people are connected to an agent; voicemail, carrier messages and fax tones are dropped or get a recorded message.
How accurate is nomoVM?
On 400 hand-labelled calls the model had never seen, nomoVM sent 94.9% of live people to agents, and 88% of the calls it sent to agents were people. The full numbers, including where it fails, are on the measured accuracy page.
How long does a verdict take?
About 2 seconds after answer for most calls. When the first 2 seconds are unclear (5 to 9% of calls), it listens up to 3.2 seconds before deciding.
What do AMDSTATUS and AMDCAUSE mean?
AMDSTATUS is HUMAN or MACHINE, the same variable VICIdial's VD_amd.agi already reads. AMDCAUSE says why: HUMAN, MACHINE, SCREENING, SILENCE, TONE, BUSY or UNKNOWN. AMDSTATUS is HUMAN only when AMDCAUSE is HUMAN.
What happens if the service is down or my key is wrong?
The client sets AMDSTATUS to FALLBACK before any audio is used, so your dialplan runs Asterisk's own AMD() for that call. No call is lost and fallback calls are never billed.
Stop sending voicemail to your agents
30,000 calls a month free. No card, no setup fee. Your dialer falls back to Asterisk AMD() on its own if anything goes wrong.