What Is the Gauntlet Engine? Callro's 26-Layer On-Device Call Screening Pipeline
The Gauntlet Engine is Callro's proprietary on-device call screening pipeline that analyzes every incoming call through 26 independent verification layers in under 40 milliseconds, making a blocking decision before the phone rings.
Architecture Overview
The Gauntlet Engine runs inside Callro's CallScreeningService, invoked by Android via the ROLE_CALL_SCREENING system role every time a call arrives. Android hands the engine a Call.Details object — containing the caller's number, STIR/SHAKEN attestation, and call direction — before the device has a chance to ring. The engine has a hard deadline to return a blocking decision, after which Android defaults to allowing the call through.
Within that window, the Gauntlet Engine runs 26 checks organized across 6 tiers. Checks within each tier run in parallel. Checks between tiers run sequentially — a call that fails early tiers is rejected immediately without running later tiers, which optimizes performance for high-confidence catches.
The 26 Layers
- ✓STIR/SHAKEN attestation level (A/B/C/missing)
- ✓Carrier-assigned spam label (where provided)
- ✓Phone number region vs. billing area mismatch
- ✓Number structure validity (NANP conformance)
- ✓VoIP gateway origin detection
- ✓Neighbor spoofing pattern match (first-6-digit analysis)
- ✓Number age and recycling indicators
- ✓Known robocall prefix detection
- ✓Call frequency from this number (device history)
- ✓Call time pattern analysis (off-hours spike detection)
- ✓Sequential dialing pattern detection
- ✓Repeat-attempt velocity check
- ✓Cross-session number correlation
- ✓Callro-maintained local blocklist (updated via app updates)
- ✓User-added block entries
- ✓Carrier-shared block data (where available via API)
- ✓STIR/SHAKEN full attestation fast-pass
- ✓Known contact allowlist bypass (zero contacts API access required)
- ✓Recent outbound call reciprocity check
- ✓SIT tone generation and playback (ITU-T frequencies: 913.8 Hz → 1370.6 Hz → 1776.7 Hz)
- ✓Call rejection type selection (silent drop vs. SIT tone vs. voicemail forward)
- ✓Block event logging (on-device only)
Why 26 Layers Instead of One
Single-signal spam detection is brittle. Robocall operations adapt quickly — if a major blocker adds a number to its blocklist, the campaign rotates to a fresh number pool and continues. A spam call detection system that can be defeated by rotating a phone number is not adequate protection.
The Gauntlet Engine's multi-layer design is specifically engineered to catch calls that evade any individual layer. A spoofed number that passes STIR/SHAKEN analysis may still show a neighbor spoofing pattern in Tier 2. A number that passes all number intelligence checks may still exhibit the sequential dialing frequency signature of an autodialer in Tier 3. The layers multiply the cost of evasion — successfully defeating one layer does not help a robocall system defeat the others.
The SIT Tone Response
When the Gauntlet Engine confirms a call as spam, Tier 6 does not merely reject it — it answers it silently and plays an ITU-T standard SIT tone sequence (913.8 Hz → 1370.6 Hz → 1776.7 Hz) before disconnecting. This causes the calling autodialer to log the number as disconnected and remove it from its calling database.
This is the distinction between blocking a call and removing a number from a call list. The former stops this call. The latter stops future calls. See What Is SIT Tone? for the technical detail on why autodialers respond to this signal.
Frequently Asked Questions
What is the Gauntlet Engine?
The Gauntlet Engine is Callro's proprietary on-device call screening pipeline that analyzes every incoming call through 26 independent verification layers in under 40 milliseconds, making a blocking decision before the phone rings. The entire pipeline runs locally on the Android device using Android's ROLE_CALL_SCREENING API — no call data leaves the device.
How many layers does the Gauntlet Engine have?
The Gauntlet Engine runs 26 independent analysis layers on every incoming call. Each layer evaluates a different signal — STIR/SHAKEN attestation, number structure, call frequency, behavioral patterns, spoofing indicators, and others. A call must pass all applicable layers to reach the user. No single layer makes the final decision; the system is designed so that sophisticated attackers who evade one layer will be caught by others.
How fast is the Gauntlet Engine?
The Gauntlet Engine completes its full 26-layer analysis pipeline in under 40 milliseconds per call. This is faster than the Android system's call presentation window, which means the blocking decision is made and enforced before the device has the opportunity to ring. From the user's perspective, the phone simply never rings for blocked calls.
Does the Gauntlet Engine require an internet connection?
No. The Gauntlet Engine runs entirely on-device and does not require an internet connection to make blocking decisions. All models, databases, and analysis logic are stored locally on the device. This means Gauntlet Engine protection is active even in airplane mode or in areas with no cellular data coverage.
Does the Gauntlet Engine use machine learning?
Yes. Several of the 26 layers in the Gauntlet Engine use on-device machine learning models trained on behavioral patterns associated with spam call campaigns. These models are periodically updated via app updates — not via real-time cloud sync — preserving the on-device architecture while keeping detection current.
How does the Gauntlet Engine handle spoofed numbers?
The Gauntlet Engine includes dedicated spoofing detection layers that analyze number structure anomalies, neighbor spoofing patterns (numbers matching the first 6 digits of the device's own number), and call frequency signatures associated with dialing campaigns. A spoofed number that has never appeared on any blocklist can still be caught by behavioral analysis on its first attempt.
26 Layers. Zero Cloud. Zero Noise.
The Gauntlet Engine runs entirely on your device. Your call data never leaves your phone. Try it free for 7 days — no payment info required.
Get Callro Free →