All compliance

DNC compliance for VICIdial operators

Federal DNC, state DNC, internal DNC — how to configure VICIdial to honor all three and stay defensible.

The Do Not Call registry has three layers. VICIdial supports all three via the vicidial_dnc table. Miss any one and you're exposed.

Layer 1 — Federal DNC (FTC)

Source: https://telemarketing.donotcall.gov

How it works:

  • ~245M numbers as of 2026
  • Load into VICIdial's vicidial_dnc table with campaign_id='all'
  • Refresh monthly — the FTC updates daily but monthly is the operational standard

Loading via VICIdial admin: Lists → DNC List → Bulk Update DNC List. Format: one phone number per line, no formatting.

Layer 2 — State DNC

Several states maintain their own:

  • Florida (FTSA, separately enforced)
  • Indiana
  • Pennsylvania
  • Tennessee
  • Wyoming

Where required, load each state's list scoped to campaign_id matching the state. Configure your campaigns to honor matching state DNC.

Layer 3 — Internal DNC

Real-time, per-call. When an agent presses the DNC hot key, VICIdial inserts the lead's number into vicidial_dnc with campaign_id='all' (your company-wide opt-out).

In your campaign config, set Use Internal DNC = Y.

Common operator mistakes

Loading federal DNC scoped to a single campaign

If you load with campaign_id='COLLECTIONS', only that campaign honors it. Everything else dials federally-DNC'd numbers. The fix: scope to 'all'.

Stale federal DNC

Numbers get added daily. Monthly refresh is the standard; weekly is better.

Hopper rows pre-loaded with DNC numbers

VICIdial pre-stages dialer leads into the hopper. If you set DNC on a number that's already hoppered, it'll dial. Drain the hopper after DNC list updates:

DELETE FROM vicidial_hopper WHERE campaign_id = 'YOURCAMP';

The hopper refills within ~30 seconds.

Web opt-out not flowing back

If you have an unsubscribe form on your website, build a webhook that inserts into vicidial_dnc with campaign_id='all'. Test before launching.

Time-bound opt-out (2025 ruling)

The FCC's 2025 update requires opt-out honored within 10 business days AND across all channels (SMS opt-out flows back to dialer DNC, etc.). Build your unified opt-out workflow with this deadline in mind.

Documentation

For each DNC entry, log:

  • When it was added
  • How (federal list, state list, agent disposition, web form)
  • Who (agent ID for internal opt-outs)

VICIdial logs the agent and timestamp on internal DNC. Federal/state imports should be logged externally with the source file's date stamp.

Related