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_dnctable withcampaign_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.