# `voip` (phone): 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).

- Weight: +30
- Dataset: `libphonenumber`
- Read 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.

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` (https://spaw.co/docs/api/update-phone-policy) or the dashboard's SMS policy tab, and its `block_signals` may list any signal, this one included.

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.

```json
{
    "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
}
```

Related:

- [`premium_rate`](https://spaw.co/docs/signals/phone/premium_rate): a premium-rate number
- [`pager`](https://spaw.co/docs/signals/phone/pager): the numbering plan types the number as a pager
- [`international_network`](https://spaw.co/docs/signals/phone/international_network): an international network or satellite number
- [`shared_cost`](https://spaw.co/docs/signals/phone/shared_cost): a shared-cost number
- [The weights table in the phone guide](https://spaw.co/docs/phone-intelligence#signal-voip)
- [Glossary: line type](https://spaw.co/glossary/line-type)
- [Glossary: SMS policy](https://spaw.co/glossary/sms-policy)

Reference: https://spaw.co/docs/signals/phone/voip
