Skip to main content

Reconcile your OVH SIP incoming blacklist with the Saracroche community list — Docker image + Python CLI.

Project description

ovh-voip-spam-filter

🇬🇧 English · 🇫🇷 Français

Reconcile your OVH SIP incoming blacklist with Saracroche, the community-driven blocklist of ~16 million French telemarketing numbers.

CI Release GHCR PyPI Python License

📖 Full documentation: raedkit.github.io/ovh-voip-spam-filter


[!WARNING] Use the API (sync), not the CSV. The OVH Manager's CSV import fails past ~80 entries (empirically confirmed). This project exists to push the same data through the OVH API one prefix at a time, throttled and idempotent. The CSV mode is kept for completeness but is not the recommended path.

Quickstart

docker run --rm \
  -e OVH_APPLICATION_KEY=... \
  -e OVH_APPLICATION_SECRET=... \
  -e OVH_CONSUMER_KEY=... \
  -e OVH_BILLING_ACCOUNT=... \
  -e OVH_SERVICE_NAME=... \
  ghcr.io/raedkit/ovh-voip-spam-filter:latest sync

Or via PyPI:

pip install ovh-voip-spam-filter
ovh-voip-spam-filter sync

Generate an OVH token with this pre-filled URL (minimum scopes pre-checked).

Full setup walkthrough: docs/quickstart.

Why this exists

OVH's Manager UI offers a CSV import for the incoming blacklist, but it POSTs each row internally without rate-limiting. The Saracroche list is 643 prefixes — the import returns HTTP 429 after ~80. This tool does the same job correctly: signed API requests, client-side throttle, exponential backoff on 429, auto-adaptation if OVH tightens the quota. One bootstrap run takes ~13 minutes; subsequent runs are idempotent and take seconds.

How it works

            ┌────────────────────────────┐
            │  Saracroche live API       │
            │  (~643 block-only prefixes)│
            └─────────────┬──────────────┘
                          │  fallback when down
                          ▼
            ┌────────────────────────────┐
            │  Hard-coded ARCEP fallback │
            │  (23 prefixes, additive)   │
            └─────────────┬──────────────┘
                          ▼
            ┌────────────────────────────┐
            │  Diff vs current OVH state │
            │  (GET-first reconciliation)│
            └─────────────┬──────────────┘
                          ▼
            ┌────────────────────────────┐
            │  Signed OVH API push       │
            │  (throttled, 429-aware)    │
            └────────────────────────────┘
  • Normal mode (Saracroche reachable) — strict sync: adds missing prefixes, removes the ones Saracroche removed.
  • Degraded mode (Saracroche unreachable) — uses the hard-coded ARCEP fallback, additive only, never deletes. Anti-regression guarantee.

Details: reconciliation semantics.

Acknowledgments

🙏 This project would not exist without Saracroche by Camille Bouvat.

Saracroche is an open-source community blocklist of ~16 million French telemarketing and spam numbers, maintained solo and pro bono since 2020. We consume the french-list-arcep-operators endpoint as our primary source of truth, with no caching on the redistribution side — the freshness you get is whatever Saracroche has right now.

If this tool saved you from a spam call, please support Camille:

Saracroche source:

Documentation

Full docs at raedkit.github.io/ovh-voip-spam-filter:

Contributing

PRs welcome. See CONTRIBUTING.md for setup and the PR checklist. By participating you agree to the Code of Conduct.

Security issues: see SECURITY.md. Please don't open public issues for credential-handling bugs.

License

GPL-3.0-or-later — matches Saracroche.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ovh_voip_spam_filter-0.2.0.tar.gz (41.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ovh_voip_spam_filter-0.2.0-py3-none-any.whl (34.1 kB view details)

Uploaded Python 3

File details

Details for the file ovh_voip_spam_filter-0.2.0.tar.gz.

File metadata

  • Download URL: ovh_voip_spam_filter-0.2.0.tar.gz
  • Upload date:
  • Size: 41.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ovh_voip_spam_filter-0.2.0.tar.gz
Algorithm Hash digest
SHA256 395a9169003d73f1d079fd5307dacbf37fba4750cf23d27faf6d377208b75e60
MD5 210210b3aef7fd1c0b66dc88f660ea75
BLAKE2b-256 d0d90868e5f729df6f020c5323768c0f59fd75c1c9b3e0517b6761518cac244f

See more details on using hashes here.

Provenance

The following attestation bundles were made for ovh_voip_spam_filter-0.2.0.tar.gz:

Publisher: release.yml on raedkit/ovh-voip-spam-filter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ovh_voip_spam_filter-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ovh_voip_spam_filter-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d20b8bfdf60f579cb74b1a671a1c74613574fd672595374c5c505032c362837a
MD5 a5ae89d5057c94e0e09452cda343ccdd
BLAKE2b-256 830253dbabd4549f0f5fce8c357638c89723a796291455c7d6d5cb3ec6250b4e

See more details on using hashes here.

Provenance

The following attestation bundles were made for ovh_voip_spam_filter-0.2.0-py3-none-any.whl:

Publisher: release.yml on raedkit/ovh-voip-spam-filter

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page