Blog: Product

Route everything, analyze 1 in N: sampling on our side

By the TelecomsXChange engineering team ยท

A destination can now analyze 1 in N calls. Route all your traffic through the platform: every call is relayed and recorded, one in N is transcribed and scored, the rest are kept and one click from a verdict. It lets switches that cannot split traffic themselves run a spot-check.

The problem

All or nothing was the only choice

Sampling is the usual way to start. Send one call in ten or one in a hundred through the platform, read the verdicts, and decide from evidence how much of your traffic deserves the full treatment. Until now that assumed your switch could do the splitting: a dial plan that distributes calls by percentage, or a modulo rule on the call counter, sending the sample through Open Voice Shield and the rest straight to the carrier.

Plenty of switches cannot. A dialler that only knows one route per campaign. An older SBC whose routing table takes prefixes and priorities and nothing else. A PBX where "route 3% of calls elsewhere" is a feature request, not a setting. For those operators the options were route everything and pay for every analysis, or route nothing and never find out what is on the line. Neither is a spot-check.

What changed

One field on the destination

The sample rate now lives on the destination, next to the call handling you already choose. Keep the handling on full analysis, set Analyse to 1 in N calls, type N, and route everything at that destination. The platform does the splitting, the same way every time.

The Add a destination dialog in the customer portal with Call handling on Full analysis, the Analyse select set to 1 in N calls, and the field 1 in set to 25, with a note explaining that the rest are recorded and can be analyzed on demand.
Sampling is set per destination: Call handling stays on full analysis, and Analyse becomes 1 in N calls. Here, one call in 25 gets the transcript and the verdict.

Three things happen on every call to that destination, whichever side of the line it lands on:

It is relayed and recorded
The call goes through to its destination as before, is billed for its minutes, and is recorded in stereo with its SIP log and its quality figures. Sampling changes what is analyzed, not what is kept.
It is picked, or not, deterministically
The pick is made from the call's SIP Call-ID, not by a coin toss. A given call always lands on the same side, a retransmission cannot flip it, and a support conversation about "why did this one get a verdict" has a reproducible answer. Over many calls the share tends to one in N.
It is labelled
A call the policy left out says so on its record and in the API, so "no verdict" is never mistaken for "analysis failed". The Calls page has a filter for those calls, and the analysis fee is only charged for the calls that were analyzed.
The destinations table on the Network page: one row shows a badge reading 1 in 25 analyzed in the Call handling column, next to rows set to full analysis, record only and relay only.
The destinations table shows the rate at a glance. Each destination can have its own: one route sampled, another analyzed in full.

Overrides

The calls that are always analyzed

A percentage rule on a switch sends one call in fifty without knowing anything about the calls it picks. Sampling on the platform side knows things the switch does not, so three kinds of call skip the sample and get the full treatment every time:

  • a caller who is currently under an ANI control, whether blocked, diverted or watched;
  • a caller named in an open case, so the case keeps collecting evidence;
  • any call to a destination that raised a route alert in the last 24 hours, because a route under suspicion deserves every call.

These are the calls a fraud desk would ask for by hand. The platform asks for them by itself, and the sample rate only applies to the traffic nobody has flagged.

On demand

A verdict when you want one

Recording every call is the part that makes sampling safe. A call outside the sample is not gone: its recording, its SIP ladder and its quality figures are all there. When a customer complains, a carrier disputes a bill, or a number starts to look familiar, open the call and press Analyse this call. The transcript and the verdict arrive within minutes, and only then is an analysis fee charged.

A call page in the customer portal with a notice reading Not in the sample, explaining that the destination analyzes 1 in N calls and this one was left out, with an Analyse this call button. Phone numbers on the page are masked.
A call the policy left out says so, keeps its recording, and offers the full analysis on demand. The same action exists in the API as a single request.
The Calls page with the Analysis filter set to Not in sample, listing the calls the sampling policy left out.
The Calls page filters to the calls outside the sample, so reviewing them takes seconds.

Setup

Three steps, one of them optional

  1. Point your switch, dialler or SBC at the platform for all of the traffic you want covered. The connect guides cover the common ones, and nothing about the trunk changes.
  2. On the destination, set Analyse to 1 in N calls and pick N. Start high if you are unsure. The on-demand button covers the calls you wish you had analyzed.
  3. Optional: keep a second destination at full analysis for the route you trust least, and send that prefix there with a routing rule. Rates are per destination.

Through the API the field is sample_rate on the destination, calls outside the sample answer sampled: false and can be listed with GET /calls?sampled=false, and POST /calls/{id}/analyze runs the analysis on demand. The agent tools accept the same field when a destination is added or updated.

Summary

The takeaway

Sampling used to depend on what your switch could do. Now it depends on one number on a destination. Route everything, let the platform pick one call in N, keep every recording, and get a verdict on any other call the moment you ask for it. The calls that matter most (flagged callers, open cases and suspect routes) are analyzed regardless.

Related: sampling and route testing, the pricing page (a sample costs exactly the calls in it), the SIP integration guide, or start free with $5 credit.

Questions

Frequently asked questions

What does analyze 1 in N mean on a destination?

Every call sent to that destination is relayed and recorded as usual, but only one call in N is transcribed and scored. The others are recorded, marked as not in the sample on the call record, and can be transcribed and scored later with one click, or through the API. N is set per destination; 1 means every call, which is the default.

How does Open Voice Shield choose which calls are in the sample?

Deterministically, from the SIP Call-ID of each call, not at random. The same call always lands on the same side of the line, retransmissions agree with the call record, and over many calls the share tends to one in N. Nothing about the caller, the number or the time of day influences the pick.

Are some calls analyzed even when they fall outside the sample?

Yes. A caller who is under an ANI control, a caller named in an open case, and any call to a destination that raised a route alert in the last 24 hours are always transcribed and scored, whatever the sample rate. Those are the calls you most want a verdict on.

What happens to the calls that are not in the sample?

They are relayed, billed for their minutes, recorded in stereo, and keep their SIP log and quality figures. They carry no transcript and no verdict and no analysis fee is charged. The call record says Not in the sample, the Calls page can filter to them, and an Analyse this call button runs the full analysis on demand.

Why not sample on my switch instead?

If your switch can route a percentage of traffic, that still works and nothing changes. Many switches, diallers and older SBCs cannot split traffic by percentage or by call count, and for them the choice used to be all or nothing. Sampling on the platform side removes that choice: route everything and set the rate on the destination.

How do I turn it on?

In the customer portal under Network, add or edit a destination, keep Call handling on Full analysis, set Analyse to 1 in N calls and enter N. The same field is sample_rate on the destination in the REST API and in the MCP tools.