Blog: Product

How to detect vishing calls automatically

By the TelecomsXChange engineering team ยท

A vishing call cannot be filtered before it happens, but it can be read after it ends. Open Voice Shield does it with a two-channel recording, a transcript per speaker, a scored verdict with the red flags quoted, an alert, and the caller's next attempt blocked. Every step is an ordinary SIP hop or a job after hangup. Nothing touches the live audio.

Step by step

From INVITE to verdict

  1. Relay and capture. Your phone system or carrier sends the call to the hop. It is forwarded unchanged to its destination. The media passes through a relay that captures each direction, so the recording has the caller on one channel and the callee on the other. Nothing is injected into the call.
  2. Transcribe per channel. After hangup each channel is transcribed on its own, which gives a reliable CALLER: / CALLEE: label on every line without guessed diarization, with timestamps per segment.
  3. Score the transcript. A language model reads the labelled transcript with the call's metadata and answers a fixed schema: a probability from 0 to 100, a category, the entity the caller claimed to be, how they identified themselves, numbered red flags each tied to something said, a telemarketing compliance note, a summary and a recommendation. A score above 70 needs a hard sign in the transcript: a request for money, cards, codes or credentials, a threat, a deadline, impersonation or remote access. A caller who merely fails to identify themselves is not, on that alone, a scam.
  4. Deliver. The verdict is stored with the call, returned by the API, posted to a signed webhook, and sent by e-mail or to Slack when it crosses your threshold.
  5. Act on the next call. An automation rule puts a flagged number under control. Its next call is refused with a SIP 403 or diverted to voicemail, a security line or an AI agent, for the window you set.

What comes back

A verdict, as the API returns it

analysis, trimmed: the card-services script from our labelled set
{
  "probability": 95, "category": "credit_card_scam", "recommendation": "block",
  "entity": "'Card Services fraud department' (no issuer or bank named)",
  "caller_identity": "'Andrew Martin', fraud department agent",
  "red_flags": [
    "1. Caller asks for the full card number, expiry and CVV to 'cancel a charge'.",
    "2. Five-minute deadline: 'the charge will post if we do not act now'.",
    "3. No issuer named; 'Card Services' is not a bank.",
    "4. Instructs the callee to stay on the line and not call the bank."
  ],
  "tcpa_comment": "Not a marketing call; impersonation for card data.",
  "summary": "A caller posing as a card fraud desk pressures the callee to read out card details under a deadline."
}
Each red flag quotes the call, so a reviewer can check the reading against the transcript in seconds.

The transcript, the stereo recording, the SIP log and a PDF report stay with the call, and a password-protected share link puts them in front of a bank, an insurer or the police without an account. Six more scripts and their scores.

Limits

What it does not do

In standard mode it reads the call after it ends, so the first call is recorded, not stopped, and the block lands on the next attempt. Realtime mode, set up on request at a higher cost, scores the call while it is still up. The probability is a model's reading, not a legal finding. No accuracy figure is published, because the labelled set is small and written by us. The white paper lists what was measured and what was not, including that a caller who knows they are transcribed and evades on purpose has not been tested.

Try it on your own route: a test call plays the scam sample and comes back scored. Start free with $5 credit, or read the anti-vishing overview.

Questions

Frequently asked questions

How does automatic vishing detection work?

The call passes through one SIP hop that records it with the caller and callee on separate channels. After hangup each channel is transcribed, and a language model scores the transcript for the signatures of voice phishing: impersonation, a request for codes, cards, credentials, money or access, threats and deadlines. The result is a probability, a category, the red flags quoted from the call and a block, review or allow recommendation, minutes after the call ends.

Why record the two parties on separate channels?

So the transcript says who said what without guessing. A single mixed recording needs speaker diarization, which fails on overlapping speech and similar voices. Two channels give a reliable CALLER and CALLEE label on every line, and the analysis can ask the questions that matter: what did the caller ask for, and what did the callee give?

Can vishing detection give false positives?

Any scorer can. Open Voice Shield requires a hard marker in the transcript before a call scores above 70: a request for money, cards, codes or credentials, a threat, a deadline, impersonation or remote access. A polite call that merely fails to identify itself scores low. Verdicts between 40 and 69 are marked review for a person to listen, and any call can be re-analyzed with a different model.

Can it stop a vishing call while it is happening?

In realtime mode, yes: it is set up on request and scores the call while it is still up, in time to cut or divert it, at a higher cost. In standard mode the verdict exists after the call clears, and its effect is on the next attempt: an automation rule blocks or diverts a flagged number before it rings again, and the team is alerted with the transcript. Most voice scams need more than one call.

Does it work with my phone system?

Any system that speaks SIP: hosted or on-premises PBXs, cloud phone systems with a trunk option, SBCs in front of Teams, carrier softswitches. The system sends calls through the hop and the platform forwards them on; nothing changes on the phones.