Browse the documentation

Documentation

Concepts

A call you route through Open Voice Shield is relayed to your own destination and recorded while it is relayed; after the hang-up the recording is decoded, transcribed with the two parties on separate channels, and assessed by a language model. The result is one record per call carrying a probability from 0 to 100, a category, the caller's claimed identity, numbered red flags, a TCPA comment, a plain summary and a block, review or allow recommendation.

A call has two halves#

Everything that touches the live call is synchronous and fast: authorize, anchor the media, relay, tear down. Everything that produces a verdict happens after the BYE, on a worker. A failure in the second half never affects a call — it marks the analysis failed and leaves the call itself untouched.

Signalling and media path through Open Voice Shield Your switch sends the INVITE to the Open Voice Shield ingress, which authenticates the source IP, relays the media through its media server while capturing it to a pcap, and forwards the call to your own destination. After the BYE the capture is decoded to a stereo WAV, transcribed, analyzed by a language model, and turned into a block, review or allow verdict. Your switch, SBC or PBX Open Voice Shield ingress Your destination or carrier the trunk you already run SIP proxy — IP auth, prefix routing, dialogs Media server — media relay, pcap capture no B2BUA in the path unchanged INVITE, relayed onward INVITE · authenticated by source IP RTP relayed and captured AFTER THE BYE pcap decoded to a stereo WAV transcription, one channel per party language-model fraud analysis verdict: block · review · allow
The live call above the line, the post-hangup pipeline below it. Nothing is injected into the audio, and neither party hears anything added.

While the call is up#

  1. Admission. The source address must be whitelisted, the account active and not blocked for that caller ID, the balance sufficient and a port free. Each check has its own SIP response — the SIP integration guide lists them.
  2. Routing. A destination is chosen from your rules and the call is relayed there unchanged, apart from a tech prefix if the destination carries one.
  3. Media. The RTP is anchored, so it flows through us in both directions for the whole call. This is what makes a recording possible — and it means your audio traverses our media path.
  4. Teardown. A BYE from either side ends the call. A call can also be ended by the credit cut-off or the maximum lifetime, in which case BYE goes to both parties.

The record starts before the verdict does

The call record exists from the moment the call is authorized. Duration, billed seconds, SIP code, end reason, the destination chosen, the route prefix and the SIP log are all there whether or not an analysis is ever produced.

Recording#

The relayed audio is captured as it passes and, after the call, decoded into a single stereo WAV at 8 kHz: one channel per direction. That separation is physical, not statistical — the caller's channel is the caller's RTP stream, so there is no speaker diarization to get wrong.

  • Only G.711 (A-law and µ-law) can be decoded; other codecs relay fine but leave nothing to transcribe.
  • Comfort-noise and telephone-event payloads are ignored when decoding speech.
  • The finished WAV is downloadable from the call record and included in the export bundle.
  • Calls shorter than the minimum analysis length — 5 seconds by default — are recorded and billed but not analyzed.

Transcription#

Each channel is transcribed on its own and the timed segments of both are merged by start time into one speaker-labelled text:

the transcript text, as stored

CALLER: Hi, I'm calling from the card services department about your account.
CALLEE: Which account is that?
CALLER: The one ending in the last four digits you'll confirm for me now.
Fields on the transcript record.
FieldMeans
textThe merged, speaker-labelled transcript shown above.
segmentsEach utterance with its speaker (caller or callee) and its start and end in seconds.
languageDetected language of the speech, as an ISO 639-1 code.
audio_secondsSeconds of audio actually transcribed.
locationWhere the stage ran: local (on the server) or cloud.

A channel that carries only digital silence is skipped, which is why a leg that never speaks produces a one-sided transcript rather than an error.

The analysis#

The transcript is assessed against a fraud and telemarketing-compliance prompt and returned as a fixed set of fields. Every field is always present; a field with nothing to say is an empty string or an empty list.

Every field on the analysis, and what to do with it.
Field What it is How to use it
title A short headline for the call. The line in a queue or an alert. Never the basis for a decision.
probability 0–100: how likely this call is a scam or illegal/abusive telemarketing. The number you threshold on for automation and alerting.
category One of a fixed list — see categories. Grouping and reporting: which kind of abuse is on your network.
entity The organization the caller claimed to represent, or empty. Impersonation signal. A bank's name here on a 90-probability call is the story.
caller_identity How the caller identified themselves — name, role — or empty. Compare with the ANI and with what the entity would actually use.
red_flags Numbered, concrete observations taken from the transcript. The evidence. Read these before acting; they are what you quote to the customer.
tcpa_comment Assessment against TCPA and the FTC Telemarketing Sales Rule — identification, opt-out, consent, robocall. Compliance review of legitimate campaigns, not just fraud.
summary Two to five sentences on what happened. What a reviewer reads first, and what goes into a case.
recommendation block review allow The suggested action. Automation rules match on it.
language Primary spoken language, ISO 639-1. Routing a review queue to someone who speaks it.
keywords Three to ten short keywords characterizing the call. Search and clustering across many calls.
location local or cloud — where the assessment ran. Data-handling questions. Vendor and model names are not exposed on a call.

Reading the probability#

The probability and the recommendation are related but not the same thing: the score is how confident the assessment is that the call is abusive, the recommendation is what to do about it. When a model returns no usable recommendation, the score decides it — 70 and above is block, 40 and above is review, below that allow.

A workable first policy. Tune it on your own traffic before you automate.
BandTypicallyOperations response
90–100blockAlert, and let an automation rule hold the ANI while a human confirms.
70–89block or reviewSame-day human review. Open a case if the red flags hold up.
40–69reviewSample it. This band is where compliance problems live, not outright fraud.
0–39allowNothing. Keep it for reporting and for trend lines.

Categories#

The category is one of a fixed list, so it can be counted and charted:

  • credit_card_scam
  • tech_support_scam
  • government_impersonation
  • bank_impersonation
  • debt_collection
  • prize_lottery_scam
  • utility_scam
  • telemarketing_compliant
  • telemarketing_noncompliant
  • robocall
  • legitimate_business
  • personal
  • unknown

unknown is what you get when the call gave the assessment nothing to go on — a wrong number, an IVR, thirty seconds of hold music.

When there is no verdict#

Two fields on the call say where the pipeline got to: transcript_status and analysis_status.

Status values and what they mean for you.
ValueMeans
pendingQueued or waiting for a retry. Normal for the first minute after hang-up.
processingRunning now.
doneThere is a result.
skippedNothing to analyze: the call was never answered, or was shorter than the minimum analysis length.
failedEvery attempt failed. processing_error on the call says why.

There is a third case worth knowing: when the assessment runs but returns nothing usable, the call gets a deliberate fail-safe result instead of a missing one — probability 50, category unknown, recommendation review, and a red flag saying the analysis could not be completed. It never fails towards allow.

Acting on a verdict#

A verdict is an aid to a reviewer, not a judgment. Read the transcript before acting on a score. What is available to act with:

From verdict to action.
MechanismWhat it does
Alert rules E-mail on a threshold. Every new account starts with one enabled: probability 90 or above and a block recommendation.
Automation rules Match a minimum probability and a set of recommendations, then either block the caller ID or divert it to another destination, for a set number of hours. Enforcement happens on the next call from that ANI, at admission.
Webhooks A signed call.analyzed event, so your own systems act without polling.
Export bundle One zip per call — the analysis as JSON, the transcript, the recording, the SIP log and a readable report — openable by someone with no account.

A blocked caller ID is enforced at admission

While a block control is in force, the next call from that ANI is refused with 403 Blocked by rule before it is routed anywhere — and unlike other refusals it is written to your call records, so you can see what the rule stopped.

What is kept, and for how long#

Retention is a platform setting your operator configures, not a per-call one. The defaults the platform ships with:

Default retention. Ask your operator for the values in force on your account.
ArtefactDefault
Recording (WAV)30 days
Source media capturesDiscarded as soon as the recording has been decoded from them
Transcript, analysis, call recordKept with the call record
SIP logPruned on the operator's configured schedule

Because the media path carries your RTP, the audio of every analyzed call passes through Open Voice Shield and is written to storage. That is inherent to the product: there is no analysis without a recording. If your audio must never leave your own network, this is not the right tool for the job.

Next: the API reference for the exact request and response shapes, or Security for isolation, access and deletion.