Now withAINu Assistant

Real-time fraud management and marketing for mobile operators

Telecom fraud stopped as it happens. The right offer sent in the same minute.

Nussknacker decides on every call record, SMS, SIM change and top-up as soon as it reaches Kafka. It flags SIM swaps before the one-time password is used, bars IRSF and SIM boxes as the records arrive, and turns the same events into offers. Your fraud and marketing teams own the rules, as visual scenarios they edit and deploy themselves.

Shadow mode first. Nothing is blocked until you switch it on.

call recordsSIM change · HLR/HSSSMS · A2Ptop-ups · roamingNussknacker350k events/swindows · listsrules · ML modelsdecision tablesALERT · STEP UPSIM swap + new IMEI + bank OTPBAR INTERNATIONALIRSF · burst to a high-risk rangeOFFER · RCSRoaming started · EU data packnormal eventsuspiciousNussknacker350k events/sALERT · STEP UPBAR INTERNATIONALOFFER · RCS
350k /sevents from Kafka, sustained in production
800k+ /sat peak
2.5%of telecom revenue is lost to fraud1

Built on Nussknacker, the open-source low-code decision engine for Kafka and Flink, under Apache 2.0.

View on GitHub

In production atFraud management and real-time marketing at iliad and Play.

iliadPlay

The cost of late

$41.8 billion lost to telecom fraud in 2025.1

Much of it is lost in the gap between the first fraudulent event and the moment a rule acts on it.

The loss clockNussknacker actsloss while you wait for a batch job or a rule change
Nussknacker actsseconds after the first record~$38M lost in 16 minone SIM swap; $33M award against the operator³up to €40k per hourroaming fraud, severe cases⁴NZ$35k in one weekendhacked business PBXs⁶01 s1 min15 min1 hourweekend
  • ~$38M in 16 minOne SIM swap at a US operator; a $33M award against the operator.³
  • Up to €40k per hourRoaming fraud, severe cases.⁴
  • NZ$35k in one weekendHacked business PBXs dialling premium numbers.⁶
Illustrative curve, not to scale; figures in the currency of each source, sourced below.Sourced examples; notes at the end of the page.+1,055% SIM swaps in the UK in 2024² · ~5% of international A2P SMS is fake traffic⁵

Inside Nussknacker

A SIM box hides in your network. One scenario finds it.

International calls enter through the internet and leave a box of SIM cards as cheap local calls. The call records give it away: every SIM in the box calls out, never receives, and dials far too many numbers.

InternationalcallerInternet(VoIP)SIM box64 SIM cardsYour towerLocal subscribers
To your network it looks like ordinary local calls. To the operator it is lost interconnect revenue.
NussknackerScenarios›detect-sim-boxingRUNNINGLIVE · 1,180 call records/s
voice cdrs0has imsi0call metrics per sim0derived0sim box fingerprint0load profile0device rep0severity0alert moderate0alert high0

The first ten nodes of the scenario, as the Designer draws them. Counters are synthetic.

High0
Moderate0
Call records0

Threat atlas

Thirteen schemes, and many more, on one stream.

Where fraud enters your network. Pick a scheme to see what gives it away and what the scenario does.

Subscriber and SIM
Voice and interconnect
Inbound calls and messaging
Network and roaming
And many more. If you can describe it with your events, your analysts can build it.Bring yours to the pilot →

How a SIM swap unfolds

SIM swap detection before the one-time password is used.

Nussknacker joins the SIM change, the new device and the bank's OTP per number as they arrive. It can alert an analyst, hold the SMS through your SMS firewall, or feed a SIM swap lookup for banks, depending on what you allow.

  1. Step 1SIM replaced in a store, ID shownSIM change noted
  2. Step 2New SIM appears in a new device (new IMEI)+ new IMEI on the line
  3. Step 3Bank sends a one-time password+ OTP from a bank
  4. Seconds laterWaits for the SMSALERT · STEP UP
  5. Hours laterA batch job or a hand-tuned vendor rule flags the swap.The account is already empty.

Illustrative sequence, not data from a real case.

SIM cloning

One SIM, two places at once.

A phone hands over from tower to tower at the speed of a car. When the same IMSI shows up hundreds of kilometres away a few minutes later, a second card is answering for it. Nussknacker checks every move against the previous one, per SIM, as the records arrive.

2201220422072210221355305536815081548157540 km in 2 min · 16,200 km/h
Cells and positions are illustrative. The thresholds are the scenario's.
Trail of IMSI 001 01 ···· 7302
  1. 10:02:11cell 2201
  2. 10:09:41cell 22047 km56 km/h ✓
  3. 10:16:11cell 22078 km74 km/h ✓
  4. 10:18:11cell 8150540 km16,200 km/h
detect-sim-cloningRUNNING
  1. get trail
  2. velocity
  3. implied speed
  4. location conflict requires review
  5. open case
#velocity.distanceKm > 200.0 &&#impliedSpeedKmh > 800.0
SIM cloning suspected · reviewSame IMSI at cell 2207 and cell 8150, 540 km apart in 2 minutes. A case is opened for an analyst; it is a suspicion, not proof.

AINu Assistant

Say what to catch. Watch the scenario build.

Analysts describe a detector or a change in plain words. Nu Assistant builds it on the canvas, node by node, so the team sees exactly what changed before it is tested and deployed.

NussknackerScenarios›detect-sim-boxingDRAFT
voice cdrscall metrics per simcells seen 1hsim box fingerprintload profiledevice repdecision model+ #cellsSeenseverityopen casepublish alert

Re-enacted from the recording below. Node names as in the scenario; the conversation is shortened.

The recording

Add a live signal to a running detector, test it, deploy.

The fraud team asks Nu Assistant for one more signal, the number of cells each SIM was seen in during the last hour. It adds the aggregate, passes the value to the decision model, and the analyst tests the HIGH case with a mocked model before deploying. Monitoring keeps running the whole time.

Watch on YouTube · 2:45 · no audio

Fraud management

Real-time telecom fraud management, owned by your fraud team.

Analysts write a rule on Friday and have it running in shadow mode the same evening. It blocks a customer only when someone with deploy rights switches it on.

  1. Writein the Designer or with Nu Assistant
  2. Teston recorded traffic or from CI
  3. Shadownext to production
  4. Alertan analyst decides
  5. Automateonly where you allow
Fraud and marketing analysts

Drag nodes, write expressions and decision tables, test on recorded traffic, deploy a new version.

Engineers, once

Connect Kafka topics, add enrichers, model endpoints and custom components, set roles and environments.

  • Real time, not batchScored as events arrive.
  • Patterns, not single recordsWindows per IMSI, IMEI, customer.
  • ML next to rulesYour models in the same decision.
  • Fewer false positivesAllowlists for VIP, corporate, M2M.
  • Verdicts come backAnalysts tune thresholds and labels.
  • Every change auditedVersions, authors, diffs.

On Kafka and Flink.
Next to the stack you already run.

  • Apache Kafka
  • Confluent
  • Redpanda
  • Aiven
  • Azure Event Hubs
  • MLflow
  • Databricks Unity Catalog
  • PostgreSQL
  • Snowflake
  • Amazon Redshift
  • OpenAPI

How it fits your network

Reads what your network produces. Acts through what you already run.

From Kafka or your mediation in, over Kafka or REST out, through the interfaces you already expose.

Call records from mediationPartial CDRsOCS / Diameter eventsSMS and A2PSIM changes, HLR / HSSSignalling firewallTop-upsNRTRDE roamingCRM and logins
Nussknackeron Kafka and FlinkwindowsrulesMLlistscontact policy
Barring via provisioningSpend caps via OCS / PCRFSMS hold via SMS firewallCases in your case managerOffers via SMS, RCS, pushService upgradesLoyalty points

Real-time marketing

Real-time marketing on the same events.

The same events that catch fraud sell roaming packs and top-ups the moment a customer needs them. Marketers build the campaigns themselves, and no offer reaches a line under investigation.

  • WhenLands abroadRCSEU data pack, one tap
  • WhenData at 90%PushTop-up offer
  • WhenTops upLoyaltyBonus points added

Contact policyfrequency capsquiet hoursmessage limitsstreaming and batch

Carrier scale

A whole network's traffic, not a sample of it.

On Apache Flink, straight from Kafka, in production at 350,000 events per second, with peaks above 800,000.

350k/s sustained800k/s00:0012:0024:00peak 800k+/s
Illustrative daily shape: 350k events/s sustained, peaks above 800k, rates from production.
  • On-premises or your cloudSubscriber data stays with you.
  • SSO, roles and auditOpenID Connect or OAuth2 sign-in, roles per category, every deploy versioned.
  • Your modelsMLflow models or any model behind REST, inside the decision.
  • Open-source coreApache 2.0 on GitHub. Enterprise components and support by subscription.

Questions operators ask

Does it replace our current fraud management system?

It can, or it can sit next to it for the real-time cases first: SIM swap, IRSF, Wangiri, SMS pumping. Alerts go to your existing case management over Kafka or REST.

What does a pilot need from us?

An engineer to connect call records and SIM change events, and a fraud analyst to review the results. We bring example scenarios and run them with you in shadow mode.

Is there a case management screen?

Nussknacker is not a case manager. It opens and enriches cases in the one you use, over REST or Kafka, with the events behind each alert.

Who writes the rules?

Your fraud and marketing analysts, in the visual Designer. They can also describe a change to Nu Assistant in plain words: it edits the scenario on the canvas, so the team sees exactly what changed before testing and deploying it. Engineers connect the streams once. Roles decide who may deploy a change, including moving a rule from alert-only to automatic.

Which data do we need to start?

Call records and SIM change events cover the core threats: SIM swap, IRSF, Wangiri and SMS pumping. If they are already in Kafka, you can start quickly. If not, we connect to your mediation output.

How do you handle false positives?

In the pilot, every scenario starts in shadow mode on your traffic. You see what it would have done, add allowlists for VIP, corporate and M2M lines, and only then choose which actions run automatically.

Can banks query SIM swap status?

Nussknacker runs request-response scenarios, so a lookup such as "was this SIM changed recently" can be built on the same state the fraud rules use, including behind a CAMARA SIM Swap API. We can scope it in the demo.

Does it do revenue assurance?

It is not a reconciliation suite. It can add real-time controls next to your revenue assurance tool.

Where does it run, and how is it operated?

On-premises or in your cloud, on Kubernetes, next to your Kafka; subscriber data stays in your environment. Scenarios run as Flink jobs: checkpoints keep their state across restarts, parallelism scales each one, the Designer shows counts per node, any earlier version can be deployed again, and redeploys keep their state through Flink savepoints.

Can we extend it?

Yes. Custom components in Java or Scala, a REST API to deploy scenarios from your CI, scenarios exported as JSON for version control, and tests on recorded data.

How is it licensed?

The core is open source under Apache 2.0. Enterprise components and support come with a subscription.

Bring one fraud case. We will run it in shadow mode on your traffic.

Next to your current controls, so you see what would have been stopped, how many false positives it would have raised and how fast it decided, measured on your traffic, before anything is enforced.

The pilot

  1. Your dataCall records and SIM change eventsFrom Kafka or your mediation output, in your environment. Add SMS and A2P events for SIM swap.
  2. We bringExample scenarios, ready to tuneSIM swap, IRSF, Wangiri, SMS pumping and SIM boxing, plus the one you name.
  3. You getHits, false positives, decision timeCompared with your current controls, before anything is enforced.