Feature · TCPA Compliance (BLA)

TCPA Compliance (BLA).

Per-trunk Blacklist Alliance scrubbing. Your API key, your account, your audit trail. Inherit-from-server-default for the simple case; override per outbound trunk when you have different compliance postures for different clients.
See pricing

7-day free trial · Cancel anytime · Pay with card, PayPal, or USDT

vicifast — tcpa-compliance
# 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),Hangup
40smedian deploy time
99.94%fleet uptime · last 30d
6regions live
Auditedevery state change

What 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.

All features