In production today

What Open Voice Shield does

Open Voice Shield is one hop on the SIP trunk you already run. Every call gets a verdict (block, review or allow) with its evidence, a route alert when the vendor swaps the far end for a recording, and its audio quality (estimated MOS, jitter, loss). You can then block or divert the caller, send an alert or open a case.

Everything here runs in production today. Voice AI forwarding is the one beta.

What kind of thing it is

Carrier-grade voice fraud prevention software

Open Voice Shield is built for the trunk, not the handset: a SIP proxy in the signalling path and a media relay in the RTP path, authenticated by source IP like any carrier interconnect. Your switch treats it as one more carrier and fails over around it the same way. It is not a softphone app, an SBC replacement or a firewall.

Feature by feature

An AI telecom fraud management system, on one page

Every capability in one table. The last three rows are the limits.

Capabilities of Open Voice Shield, in production unless marked.
CapabilityOpen Voice Shield
DetectionAn AI verdict per analyzed call: fraud probability 0 to 100, category, entity impersonated, numbered red flags, a TCPA note and a block / review / allow recommendation. Details.
CoverageAny SIP switch, SBC or dialler, all traffic or a sampled share, decided in your dial plan or by the platform. G.711, G.722, G.729 and G.723.1.
EnforcementAutomation rules on the caller ID: block the next call with SIP 403 or divert it, for a set duration, released with one click. Details.
AlertingRules on probability, category, recommendation or estimated MOS, delivered by e-mail, to a Slack channel in your own workspace, or both, with throttling.
Case managementCases on a call with assignment, comments and status. Every change is audited.
EvidenceStereo recording, speaker-labelled transcript, SIP ladder, packet capture, analyst bundle and a branded PDF report, with one-click export and password-protected, expiring share links. Details.
Caller ID deliveryA test call through your route to one of the platform's numbers reports whether your caller ID arrived as sent: match, modified, withheld, missing or not received. On demand or on a schedule. Details.
Route integrityEarly-answer and delayed-playback false answer supervision, raised as a route alert beside the verdict. Details.
Call qualityEstimated MOS, jitter, packet loss and post-dial delay per leg on every call. Details.
IntegrationREST API with API keys, a signed HTTP webhook per analyzed call, Slack, and connection guides for the common switches. API reference.
AI modesEconomy, Power or Max per account: the class of models and the per-call analysis fee. Any call can be re-analyzed with a different frontier model.
CommercialsPrepaid, per second of analyzed calling plus one analysis fee per call. Bundled plans include minutes. No seats or minimum. Pricing.
After the call by defaultIn standard mode the verdict exists after hangup and enforcement lands on the caller's next call. Realtime mode, set up on request at a higher cost, scores the call while it is still up.
Not a legal determinationThe TCPA note is a reading of the conversation, not legal advice.
No published accuracy figureNone has been computed against a labelled corpus. The FAQ says what has been measured.

Group 1: the verdict

Recording, transcription and fraud analysis

After hangup each speaker's channel is transcribed and the conversation is read. The call comes back block, review or allow, with a probability, a category, numbered red flags and a TCPA note. Realtime mode, set up on request, scores it while it is still up.

A call detail: the verdict with probability, category, red flags, TCPA comment and recommendation on the left; the stereo recording with a playback bar and the speaker-labelled transcript on the right.
The whole call in one place: the verdict, the recording, and the transcript split by speaker so you can read what was said.
Pipeline stages, verdict fields and limits

In standard mode analysis begins after the BYE, so the live audio gets no prompt, tone or added delay. Any analyzed call can be re-run through a different model, a frontier model from Anthropic or OpenAI or an open-weight model through OpenRouter, for a second opinion. A re-analysis is never charged.

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 in the language detected on the call, 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 or post it to your Slack channel, on the verdict or on the call's estimated MOS. A configured webhook is POSTed, HMAC-signed. alert + webhook delivery

What the verdict contains

Recommendation
block review allow, 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. The stakes are statutory, $500 to $1,500 per illegal call under the TCPA, uncapped in total (what one illegal call costs; see TCPA penalty prevention), so the note is on every analyzed call rather than in a quarterly audit. 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. Detection is automatic: English, Spanish, French or anything else spoken on the call gets the same analysis, with nothing to configure.

Two limits

Calls shorter than the configured minimum are marked skipped, not analyzed. Codecs outside G.711, G.722, G.729 and G.723.1 (Opus, GSM, AMR, 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 we have measured is available on request.

Group 2: the response

Acting on a verdict

An automation rule blocks or diverts the flagged number's next call, an alert goes to e-mail or Slack, and a case or a signed webhook carries it further. In standard mode the enforcement lands on the next call, because the verdict exists once the call has ended.

The Automation page: rules that block or divert a caller when an analysis crosses a threshold, each with action, duration and status, above the currently controlled numbers.
Rules act the moment an analysis lands. This live one blocks the caller for 24 hours at 90% probability.
Automation, alerts, cases, webhooks and support

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.

Alert rules: e-mail and Slack

Rules match on minimum probability, category and recommendation, or on call quality, when the call's estimated MOS is at or below a ceiling you set, or on either. They deliver by e-mail to up to ten addresses, to a Slack channel in your own workspace, or both, 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 before you configure anything. Every attempt is recorded as sent, failed or skipped. How Slack alerts work.

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.

Support from inside the portal

A question, a problem, a feature you want, or a verdict you disagree with: open a ticket under Support, or press Report analysis on the call itself and the call comes attached, so a person can listen to it and check the verdict against the recording. Replies land in the portal and in your inbox, and the thread stays with the ticket.

Group 3: the evidence

What you can hand to someone else

Every analyzed call keeps its recording, per-channel transcript, SIP ladder and raw pcap beside the verdict, and leaves the platform three ways.

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 analyst bundle, share links and cases
The Diagnostics card of a call: SIP log and pcap download buttons, then the SIP ladder, timestamped INVITE, 100 Trying and 180 Ringing entries with direction arrows, the first INVITE expanded to show its From, To, Call-ID and CSeq headers in full.
The SIP ladder in the call detail: every message timestamped with its direction, and any entry expands to the full SIP detail. The whole trace downloads as .txt, the media capture as .pcap.
The Recording card mid-playback: a stereo WAV with caller on the left channel and callee on the right, play position at two seconds of 1:13, speed controls up to 2x, and a Download button.
Playback on the call page itself, stereo, caller left and callee right, at up to 2×, and the same WAV downloads for offline review.

The offline analyst bundle

One action produces a single .zip that opens days later with no account, network or tooling. The report inside is self-contained (inline CSS, with no scripts, web fonts or remote images) and prints cleanly. Anything retention has already deleted is listed as a noted omission, not silently missing.

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.

The Share this call dialog over a call detail: a warning that the password is shown only now and is stored hashed, the generated link, a twelve-character grouped password, a Copy for WhatsApp/email button, a ready-made message containing the link, password and expiry, and a Manage links list showing an active link labelled Carrier dispute with its creation time, expiry and view count.
Creating a share link. The password is generated for you and shown once. It is stored hashed, so it can be rotated but never re-displayed. One button copies the link, password and expiry as a message you can paste into e-mail or WhatsApp.
A fraud case: the linked call and its risk verdict, the severity and status, the assigned reviewer, and a comment thread between team members.
A case attaches the call and its verdict, assigns a reviewer, and keeps the discussion beside the evidence.

On every call

Call quality on every record

The capture that makes the recording also measures the call: estimated MOS, jitter, packet loss and post-dial delay per leg, with no probes or extra taps.

The Calls table with an MOS column: green 4.40 and 4.39 badges on healthy calls, an amber 3.72 and a red 3.18 flagging degraded transport, beside each call's verdict and AI mode.
Estimated MOS on the Calls table: green at 4.0 and above, amber from 3.5, red below, with jitter and loss a hover away.
What is measured and where it shows

The same media capture also yields the call's transport quality: an estimated MOS (E-model), jitter and packet loss, measured per leg at decode time. The worst leg is a column on the CDR, the call detail shows caller and callee side by side, and the alert email quotes it beside the verdict. It needs no probes or extra taps, because the capture you already have is the measurement, and route-quality trends build up call by call.

The signalling is on the record too: the negotiated codec, post-dial delay to ringing and to answer, whether early media arrived before the answer, and who hung up, with the Q.850 cause when the party sent one. Together they place a bad call on one side of the relay and one stage of its life, without opening a single trace.

Group 4: the route

Route integrity: false answer supervision

The caller is not the only party who can defraud you. A route that answers on ringback, or swaps the callee for a recording to keep minutes billing, gets a route alert beside the verdict. How FAS detection works.

A route alert above the verdict: Delayed-playback FAS suspected at 87% confidence, the onset at 01:24, the looping phrase quoted as evidence, and the action, remove this vendor from rotation.
The route alert as an operator sees it: confidence, the second the callee leg switched to playback, the quoted loop, and which vendor to pull. The caller verdict below it stays independent.
How the alert is raised, and sampling

A route alert beside the verdict

The analysis checks the callee channel for a mid-call switch from interactive conversation to looping or non-responsive playback, the delayed-playback form of false answer supervision, where a vendor answers legitimately and later swaps the callee for a recording to keep minutes billing. A call showing that switch carries a route alert, distinct from the caller verdict, recommending the vendor serving that route be taken out of rotation.

Spot-check with a sample

Open Voice Shield is an ordinary SIP hop, so your dial plan can route a random share of traffic through it, one call in ten or twenty, instead of everything. Each sampled call is a complete evidence pack: recording, per-channel transcript, verdict, pcap and SIP ladder. How delayed-playback FAS detection works.

Caller ID delivery

CLI verification: prove what the route delivers

A check calls a number the platform holds in the country you pick, through your route, with the caller ID you choose, and reports what arrived as data instead of a screenshot from a test phone.

Results, schedules and hosting a number

A verdict with the evidence

Match, modified (format, prefix or digits, so you know whether a carrier normalised the number or the route substituted it), withheld, missing, or not received when the route took the call but nothing reached the number. Beside it: post-dial delay, answer time, the SIP ladder and estimated audio quality of the call that carried the test. You pick a country and never see the number.

On a schedule, with an alert

Repeat a check every few hours per route and country. A result other than match raises the Caller ID check failed alert by e-mail, Slack or webhook, so a route that starts stripping or rewriting caller ID is caught before your own customer complains. Countries not yet covered can be requested from the same page. How CLI verification works.

Host a number, earn per check

Coverage comes from real numbers in real countries, and the numbers can be yours. Point a number you own at the platform, prove it with one phone call, and every check that reaches it credits US$0.15 to your balance. Host a number.

Group 5: the call path

SIP pass-through, IP authentication and routing

Open Voice Shield speaks standard SIP, so it is not tied to any switch brand. Asterisk, FreeSWITCH, 3CX, a Cisco CUBE, an AudioCodes or Oracle SBC, a softswitch, a dialler, if it can send an INVITE to a next hop, it can send calls here. It needs no agent, SDK or proprietary trunk type. Point a standard SIP route at the ingress and route it back out. Leaving is the same one-line change, so there is no lock-in. Platforms built on a CPaaS come too: Twilio, Telnyx and Jambonz each have a step-by-step guide.

The line inspector for a connected call: elapsed and credit clocks, the media path with packets flowing on both legs, per-leg packet rate and counts, the SIP ladder, and the codec, post-dial delay and answer delay.
The line inspector on a live call: the SIP ladder, post-dial delay, codec and both media legs, then the verdict after hangup.
Authentication, routing, credit control, live monitoring and voice AI

Open Voice Shield 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. There is no digest auth or registration, and 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 dialled 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, dialled number, customer reference, routing, elapsed time, remaining credit. A port-bank faceplate shows one LED per licensed port. Click a lit port and a line inspector opens for that call: the SIP ladder as the proxy traces it, post-dial delay and codec the moment they are known, each media leg's packet rate, jitter, loss and reported MOS, and after hang-up the pipeline and the verdict landing in the same panel. 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. Two providers today, xAI and OpenAI, each with its own connection rules. An agent that challenges the call gets its own digest credential, stored sealed on the destination. Beta: exercised against test agents, and the agent leg is metered per second at a rate you can see on the call record. How to route to one.

The Network page: the SIP ingress host and port a switch points at, the RTP range and codecs, the IP whitelist, forwarding destinations and prefix routing rules.
Everything a switch needs on one page: point a route at the trunk address, whitelist your source IP, and calls flow.
The Live calls page: a gateway-style port bank with one indicator per licensed port, lit for calls in progress, above a table of the calls currently up with their caller, destination and elapsed time.
Calls in progress, one indicator per licensed port. The table below carries the caller, the destination and how long each call has been up.
The Live page on a phone: 3 of 24 ports in use, the port bank with three lit indicators, and the in-progress calls listed with ANI, dialled number and elapsed time.
The same live view on a phone. The port bank and the in-progress calls fit a 390-pixel screen, so a duty engineer can check them without a laptop.

Group 6: the money

Billing, plans and pilots

Prepaid. A call is charged for its minutes, and its first analysis for one fee set by the account's AI mode: Economy, Power or Max. Re-analysis is free, and every charge is a ledger line. Live rates are on pricing.

Billing mechanics, AI modes and the dashboard
Billing mechanics. Live rates and bundle sizes are on pricing, read from the plans API.
MechanicBehaviour
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.
AI mode The account picks Economy, Power or Max, the tier sets the model class and the analysis fee. Applies to new calls instantly. The CDR and the ledger line name the tier each call was billed under. Live fees on pricing.
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.
The AI mode card on the Billing page: Economy (the wide net), Power (the daily driver, marked current) and Max (the deep read), each with its analysis fee per call, and a note that per-minute pricing is identical on every tier.
The AI mode card on Billing: three tiers, one click to switch. Current fees are on pricing.
The customer dashboard: calls and minutes over 30 days, risk distribution, recent high-risk calls, and the prepaid balance with the current plan.
Spend and risk on one screen, prepaid balance included. Every charge is a ledger line you can read.

Each call carries its own commercial line, with running totals for whatever filter the CDR is showing.

Group 7: the account

Users, credentials and data control

Up to ten users per account, passkeys, API keys, a choice of storage region, retention windows and scheduled backups.

Users, passkeys, API keys, storage, retention and backups

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 lists every customer endpoint.

Storage offload

Recordings and captures stay on our disk, or move to an S3-compatible bucket we control after a set number of hours. Stored in Canada by default. An account can choose the United States instead, for storage and for the media relay, and Europe or another region on request (data location). 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.

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.

No card is needed to create an account, and there is nothing to install. Need volume pricing or a security review first? Talk to us. Comparing vendors? Read how it compares with VeriSwitch SmartShield and FraudCentral VoiceShield.