Inspiration

Outbound AI calling can be technically valid while still missing recipient consent, an AI disclosure, a reasonable local calling window, recording and retention choices, or safe retry behavior. ConsentGate makes those decisions explicit, testable, and fail-closed before dispatch.

What it does

ConsentGate validates a structured call plan before CALL-E can be invoked. It uses fixed, reviewed purpose and disclosure templates; enforces recipient-local calling windows and bounded attempts; requires durable, content-bound idempotency state; distinguishes temporary refusal from permanent do-not-call requests; blocks sensitive content; and emits an explicitly allowlisted, redacted audit manifest.

The offline simulator demonstrates the approval and result flow without making a network request. Live execution is isolated behind explicit flags, exact human confirmation, a CALL-E API key, a provider namespace, and a durable ledger. Ambiguous outcomes fail closed and require same-key or call-ID reconciliation before any retry.

How we built it

The project is a Python 3.11 CLI using deterministic policy functions, atomic ledger updates, the official CALL-E SDK boundary, and 57 regression tests. The final contribution was reviewed through multiple maintainer feedback rounds and merged into CALL-E's public awesome-phone-call-agents main branch as PR #47.

Platform constraint and evidence

A consenting entrant-controlled test using a China-region number and Mandarin could not be dispatched because CALL-E did not list mainland China or Mandarin as supported. No call ID was created and no call was placed. We reported the generic rejection safely in CALLE-AI/call-e-integrations issue #68 without exposing the API key or phone number. The CALL-E team confirmed that it revealed a server-side error-fidelity gap and closed the issue after a backend fix added actionable unsupported_region, unsupported_language, and structured call_not_ready details. Mainland China remains unsupported; Chinese is currently listed for Malaysia, so the original CN plan still fails closed.

This is a platform coverage constraint, not a simulated claim of a successful call. The submission presents the offline path honestly and provides reproducible tests plus the maintainer-merged implementation.

Accomplishments

  • Merged into CALL-E's public main repository
  • 57 passing policy and live-boundary regression tests
  • Durable idempotency and crash-safe reconciliation
  • Explicit temporary-refusal and permanent do-not-call semantics
  • Fail-closed evidence handling and recursively safe audit manifests
  • Actionable platform feedback acknowledged and fixed by the CALL-E team
  • Reliability follow-up merged upstream as PR #131

What's next

Validate against a sponsor-provided sandbox or an entrant-controlled number in a supported region, add new reviewed purpose templates, and extend the same consent and reconciliation controls to more CALL-E workflows.

Built With

Share this project:

Updates