Open Voice Shield takes your SIP traffic as an ordinary hop, relays and records the media,
and routes the call on to your own destination. After hangup it transcribes and scores the
conversation, producing a fraud verdict with its evidence. Everything on this page is in
production today, with one exception: Voice AI forwarding is labelled
beta wherever it appears.
The groups below follow the order a call meets them. Integration detail is on
how it works; the controls behind it are on
security.
Group 1 — the call path
SIP pass-through, IP authentication and routing
OVS is a SIP proxy with a media server anchoring the media, so it is
in the media path. That is how the call gets recorded. It is not a
B2BUA: the dialog is proxied, record-routed and relayed on.
IP whitelist authentication
Every INVITE is authorized by source IP against a per-tenant CIDR allow-list. No
digest auth, no registration: REGISTER is answered
403. An unlisted source, a suspended account, an exhausted
balance and a port limit each get their own SIP response code.
Prefix routing and tech prefix
Routing rules match a leading prefix of the dialed number, longest match first,
priority as tie-break. Each rule points at one of your destinations, which may carry a
tech_prefix prepended to the Request-URI user before relay.
With no rule: the whitelisted IP's destination, then the account default, then the
source IP.
Custom SIP header capture
Named headers on the initial INVITE are captured onto the call.
X-Customer-ID and X-Customer-Name
ship configured, in indexed CDR columns you can filter by. Other configured headers go
to a JSON map on the call, the webhook payload and the alert e-mail.
Credit cut-off by dialog timeout
The authorization response carries a max_call_seconds
computed from the prepaid balance. The proxy enforces it from the 200 OK and BYEs both
sides on expiry, so a call cannot outrun the money that pays for it. Re-INVITEs cannot
extend it.
Live call monitoring
Every ringing and answered call, live: ANI, dialed number, customer reference,
routing, elapsed time, remaining credit. A port-bank faceplate shows one LED per
licensed port. Administrators see all tenants, with a per-customer summary.
Voice AI forwarding beta
A destination can be a voice AI agent reached as a SIP endpoint over TLS, so a
screened call goes to an agent instead of a human queue. Beta: exercised only against
a test agent, no certificate verification on the TLS client profile, and one shared
digest credential rather than one per destination.
Group 2 — the verdict
Recording, transcription and fraud analysis
Analysis begins after the BYE, never during the call. Nothing is injected into the live
audio: no prompt, no tone, no added delay.
The per-call pipeline, in the order it runs.
Stage
What happens
Result on the call
Capture
The media server writes one pcap per media stream while it relays the RTP.
pcap on the media node
Decode
The pcap is parsed, RTP grouped by SSRC, G.711 PCMU/PCMA decoded to PCM, gaps filled from RTP timestamps.
stereo 8 kHz WAV
Transcribe
Each channel is transcribed separately, then merged by start time, so every line is attributed to caller or callee.
speaker-labelled transcript
Analyze
The analysis engine reads the transcript and call metadata, returning a strict JSON verdict.
analysis record
Notify
Matching alert rules e-mail the analysis. A configured webhook is POSTed, HMAC-signed.
alert + webhook delivery
What the verdict contains
Recommendation
blockreviewallow
— the single field an automation rule or a human triages on.
Probability
An integer 0–100: how strongly the call reads as fraudulent.
Category
One of a fixed, groupable set: credit card scam, tech support scam, government
impersonation, bank impersonation, debt collection, prize or lottery scam, utility scam,
compliant telemarketing, non-compliant telemarketing, robocall, legitimate business,
personal, unknown.
Entity and caller identity
The organization the caller claimed to represent, and the identity they gave.
Red flags
A numbered list you can read against the transcript: urgency, fear tactics, PII
harvesting, no opt-out, no identification, pressure for verbal authorization.
TCPA comment
A plain-language note on telemarketing-compliance risk for that call. It is a reading of
the conversation, not a legal determination.
Title, summary, keywords and language
A one-line headline, a short summary, extracted keywords and the detected language.
Two honest limits
Calls shorter than the configured minimum are marked skipped,
not analyzed. Codecs other than G.711 — G.722, Opus, dynamic payload types — are not
decoded today. Such a call is relayed and billed normally, but records
unsupported_codec instead of a transcript.
Each call records whether its speech-to-text and analysis stages ran on the server
or against a cloud API. We publish no accuracy figure: none has been measured
against a labelled corpus. What has been measured is on
the benchmark page.
Group 3 — the response
Acting on a verdict
The enforcement surface is the next call from that number, not the current one.
The analysis exists only after the call has ended.
Automation rules on the ANI
A rule reads like a sentence: when probability is at or above a threshold and the
recommendation is one you chose, block that calling number or divert it, for a window
you set or permanently. The control applies at authorization, before routing, so a
blocked ANI gets SIP 403 and shows in the CDR as
blocked_by_rule. A controlled-numbers table lists every
active control with its reason and expiry; one action releases it.
E-mail alert rules
Rules match on minimum probability, category and recommendation, deliver to up to ten
addresses, throttle repeats and can attach the transcript. Every account is seeded
with one enabled rule — probability 90 or above with a
block recommendation — so the first dangerous call reaches
you with nothing configured. Every attempt is recorded as sent, failed or skipped.
Fraud cases
Open a case from the call detail, title pre-filled from the analysis. Set severity,
assign it to a user on your account, and work it through open, in review, resolved or
dismissed with a comment thread. Creation, assignment and comments e-mail the people
involved.
Webhooks
A completed analysis is POSTed to your endpoint, signed
HMAC-SHA256 in X-OVS-Signature,
with an X-OVS-Delivery id for idempotency. The payload
carries call metadata, captured headers and the analysis, so you can drive your own
switch from it.
Group 4 — the evidence
What you can hand to someone else
A fraud verdict is only useful if you can prove it. Every call keeps its raw material;
three routes get it out.
Evidence artefacts per call and how each leaves the platform.
Artefact
Contents
How you get it
Recording
Stereo WAV, caller on one channel and callee on the other
Player in the call detail, or streamed download
SIP ladder
The traced SIP messages of that call, timestamped with direction
Diagnostics card, plus a .txt download
Media pcap
The media capture(s), zipped when the call had several legs
GET /calls/<id>/pcap
Analyst bundle
Self-contained HTML report, JSON, transcript, WAV, SIP log and pcaps
One .zip from the call's action menu
Shared link
Read-only verdict, red flags, transcript and audio — nothing else
A URL and a generated password
The offline analyst bundle
One action produces a single .zip that opens days later with no
account, no network and no tooling. The report inside is self-contained — inline CSS, no
scripts, no web fonts, no remote images — and prints cleanly. Anything retention has already
deleted is listed as a noted omission, not silently missing.
Shareable read-only call links
Share one call with a client, a carrier or an investigator without giving them an account.
The platform generates the password — twelve characters, grouped for reading aloud, no
ambiguous glyphs — and shows it once. A link expires in 24 hours, 7 days, 30 days or never,
can be revoked or rotated, and records how often it was opened. The shared page omits
routing internals, the SIP log and the pcap.
Group 5 — the account
Users, credentials and data control
Multiple users
Up to ten users on an account, as owners or members. Owners invite, deactivate and
reactivate. An invited user gets a temporary password by e-mail and must change it at
first sign-in. The audit log records the acting user, not just the account.
Passkeys
WebAuthn passkeys as an optional second factor. Register one or more, name them, see
when each was last used, remove them. Removing the last turns two-factor off.
API keys and the REST API
Every screen in the portal is a documented REST endpoint. Keys are bound to the user
who minted them, revocable, and dead the moment that user is deactivated. The
API reference is on this same origin.
Storage offload
Recordings and captures stay on the operator's disk, or move to an
operator-controlled S3 bucket after a configurable number of hours. Playback,
download and export work the same either way.
Retention
Independent retention windows for recordings, pcaps and SIP logs; zero means keep
them. Expiry deletes the object, local or in the bucket. The call record keeps its
metadata.
Backups and restore
A scheduled gzipped database dump, written to a bucket or local disk at a time you
set, keeping the last N. Backups list size and date, can be taken on demand,
downloaded, and restored behind a typed confirmation.
Group 6 — the money
Billing, plans and pilots
Billing is prepaid. A call is charged for its minutes, and its first analysis is charged
a flat per-call fee. A re-analysis is never charged.
Billing mechanics. Live rates and bundle sizes are on pricing,
read from the plans API.
Mechanic
Behaviour
Usage
Per-minute rate with a plan-specific minimum billable duration, then per second.
Analysis fee
A flat charge when a call's first analysis completes; re-runs are free.
Bundles
A monthly plan with included minutes and concurrent ports. Overage at the plan rate.
Balance gate
An empty balance refuses the next call at authorization with SIP 402, and caps the current one.
Pilot
A time-boxed, optionally minute-capped free period. Ledger lines show $0.00 with the waived amount beside them. Billing resumes when it ends, never retroactively.
Ledger
Every charge, fee, top-up and adjustment is a line you can read and export.
On the operator side, each call carries its own commercial line, with running totals for
whatever filter the CDR is showing.
See it on your own traffic
Whitelist your SIP server's IP, point a trunk at the ingress, place one call. The verdict
is in the console when the call ends.