DNC
Purpose
Section titled “Purpose”Describe Do Not Call (DNC) suppression: how Get2Dial prevents dialing numbers that must not be contacted.
Overview
Section titled “Overview”DNC entries (dnc_entries) are per-tenant, E.164-normalized numbers with a
source (internal/external/manual) and a reason. Suppression is enforced
in two layers:
- Lead selection — the pacer’s eligible-leads query anti-joins
dnc_entries, so suppressed numbers are never even selected. - Dial-time compliance gate — an ordered, fail-closed pipeline runs before each origination: internal DNC → calling hours → daily attempt cap → lifetime attempt cap → retry cadence → optional external DNC hook → allow. Any error suppresses the call.
A disposition with adds_to_dnc = true writes the DNC entry in the same
transaction as the attempt (fail-closed rollback if it can’t).
Configuration
Section titled “Configuration”DNC is managed via /api/v1/dnc and the tenant app. The optional external DNC
hook is an HTTP check; a timeout records a dnc_check_failed disposition and
suppresses (fail-closed).
Examples
Section titled “Examples”An agent sets the do_not_call disposition; the number is normalized (00 →
+, then the leading + stripped so +441… and 441… collapse to the same
key), inserted into dnc_entries, and the lead is closed — all atomically.
- DNC screening is a compliance control — failures suppress, never dial.
- Because suppression runs at both selection and dial time, a number added to DNC mid-campaign is honored on the very next tick.