voip
The numbering plan types the number as VoIP
The Spaw phone risk signal voip adds 30 points to risk_score when libphonenumber's numbering-plan metadata types the number as VoIP, such as the UK 056 range (dataset libphonenumber).
- risk weight
- +30
- dataset
- libphonenumber
- reads from
- line_type
- default SMS policy
- does not block it on its own: +30 is within the default ceiling of 60, which blocks only a score above it.
What it means
Some plans set ranges aside for internet telephony: the UK's 056, and some ranges under the international network codes. line_type answers voip with line_type_source numbering_plan, and the dataset is libphonenumber.
It is separate from virtual, which reads the holder of the block from a regulator's table. A North American number whose block holder is a VoIP provider answers line_type voip from block_allocation and carries virtual, not this signal.
What it cannot tell you
- It reads the plan's range, not the service behind the number: Spaw does not separate fixed from non-fixed VoIP, and a range typed VoIP can carry an ordinary business line.
- Many VoIP numbers sit in ranges the plan types as geographic or mobile, where only the block holder can tell them apart.
What to do
Weigh it with the rest; blocked_line_types voip refuses the line type outright. On its own it scores 30 and passes the default SMS policy, which blocks a score above 60; beside other signals the score can pass that.
The SMS policy is set per account with PUT /api/v1/phone/policy or the dashboard’s SMS policy tab, and its block_signals may list any signal, this one included; the phone guide lists every rule and its default.
Example response
An excerpt of an answer carrying this signal alone, with the number and the other fields left out, because no test number answers it. The score and the decision are worked out as the lookup and the default SMS policy work them out.
{
"valid": true,
"country": "GB",
"line_type": "voip",
"line_type_source": "numbering_plan",
"risk_score": 30,
"risk_level": "medium",
"risk_signals": [
{
"signal": "voip",
"weight": 30,
"dataset": "libphonenumber"
}
],
"ok_to_send": true,
"blocked_by": null
}A real answer carries every field, listed in the validate-phone reference; the weights of every entry in risk_signals sum to risk_score, capped at 100.
Related
- premium_rate · a premium-rate number
- pager · the numbering plan types the number as a pager
- international_network · an international network or satellite number
- shared_cost · a shared-cost number
- The weights table in the phone guide
- Glossary: line type
- Glossary: SMS policy
- Where the data comes from: libphonenumber
- All phone risk signals
markdown version: /docs/signals/phone/voip.md