Skip to content

CityFibre - Partner Installation (1.0.0)

Introduction

CityFibre has implemented an automated process to accommodate the dispatch of Job Packs related to the installation of FTTH/P services. This requires the Partner to follow the same process in terms of the integration points, message types and message payloads relayed between each party. The implementation is based on JSON over RPC and has a common definition for inbound and outbound calls.

FTTH/P Installation

General Process Flows

Standard Installation Flow

Standard Installation Flow
Standard Installation Flow
  • CityFibre sends createJob for each job pack due. N.B. this can be at any point from when the Service Order was received to the day prior to installation.
  • Installation Partner responds with providerJobId
  • Installation Partner assigns the job to an engineer and sends notifyJob with Engineer Details
  • On the day of installation
    • Installation Partner sends notifyJob when the engineer has indicated that they are en-route to the installation with coordinates/time
    • Installation Partner sends notifyJob when the engineer has indicated that they are onsite with coordinates/time
    • Installation Partner sends notifyJob when the Engineer scans QR Code on the ONT, with the ONT FSAN and Serial Number
    • CityFibre sends notifyJob when ONT is provisioned
    • After additional install steps/tests, Installer sends back closeJob with question based closure and appropriate close and secondary close code with description

Installation Closure Codes and Description

Closure CodesDescription
SPService Provided
PSPPartial install, CPE Install failed
HAZSite Unsafe
RNA/NANo Access (Rectifiable)
NAPUVNo Access (Not Rectifiable)
ASQSales Query
UNFUnforeseen Circumstance e.g. Tree Line of Sight
MBORCUnable to Attend (Notice Given)
FTAUnable to Attend (No Notice)
CONFault at Node (or between Toby and Node)
POPFault at POP (or between Node and POP)
ONTFault at ONT or between Toby and ONT
CPRFault at Pole (Cherry Picker required)
NTRNo Truck Roll
REVCOMPSuccess
REVCPRFault at Pole (Cherry Picker Required)
REVASQSales Query
REVHAZSite Unsafe
REVNANo Access
REVUNFUnforeseen Circumstance e.g. Tree Line of Sight
REVPOPFault at POP (or between Node and POP)
REVCONFault at Node (or between Toby and Node) Traditional build - CF Network
REVONTFault at ONT or between Toby and ONT
REVASSAdditional Assistance
EXTCOMPSuccess
EXTHAZSite Unsafe
EXTCONFault at Node (or between Toby and Node)
EXTPOPFault at POP (or between Node and POP)
EXTASQSales Query
CIVCOMPCivils Complete
CIVCONCivils Restriction
CIVNANo Access to Network
CIVWAYPermission Refused
CIVQUOQuote Not Approved
Other reasonOther codes sent, we will process as ‘Other reason’

Installation Secondary Closure Codes and Description

The codes and descriptions below should be included on the closeJob notification when closureCode is either CON or POP. The secondary closure code provides additional detail as to the closure reason.

Closure CodeSecondary Closure CodeSecondary Closure Code Description
CONCON01Incomplete Network
CONCON02No Infrastructure present
CONCON03Openreach D Pole
CONCON04No Capacity at SN/ASN Available
CONCON05Toby Move required
CONCON06Line of Sight issue
CONCON07Blockage - Gel Wrap
CONCON08Blockage - Lead In (Openreach)
CONCON09Unable to blow fibre between the Secondary Node cab and Toby
POPPOP01No Light (SN/PN)
POPPOP02No Light (ASN)
POPPOP03Light reading out of scope (High or Low optical signal)
REVCPRREVCPR01Specialist Hoist Required
REVASQREVASQ01Cancelled Already
REVASQREVASQ02Changed My Mind
REVHAZREVHAZ01Customer Behaviour
REVHAZREVHAZ02Pet Behaviour
REVHAZREVHAZ03Environment Unsuitable
REVNAREVNA01Customer Not In
REVNAREVNA02Customer Ill
REVUNFREVUNFTree Line Of Sight
REVPOPREVPOP01No Light (SN/PN)
REVPOPREVPOP02No Light (ASN)
REVPOPREVPOP03Light reading out of scope (High or Low optical signal)
REVCONREVCON01Blockage - Gel Wrap
REVCONREVCON02Blockage - Lead In (Openreach)
REVCONREVCON03Unable to blow fibre between the Secondary Node cab and Toby
REVONTREVONT01ONT Issue
EXTHAZEXTHAZ01Customer Behaviour
EXTHAZEXTHAZ02Pet Behaviour
EXTHAZEXTHAZ03Environment Unsuitable
EXTHAZEXTHAZ04Scaffolding
EXTHAZEXTHAZ05Asbestos
EXTHAZEXTHAZ06Traffic Management required
EXTHAZEXTHAZ07Flat Roof
EXTHAZEXTHAZ08Confined Space - Safe working not achievable
EXTCONEXTCON01Incomplete Network
EXTCONEXTCON02No Infrastructure present
EXTCONEXTCON03Openreach D Pole
EXTCONEXTCON04No Capacity at SN/ASN Available
EXTCONEXTCON06Line of Sight issue
EXTCONEXTCON07Blockage - Gel Wrap
EXTCONEXTCON08Blockage - Lead In (Openreach)
EXTCONEXTCON09Unable to blow fibre between the Secondary Node cab and Toby
EXTCONEXTCON10Network Adjustment Required - Chamber (PIA)
EXTCONEXTCON11Network Adjustment Required - Pole (PIA)
EXTCONEXTCON12Fault between Mice Joint and Secondary node
EXTCONEXTCON13Unable to blow fibre - Greater than 350m
EXTCONEXTCON14Unable to Blow Fibre - Network Point to Pole
EXTCONEXTCON15Electricity Pole
EXTCONEXTCON16Pole top Fixing Missing - Multi Span Route
EXTCONEXTCON17Blockage - Box to Box (PIA Network)
EXTCONEXTCON18Blockage - Box to Pole (PIA Network)
EXTCONEXTCON19Splitter capacity - full - Additional splitter
EXTPOPEXTPOP01No Light (SN/PN)
EXTPOPEXTPOP02No Light (ASN)
EXTPOPEXTPOP03Light reading out of scope (High or Low optical signal)
EXTASQEXTASQ02Never Ordered
EXTASQEXTASQ07Cancelled Already
EXTASQEXTASQ08Changed My Mind
EXTASQEXTASQ09Refused Enablement Works
CIVCOMPCIVCOMP01Civils Complete - BFT Installed
CIVCOMPCIVCOMP02Civils Complete - Splicing Required
CIVCOMPCIVCOMP03Civils Complete - Customer Live
CIVCOMPCIVCOMP04Civils Complete - Fibre Blown
CIVCOMPCIVCOMP05Civils Complete - No Dry Install
CIVCOMPCIVCOMP06No Civils Required - BFT Installed
CIVCOMPCIVCOMP07No Civils Required - Splicing Required
CIVCOMPCIVCOMP08No Civils Required - Customer Live
CIVCOMPCIVCOMP09No Civils Required - Fibre Blown
CIVCOMPCIVCOMP10No Civils Required - No Dry Install
CIVCONCIVCON01Civils Restriction - Embargo
CIVCONCIVCON02Civils Restriction - Heritage / Listed Area
CIVCONCIVCON03Civils Restriction - Local Authority
CIVCONCIVCON04Civils Restriction - Third Party Works
CIVCONCIVCON05Missing Network/Infrastructure
CIVCONCIVCON06Permission Refused
CIVNACIVNA01No Access to Network
CIVWAYCIVWAYPermission Refused - Wayleave
CIVQUOCIVQUOQuote Not Approved

Installation Question Based Closure

For further details please refer to separately provided Question Based Closure Matrix – which details the relationship between closure and secondary closure codes, question and answer definitions and question flow.

Questions and Answers

"questions_answers":
        [
            {
                "question": "Did Sponge Pass?",
                "question_code": "1100",
                "answer": "Yes",
                "response_received": "2018-01-02T09:32:33+00:00",
                "source": "notifyJob"            },

The question should match the text from the related question The question code should match the ID of the related question The answer should match the answer of the related question The source should match the point in the journey it was sent, either “notifyJob” or “closeJob”

Photos

"questions_answers": [
        {
            "question": "Time of first call Mandatory Photos of call log & Photos of door/house",
            "question_code": "4900",
            "answer": "07:56",
            "response_received": "2023-09-25T11:37:10.9362823+01:00",
            "source": "Closure",
            "files": [
                {
                    "name": "example.jpg",
                    "url": "",
                    "object_path": "s3://URLcode.enta.cloud/example.jpg"
                }
            ]
        },

Files can optionally be included with each structured response, defined in an array. Each file listed should include the following details:

  • name
  • type
  • object_path
  • url (optional) The object_path parameter should be the full S3 endpoint including the filename.

The url is an optional field which if included should be a url which can be used to retrieve the file using a standard http (GET) request. This may be a pre-signed URL generated from S3.
Note that the S3 bucket will be shared with the Installation Partner by CityFibre in advance.

Property Flags

Property Flag CodeDescription
CHPCherrypicker needed
DANDangerous property location
DTLIndicates that the length of the driveway to the premise is longer than the typical 10m
SURIndicates 10 day lead time on install and that a survey is required prior to installation
MDUIndicates premises is within a Multi Dwelling Unit
WSDindicates that the premises shares a drive with neighbouring premises

ONT Provisioning

ID (non technical identifier)SuccessDetailsONT VendorsDescription
1TrueONT Successfully ProvisionedNokia and CalixConfiguration has been successfully pushed to device
2TrueONT Install SuccessfulNokia and CalixEquivalent green light meaning successful install
3FalseONT Provision Failed. Contact Order DeskNokia and CalixIssue during provision that needs intervention
4FalseDelay – Retrying in 5 minutesNokia and CalixProvision will be reattempted in 5 minutes
5FalseONT Provision Failed. Incorrect Device Type UsedNokia and CalixONT Type used does not match the OLT type
6FalseONT Provision Failed. Incorrect provisioning details entered. FSAN or Serial Number incorrectNokia and CalixFSAN/Serial Number entered doesn’t match required format
7FalseONT Provision Failed. Duplicate Device. Device has been scanned against existing open Installation ActivityNokia and CalixDevice has already been used and is recognised against another service

Integration sequence diagrams

Before Installation

Create Job

Before_Installation_Create_Job
Before Installation Start Create Job

Cancel Job

Before_Installation_Start_Cancel_Job
Before Installation Start Cancel Job

Day of Installation

Notify Job

Day_of_Install_Notifications
During Installation Notifications

Authentication

Authentication is by means of HTTPS client certificate. It is also restricted to pre-agreed source IP addresses.

Network Configuration

Cityfibre provides two fixed-address API endpoints for redundancy:


    api-gw1.cityfibre.com 52.51.45.11 (IPv6: 2a05:d018:9a3:b500::100)

    api-gw2.cityfibre.com 52.58.75.78 (IPv6: 2a05:d014:b31:f200::100)

Messages may be POSTed to either of these. For convenience there is also a round-robin DNS entry: api-gw.cityfibre.com (resolves to both addresses)

Required firewall configuration is as follows.

Download OpenAPI description
Languages
Servers
Mock server
https://partner-installation.docs.cityfibre.com/_mock/openapi
Main (production) server
https://api-gw.cityfibre.com:41223/prod/api2
CFStaging server
https://api-gw.cityfibre.com:41223/cfstaging/api2
CFSit server
https://api-gw.cityfibre.com:41223/cfsit/api2

Request

Payload to close a job.

Security
Certificate
Bodyapplication/json
idintegerrequired
jsonrpcstringrequired
methodstringrequired
paramsobjectrequired
jobHeaderobject(jobHeader)
installTypeobject(installType)
ontDetailsobject
activityStartTimestring(date-time)
activityEndTimestring(date-time)
closureDetailsobject(closureDetails)
testResultsobject(testResults)
nodeDetailsobject(nodeDetails)
closureDocumentsobject(closureDocuments)
application/json
{ "id": 1, "jsonrpc": "2.0", "method": "closeJob", "params": { "jobHeader": {}, "installType": {}, "ontDetails": {}, "activityStartTime": "2022-03-28T12:07:18.15", "activityEndTime": "2022-03-28T12:53:36.43", "closureDetails": {}, "testResults": {}, "nodeDetails": {}, "closureDocuments": {} } }

Responses

Acknowledgement of the message.

Bodyapplication/json
object(Close Job Response)
Response
application/json
{}
Operations