Europe Telecom • 3 min read • By Oliver Davies

UK Mobile Numbering Conventions and Ofcom Allocation Guidelines

How Ofcom allocates mobile prefixes starting with 07, distinguishing personal mobile services from pager, WiFi, and premium non-geographic allocations.

Table of Contents

Quick jump to any section in this article

7 sections

UK Mobile Numbering Conventions and Ofcom Allocation Guidelines

In the United Kingdom, all telecommunication numbering is regulated by the Office of Communications (Ofcom) under the National Telephone Numbering Plan.

Unlike the United States where mobile phones and landlines share the exact same geographic area codes, the UK maintains strict prefix separation: mobile services are assigned dedicated numbering ranges distinct from geographic landlines.

Understanding these allocations is critical for anyone building SMS delivery services or validating UK phone numbers.


Overview of the UK National Telephone Numbering Plan

The UK uses an open numbering plan with numbers formatted nationally with 10 or 11 digits:

  • 01 and 02: Geographic landline area codes (e.g., London 020, Manchester 0161, Birmingham 0121).
  • 03: Non-geographic numbers charged at standard geographic rates.
  • 07: Mobile phones, personal numbering, and radiopaging.
  • 08: Freephone (0800, 0808) and business-rate services (0845, 0870).
  • 09: Premium rate services.

The 07 Mobile and Personal Numbering Block

All UK mobile telephone numbers are 11 digits long nationally and begin with the 07 prefix. However, not every number starting with 07 is a standard mobile phone.

Breakdown of 07 Cellular Sub-Ranges

Standard cellular phone services (EE, O2, Vodafone, Three, and virtual MVNOs like giffgaff and Tesco Mobile) are allocated within:

  • 07100 through 07599
  • 07700 through 07999

Personal Numbers and Pagers (070 and 076)

Ofcom explicitly segregates non-cellular services to prevent consumer fraud:

  • 070 (Personal Numbering): Historically used for call-forwarding services and frequently subject to high billing surcharges.
  • 076 (Radiopaging Services): Designated for medical pagers and legacy emergency dispatch devices.

Systems sending SMS verifications must verify that numbers belong to cellular mobile ranges rather than 070 or 076 lines, which cannot receive standard SMS text messages.


Converting UK Domestic Numbers to International E.164 (+44)

When converting UK phone numbers for international storage and carrier routing:

  1. Drop the Leading Zero: The national trunk prefix 0 must be removed.
  2. Prepend Country Code +44: Combine the ITU-T country code with the 10-digit national significant number.
Format TypeDomestic RepresentationInternational E.164Notes
UK Mobile (EE / Vodafone)07911 123456+447911123456Standard 10-digit payload after +44
London Landline020 7946 0991+442079460991Geographic landline
Manchester Landline0161 496 0123+441614960123Regional geographic landline

Ofcom Drama and Fictional Number Allocations

To support television production, films, and automated testing, Ofcom has officially allocated dedicated blocks of fictitious numbers that are guaranteed never to ring a real person:

  • UK Mobile Test Range: 07700 900000 through 07700 900999
  • London Landline Test Range: 020 7946 0000 through 020 7946 0999
  • Northern Ireland Test Range: 028 9018 0000 through 028 9018 0999

Software developers testing UK telephony workflows should exclusively generate numbers within the 07700 900xxx mobile drama block.


Frontend Formatting and Regex Validation Rules

To validate UK mobile phone numbers accurately on web forms:

// Strict UK Mobile Regex (matching 071-075 and 077-079 prefixes)
const UK_MOBILE_REGEX = /^(?:(?:\+44\s?|0)7(?:[1-5]\d{2}|[7-9]\d{2})\s?\d{6})$/;

function isUkMobile(phone) {
  // Normalize whitespace
  const sanitized = phone.replace(/[\s()-]/g, '');
  return UK_MOBILE_REGEX.test(sanitized);
}

// Tests:
console.log(isUkMobile('07911 123456'));  // true
console.log(isUkMobile('+447911123456')); // true
console.log(isUkMobile('02079460991'));   // false (Landline)
console.log(isUkMobile('07012345678'));   // false (Personal 070 number)