Why hosted VICIdial providers should offer AMD as an add-on
If you host VICIdial for other call centers, you already hear about answering machine detection. It comes up as support tickets: agents getting voicemail greetings, customers saying their AMD is "hanging up on people", complaints about silent calls. Most of those tickets trace back to Asterisk's built-in AMD(), which VICIdial runs by default through extension 8369.
AMD() decides with timing rules: how long the initial silence is, how long the greeting runs, how many words it hears. Real people break those rules every day, and tuning one setting tends to create a different mistake. You can spend hours on amd.conf for each customer and still not fix it. Our post on what AMD false positives cost explains why this matters so much to your customers' results.
That makes better AMD a natural add-on for a hosting business:
- It solves a problem customers already have. You aren't creating demand; you're answering tickets you already get.
- It is recurring revenue. AMD is used on every answered call, every month, so it fits a monthly bill.
- It sets you apart. Most VICIdial hosts offer the same stack. A branded AMD option is something customers can see and compare.
- It doesn't add infrastructure. With a hosted service there are no new servers or hardware to run, and no carrier change for your customers.
What white label answering machine detection needs
Reselling someone else's service under their name is easy. Making it truly yours takes more. Before you choose a provider, check that it covers each of these:
| Requirement | Why it matters |
|---|---|
| Your own WebSocket domain | Customer dialplans point at your hostname, not a third party's. If you ever change provider, you change DNS, not every customer's dialplan. |
| Your own dashboard | Customers sign up, create keys, see call logs and usage on a site with your logo and colors. |
| Your emails | Welcome, password and usage emails must come from your name with your support address, or the brand leaks on day one. |
| Separate customer accounts | Each customer needs its own keys, calls and recordings, with no way to see another customer's data. |
| Your recording policy | Some of your customers will want no recordings at all. You need to be able to set that for everyone. |
| Wholesale billing | You get one bill for total usage and set your own retail pricing. |
| Safe failure | If the service can't be reached, customers' calls must keep flowing on their existing AMD, or the support tickets land on you. |
How nomoVM's white-label works
nomoVM is hosted AI answering machine detection for VICIdial, GoAutoDial, Asterisk and FreeSWITCH. Dialers stream the first seconds of each answered call over an encrypted WebSocket and get one verdict back. The white-label program puts all of that under your brand.
Your domains, via CNAME
Dialers connect to your hostname, for example wss://amd.yourcompany.com/, and customers use a dashboard at a host like app.yourcompany.com. You add two CNAME records pointing at nomoVM; once they are verified, the TLS certificates are issued automatically.
Your brand everywhere customers look
The dashboard shows your logo, colors and support email. Customers sign up there, create keys and see their calls, with playback, CSV export and usage. Welcome, password and usage emails go out with your name, your link and your support address. Customers get the same setup guide and client as everyone else, with your URL already filled in.
Separate customers, locked keys
Each customer is its own account with its own keys, calls and recordings. A key issued under your brand only works on your domain.
Your recording policy
nomoVM only records the seconds the service hears. As the brand owner, you can turn recording off for all of your customers, or set a maximum retention shorter than the standard 90 days.
Wholesale billing
nomoVM bills you for total usage across your customers at a wholesale rate. You bill your customers however you like. White-label plans are arranged directly; contact us with your expected volume.
Who it suits
- Hosted VICIdial providers who want AMD as a paid add-on for the dialers they already run.
- VICIdial consultants and integrators who manage many call centers and want one AMD service they can roll out everywhere.
- Dialer software companies that need answering machine detection inside their own product.
- Large call center groups running several brands that each need their own accounts and reporting.
What setup looks like for your customers
Because nomoVM runs as one script on the dialer, onboarding a hosted customer takes about 10 minutes per dialer and needs no new servers. On a VICIdial server:
Install the client
Copy
nomovm.agi.pyto/var/lib/asterisk/agi-bin/andchmod 755it. It needs Python 3.6+ and only the standard library; ViciBox 11 and 12 already have Python 3.Test with the customer's key
Run
python3 nomovm.agi.py --test wss://amd.yourcompany.com/ CUSTOMER_KEY. A working setup printsAMDSTATUS=MACHINE AMDCAUSE=SILENCEin about 2 seconds.Add extension 8370
Copy the 8369 AMD extension as 8370 with the nomoVM line and a fallback to AMD():
exten => 8370,1,AGI(agi://127.0.0.1:4577/call_log) exten => 8370,n,EAGI(nomovm.agi.py,wss://amd.yourcompany.com/,CUSTOMER_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)Switch campaigns one at a time
Set the campaign's Routing Extension from 8369 to 8370. Setting it back to 8369 rolls back instantly.
Full details are in the VICIdial AMD setup guide. GoAutoDial follows the same pattern (see GoAutoDial AMD), and FreeSWITCH uses nomovm_amd.lua with mod_audio_stream. If you build your own dialer software, the WebSocket API docs describe the protocol.
What your support team needs to know
The verdict comes back in AMDSTATUS (HUMAN, MACHINE or FALLBACK) and AMDCAUSE. Most calls are decided about 2 seconds after answer; unclear calls listen up to 3.2 seconds. For troubleshooting, the FALLBACK causes tell you what went wrong:
AUTH: the key is wrong or not valid on this domain.SUSPENDED: the account has been disabled.QUOTA: the plan limit has been reached.NOSERVER: the service could not be reached.
In every FALLBACK case the answer comes back before any audio is used, so the dialplan runs Asterisk's own AMD() for that call and the call is never billed. Customers keep dialing either way. If an error or timeout happens after streaming starts, the call is treated as MACHINE/UNKNOWN, so only a confirmed person reaches an agent.
Go-to-market checklist
- Pick your hostnames. One for the WebSocket (such as
amd.yourcompany.com) and one for the dashboard (such asapp.yourcompany.com). - Collect brand assets. Logo, colors, product name and the support email customers should write to.
- Add the two CNAMEs and wait for verification and certificates.
- Decide your recording policy. Off for everyone, or a maximum retention under 90 days that suits your customers' privacy needs.
- Choose a pricing model. Per answered call, per seat, tiered monthly plans, or bundled into hosting. Keep it simple enough to explain on one line of an invoice.
- Run it on your own test campaign first. Confirm the setup, the fallback path and the dashboard before any customer sees it.
- Write a one-page onboarding doc with your hostname in the test command and dialplan, plus the rollback step.
- Train support on
AMDSTATUS,AMDCAUSEand the four FALLBACK causes. - Pilot with a few customers. Pick ones who complain about AMD today. Have them compare a week on 8370 against a week on 8369.
- Give customers the numbers that matter. The ROI calculator shows what extra live conversations are worth, and our dead air guide explains the silent-call side.
Abandoned and silent call rules apply to your customers' campaigns: in the US, abandoned calls are limited to 3% of answered calls per campaign per 30 days, and the UK's Ofcom has similar rules. Faster, more accurate AMD can help, but it doesn't replace a compliance review. This is not legal advice; check with counsel.
Get started
Want to see the service before you brand it? Create a free nomoVM account (30,000 calls a month, no card), run it on one of your own VICIdial servers with the setup guide, and check the results against our published accuracy numbers. When you are ready to sell it under your own name, tell us your expected volume on the white-label page.
Frequently asked questions
What is white label answering machine detection?
It is an AMD service you sell under your own brand. Your customers connect their dialers to your domain, use a dashboard with your logo and receive emails from your company. The provider runs the detection service and bills you, and you bill your customers.
Do my customers see the nomoVM name?
No. With nomoVM's white-label setup, dialers connect to your WebSocket domain, customers log in to a dashboard on your domain with your logo and colors, and welcome, password and usage emails go out with your name and support address.
How does billing work for resellers?
nomoVM bills you for your customers' total usage at a wholesale rate. You set your own prices and bill your customers however you like, for example per call, per seat or as part of a hosting bundle. White-label plans are arranged directly with nomoVM.
What DNS changes are needed?
You add two CNAME records: one for your WebSocket host, such as amd.yourcompany.com, and one for your dashboard host, such as app.yourcompany.com. nomoVM verifies them and the TLS certificates are issued automatically.
Are customer accounts kept separate?
Yes. Each customer is its own account with its own keys, calls and recordings. A key issued under your brand only works on your domain, so keys can't be used across brands.
Can I control how long call recordings are kept?
Yes. You can turn recording off for all of your customers or set a maximum shorter than 90 days. nomoVM only records the seconds the service hears, never the full conversation.