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.
Log in or sign up for Devpost to join the conversation.