Documentation
CLI verification: test caller ID delivery on a route
Ask AI about this page
A CLI verification calls one of your destinations, with the caller ID you choose, to a number Open Voice Shield holds in the country you pick, and reports what arrived: matched, changed, anonymous, missing or never arrived, with answer time, SIP ladder and estimated audio quality. Run it once, or on a schedule with an alert.
Why a verification number, not a phone#
Whether a route delivers the caller ID intact is one of the most common wholesale disputes, and it is usually checked by dialling your own mobile and looking at the screen. That tells you what one handset showed once. A verification check calls a number the platform holds, so the delivered caller ID is read as data, every time, with the call's timing and audio quality beside it, and kept as a record you can hand to the route's vendor.
Run a check#
- Open CLI verification in the portal.
- Pick the destination (the route) and a country the platform holds a number in.
- Enter the caller ID the route should deliver, or keep the account's phone number.
- Run the check. The platform places the call through the route; the verdict arrives within a minute.
The result shows the caller ID sent, the caller ID that arrived, the verdict, and the call's post-dial delay, answer time and estimated MOS. Open the call for the SIP ladder and the per-leg quality figures. Every check is kept in the history with its verdict.
Verdicts#
| Verdict | Meaning | What to do |
|---|---|---|
| Match | The number that arrived is the number sent. | Nothing. Schedule it so you know when that changes. |
| Modified, format | The same subscriber number in another notation: a dropped plus, national instead of international. | Usually carrier normalisation. Confirm the far end can call it back. |
| Modified, prefix | The last digits match; the country or area part changed. | Ask the vendor how the route rewrites caller ID. |
| Modified, digits | A different number arrived. | The route substitutes the caller ID. Raise it with the vendor with the check as evidence. |
| Withheld | The call arrived anonymous. | The route or a carrier on it sets privacy. Check the SIP ladder for a Privacy header. |
| Missing | The call arrived with no caller ID. | The caller ID was stripped. Raise it with the vendor. |
| Not received | The route took the call, but it never reached the number. | A fast answer with no far end is the signature of a looped or fake route. Open the call for the ladder. |
Schedules and alerts#
Add a schedule for a route and a country, every 1 to 168 hours. Each run is a normal check in the history. A result other than match raises the Caller ID check failed alert trigger, delivered like every other alert: e-mail to the rule's recipients, Slack, and the signed webhook.
Countries and coverage#
The page lists the countries the platform holds verification numbers in. For any other country, Request coverage opens a support ticket and counts towards what is sourced next. If you already hold a number in that country, say so on the ticket: a number of your own in that country can be hosted and earns per check.
API and agents#
POST /api/customer/cli-checks
{"destination_id": "…", "country": "CA", "caller_id": "+15145550123"}
GET /api/customer/cli-checks/{id}
{"cli_status": "match", "caller_id_sent": "15145550123", "cli_delivered": "+15145550123",
"answered": true, "pdd_ms": 1800, "mos": 4.2, "call_id": "…"}
GET /api/customer/cli-verification/coverage lists the countries and the fee. /api/customer/cli-schedules manages schedules. Over MCP the tools are cli_coverage, verify_cli and get_cli_check, so a NOC agent can verify every route on a schedule and open a case with the evidence attached. See the agent guide.
Frequently asked questions#
What does a CLI verification check?
Whether the caller ID you send through a route is the caller ID the far end receives. The far end is a number the platform holds in the country you pick, so what arrived is read exactly, not from a phone's screen.
What do the verdicts mean?
Match: the same number arrived. Modified: the number changed, and the check says how: the format (a dropped plus, national instead of international), the prefix, or the digits themselves. Withheld: the call arrived anonymous. Missing: it arrived with no caller ID at all. Not received: the route took the call but it never reached the number.
Do I see the verification number?
No. You pick a country; the platform picks and leases one of its numbers to your check for its duration. A call on a number that is not leased is refused, so the numbers cannot be used as a free destination.
My country is not listed. What now?
Use Request coverage on the page. It opens a support ticket and counts towards what is sourced next. If you have a number of your own in that country, host it instead: point it at the platform, prove it with one call, and it becomes a verification number that earns you US$0.15 per check. See Host a number.
What does a check cost?
$0.25 a check, plus the short call the check places, which is billed like any other analyzed call: $0.29 all in on the defaults. The portal shows the fee before you run one. A check that could not be placed is not charged, and scheduled checks cost the same per run. See the pricing page.
Can an agent run it?
Yes. The MCP tools cli_coverage, verify_cli and get_cli_check, or POST /customer/cli-checks on the REST API, do what the page does.