Uploaded image for project: 'FreePBX'
  1. FreePBX
  2. FREEPBX-22293

CID Superfecta UK number format checking is too restrictive



    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s:
    • Fix Version/s:
    • Component/s: CID Superfecta
    • Labels:
    • ToDo:
    • Distro Version:
    • Distro:
      FreePBX Distro
    • Module Fix Version:


      I've enabled CID Superfecta on FreePBX, and enabled the "Say No to 0870" data source.

      Superfecta is rejecting valid UK numbers - see this example from running Debug/Test Run Scheme:
      {{-> Executing Say No To 0870 UK
      Skipping Source - Non UK number: 00443337591018
      result took 0.0011 seconds. }}

      This number is a valid UK non-geographic number of exactly the sort that the Say No To 0870 database is intended to look up...

      The code responsible for the UK validity check ( https://github.com/FreePBX/superfecta/blob/release/16.0/includes/superfecta_base.php#L667 ) seems to be overly strict on its requirements, and white-lists STD (area/trunk) codes. This is discouraged by Ofcom, the UK's telecommunications regulator.

      The UK's national telephone number plan is published at https://www.ofcom.org.uk/__data/assets/pdf_file/0013/102613/national-numbering-plan.pdf - linked from https://www.ofcom.org.uk/phones-telecoms-and-internet/information-for-industry/numbering .


      As FreePBX will only see either a fully-qualified number with international dialing code (00441234567890) or a fully-qualified UK number with STD/area code (01234 567890), the correct match rules can be represented in the form of a fairly simple list of dial patterns:

      Match pattern Function
      0[12]XX. Geographic with STD code - 01 and 02
      03XX. UK-wide non-geographic charged at geographic rates - 03
      05[56]XX. Corporate and VOIP phone numbers
      Note: 0500 Freephone withdrawn in 2017
      07[123456789]XX. Mobile numbers and pagers
      080[08]XX. Freephone - 0800 and 0808
      082XX. Internet for Schools - 082
      084[345]XX. Non-geographic "local rate" - 0843/0844/0845
      087[0123]XX. Non-geographic "national rate" - 0870/0871/0872/0873
      00XX. International - 00 followed by country code
      116XXX 116xxx: services of social value
      Ofcom has consulted on these but has yet to assign them to a service operator.
      999 Emergency services (free)
      1XX Three-digit 1-numbers:
      100 (Operator)
      101 (Police non-emergency, 15p/call)
      105 (National Power Cut Service, free)
      111 (NHS urgent-care advice, free)
      112 (Emergency, alt. of 999, free)
      119 (NHS COVID-19 Test & Trace, free)
      123 (talking clock, charges vary)
      150 (operator customer services, charges vary)
      155 (international operator, charges vary)
      Premium rate services
      070XX. Personal number services (can be expensive)
      09XX. Premium Rate numbers

      These are numbers as dialed on a UK phone keypad - so in international form, the initial zero would be substituted with "0044". That is to say, "01234 567890" would become "00441234567890".


      Could the rules be adjusted to follow the UK number plan, and thus recognise more valid UK numbers?

        Gliffy Diagrams




              • Assignee:
                philpem Phil Pemberton
              • Votes:
                0 Vote for this issue
                5 Start watching this issue


                • Created:
                  Feedback Requested:


                  Error rendering 'slack.nextup.jira:nextup-jira-plus-status'. Please contact your Jira administrators.