Skip to content

Commit 2a5ce03

Browse files
committed
data: refresh FCC and FTC complaints (database v49)
FCC re-read its newest 500,000 records by publication time, the first run since the cursor moved off issue_date, and updated 7,564 rows. FTC ran without a key: it took the newest 200 records and stopped with two of DEMO_KEY's daily requests left, so its fetch completed for the first time since the 2026-09-26 00:59Z run hit a 429. Two new numbers passed the corroboration rule, for 51,362 in all. Every changed feed is re-signed.
1 parent 3b49fff commit 2a5ce03

264 files changed

Lines changed: 50417 additions & 47840 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎CHANGELOG.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ All notable changes to CallShield will be documented in this file.
4141
- The Report button opens GitHub's spam report form, so in-app reports arrive
4242
labelled. The tracker also has a bug report form that asks for the app
4343
version, Android version, phone and Protection test result.
44+
- Database v49 re-reads FCC's newest 500,000 complaints and adds 200 new FTC
45+
ones, for 51,362 numbers.
4446
- Calls from outside North America no longer get a US or Caribbean place name
4547
in the caller-ID popup. A +65 call used to read as Birmingham, AL, and Number
4648
details offered to block that US area code. On a phone outside North America,

‎README.md‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66

77
<p align="center">
88
<strong>Open-source spam call and text blocker for Android</strong><br>
9-
15+ layer detection + Gradient-Boosted Tree ML | 51,360 spam numbers | Real-time caller ID | RCS filter | No required API keys
9+
15+ layer detection + Gradient-Boosted Tree ML | 51,362 spam numbers | Real-time caller ID | RCS filter | No required API keys
1010
</p>
1111

1212
<p align="center">
1313
<a href="https://github.com/SysAdminDoc/CallShield/releases/latest"><img src="https://img.shields.io/github/v/release/SysAdminDoc/CallShield?style=flat-square&color=a6e3a1" alt="Release"></a>
14-
<img src="https://img.shields.io/badge/Spam%20Numbers-51%2C360-f38ba8?style=flat-square" alt="51,360 Numbers">
14+
<img src="https://img.shields.io/badge/Spam%20Numbers-51%2C362-f38ba8?style=flat-square" alt="51,362 Numbers">
1515
<img src="https://img.shields.io/badge/Tests-1563-94e2d5?style=flat-square" alt="1563 Tests">
1616
<img src="https://img.shields.io/badge/Android-10%2B-89b4fa?style=flat-square" alt="Android 10+">
1717
<img src="https://img.shields.io/badge/License-MIT-cba6f7?style=flat-square" alt="MIT License">
@@ -30,7 +30,7 @@
3030

3131
---
3232

33-
CallShield blocks spam calls and texts using a **15+ layer on-device detection engine** with a gradient-boosted tree ML scorer, bounded campaign and churn evidence, conservative carrier identity metadata signals, an RCS notification filter, and real-time caller ID. Its 51,360-number database sits alongside a trending-numbers feed the app checks every 30 minutes. There are no accounts or tracking.
33+
CallShield blocks spam calls and texts using a **15+ layer on-device detection engine** with a gradient-boosted tree ML scorer, bounded campaign and churn evidence, conservative carrier identity metadata signals, an RCS notification filter, and real-time caller ID. Its 51,362-number database sits alongside a trending-numbers feed the app checks every 30 minutes. There are no accounts or tracking.
3434

3535
The database keeps `data/spam_numbers.json` as a stable legacy GitHub-raw
3636
endpoint for older clients, while current builds bundle a hash manifest and
@@ -71,7 +71,7 @@ Version highlights for each release are in [CHANGELOG.md](CHANGELOG.md).
7171

7272
## How It Works
7373

74-
1. **51,360 imported spam numbers.** Sources include FCC consumer complaints (2+ reports each), FTC Do Not Call, ToastedSpam, and corroborated community reports.
74+
1. **51,362 imported spam numbers.** Sources include FCC consumer complaints (2+ reports each), FTC Do Not Call, ToastedSpam, and corroborated community reports.
7575
2. **15+ layer detection + ML**. Database, heuristics, bounded campaign/churn detection, on-device gradient-boosted tree, SMS content/burst analysis, RCS filter, STIR/SHAKEN, and more
7676
3. **Real-time caller ID overlay**. An optional SkipCalls spam check for locally suspicious calls, with SIT tone anti-autodialer
7777
4. **Trending feeds**. The app checks for trending spam numbers and campaign ranges every 30 minutes. The maintainer regenerates them by hand from new community reports
@@ -117,7 +117,7 @@ All detection layers implement a shared `IChecker` interface and run in priority
117117
| 5310 | **Regulatory Prefix** | Block | Opt-in (Settings > Telemarketing ranges) blocks for ranges regulators set aside for sales calls: Spain 400 (from 17 October 2026), India 140 (TRAI), Brazil 0303 (ANATEL). Matches the number with its country code, and without it on a phone from that country |
118118
| 5300 | **STIR/SHAKEN Authenticated** | Allow | Carrier-authenticated caller ID allows through heuristic/ML suspicion, and through a database match only when that row's newest evidence, community reports included, is over a year old and the number isn't trending right now. Explicit blocks still win first |
119119
| 5250 | **Regulatory Allow** | Allow | Opt-in protected series that rings through past the database and statistics. India 1600 (banks, insurers and government offices, per TRAI) |
120-
| 5200 | **Spam Database** | Block | 51,360 imported spam numbers plus the trending-numbers feed |
120+
| 5200 | **Spam Database** | Block | 51,362 imported spam numbers plus the trending-numbers feed |
121121
| 5150 | **Database Prefix Expansion** | Block | Auto-blocks last-two-digit siblings of confirmed database entries |
122122
| 5000 | **Recently Dialed** | Allow | Numbers you called in the last 24h. They're probably calling back |
123123
| 4980 | **Emergency Callback** | Allow | Unknown callbacks can ring through after a local emergency call during the configured grace window |
@@ -282,7 +282,7 @@ by locale and message type without shipping personal data:
282282

283283
## Data Sources
284284

285-
### Database (51,360 numbers + 653 range prefixes, locally maintained)
285+
### Database (51,362 numbers + 653 range prefixes, locally maintained)
286286
| Source | Method |
287287
|--------|--------|
288288
| **FCC Consumer Complaints** | Socrata API, 500K records, min 2 reports |

‎data/source-cursors.json‎

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,13 @@
22
"schema_version": 1,
33
"sources": {
44
"fcc_complaints": {
5-
"timestamp": "2026-09-26T00:00:00.000",
6-
"id": "9140121"
5+
"timestamp": "2026-09-26T05:06:29.585Z",
6+
"id": "9152364",
7+
"field": ":created_at"
8+
},
9+
"ftc_complaints": {
10+
"timestamp": "2026-09-23 15:00:05",
11+
"id": "84e5432fa610264d22f95ec93d1cee03"
712
}
813
}
914
}

‎data/source-freshness.json‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
{
22
"schema_version": 2,
33
"last_success": {
4-
"community_reports": "2026-09-26T00:59:25+00:00",
5-
"fcc_complaints": "2026-09-26T00:59:25+00:00",
4+
"community_reports": "2026-09-26T16:53:57+00:00",
5+
"fcc_complaints": "2026-09-26T16:53:57+00:00",
6+
"ftc_complaints": "2026-09-26T16:53:57+00:00",
67
"saracroche_prefixes": "2026-09-25T17:33:14+00:00"
78
},
89
"newest_record_date": {
9-
"fcc_complaints": "2026-09-26"
10+
"fcc_complaints": "2026-09-26",
11+
"ftc_complaints": "2026-09-23"
1012
}
1113
}

0 commit comments

Comments
 (0)