Heimdallby Lunar Systems
The watchman of the network
The security layer the phone network never had. Nothing crosses unseen.
Heimdall scores every call as it crosses the network, fingerprints what callers can't fake, and acts on the ones that shouldn't get through.
Built and tested. Now in early access.
Illustrative: the sky behind this is a simulated call, not real traffic.
-
The problem
01 · The problemThe network today
Caller ID is a text field.
The phone network still takes a caller's word for who they are. A number is typed in, not proven.
Robocallers rotate numbers faster than blocklists can list them, and spoof whatever looks trustworthy: your bank, your neighbour, your own area code.
Signed caller identity helps, but only where it's present and actually checked.
Static lists always lose. They block yesterday's number.
Illustrative: the waveform behind this section is a simulated call.
-
The idea
02 · The ideaBuilt
Guard the edge. Learn from every call.
The web solved this years ago: a security layer at the edge that recognises clients by what they can't disguise, learns from everything it sees, and decides in milliseconds. Heimdall brings that idea to voice.
- Built
Fingerprint what can't be faked.
A caller controls its number and its name. It doesn't control how its phone system builds call identifiers, orders its headers, or sends audio. The truth is in the disagreement: a caller that claims to be one thing while its signals say another.
- Built
Use voice's own identity layer.
Heimdall checks the signature on the call's STIR/SHAKEN identity, including whether the signing certificate has been revoked, and trusts only the signer it actually verified.
- Built
Decide in flight, fail open.
Every call is scored while it's being set up, within a 40 ms budget. If Heimdall can't answer in time, the call proceeds under your own rules, untouched.
- Built
Learn without framing the innocent.
A number gains or loses reputation only when its identity was verified. A spoofed call can't damage the real owner of the number it borrowed.
-
How it works
03 · How it works
Anatomy of a decision
At the edge
Astra's sideAstra: early accessThe network's own defences (rate limits, allow-lists, bans) do their job first.
At admission
BuiltHeimdall's 28 layers score the call before it's connected. Watch only, flag, or block: you choose.
In Astra's first release, scores flag; only hard stops block.
Astra's admission step is off by default.During the call
Built for vendor analysisShadow modeMedia signals, such as whether audio flows both ways.
After the call
Shadow modeEvery record is analysed, and vendors are compared with their peers over the hour, day and week.
-
The fingerprint
04 · The fingerprint
What a call gives away
Fingerprint cardIllustrative- Identity
- Claims: a signed local number≠Seen: no signature verified
- Stack
- Claims: a carrier's switch≠Seen: a softphone's header order
- Behaviour
- Claims: one person calling≠Seen: sequential dialling
- Network
- Claims: a carrier interconnect≠Seen: a remote handset
- Media
- Claims: a person answering≠Seen (vendor analysis): audio one way only
Signature
hd1:id0-st.a7-bh3-nw.rh-md.1wResultFour layers disagree with the claim: flag
Illustrative: not a real call, number or signature. Media signals feed vendor analysis, not the call-time score.
Identity
BuiltThe verified signer, its certificate chain and revocation, and whether the calling number matches what was signed.
Stack
BuiltHow the caller's phone system generates branch IDs, call IDs and tags, and the order it writes headers in. Compiled phone systems can't easily change this.
Behaviour
BuiltVelocity, sequential dialling, neighbour spoofing, short calls.
Network
BuiltWhere the call comes from, conditioned on who's calling: a carrier interconnect isn't judged like a remote handset.
Network data from open sources only.Media
Built for vendor analysisNext: deeper media fingerprintsWho answers, whether audio flows, how it's packetised.
A caller can claim to be anything. It can't make all five agree.
-
Campaigns
05 · Campaigns
See the campaign, not the number.
What persists while numbers rotateNext: campaign clusteringIllustrativeWhat persists: a signer, a stack, a routeNumbers, rotated in and outA carrier interconnect, looked throughIllustrative: no real data. Campaign grouping is next. - The network today
Robocall campaigns rotate numbers, but they reuse infrastructure: the same phone systems, the same signers, the same routes.
- Built: the keysNext: campaign clustering
Heimdall keys what it learns to what persists (the signer, the route, the stack) rather than a number that will be gone tomorrow.
- Built
Carriers are never punished for their customers. On a carrier interconnect, Heimdall looks through the peer to the originator and never learns reputation on the carrier itself.
06 · Two surfaces
Two surfaces, two guards.
- Next: the access guard
Access
Registered phones, remote extensions and softphones behave like web clients. Heimdall learns on network identity here.
- Built
Interconnect
Carrier trunks carry many customers' calls. Heimdall reads the call, not the pipe.
-
28 detection layers
07 · DetectionBuilt
28 detection layers
28 layers, in four groups, on every call
Identity
Caller ID, STIR/SHAKEN attestation and the certificate behind it.
Behaviour
Velocity, sequential dialling, neighbour spoofing, short calls.
Infrastructure
IP, carrier and phone-system fingerprints.
Compliance
Do-Not-Call, TCPA calling hours, consent.
Both directions: robocalls out, fraud in.
-
Where it runs
08 · Where it runs
Built into Astra. Standalone for PBXs.
Watching every callShadow mode
- AstraCall records and events
- HeimdallReads them and scores
- Fraud signalsSent back to Astra
- Astra's fraud guardAlert, throttle, block
Heimdall reads Astra's call records and events and sends fraud signals back. Astra's fraud guard applies its graduated response (alert, throttle, block). Nothing in the call path changes.
At call admissionBuilt · off by default
- Call arrivesAt Astra's edge
- Astra's own checksUnchanged
- Heimdall checkOptional; shadow, dry run, live
- STIR/SHAKENSigning
Optional, off by default: a check before STIR/SHAKEN signing, per customer and per trunk, from shadow to dry run to live.
StandaloneBuilt
- Open-source PBXYour phone system
- HeimdallA native module
A native module for open-source PBXs.
Heimdall is a Lunar Systems product, and Astra, Lunar's hosted carrier platform, is its first integration.
-
Vendor fraud
09 · Vendor fraudShadow mode
False answer supervision
Heimdall compares each vendor with its peers: instant answers, no ringing first, very short billed calls, vendor-side releases, silent or one-way audio. Suspect vendors are flagged, and their cost disputed.
Vendors against their peers · shadow modeIllustrativeVendors against their peers, illustrative Vendor Signal Window Against peers Verdict Vendor C Instant answers Last hour Above peers Flag Vendor A One-way audio Last day In line OK Vendor F Very short billed calls Last week Far above peers Exclude Vendor D Vendor-side releases Last hour In line OK Vendor B No ringing first Last day Above peers Flag Illustrative: made-up vendors, no real carrier or call. In shadow mode, verdicts are recorded, not enforced. In Astra, a confirmed vendor is demoted or excluded from routes, and its cost for the affected calls is disputed. - Vendor ESilent audioLast hourIn lineOK
- Vendor CNo ringing firstLast dayAbove peersFlag
- Vendor AInstant answersLast weekIn lineOK
- Vendor FVendor-side releasesLast hourFar above peersExclude
- Vendor DVery short billed callsLast dayIn lineOK
- Vendor BOne-way audioLast hourAbove peersFlag
- Vendor EInstant answersLast dayIn lineOK
- Vendor CVery short billed callsLast weekFar above peersExclude
-
Safe by design
10 · SafetyBuilt
Safe by design
Emergency calls
Emergency calls (911, 933) and calls to 988 are never scored, delayed or blocked by Heimdall.
- Built
Rolled out safely
Nothing is blocked until you decide: shadow → dry run → live.
- Built
Fails open
If Heimdall can't answer in time, the call carries on under your existing rules.
- Built
Withheld numbers
Callers who withhold their number stay private in every customer view, and withholding never counts against them.
- Built
Tamper-evident audit
An append-only, hash-chained audit of every decision.
-
What's next
11 · What's next
What's built, and what's next
Built
- The 28 layers
- Stack fingerprints
- Verified signer with revocation
- Anti-framing reputation
- Privacy
- Fail-open
- The audit
Shadow mode
- The Astra integration
- Vendor false-answer detection
Next
- A SIP threat ruleset
- PBX shield: credential-spray and scanner detection
- Numbering intelligence (public numbering data)
- A signer registry
- Media-stack fingerprints
- TLS client fingerprints
After that
- Passive transport fingerprints at the edge
12 · SpecificationsBuilt
Specifications
- 28
- Detection layersOn every call.
- 40 ms
- Decision budgetThe default at call admission; past it, the call proceeds untouched.
- 2-way
- Both directionsRobocalls out · fraud in.
- 0
- Static blocklistsNone to maintain.
Nothing crosses the bridge unseen.
Built and tested. Now in early access.
Request early accessOr write to hello@lunarsystems.io