Twilio AMD vs a Dedicated Detector: What Each Returns, What Each Costs, and How to Compare Them
Twilio's answering machine detection is one parameter on the call. That is enough for notifications and not enough when an agent is waiting on the verdict. What AnsweredBy does and does not tell you, what a dedicated detector returns instead, and a one-day test that gives you your own answer.
Marketing Team
VM Hunter

If you dial from Twilio, answering machine detection is one parameter away: set MachineDetection on the call and Twilio tells you what answered. For a lot of use cases that is the right choice. This post is about when it is not, what a dedicated detector returns that Twilio's does not, and how to compare the two on your own calls rather than on anyone's marketing page.
Everything here about Twilio's AMD comes from Twilio's own documentation at the time of writing; check it for current behaviour and pricing.
What Twilio's AMD gives you
Turning it on is one parameter on the outbound call:
MachineDetection=Enablereturns a result as soon as Twilio decides.MachineDetection=DetectMessageEndkeeps listening through a voicemail greeting and tells you when the beep has played, which is what you want for leaving a message.
The result arrives in the AnsweredBy parameter of your status callback: human, machine_start, machine_end_beep, machine_end_silence, machine_end_other, fax, or unknown. With AsyncAmd the call connects immediately and the result comes later by webhook, so an agent or bot is not kept waiting.
There are timing knobs (how long to wait for speech, how much silence ends a greeting, an overall timeout), and a per-call fee for AMD on top of the voice minutes, listed on Twilio's pricing page.
It is simple, it is on the same bill, and there is nothing to host.
What it does not tell you
Why. AnsweredBy=machine_start covers a voicemail greeting, a carrier "the number you have dialed" message, an IVR, a call-screening prompt and a fax tone that was not recognised as fax. They need different handling. A disconnected number should leave your list; a screened call has a person behind it; a voicemail might deserve a message. One label cannot drive those decisions.
Evidence. When an agent says "that was a person and the system hung up", AnsweredBy=machine_start is the only record. There is no transcript of what the detector heard and no way to replay its decision.
Portability. It works on Twilio calls only. If you also run a VICIdial cluster, or a FreeSWITCH-based dialer, or an AI voice agent on another platform, you have two detectors with different verdicts and different blind spots.
Call screening. iOS 26's Ask Reason for Calling and Google Call Screen answer a growing share of consumer calls with a sentence a person then reads. Twilio's documentation has no category for it; it falls under machine. On one customer's traffic, that was 15% of answered calls.
What a dedicated detector returns
VM Hunter returns two values per call: AMDSTATUS (HUMAN or MACHINE) and AMDCAUSE, the reason. The reasons are the point:
| AMDCAUSE | What it means | What to do |
|---|---|---|
HUMAN | A greeting then a pause, a question, or a live-person phrase | Connect |
MACHINE | Voicemail or IVR wording, or a greeting that ran on without pausing | Drop, or leave a message |
MACHINE_BEEP | A voicemail beep | Leave a message now |
DISCONNECT | SIT tones: disconnected or changed number | Retire the lead |
CALLGUARD_PHRASE:<phrase> | Call screening; the matched phrase follows | Say who is calling, then connect |
INITIALSILENCE | No speech in the window, or no audio at all | Investigate the trunk if it is common |
Every call is logged with its transcript, reason and a short audio sample, so a disputed verdict is settled by listening, not by argument. The same detector runs on VICIdial, Asterisk, FreeSWITCH and the WebSocket API, so one set of verdicts covers every platform.
On Twilio specifically, VM Hunter runs through a bridge: your TwiML starts a Media Stream to the bridge, the bridge gets the verdict and redirects the call to one TwiML for a person and another for a machine. The bridge is open source and, as of October 2026, in beta: tested against simulated Media Streams, not yet on a live Twilio call. That is a real caveat and it belongs in the comparison.
Speed
Both decide from the first seconds of the answer, and both depend on how quickly the callee speaks. VM Hunter's verdict typically arrives about two seconds after the first audio frame, up to three if the callee is still talking. Twilio documents its own detection parameters and timeouts. The only number that matters is the one from your calls, with your carrier and your lists, measured from your own timestamps.
Cost
Twilio charges per call for AMD, on top of voice minutes. VM Hunter is priced per call analysed, with a free plan of 5,000 calls a month and paid plans from $100 a month; the Starter plan is 3 million calls at 50 calls per second. Which is cheaper depends on volume. At small volumes Twilio's per-call fee is hard to beat for simplicity; at campaign volumes a plan with a fixed monthly cost usually wins. Do the arithmetic for your own numbers before deciding on cost alone.
When Twilio's AMD is the right choice
- You are on Twilio, you want detection with no extra moving parts, and a wrong verdict costs you a replayed notification rather than a lost lead.
- You do not need to know why a call was called a machine.
- Your volume is small enough that a per-call fee is cheaper than a plan.
When a dedicated detector is the right choice
- Live agents or a voice agent are waiting on the verdict, so false machines cost reachable people and false humans cost conversation time.
- You want call screening and disconnected numbers handled differently from voicemail.
- You need to audit verdicts.
- You run more than one platform.
How to compare them on your own calls
- Split one list across two campaigns at random: one with
MachineDetectionon, one through the VM Hunter bridge. - Record both legs.
- The next day, take 100 calls from each, listen to the first three seconds, and mark what was actually there.
- Score by what was audible in the window, not by how the call ended. Count people dropped and voicemails connected separately.
- Compare time to verdict from your own timestamps, and total cost from your own bills.
That is a day of work and it produces the only comparison that applies to you. The Twilio integration guide has the bridge setup; the comparison page has the side-by-side table.