An alternative to Asterisk native AMD()

The AMD() application has shipped with Asterisk for years, but it was designed around silence and duration rules, not around the actual content of the audio. In production with local accents and carrier messages, that means real people get their calls cut.

How AMD() decides and why it fails

AMD() measures initial silences, greeting length and the number of detected words to infer whether there is a human or a machine on the other side. The problem: a natural human greeting, such as "Hello, good afternoon, who am I speaking with?", can last as long as a voicemail message, and the app has no way to tell real content from a recording.

✕ Native AMD()

  • Silence and duration rules; does not analyze content
  • Tuned for North American English by default
  • No distinction between voicemail, dead line or still ringing
  • Requires manual tuning of initial_silence, greeting, etc. per campaign

✓ NeerBat

  • AI model trained on real Spanish-language recordings
  • 13 distinct results: voicemail, human, invalid number, busy, powered off, and more
  • No parameters to tune per campaign
  • Hangs up in under 2 seconds, over AMI

Migrating from AMD() to NeerBat

There is no need to rewrite the whole dialplan. Where today you have something like:

; current dialplan with native AMD exten => _X.,1,Answer() same => n,AMD() same => n,GotoIf($["${AMDSTATUS}" = "MACHINE"]?colgar:pasar) same => n(colgar),Hangup() same => n(pasar),Dial(SIP/agente)

The NeerBat agent connects over AMI independently of the channel, with no need for AMD() to remain in the extension. The decision to hang up or pass through is made by the external agent, not the dialplan.

What does NOT change

Frequently asked questions

Can I run AMD() and NeerBat in parallel to compare?

Yes, and it is the recommended way to migrate: run NeerBat in passive mode (without hanging up) alongside your current AMD() for a few days, compare results, and only turn off the native AMD once you confirm the improvement.

What about inbound calls?

NeerBat automatically identifies inbound calls to an agent (INVITE with a local destination) and excludes them from analysis; it never cuts an inbound call that is already being handled.

Try NeerBat alongside your current AMD

1,000 free detections to compare results before migrating.

Create free account