Skip to content

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

markdown version: /docs/signals/phone/international_network.md