nomoVM
Guides

White label answering machine detection for VICIdial hosts and resellers

White label answering machine detection lets a hosted VICIdial provider sell better AMD under its own name. Your customers' dialers connect to your domain, log in to your dashboard and get your emails. This guide covers why AMD makes a good add-on, what a white-label setup needs, how nomoVM's version works, and a checklist for launching it.

Diagram of customer VICIdial servers connecting to a reseller's branded WebSocket domain and dashboard for answering machine detection

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:

RequirementWhy it matters
Your own WebSocket domainCustomer 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 dashboardCustomers sign up, create keys, see call logs and usage on a site with your logo and colors.
Your emailsWelcome, password and usage emails must come from your name with your support address, or the brand leaks on day one.
Separate customer accountsEach customer needs its own keys, calls and recordings, with no way to see another customer's data.
Your recording policySome of your customers will want no recordings at all. You need to be able to set that for everyone.
Wholesale billingYou get one bill for total usage and set your own retail pricing.
Safe failureIf 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:

  1. Install the client

    Copy nomovm.agi.py to /var/lib/asterisk/agi-bin/ and chmod 755 it. It needs Python 3.6+ and only the standard library; ViciBox 11 and 12 already have Python 3.

  2. Test with the customer's key

    Run python3 nomovm.agi.py --test wss://amd.yourcompany.com/ CUSTOMER_KEY. A working setup prints AMDSTATUS=MACHINE AMDCAUSE=SILENCE in about 2 seconds.

  3. 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)
  4. 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

  1. Pick your hostnames. One for the WebSocket (such as amd.yourcompany.com) and one for the dashboard (such as app.yourcompany.com).
  2. Collect brand assets. Logo, colors, product name and the support email customers should write to.
  3. Add the two CNAMEs and wait for verification and certificates.
  4. Decide your recording policy. Off for everyone, or a maximum retention under 90 days that suits your customers' privacy needs.
  5. 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.
  6. Run it on your own test campaign first. Confirm the setup, the fallback path and the dashboard before any customer sees it.
  7. Write a one-page onboarding doc with your hostname in the test command and dialplan, plus the rollback step.
  8. Train support on AMDSTATUS, AMDCAUSE and the four FALLBACK causes.
  9. Pilot with a few customers. Pick ones who complain about AMD today. Have them compare a week on 8370 against a week on 8369.
  10. 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.

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.