nomoVM
VICIdial integration

VICIdial AMD with AI: keep the live people

nomoVM replaces VICIdial AMD with an AI model while keeping everything VICIdial expects. The same AMDSTATUS variable, the same VD_amd.agi, the same campaign settings. One EAGI script and a copy of your AMD extension, and live people stop being dropped as voicemail.

94.9%

of live people sent to agents in our hand-labelled test

~2 s

from answer to verdict for most calls

0

calls lost when something fails: FALLBACK hands the call to Asterisk AMD()

Why VICIdial's built-in AMD drops live people

VICIdial's AMD is Asterisk's AMD() application with settings from amd.conf. It decides from silence and word timing, not from what the answer sounds like. A person who says "Hello?" and waits looks like a machine; a short voicemail greeting looks like a person. Campaigns that turn AMD on usually see two things: fewer voicemails reach agents, and fewer live people reach agents too. Many centers turn AMD off for that reason and let agents listen to voicemail all day instead.

If your AMD is hanging up on live people or missing voicemail, tuning amd.conf moves the errors around but does not remove them.

How nomoVM fits into VICIdial

VICIdial sends answered calls with AMD on to an extension (8369 by default) that runs AMD() and then VD_amd.agi. nomoVM adds one step before VD_amd.agi:

exten => 8370,1,AGI(agi://127.0.0.1:4577/call_log)
exten => 8370,n,EAGI(nomovm.agi.py,wss://amd.nomovm.com/,YOUR_KEY,4500)
exten => 8370,n,GotoIf($["${AMDSTATUS}" = "FALLBACK"]?native)
exten => 8370,n(vdamd),AGI(VD_amd.agi,${EXTEN})
exten => 8370,n,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB-----${CONNECTEDLINE(name)})
exten => 8370,n,Hangup()
exten => 8370,n(native),AMD(2000,2000,1000,5000,120,50,4,256)
exten => 8370,n,Goto(vdamd)
  • nomovm.agi.py reads the call's audio from Asterisk, streams it to nomoVM and sets AMDSTATUS and AMDCAUSE. It needs only Python 3.6, which ViciBox 11 and 12 already have.
  • VD_amd.agi works as before: HUMAN goes to an agent, MACHINE gets the AA status, a hangup or your voicemail drop message.
  • FALLBACK runs your old AMD() line, so a wrong key or a network problem never costs you a call.

Then change the campaign's Routing Extension from 8369 (VICIdial's AMD extension) to 8370; keep your AMD send to VM exten setting as it is. Test on one campaign, compare, switch the rest. The step-by-step guide has every screen.

What changes for your agents

  • More "Hello?" calls arrive at agents, fewer are dropped as AA.
  • Fewer voicemail greetings and carrier messages reach agents.
  • Calls screened by Google or iPhone assistants are reported separately as SCREENING.
  • Answer-to-agent time stays about the same: about 2 seconds, like a typical AMD setting.

Works with your VICIdial setup

Any VICIdial on Asterisk 13 or newer: ViciBox, scratch installs, GoAutoDial, multi-server clusters. Each dialer server connects on its own; use one key per server so the dashboard shows each one's calls. Any carrier works, because nomoVM listens to the audio your server already has.

VICIdial AMD questions

Does it replace VD_amd.agi?

No. VD_amd.agi still decides what to do with the call; nomoVM only sets the AMDSTATUS it reads.

What timeout should I use?

4500 ms. The service answers at about 2 seconds, or at 3.2 seconds for unclear calls, and the timeout must cover that plus network time.

Can I keep using voicemail drop?

Yes. VICIdial's AMD send-to-VM settings work exactly as with Asterisk AMD.

Does it need a VICIdial upgrade?

No. It works with the VICIdial and Asterisk versions you have, on Asterisk 13 or newer.

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.