TCPA Compliance (BLA).
7-day free trial · Cancel anytime · Pay with card, PayPal, or USDT
# AGI hook in extensions.conf — runs before every Dial
exten => _9742X.,1,AGI(tcpa-check.agi)
exten => _9742X.,n,GotoIf($[${TCPA_RESULT}=BLOCK]?blocked)
exten => _9742X.,n,Dial(PJSIP/${EXTEN:4}@twilio-out,,tor)
exten => _9742X.,n,Hangup
exten => _9742X.,n(blocked),HangupWhat you get
The full tcpa compliance (bla) surface, end-to-end.
Every card below is a shipped capability. Hover for emphasis; click any matching feature for the deep page.
BYO Blacklist Alliance key
You bring the API key, you see the BLA dashboard, you pay BLA directly. We do not resell, we do not mark up. The audit trail is in your BLA account.
Per-trunk override
Default mode is "inherit from server". On a trunk that needs different posture — different client, different state, different compliance contract — switch to "custom" with its own key, or to "disabled" entirely.
Fail-open or fail-closed
If BLA times out or returns an error, you choose: allow the call (fail-open, default) or block it (fail-closed). Per-trunk setting, audit-logged.
6-hour Redis cache
Repeated dials of the same number against the same trunk hit the cache, not BLA. The cache key includes a hash of your sealed API key so a key rotation invalidates stale results.
Pre-dial AGI hook, not post-call
The scrub runs BEFORE Asterisk dials — a litigator number never receives a call. Compare to "scrub on import" approaches that depend on the import list being fresh.
Litigator hits → quarantined disposition
A hit lands the number in a configurable disposition (default DNCC). Your reports break out scrub-blocked vs. carrier-blocked vs. agent-blocked separately so trends are visible.
Recording retention tied to scrub state
List-level recording retention can branch on scrub outcome — keep recordings of scrub-blocked attempts for the regulatory window; default-purge the rest at 7 days.
Operational, not legal advice
We provide the platform controls TCPA-compliant dialing needs. Compliance posture itself is yours + your counsel's — we do not interpret regulation for you. The audit log proves how each number was handled.
TCPA check happens pre-Dial, per call. The AGI script POSTs to your VICIfast API with the dialed number and a server token; the response comes back as TCPA_RESULT in 2–3s typical, 250ms cached.
FAQ
Questions worth answering
Every dial scrubbed before Asterisk dials.
Start the trial. Paste your Blacklist Alliance key; the per-trunk AGI hook is wired the moment your trunk registers. Fail-open or fail-closed, audit log, 6-hour cache.