international_network
An international network or satellite number
The Spaw phone risk signal international_network adds 30 points to risk_score when the number's calling code belongs to a network rather than a country: +870 for Inmarsat, +881 for the global mobile satellite systems, or +882 and +883 for the international networks (dataset libphonenumber).
- risk weight
- +30
- dataset
- libphonenumber
- reads from
- calling_code
- 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
The E.164 plan gives these calling codes to networks that serve no single country, so the answer's country is null. Satellite handsets, maritime and aviation services and international mobile and machine networks number from them. The dataset is libphonenumber.
It is decided from the calling code alone and adds to any line-type signal: the plan types every +883 number as VoIP, so voip adds its own +30 there.
What it cannot tell you
- No regulator's table stands behind these codes. carrier is null unless libphonenumber's prefix data names a network, as it does for every +881 range and a few +882 ranges; carrier_code and carrier_brand stay null.
- A number under these codes that libphonenumber rejects answers invalid_number and carries no score at all.
What to do
If you serve nobody on a satellite or international network, set allowed_countries in the SMS policy: a number with no country is outside every allow-list. 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": null,
"calling_code": 881,
"line_type": "mobile",
"line_type_source": "numbering_plan",
"risk_score": 30,
"risk_level": "medium",
"risk_signals": [
{
"signal": "international_network",
"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
- voip · the numbering plan types the number as VoIP
- pager · the numbering plan types the number as a pager
- shared_cost · a shared-cost number
- The weights table in the phone guide
- Glossary: E.164
- Glossary: SMS policy
- Where the data comes from: libphonenumber
- All phone risk signals
markdown version: /docs/signals/phone/international_network.md