VICIdial AMD setup: step-by-step guide
This VICIdial AMD setup guide adds nomoVM to a VICIdial server in about 15 minutes: create a key, install one script, add one extension and switch one campaign. It works on ViciBox 11 and 12, scratch installs and GoAutoDial, on Asterisk 13 or newer.
1. Create a WS key
Sign up (free, no card), open WS keys and create one key per dialer server, named after the server. Copy the key: it is shown once.
2. Install the client on each dialer
cd /var/lib/asterisk/agi-bin
curl -fsSLO https://nomovm.com/assets/nomovm.agi.py
chmod 755 nomovm.agi.py
python3 --version # 3.6 or newer; ViciBox 11 and 12 have it
You can also download it from the WS keys page of your dashboard. It uses only Python's standard library.
3. Test the connection
python3 /var/lib/asterisk/agi-bin/nomovm.agi.py --test wss://amd.nomovm.com/ YOUR_KEY
It streams 3 seconds of silence like a real call and should print AMDSTATUS=MACHINE AMDCAUSE=SILENCE in about 2 seconds. FALLBACK AUTH means the key is wrong; FALLBACK NOSERVER means the server can't reach amd.nomovm.com on port 443.
4. Add the AMD extension
VICIdial sends answered AMD calls to extension 8369. Add a new extension 8370 in /etc/asterisk/extensions.conf, in the same context as your 8369 (usually [default]):
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)
VD_amd.agi and agi-VDAD_ALL_outbound.agi lines exactly as your existing 8369 has them; some installs pass extra options. Copy them from your 8369 rather than from here.Reload the dialplan: asterisk -rx "dialplan reload", then check it: asterisk -rx "dialplan show 8370@default".
5. Switch one campaign
- In the VICIdial admin, open Campaigns and pick one campaign to start with.
- Set Routing Extension to
8370(it is8369when Asterisk AMD is on). - Leave AMD send to VM exten and your voicemail message settings as they are.
- Submit.
6. Check it works
- Open the nomoVM dashboard: calls appear within seconds, with verdicts and causes.
- Listen to a few recordings on the Call logs page to see what the model heard.
- In VICIdial, compare the campaign's AA (answering machine) and agent-connected counts with the days before.
When you're happy, switch the other campaigns. To measure the difference properly, follow how to test AMD accuracy.
Roll back
Set the campaign's Routing Extension back to 8369. Nothing else changed.
Troubleshooting
Every call shows FALLBACK in Asterisk's log
Run the test in step 3. AUTH: check the key in the dialplan line. NOSERVER: check outbound HTTPS (port 443) from the dialer and DNS for amd.nomovm.com.
No calls appear in the dashboard
The campaign is still on 8369, or calls aren't reaching AMD. Check the Routing Extension and that the dialplan reload worked.
Agents hear a delay before the customer
Verdicts take about 2 seconds after answer, the same as a typical AMD setting. If it's longer, check the elapsed time in the call logs and the network path from the dialer.
"python3: not found"
Install Python 3 from your distribution's packages (on openSUSE-based ViciBox: zypper install python3).
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.