# Patent

## Title
Automation of customer premises equipment provisioning in a telecommunications network

## Abstract

A method of automation of subscriber customer premises equipment provisioning for use in a next generation telecommunications network. In one specific embodiment, the method involves receiving a service request from a network service provider that specifies a service to be provided to the customer premises equipment. A configuration template for a configuration appropriate for the customer premises equipment is retrieved. Configuration data is automatically generated for the customer premises equipment based on the configuration template and stored system configuration information. The completed configuration data is automatically delivered over the network to the customer premises equipment to result in configuring the customer premises equipment to provide the service. Embodiments are useful for configuring ADSL and T1 CPE devices in a voice-over-ATM network that uses Internet Protocol.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
Continuation-in-part of U.S. application Ser. No. 09/863,728, filed May 22, 2001, entitled Analysis Method For Provisioning Subscribers In A Next Generation Telecommunications Network, of inventor Piu Piu Ong, the entire disclosure of which is hereby incorporated by reference as if fully set forth herein, and from which domestic priority is hereby claimed under 35 U.S.C. § 120.


FIELD OF INVENTION
The present invention generally relates to provisioning customer premises equipment in a telecommunication network. The invention relates more specifically to a method and apparatus for automation of customer premises equipment provisioning in a telecommunications network.
BACKGROUND OF THE INVENTION
The structure and function of telecommunications networks presently are undergoing remarkable change. The traditional circuit-switched telephone networks, also known as the public switched telephone network (PSTN) or Plain Old Telephone System (POTS), are undergoing replacement by heterogeneous networks that use numerous different digital communication protocols, hardware and other technologies. These new heterogeneous networks may use packet switching, Internet Protocol (IP), asynchronous transfer mode (ATM) switching, coaxial cable transmission, wireless links, and many other kinds of connections, equipment and interfaces. The new networks can carry data representing digital files, voice, video, and other media, and can provide multicasting and numerous other advanced services. Such networks are referred to herein as Next Generation Networks (NGN).
Both the POTS networks and NGNs use digital electronic equipment, computers and software for command, communication and control. One key difference between the architecture of the hardware and software in the POTS networks and NGNs is where intelligence is located in the network to deliver services and what kind of intelligence is provided. In a POTS network, processors that provide intelligence are centrally located, as in dedicated telephone company central offices. In contrast, in an NGN, intelligence is distributed across different devices in the network. Routers, switches, gateways, and related management software may be located in numerous locations, and network software providing command, control and communication may be located in any such device.
FIG. 1 is a block diagram of an example of a POTS network 100. In this example configuration, a centralized architecture has intelligence that is provided by one or more Class 5 (C5) switches 102A, 102B, a Service Control Point (SCP) 104, a Remote Digital Terminal (RDT) 106, and other nodes. Connections between a C5 switch 102A, 102B or RDT 106 and one or more subscriber telephones 112A are accomplished using copper wire. Each C5 switch is, for example, a No. 5 Electronic Switching System (5ESS) of the type first introduced by AT&T Bell Laboratories.
FIG. 2 is a block diagram of an example of an NGN 200. NGN architecture is quite different from POTS architecture. In particular, intelligence is distributed to many devices in the network, which may be geographically separated by large distances. In the example arrangement shown in FIG. 2, C5 switch 102A is coupled by copper wire connection 110 to a gateway 202, which is communicatively coupled to an Internet Protocol (IP) network 204.
A SCP 104 may also communicate with IP network 204 through PSTN 108 and a soft switch 206, which is communicatively coupled relatively directly to the IP network. The soft switch and the CPE connected over an IP network provide the functions of a POTS C5 switch. The gateway 202 and the CPE 212A provide the functions of a POTS RDT. In both cases, multiple devices distributed across the network participate in the processing and delivery of services.
Various other kinds of equipment and connections may be found in the NGN network 200. For example, IP network 204 may be connected through Digital Subscriber Line (DSL) device 210 to a Customer Premises Equipment (CPE) device 212A that services one or more workstations 216 or telephones 214. Workstations 216 may be personal computers, computer workstations, terminals, or other end station devices. Further, there may be a T1 connection 218 to a router 220 that services IP phones 214 or other workstations 216. As still another example, a cable gateway 224 may couple the IP network 204 to a cable system head-end facility 226. Signals from IP network 204 may also reach subscribers through the cable system by a communicative connection of cable gateway 224 to CPE 212B, which services one or more telephones 214, televisions 230, or other devices. Thus, in the example network of FIG. 2, CPE devices may access the NGN through cable, T1 and Digital Subscriber Line (DSL) links.
Each Customer Premises Equipment (CPE) device 212A, 212B is an intelligent device installed at the customer premises such as a residence, business facility, etc. Each CPE collaborates with other devices in the network 200 to deliver multiple services such as voice, video, and data connections to the Internet.
When an individual requests access to the POTS network for the first time, the owner or operator of the POTS network or other service provider is required to carry out numerous tasks. These tasks may be triggered by an individual moving to a new home, a business requesting an additional line to its premises, etc. Tasks for provisioning a new telephone subscriber may include a credit check, allocation of telephone number, updating 411 and 911 directories, creating subscriber information such as billing address, preferred long distance carrier, etc. These “back office” tasks are beyond the scope of this document, which focuses on the task to provision a subscriber on the network to activate voice service.
As part of deployment and maintenance of a POTS network, records are kept about copper loops owned by a service provider. In this context, the term “copper loop” refers to the infrastructure owned and maintained by an Incumbent Local Exchange Carrier (“ILEC,” formerly known as the Regional Bell Operating Companies (RBOCs)), i.e., copper wires from CO or RDT to a termination point (residence, office, etc.). For example, when a subscriber calls his provider to order new service, the provider has information such as whether the house is wired for telephone service, and if it is, how many wall outlets, etc. Another example is if a service provider has information on which level of DSL services can be provided to a neighborhood, the service provider also knows how far the house is from the CO, quality of the “copper wires”, etc., hence, what speed can be guaranteed to a potential DSL customer. Such information is used by service providers to process service and may be stored in one or more databases. When a customer places an order for service with the service provider, these records are used to determine if the service provider is physically able to provide service to the requested location. If service can be provided, the “back office” tasks are carried out. Thereafter, the service provider carries out network provisioning for the subscriber. Network provisioning operations may include provisioning the subscriber on the C5 switch and RDT, depending on how the copper loop is terminated in the Central Office (CO). Some network services may require provisioning the SCP through its Service Management System (SMS).
Provisioning subscribers in an NGN is significantly more complicated. As noted above, many different access methods can be used to connect CPE to the core network. Therefore, the network operator must verify that it has properly provisioned and installed physical network access points, such as DSL concentrators and cable gateways, that can serve subscribers before the subscribers are provisioned.
Provisioning NGN subscribers involves more than just provisioning the Soft Switch and the Gateway. If a subscriber is served by a Gateway, then the C5 switch that is associated with that Gateway also must be provisioned. Provisioning procedures also include provisioning subscribers on other network devices. Devices that have a role in the delivery of services to subscribers are touched when activating a service. These devices may be in the core network, at the access edge, and/or customer premises. As in a POTS network, some service orders may require provisioning SCP services through the SMS.
The requirements and procedures to provision a POTS subscriber are well defined and understood. This can be attributed to decades of experience in the management of POTS network. The nature of an architecture that is based on centralized management and processing of network services limits the requirements around a limited number of devices that need to be touched when provisioning a subscriber.
The distribution of intelligence to deliver service across network devices in an NGN that consists of CPE, access and core networks using different technologies has introduced new provisioning requirements and the need for new procedures to fulfill these requirements.
In particular, provisioning CPE devices of NGN subscribers to deliver multiple services may require the configuration of the CPE device at the subscriber's usage location (e.g., home or office), access elements, and core network devices, depending upon the network technologies and the services that are being offered. In this context, “access elements” refers to devices located at a provider access point, and may include a DSLAM device in the case of DSL access an aggregation router in the context of T1 access, a universal broadband router (UBR) in the case of cable technology, etc. Thus, the number of steps required to carry out successful provisioning is much greater in an NGN.
Further, the procedures for configuring various network devices are executed in a sequence that is determined in part by their inter-dependencies. Execution of such procedures can be done manually, which is a tedious, labor-intensive, and error-prone process. To compete for market share and increase profitability, service providers must build system that reduce administrative costs and accommodate rapid subscriber growth.
As shown in the NGN of FIG. 2, the possible permutation of CPE, access and core network technologies is not a small number. Offering multi-service packages, such as data and voice, further increases the level of complexity of this environment. Hence, the job to identify provisioning requirements is non-trivial.
Based on the foregoing, there is a need for a way to automate the provisioning process. There is a particular need for a way to automate the setup steps that are required to accurately provision CPE devices for NGN services, in a manner that is convenient, fast, and simple.
There is also a need for a way to provide automatic provisioning for “zero-touch” CPE devices so that little or no manual intervention is needed at the device in order to turn on services for a subscriber.
SUMMARY OF THE INVENTION
The foregoing needs, and other needs and objects that will become apparent for the following description, are achieved in the present invention, which comprises, in one aspect, a method to automate customer premises equipment provisioning in a next generation telecommunications network. In one specific embodiment, the method involves receiving a service request from a network service provider that specifies a service to be provided to the customer premises equipment. A configuration template for a configuration appropriate for the customer premises equipment is retrieved. Configuration data is automatically generated for the customer premises equipment based on the configuration template and stored system configuration information. The completed configuration data is automatically delivered over a local connection or over a network to the customer premises equipment to result in configuring the customer premises equipment to provide the service.
Embodiments are useful for configuring ADSL and T1 CPE devices in a voice-over-ATM network that uses Internet Protocol.
Other aspects and features of the invention and its embodiments will become apparent from the following description.



BRIEF DESCRIPTION OF THE DRAWINGS
The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
FIG. 1 is a block diagram that illustrates a simplified example of a POTS network;
FIG. 2 is a block diagram that illustrates a simplified example of a next generation network;
FIG. 3 is a flow diagram that illustrates one specific embodiment of an analysis method for provisioning subscribers in a next generation network;
FIG. 4A is a flow diagram of sub-steps involved in certain steps of FIG. 3;
FIG. 4B is a block diagram illustrating how the NGN of FIG. 2 is partitioned into a subscriber CPE area, an access network and core network area, and a switch and other processors area;
FIG. 5 is a flow diagram of sub-steps involved in certain steps of FIG. 3;
FIG. 6A is a block diagram of a network context in which an embodiment may be used;
FIG. 6B is a simplified block diagram of an example logical architecture in which the processes described herein may be implemented;
FIG. 7 is a block diagram of a CPE configuration service;
FIG. 8A is a diagram of a communications flow involved in carrying out automatic provisioning of a DSL CPE device, according to one embodiment;
FIG. 8B is a flow diagram of a process of updating a configuration;
FIG. 9 is a state diagram illustrating states applicable to CPE devices as they are provisioned;
FIG. 10A is a flow diagram of one embodiment of T1 CPE pre-stage provisioning;
FIG. 10B is a flow diagram of a procedure for updating a configuration for a T1 CPE device;
FIG. 11 is a flow diagram of a process of preparing for subscriber CPE device provisioning;
FIG. 12A is a flow diagram of a process of automatically provisioning a DSL CPE device.
FIG. 12B is a flow diagram of other steps in a process of automatically provisioning a DSL CPE device.
FIG. 12C is a flow diagram of other steps in a process of automatically provisioning a DSL CPE device.
FIG. 12D is a flow diagram of other steps in a process of automatically provisioning a DSL CPE device.
FIG. 12E is a flow diagram of other steps in a process of automatically provisioning a DSL CPE device.
FIG. 12F is a flow diagram of other steps in a process of automatically provisioning a DSL CPE device.
FIG. 12G is a flow diagram of other steps in a process of automatically provisioning a DSL CPE device.
FIG. 12H is a flow diagram of other steps in a process of automatically provisioning a DSL CPE device.
FIG. 13 is a block diagram that illustrates a computer system upon which an embodiment may be implemented.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
According to one aspect, an analysis method for provisioning subscribers in a Next Generation Network is described. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.
Embodiments are described herein in sections according to the following outline:
1.0 DEFINITIONS
2.0 ANALYSIS METHOD

    
    
        2.1 DECOMPOSE NETWORK AND PARTITION NETWORK INTO THREE MAJOR AREAS
        2.2 ANALYZE MAJOR AREAS AND IDENTIFY PROVISIONING REQUIREMENTS
        2.3 DEFINE PROCEDURE AND IDENTIFY TOOLS
        2.4 DEFINE SEQUENCE OF EXECUTION OF PROCEDURES AND TOOLS
    
    


3.0 AUTOMATED CPE PROVISIONING PROCESS IN GENERAL

    
    
        3.1 FUNCTIONAL OVERVIEW
        3.2 PROVISIONING NETWORK HARDWARE CONTEXT
        3.3 ARCHITECTURE OF CPE PROVISIONING SERVICE
        3.4 CPE PROVISIONING EXAMPLES
    
    


4.0 AUTOMATED CPE PROVISIONING APPROACH IN DETAIL

    
    
        4.1 NETWORK INVENTORY MANAGEMENT
        4.2 STATES AND STATE TRANSITIONS
        4.3 SERVICE REQUESTS
        4.4 PREPARATION FOR PROVISIONING
        4.5 PROVISIONING A DSL CPE DEVICE
        4.6 AUDIT TRAIL LOG AND LOG VIEWER
    
    


5.0 HARDWARE OVERVIEW
6.0 EXTENSIONS AND ALTERNATIVES
1.0 Definitions
Numerous acronyms and abbreviated terms are used in this document for brevity and convenience. The following definitions apply to such acronyms and terms. Such definitions are provided to enhance an understanding of the example embodiments that are illustrated herein. However, the invention is not limited to the definitions set forth herein and is not limited to using the defined terms, acronyms or abbreviations.














ABBREVIATED TERM
DEFINITION









CPE
Customer Premises Equipment



DHCP
Dynamic Host Control Protocol



DNS
Domain Name Server



DSL
Digital Subscriber Line



EMS
Element Management System



FQDN
Fully Qualified Domain Name



IP
Internet Protocol



NGN
Next Generation Network



PPP
Point-to-Point Protocol



PSTN
Public Switched Telephone Network



PVC
Permanent Virtual Circuit










2.0 Analysis Method

In one embodiment, an approach to manage the task of identifying requirements and defining procedures for the diverse network configurations found in next generation networks involves systematically decomposing an NGN and partitioning it into areas. Each area comprises a device or group of devices that provide similar or related functions in the network. Services to be delivered over these devices identify the roles of these devices in the different areas. Proper device settings, or provisioning requirements are identified, and used to drive the definition of procedures for each area. The sequence of execution of these procedures is determined by their interdependencies. The set of all procedures for these areas makes up the end-to-end procedure to provision NGN subscribers.
FIG. 3 is a flow diagram that illustrates one specific embodiment of an analysis method for provisioning subscribers in a next generation network.
In block 302, the network is decomposed and partitioned into three major areas:
Subscriber CPE, Access & Core Network, and Switch & Other Processors.
In block 304, each area is analyzed to identify provisioning requirements for the different services.
In block 306, based on provisioning requirements of each area, a provisioning procedure is defined, and tools are identified, if applicable.
Block 308 comprises determining a sequence of execution of steps in the procedure for each of the three areas to provision a subscriber.
The application of this analysis method is not limited to NGN for voice and data services. It can be applied to networks that provide other services such as video and home appliance control.
Steps of the foregoing method are now individually described in further detail.
2.1 Decompose Network and Partition Network into Three Major Areas
FIG. 4A is a flow diagram of sub-steps that may be used to carry out block 302 of FIG. 3.
In general, an NGN can be logically partitioned into three major areas. In one embodiment, the major areas comprise a subscriber CPE area, an access network and core network area, and a switch and other processors area, as indicated by block 402. FIG. 4B is a block diagram illustrating how the example NGN shown in FIG. 2 could be partitioned into a subscriber CPE area 410, an access network and core network area 412, and a switch and other processors area 414 using the approaches described herein.
As shown in block 404, the boundaries of these partitions are created to isolate and separate devices by their roles and responsibilities in delivering network services. Groupings of similar and/or related functions provided by devices in its own area facilitate the identification of provisioning requirements. Determining boundaries is generally carried out manually based on information about elements in the network and their functions.
Because network topology information or other information that classifies network devices by function is usually not readily available in an NGN, a manual method is preferred, and it is considered important to use a systematic approach to determine provisioning requirements and procedures for an NGN network.
Table 1 describes the functions of the devices in each of the three areas that may be used to make such determinations.







TABLE 1







FUNCTIONS OF DEVICES IN NETWORK AREAS








Area(s)
Function(s)





Subscriber CPE
Network device at customer premise that



collaborates with other NGN devices to



deliver service(s)


Access Network and Core
Network devices at access edge and core that


Network
provide connectivity between subscriber CPE



and other NGN devices


Switch and Other
NGN components that provide network


Processors
services to subscribers









2.2 Analyze Major Areas and Identify Provisioning Requirements
Block 304 of FIG. 3 involves analyzing the three major areas of the network and identifying provisioning requirements for each area. FIG. 5 is a flow diagram of sub-steps that may be carried out in one implementation of block 304 of FIG. 3.
In general, network design dictates how devices communicate, and their roles and responsibilities in the network to deliver services. Therefore, block 304 may involve analyzing the network and services to identify the devices involved, as shown in block 502 of FIG. 5. Further, a determination is made regarding a setup required to enable such devices to communicate with each other to provide services to subscribers on the network, as shown in block 504. Provisioning requirements for the three areas that define information such as individual device settings resulting from such analysis and determination is stored in a database to facilitate actual provisioning.
The partitioning of network into three functional areas facilitates a grouping of provisioning requirements for each area. At a high logical level, the provisioning requirements for the three areas are:

    
    
        1. Subscriber CPE—configuration to enable a device to provide one or more subscribed services;
        2. Access and Core Network—configuration for the devices at the edge of the access network and core network to provide connection between subscriber CPE and other network devices for subscribed services;
        3. Switch and Other Processors—subscription information that includes a unique subscriber identifier, and subscribed services and required parameters.
    
    


Analyzing the role of each device in the delivery of service determines the provisioning requirements. This step in the analysis examines each service and steps through the network to identify the settings for each device that participate in the delivery of the service. For example, if a service design uses PVC to carry IP messages between CPE and Call Agent to set up a voice call, provisioning requirements for the three areas are:

    
    
        a. For Subscriber CPE 220: settings to connect CPE to T1 circuit 218 (connection to network); PVC settings (use PVC to transport data); and IP interface (enable sending and receiving of IP messages from Call Agent).
        b. For Access and Core Network 204: PVC settings on port where T1 circuit 218 is terminated (use PVC to transport data); and IP settings on port where T1 circuit 218 is terminated (enable transport of IP messages).
        c. For Switch and Other Processors 206: IP settings for subscriber CPE 220 (enable sending and receiving of IP messages from CPE).
    
    


In this example, these device settings make up the provisioning requirements for voice service over T1 access. Table 2 summarizes the results of this analysis for delivering voice and data services over DSL. Other services over DSL access, and networks that use other access methods would have different provisioning requirements.







TABLE 2







PROVISIONING REQUIREMENTS FOR LOGICAL


NETWORK AREAS










Area(s)
Provisioning Requirements







Subscriber CPE
1. For Data Service:




a. Point-to-Point Protocol (PPP)




b. PVC for data traffic




2. For Voice Service:




a. IP address




b. Fully Qualified Domain Name




(FQDN)




c. PVC for voice traffic and




messaging with Soft Switch



Access and Core
1. For DSLAM:



Network
a. PVC to Internet gateway for data




traffic (Data Service)




b. PVC to router for voice and




messaging traffic (Voice Service)




2. For Router: (Voice Service)




a. PVC to DSLAM for voice and




messaging traffic




b. Routing information for voice PVC




3. For Internet gateway: (Data Service)




a. PVC to DSLAM for data traffic



Switch and Other
1. For Soft Switch: (Voice Service)



Processors
a. Telephone numbers and mapping to




IP address and port




b. Subscribed services




2. For RADIUS Server: (Data Service)




a. User profile










2.3 Define Procedure and Identify Tools
When provisioning requirements are identified, the next step is to define the procedures to set up the device or group of devices in each of the three areas to activate service for the subscriber, as identified in block 306 of FIG. 3. This step includes understanding the information required to set up a device, and the tools available to perform this task. Steps in the procedure are not limited to configuring devices; such steps may involve obtaining device parameters from other system(s), e.g., IP Address and FQDN.
Using the same example of delivering voice and data service over DSL, the procedures include the steps shown in Table 3.







TABLE 3







PROCEDURAL STEPS AND TOOLS FOR PROVISIONING













Tools & Other



Area(s)
Steps
Systems







Subscriber
Collect CPE parameters -
DHCP server



CPE
IP Address
DNS server




FQDN




Voice PVC




Data PVC




Username and password




(Radius server entry)




Create configuration file




Load configuration file



Access
Provision DSLAM -
Element



& Core
Data PVC to connect
Management



Network
CPE to Internet gateway
System (EMS)




Voice PVC to connect CPE




to router




Provision router -
EMS




Voice PVC to DSLAM




Routing information for




voice PVC




Provision Internet gateway -
EMS




Data PVC to DSLAM



Switch
Provision Soft Switch -
EMS



& Other
Subscriber information



Processors
Provision Radius Server -
EMS




Define user profile










Each tool such as an EMS may provide different interfaces to perform a task. For example, an EMS may provide a GUI interface for a user to set up a device, or it may provide an electronic interface for another tool to deliver the required configuration parameters to the device through the EMS.
2.4 Define Sequence of Execution
Block 308 of FIG. 3 involves analyzing and resolving one or more inter-dependencies of the procedures for the three areas. Output of this analysis is a final order of execution of steps within the different procedures.
The sequence of steps for provisioning a DSL subscriber for voice and data service is summarized in Table 4.







TABLE 4







EXAMPLE SEQUENCE OF PROVISIONING STEPS










Areas
Steps
Sequence
Comments





Subscriber
Collect CPE parameters -
2



CPE
IP Address




FQDN




Voice PVC

Match DSLAM





provisioning



Username and

Match Radius



password

server entry



Data PVC

Match DSLAM





provisioning



Create configuration file
3a



Load configuration file
4


Access
Provision DSLAM -
1a


& Core
Data PVC to connect CPE


Network
to gateway



Voice PVC to connect CPE



to router



Provision router -
3b
Match IP address



Voice PVC to DSLAM

assigned to CPE



Routing information for



voice PVC



Provision Internet
1b



gateway -



Data PVC to DSLAM


Switch
Provision Soft Switch
3c
Match FQDN


& Other
Subscriber information

assigned to CPE


Processors
Provision Radius Server -
1c



Define user profile









The sequence of execution is determined manually by understanding the dependencies of identified provisioning requirements. For example, subscriber IP information cannot be entered into the Soft Switch until it has been set up for CPE.
Steps that are labeled with letters indicate that there are no dependencies with respect to other steps that have the name number and different letters. Thus, such steps may be executed in parallel, or in any order. For example, steps 1a, 1b, and 1c may be executed in the order 1a-1c-1b, or in the order 1b-1a-1c. 
Depending on the function of each step, and tools used to perform function, a step may consist of multiple steps. For example, entering and reviewing data in multiple EMS screens is required to provision PVC on the DSLAM. A procedure detailing all these steps defines the procedure to provision NGN subscribers.
An ordered sequence of execution steps with an identification of any associated required tools, of the type shown in Table 4, may be created and stored in any medium that is convenient, thereby resulting in creating and storing a provisioning plan for provisioning subscribers in the network. Using the foregoing process, diverse NGN configurations can be systematically analyzed to identify provisioning requirements for definition of procedures to provision subscribers. Execution of provisioning procedure may be performed manually, or automated depending on the capability of the tools and availability of Network Management System (NMS). NMS are computer applications that provide the function of automating operational procedures such as provisioning. Using such systems and applications, one or more commands, data, or other information are sent to all necessary devices in the NGN to result in provisioning services for a subscriber.
3.0 Automated CPE Provisioning Process in General
3.1 Functional Overview
According to an embodiment, a computer hardware/software system automates procedures involved in provisioning CPE devices. The provisioning system understands the procedure and sequence of execution of provisioning steps applicable to CPEs. Further, it interacts with CPEs, or related tools, using numerous delivery mechanisms for delivering final configuration data to the CPEs. As a result, CPE devices are automatically configured for NGN services in a rapid and efficient manner.
In this context, “CPE device” refers to any customer premises equipment that may benefit from an automated provisioning approach. Non-limiting examples of CPE devices include the Cisco 827 ADSL Router, the Cisco IAD 2420 Integrated Access Devices, the Cisco 3660 Series Multiservice Platform, Gigabit Ethernet interface devices for home or small office use, etc. The approaches disclosed herein are particularly beneficial when used in connection with CPE devices that are capable of using TFTP, FTP, or similar protocols for data transfer, or that incorporate a pre-configured HTTP client, or that can otherwise support event-based provisioning or HTTP/Web-based provisioning.
Approaches described herein may be implemented in the form of one or more computer programs, applications, or other software elements that are executed under the control or supervision of a telecommunications network service provider. For example, the processes may be embodied in software that runs on computers or workstations located at an operations center, data center, etc.
The following is a description of one specific embodiment of a method of provisioning CPE devices including steps to automatically accomplish a service request related to CPE provisioning.
A service request is received. For example, this involves receiving a service request from a order service system (OSS), customer care system or other software or hardware facility of a telecommunications service provider. A service request generally specifies whether the subscriber is requesting voice service, data service, the type of data service if any, quality of service parameters, etc. In general, embodiments described herein relate to service requests for network access service, such a DSL, or other access approaches that apply to the “last mile” of connection between a subscriber premises and a switching office or other facility of the telecommunications provider.
The service request is decomposed into a sequence of procedures or steps that further break down the provisioning procedure.
The procedures or steps that configure a CPE in the NGN for the desired services are executed. The method notifies the OSS or service provider operator of the status of provisioning.
As an example, configuring a CPE in the NGN is achieved by first collecting one or more configuration parameter values, based on input from the service request, and output from previous procedures/tasks.
A set of configuration data is generated. For example, a configuration file is created and stored, based on a template that corresponds to the device.
The configuration is delivered. The delivery mechanism that is used for a particular CPE depends on the auto-provisioning mechanism supported by that CPE. Examples of configuration delivery mechanisms that can be used include TFTP or FTP download, HTTP download from a Web server, a telnet connection that “pushes” a configuration file to the CPE device, etc. The provisioning system participates in the delivery process by preparing and storing the configuration file for access by the CPE. Alternatively, the provisioning system directly sends the configuration down to the CPE.
The process listens for an event or other notification from the CPE device about the status of configuration download. For example, a particular CPE device may issue an acknowledgement message if the configuration was correctly downloaded and applied. Alternatively, the CPE device may issue a warning message if an error in configuration occurred. Such messages may take the form of events that are published by the CPE device and subscribed to by the provisioning system.
Table 5 summarizes an example sequence of steps for provisioning a DSL subscriber CPE for voice and data service.







TABLE 5







PROVISIONING SEQUENCE FOR DSL CPE DEVICE










Areas
Steps
Sequence
Comments





Subscriber
Collect CPE parameters -
1



CPE
IP Address
2a



FQDN
2b



Voice PVC

Match DSLAM





provisioning



Userame and password

Match Radius server





entry



Data PVC

Match DSLAM





provisioning



Create configuration file
3



Load configuration file
4









    
    
        In Table 5, steps that are labeled with letters indicate no dependencies within this sequence, i.e., steps can be executed in parallel, or in any order. For example, such steps can be executed in the order 1a-1c-1b-1d, or in the order 1b-1d-1a-1c. 
    
    


The following is a description of a process for automating CPE provisioning based on a service request for voice and data service.
The process receives a service request for voice and data service for a DSL subscriber from the OSS.
The service request is decomposed into steps, as summarized in the table above.
The CPE device is provisioned using one or more specific provisioning steps.
The method notifies the OSS or service provider operator of the status of provisioning.
The following is a description of a process that may be used to implement the specific provisioning steps.
The process collects one or more CPE configuration parameter values from the service request that was previously received. Such parameter values may include CPE information (e.g. location, subscriber ID, vendor, type, model, etc.), identifiers of data and voice PVCs, username, password, etc.
The process allocates and reserves IP addresses for voice and data as required, and updates the DNS server with one or more FQDNs associated with the IP addresses.
The process generates a set of configuration data for the CPE device. In one specific embodiment, block 514 involves generating a device-specific configuration file based on a pre-defined template of configuration commands and values.
The configuration data is delivered to the CPE device. In one embodiment, the data is sent directly to the CPE device. Alternatively, a configuration file is prepared for delivery as required by the tools that participate in CPE auto provisioning. Preparation for delivery may involve storing the configuration data at a specific location, or in a specific format.
The process listens for an event or other notification from the CPE device about the status of configuration download. For example, a particular CPE device may issue an acknowledgement message if the configuration was correctly downloaded and applied. Alternatively, the CPE device may issue a warning message if an error in configuration occurred. Such messages may take the form of events that are published by the CPE device and subscribed to by the provisioning system.
3.2 Provisioning Network Hardware Context
FIG. 6A is a simplified block diagram of a next generation network context in which an embodiment may be used. In this example context, a plurality of end station devices such as personal computers 602A, 602B are communicatively coupled respectively to CPE devices 604A, 604B. The CPE devices 604A, 604B may be, for example, DSL modems, such as the Cisco 827 ADSL Router. Each CPE device 604A, 604B is communicatively coupled to an access device; in the case of DSL service, such an access device may be one or more DSLAM devices 606A, 606B. The access devices in turn are communicatively coupled to an asynchronous transfer mode (ATM) network 608A.
The ATM network 608A may be communicatively coupled to numerous other devices that provide various functions and services. As non-limiting examples, in FIG. 6A the ATM network 608A is coupled to a gateway 610 that interfaces to a packet data network 612. An example of packet data network 612 is the worldwide packet-switched data network known as the Internet. ATM network 608A may also interface to one or more switch devices 614A, 614B that are coupled to other equipment. For example, switch 614A is coupled to router 616, which is communicatively coupled to a private branch exchange (PBX) 618. Switch 614A may be, for example, a Cisco MGX 8850 IP+ATM Multiservice Switch, and router 616 may be a Cisco 2400 Series Router.
Switch 614A also may connect to a logically or physically separate ATM network 608B, which is communicatively coupled to a switch 614B, which in turn is coupled to a Class 5 switch 620. The Class 5 switch 620 is, for example, a telephony switch compatible with the AT&T/Bell Laboratories No. 5 Electronic Switching System (5ESS). The Class 5 Switch 620 is coupled to an SS7 telephony network 622, which connects to telephone company switching offices, service control points, and to PBXs or telephones.
ATM networks 608A, 608B also may be communicatively coupled to a switch 616B that provides communications to a service manager complex 630 and related facilities. In this example, the service manager complex 630 includes an accounting gateway 632, service manager 634, and an interface 636 to SS7 network 622. The service manager complex 630 is supported by a dynamic host control protocol (DHCP) server 624 and a domain name service (DNS) server 626. Embodiments of the processes described herein may be implemented as part of service manager 634.
FIG. 6B is a simplified block diagram of an example logical architecture in which the processes described herein may be implemented. In one embodiment, the architecture of FIG. 6B is used to configure one or more software elements that cooperate as part of service manager 634 of FIG. 6A to carry out the processes described herein.
An operations support system (OSS) 648 comprises, among other elements, a CPE configuration service 650, which may cooperate with an integrated fault collection & viewer 652, and with other elements. CPE configuration service 650 is communicatively coupled, for example, using a network connection, to one or more access devices such as DSLAM 606C, which provides DSL network service access to one or more CPE devices 604C. In general, CPE configuration service 650 provides a means to automate steps involved in provisioning IP addresses and fully-qualified domain names (FQDNs) for voice and data services, and configuration file generation and delivery for each subscriber CPE device in a next generation network.
CPE configuration service 650 also communicates with an element management system 654, which provides general network element management services. Element management system 654 may include a content distribution manager 654A, which provides multimedia content to CPE devices via DSLAM 606C, a statistics collection manager 654B, etc. A commercial example of content distribution manager 654A is Cisco Content Distribution Manager. A commercial example of statistics collection manager 654B is Cisco Statistics Collection Manager. CPE configuration service 650 may also communicate with other network elements through one or more routers 640.
In one embodiment, CPE configuration service 650 is supported by a DNS server 656 and by a DHCP server 657. The CPE configuration service 650 is also communicatively coupled to a WAN manager 658, which manages WAN elements such as switch 614C.
3.3 Architecture of CPE Provisioning Service
FIG. 7 is a block diagram of an architecture of a CPE provisioning service and supporting network elements.
An administrative client 649, such as a computer or workstation associated with a customer service representative, is communicatively coupled to operations support system 648.
CPE configuration service 650 generally comprises a provisioning engine 708 that has access to a network inventory 710 and subscriber profiles 712. Data representing the network inventory and subscriber profiles may be stored in an external database, directory, or other repository 711.
CPE configuration service 650 can generate a graphical user interface screen that relates to inventory provisioning, as indicated by block 702, which is sent to client 649 via OSS 648 and displayed. The GUI provides a tree view comprising network and provisioning/configuration screens.
Provisioning engine 708 can dispatch and receive commands and data to and from a resource manager 714, configuration template manager 716, and a configuration delivery manager 718. Optionally, an authentication server may be used to facilitate authentication and access control for users who log into CPE configuration service 650. It also provides a GUI screen for system administrator to add/delete/modify username/password for granting/denying operator access to CPE configuration service 650.
Also optionally, a Server Administration element may be provided to monitor the over-all health of the servers in CPE configuration service 650, and restart them if necessary. Provisioning engine 708 may include an Inventory Manager that provides a persistent store for the network partition and its containing elements; provides interfaces for creating/querying/updating/deleting network elements; and updates CPE status (based on operations on CPE, and events from the devices). Provisioning engine 708 may implement provisioning logic to create/update/delete subscriber CPEs and carry out generation and delivery of configuration files.
In general, resource manager 714 is responsible for communicating with outside resources such as a network registrar 720. In one specific implementation, network registrar 720 includes a DHCP server 624 and DNS server 626. Resource Manager 714 allocates and reserves resources, and provides an interface to resource allocation components such as DHCP server 624 and DNS server 626 that facilitate IP address allocation/de-allocation, FQDN update in DNS, MAC address registration etc.
Configuration template manager 716 manages one or more stored templates that describe CPE device configurations or configuration formats. It provides template file creation/modification/deletion and configuration file generation functions.
Configuration delivery manager 718 is responsible for delivering instantiated configuration data to CPE devices. It delivers and applies configuration to devices. It provides an interface to various CPE delivery mechanisms. For example, configurations may be delivered using FTP through FTP server 722, or by telnet protocol via telnet gateway 724. FTP and telnet are illustrated as non-limiting examples, and other configuration transport mechanisms may be used. For example, file transport mechanisms such as TFTP, FTP, or HTTP, or an event-bus—based transport mechanism, may be used.
In an automated address management approach, DHCP server 624 forms a part of network registrar 720, or may be a separate server, and is used as a source of automatically generated network addresses. Alternatively, in a manual address management approach, the DHCP function may be implemented in one or more applications of OSS 648. In this manual approach, subscriber IP addresses are allocated by the OSS application, and provided as input to CPE configuration service 650 using an appropriate user interface. FQDNs are updated and maintained using the DNS server 626.
In one mode of operation, an operator of a service provider associated with client 649 receives a customer request for service, such as a request for DSL connectivity. The operator enters customer information and a customer profile into the OSS 648. In addition, the operator selects a desired service and the service attributes based on the customer request. A service order is created and processed and a service request is sent from OSS 648 to CPE configuration service 650.
The operator logs in to CPE configuration service 650 and is authenticated by the Authentication Server 704. If the operator is authenticated, the service request is accepted. The provisioning engine 708 creates a service object. It analyzes the service attributes, and decomposes the service request into different service elements that interacts with the Resource Manager 714 (for resource allocation and reservation), the Configuration Template Manager 716 (for configure file generation) and the Configuration Delivery Manager 718 in order to fulfill the service request. A subscriber profile (with subscriber info and service attributes) and CPE object is created, or updated, and stored in persistent storage as part of subscriber profiles 712.
For example, to provision a Cisco 827 ADSL Router as a CPE device, provisioning engine 708 interacts with Resource Manager 714, which uses DHCP server 624 and DNS server 626 to allocate and reserve IP addresses, and update FQDNs in the DNS system. The provisioning engine 708 then interacts with Configuration Template Manager 716, provides a template file associated with the subscribed service and variables (e.g., IP addresses, PVCs, FQDNs) to generate the configuration file for the CPE device. Control then passes to Configuration Delivery Manager 718, which stores the configuration file on FTP server 722. The configuration file is later downloaded to a proxy element of a DSLAM device, and then to the CPE device.
In one embodiment, CPE configuration service 650 defines and publishes an object model that may be used by object-oriented software applications of external elements, to model entities such as sub-networks, DSLAM devices, CPEs etc. The object model is based on the ITU M.3100 generic network information model. The object model may encompass an inventory model at the device level, as well as a topology model and connectivity model.
In one specific embodiment, CPE configuration service 650 is based on Object Stream's ACT (Adapter Component Technology) platform and uses Common Object Request Broker Architecture (CORBA) to communicate with OSS 648. Such an embodiment provides distribution and scalability features that are useful for network service providers, and can accommodate large-scale deployment of subscribers.
In a first embodiment, the CPE configuration service 650 enables provisioning DSL and T1 CPE devices. For DSL CPE devices, configuration files are auto-generated (using templates) and stored in FTP server. MMI is used as the management protocol between the CPE and DSLAM. A hybrid method is used to configure the CPE device, involving a combination of MIB update and configure file download. For T1 CPE devices, such as the IAD 2421 device, configuration files are auto-generated using templates, and stored in a TFTP server. The configuration files are delivered and applied to the CPE by CPE configuration service 650 using telnet. The CPE configuration service 650 also may be used to provide template-based configuration file generation and delivery via telnet for other devices such as gateways.
In general, a CPE device in the foregoing context requires establishment of three PVCs that relate to data, voice signaling and bearer signals. To provide voice service, a CPE also requires up to three IP addresses and two FQDNs, comprising an IP address and FQDN for the voice signaling PVC; an IP address and FQDN for the voice bearer PVC; and an IP address for management. The management IP address may be optional. For example, for the Cisco 827 ADSL Router, the management IP address is not needed. For the IAD 2421 T1 CPE device, the signaling IP address and PVC are used for management, although an additional PVC and IP address can be allocated for management purposes.
Further, the data service may not require IP address. An IP address is needed if the CPE device is configured in non-bridged mode. The data IP address comes from different domain and IP sub-net. In one embodiment, the CPE configuration service 650 does not provision an IP address for data services; by default, data service is supported in bridged mode (i.e., no IP address required).
The IP addresses and FQDNs can be assigned by CPE configuration service 650 or OSS applications. The configuration parameters are made persistent as well as the configuration files. Subsequent requests can be made to update the device configuration, but not the IP addresses or FQDNs.
3.4 CPE Provisioning Examples
FIG. 8A is a diagram of a communications flow involved in carrying out automatic provisioning of a DSL CPE device, according to one embodiment. For purposes of illustrating a simple example of auto-provisioning, FIG. 8A is described herein in the context of provisioning a Cisco 827 ADSL Router. However, embodiments are not limited to this example context.
In the example of FIG. 8A, the device undergoing configuration is CPE device 604D, which receives DSL network access under supervision of DSLAM 606C. The DSLAM is communicatively coupled to a switch 614D, which is coupled to an IP network 612A and to other network elements via a router 806. In general, in the example context, automatic provisioning is facilitated by a Proxy Element agent 808 implemented in the DSLAM 606C. The DSL CPE device 604D interacts with the Proxy Element using a management protocol MMI, such as SNMP over AAL5, to request for configuration download.
In operation, a service order is received and verified. The service provider also determines that the subscriber's physical location is served by existing wire or cable that is sufficient to deliver DSL service, in a process termed loop qualification.
Thereafter, the service provider operator sets up data and voice PVCs, as indicated by arrow 1. The service provider operator creates data, signaling and bearer PVC segments from the DSLAM 606C to the switch 614D. The service provider operator also creates a PVC segment from switch 614D to router 806 for the data PVC.
The service provider operator then interfaces with CPE configuration service 650 to provision a subscriber CPE in the network with the specified attributes and desired voice or data service, as indicated by arrow 2. As shown by arrow 3, CPE configuration service 650 allocates and reserves IP addresses for voice signaling and bearer PVC, if the addresses are not received from the OSS as part of the communication at arrow 2. CPE configuration service 650 also updates FQDNs as needed in an associated DNS server.
As indicated by arrow 4, CPE configuration service 650 generates an initial configuration file, based on a pre-defined stored template, and stores the resulting configuration file on file server 804.
At arrow 5, the operator adds mappings of PVCs to IP addresses mappings for signaling and bearer PVCs in the switch 614D. At arrow 6, the OSS or its operator provisions the subscriber in a Call Agent. In one embodiment, the call agent is a call agent 804 of an element management system at the service manager. The provisioning involved at arrow 6 may include, for example, FQDNs, which may be assigned by CPE configuration service 650 or by the OSS 648, telephone number, port number, subscribed features etc.
At arrow 7, the operator updates a management information base (MIB) of the Proxy Element 808 with the configuration file name, using a CPE device manager 802, which serves as an element management system for the Proxy Element 808.
Thereafter, when the CPE device 604D boots up, it uses a pre-configured PVC (e.g., 0/16) to connect to the Proxy Element 808, and uses MMI (SNMP over AAL5) as the management protocol, as indicated by arrow 8. At arrow 9, the CPE device 604D requests an image file download from the Proxy Element 808. As indicated by arrow 10, the Proxy Element 808 retrieves the filename and file server from a MIB and downloads the configuration file from the file server 804. The Proxy Element 808 then forwards the configuration file to the CPE device 604D using the management PVC.
In response to receiving the configuration file, and after the CPE device is operational, the CPE device 604D updates the MIB of Proxy Element 808 to reflect a successful download.
After initial CPE configuration using the foregoing process, the CPE configuration service 650 may be used to update a configuration. FIG. 8B is a flow diagram of a process of updating a configuration.
In block 852, the CPE configuration service 650 generates a configuration file, using a sub-template, and stores the created file on a file server. In block 854, the Operator updates the Proxy Element MIB by setting a “reload configuration” indication and the configure file name. In block 856, the CPE device issues a request to download a configure file from the Proxy Element. In block 858, the Proxy Element retrieves the filename and file server from the MIB, and downloads the configuration file from the file server. The Proxy Element then forwards the configuration file to the CPE via the management PVC, as shown in block 860. After the CPE is operational, it updates the PE MIB to reflect successful reconfiguration, as indicated by block 862.
In one embodiment, CPE configuration service 650 carries out a pre-stage phase of configuration for T1 CPE devices. The pre-stage phase is followed by a configuration update phase. In the pre-stage phase, CPE configuration service 650 generates a boot configuration file for T1 CPEs. The boot configuration file defines PVCs for voice and data, IP addresses and FQDNs for voice, and other configuration parameters. When the T1 CPE is plugged into the network, it applies the pre-staged configuration. The service provider then uses CPE configuration service 650 for configuration updates.
FIG. 10A is a flow diagram of one embodiment of T1 CPE pre-stage provisioning.
In block 1002, a service provider operator provisions T1 Access for the subscriber. In block 1004, the operator sets up data and voice PVCs in the switch 614D and in the router 806. In block 1006, the OSS operator interfaces with CPE configuration service 650 to provision a subscriber CPE in the network with specified attributes and desired service (voice/data).
In response, in block 1008, CPE configuration service 650 allocates and reserves IP addresses for voice signaling and bearer PVC (if such address are not received as part of the request), and updates the FQDNs in the DNS server. In block 1010, the CPE configuration service 650 generates a configuration file, using one or more templates, and stores the file on TFTP server. The configuration file is then pre-staged on the T1 CPE device.
In block 1012, the operator adds (PVC, IP address) mappings for signaling and bearer PVCs in the switch 614D. In block 1014, the OSS/operator provisions the subscriber on the Call Agent 804. This may involve establishing FQDNs, which may be assigned by CPE configuration service 650 or the OSS 648, creating and storing a phone number, port number, subscribed features, etc.
FIG. 10B is a flow diagram of a procedure for updating a configuration for a T1 CPE device.
In block 1020, CPE configuration service 650 generates configuration file (using templates) and stores the file on a file server, such as a TFTP server. In block 1022, the CPE configuration service 650 establishes a telnet connection to the CPE device 604D, and downloads the configure file. In block 1024, the CPE configuration service 650 applies the configuration file as a merge to the CPE device's existing configuration. If the merge is successful, the CPE configuration service 650 saves the merged configuration as the start up configuration for the CPE device, as indicated by block 1026. The CPE configuration service 650 returns, to OSS 648, an indication of whether configuration is applied and saved, as shown by block 1028.
4.0 Automated CPE Provisioning Approach in Detail
4.1 Network Inventory Management
Inventory manager 730 provides access to repository 711 of CPE configuration service 650 for other elements of the CPE configuration service. In general, repository 711 contains information defining network partitions and containing devices, which information is termed “Inventory” herein. In one embodiment, the information in the repository about containing devices is represented at the device level and includes values such as CPE type, subscribed service, PVCs, IP addresses, service parameters etc. Inventory manager 730 also provides an interface for creating, querying, updating, and deleting objects in the Inventory.
According to one embodiment, an information object model used by CPE configuration service 650 defines sub-network objects and network element objects in the Inventory.
Sub-network objects define network partitions based on criteria such as administrative domain or geographical locations, and are logically organized in a hierarchical containment tree. Sub-networks are defined and created by service providers. CPE configuration service 650 does not control or constrain how the network is partitioned. For example, four hierarchies of sub-networks can be created: region, site, central office, and DSLAM-group, wherein the latter contains a DSLAM and its associated CPEs.
An instance of CPE configuration service 650 can support one or several areas of the network. Therefore, system configuration data for CPE configuration service 650 is stored in the corresponding sub-network. When configuring a CPE or other device, CPE configuration service 650 traverses up the containment tree, from the CPE device towards the root object, to find the first sub-network object that has system configuration data, and applies that system configuration data to itself.
The system configuration data provide information for several purposes: as input data to generate configure files (e.g., TIME server IP address, call agent info); to locate the DHCP and DNS server for IP address allocation and FQDN update; to identify the DHCP address pool for IP address allocation (scope name); to locate the FTP/TFTP server or Telnet Gateway to deliver the configure files; and to locate the SNMP proxy for sending SNMP re-set for provisioning update.
Further, each CPE configuration service 650 installation has a set of default system configuration data in a configuration file. The default configuration is applied if CPE configuration service 650 fails to find a sub-network object with system configuration data while traversing up the containment tree.
Network element objects are used for provisioning/configuration and fault management purposes. In one embodiment, network element objects represent DSLAM devices, DSL CPE devices, T1 CPE devices, and 911 Gateway devices.
Each network element object that represents a CPE device stores information including: device type and model; service type; subscriber ID (if present); containing sub-networks and device name; provider edge associations (e.g., DSLAM ID, Loop ID); scope names that identifies DHCP address pools for voice; voice signaling and bearer PVCs; voice signaling and bearer IP addresses and FQDNs, as assigned by the CPE configuration service 650 or OSS; management PVC and IP address, if different from the signaling values; data PVC; service attribute; an identifier of a template file that was used for latest configuration file generation; and template data.
CPE configuration service 650 supports the containment relationship among Inventory objects, and maintains a containment tree of the objects in memory. The Inventory is loaded with data (“populated”) using a graphical user interface provided by CPE configuration service 650 or using an Inventory Management API. Sub-network objects are populated in an initialization phase, prior to subscriber provisioning.
4.2 States and State Transitions
CPE configuration service 650 creates and stores a provisioning state value for each CPE device object. The provisioning state value identifies the then-current state of CPE configuration file generation. A CPE is considered “provisioned” only when CPE configuration service 650 has generated a full configuration file for voice service and successfully delivered it. In one embodiment, a DSL CPE device is considered “provisioned” when CPE configuration service 650 has successfully generated a configuration file and stored it on a file server. A T1 CPE device is considered “provisioned” after CPE configuration service 650 has successfully downloaded and applied the configuration file via telnet. The states that are maintained by CPE configuration service 650 facilitate provisioning of CPE devices in multiple steps by the operator.
FIG. 9 is a state diagram that illustrates states of a CPE device during provisioning. In general, a CPE object in CPE configuration service 650 can have one of three provisioning states at any time. In Un-provisioned state 902, the CPE device is not configured with voice service. The CPE device may have a partial configuration, e.g., connectivity for a management interface, and may be up running with an operational state of “up”, but it is not ready for voice communication.
In Assigned state 904, resources for voice service are allocated and reserved. For example, IP addresses and FQDNs for signaling and bearer are assigned. However, the CPE device is not configured with voice service. In Provisioned state 906, a full configuration including voice service for the CPE has been generated and delivered. The CPE may or may not be running; its operational state can be “up”, i.e. ready for voice, or “down”, i.e., configure file is generated and waiting for downloading.
Block 911 through block 918, inclusive, of FIG. 9 represent state transitions among states 902, 904, 906. In block 911, a CPE object transitions from external un-provisioned CPE to un-provisioned CPE in CPE configuration service 650. This state transition allows a new, un-provisioned CPE device to be introduced into the Inventory of CPE configuration service 650. In one specific embodiment, as part of block 911, CPE configuration service 650 creates a CPE object in its inventory with these attributes: Subscriber ID (optional); device type and model (e.g., DSL CPE, T1 CPE); device name; device ID (optional, e.g., CPE Mac address); Sub-network name(s) (e.g., region, site, central office) in which the CPE belongs; Provider edge association: e.g., DSLAM ID, loop ID (for DSL CPE); and provisioning state (un-provisioned).
In block 912, a CPE object transitions from the Un-provisioned state 902 to Assigned state 904. This state transition allocates and reserves resources for the CPE device depending on the service type, For example, block 912 may involve allocating and reserving IP addresses for voice signaling and bearer PVC in DHCP, and updating DNS. A DNS update may take time, and therefore a CPE may not be in the Assigned state 904 until FQDNs are updated. If the DNS update fails, an error message is logged and also displayed in the GUI, which requires operator intervention to correct the DNS problem. In that case, any IP addresses allocated by CPE configuration service 650 are de-allocated, and the CPE remains in Un-provisioned state 902.
If the DNS update is successful, CPE configuration service 650 updates the CPE object with these attributes: Service type: e.g., DSL Voice and data service; Service request number (optional); Scope names that identify DHCP address pools for voice; Voice signaling, bearer PVC; Data PVC; IP address/FQDN for signaling and bearer (optional); PVC and IP address for management (optional); Provisioning state (assigned).
In block 913, a CPE object transitions from the Assigned state 904 to the Provisioned state 906. In this state transition, a configuration file is generated that references the resources that are allocated, the configuration file is downloaded and applied to the CPE device, and the CPE is brought to a provisioned state. CPE configuration service 650 also updates the CPE object with these attributes: operation (create/update/delete); Template file name (if not using the system template); Service attributes (used as input for configure file generation); Template data; Provisioning state (provisioned).
In block 914, an object representing an external deployed CPE transitions to an object representing a provisioned CPE in CPE configuration service 650. This state transition allows a CPE that is deployed and has been provisioned outside of CPE configuration service 650 to be introduced into the Inventory of CPE configuration service 650. The operational state is of the CPE device is “up”.
When a deployed CPE is introduced to CPE configuration service 650, values for these attributes for CPE are required, and may be provided to CPE configuration service through entry in an appropriate graphical user interface: device type and model; service type; subscriber ID; CPE to provider edge association (e.g., DSLAM ID, loop ID for DSL CPEs); Scope names that identify DHCP address pools for voice and data; Device name and containing sub-networks; Device ID (optional, e.g., MAC address); Voice signaling, bearer PVCs; Voice signaling, bearer IP addresses/FQDNs (assigned by CPE configuration service 650 or OSS); Management PVC and IP address (if different from the signaling); Data PVC and IP address (if present); template file (if not using the system template file for CPE configuration); template data; Provisioning state (provisioned).
In response, CPE configuration service 650 creates a CPE object with these attributes and stores the object in its persistent store.
In block 915, a CPE object undergoes a configure update. This state transition allows a configuration update to be applied to a provisioned CPE. CPE configuration service 650 generates the configuration file and delivers it to the CPE. In one embodiment, for a DSL CPE device, the configuration file is stored on an FTP server, for download via the Proxy Element. In another specific embodiment, for a T1 CPE device, the configuration file is stored on a TFTP server. Initial configuration is pre-staged in T1 CPE. Configuration update is carried out via Telnet to the device to download the configure file. The updated configuration is applied as a merge to the existing configuration. If the merge is successful, the configuration merge is saved as a new start up configuration.
In block 916, a CPE object transitions from Provisioned state 906 to Assigned state 904. This state transition removes the configuration on CPE related to voice/data services. CPE configuration service 650 generates the configuration file and delivers to the CPE.
In block 917, a CPE object transitions from Assigned state 904 to Un-provisioned state 902. This state transition de-allocates resources used by the CPE. In one specific embodiment, block 914 involves de-allocating IP addresses from DHCP and updating DNS. If the DNS updates fail, an error message is logged and displayed in the GUI. The error message may prompt the operator to intervene to fix the DNS problem. The CPE then transitions into un-provisioned state 902.
In block 918, a CPE object transitions out of un-provisioned state 902 as part of a delete operation. This state transition removes a CPE object from CPE configuration service 650. The CPE's configuration files are also deleted from FTP server.
4.3 Service Requests
In one embodiment, a service request comprises the information set forth in Table 6.







TABLE 6







SERVICE REQUEST INFORMATION








DATA ELEMENT
NOTES & EXAMPLES





Service type
E.g., DSL Voice and data service


Operation
Create, Modify, Delete


Service request number
Optional


Subscriber ID
Optional


Device type and model
E.g., DSL CPE, T1 CPE


Device name


Device ID
Optional; e.g., CPE Mac address


Sub-network name to which


the CPE belongs


Provider edge association
e.g., DSLAM ID, loop ID for



DSL CPE device


Scope names that identifies DHCP


address pools for voice


Voice signaling, bearer PVC


Data PVC


IP address/FQDN for signaling and
Optional


bearer


PVC and IP address for management
Optional


Template file name


Service attributes
For configure file generation


Template data









Subscriber ID and Service Request Number are optional fields of a service request. Providing a unique subscriber ID and service request number, facilitates searching an audit trail log using subscriber ID and/or service request number if needed.

4.4 Preparation for Provisioning
FIG. 11 is a flow diagram of a process of preparing for subscriber CPE device provisioning. The steps of FIG. 11 may be carried out by an operator of the OSS 648 or an administrative user of CPE configuration service 650.
In block 1102, one or more templates for CPE devices and service types are created or modified.
In block 1104, the Inventory is populated with information sufficient to establish a system configuration for the CPE configuration service.
In block 1106, a DHCP address pool is configured for voice service, based on the CPE to provider edge association (service area) information that has been previously received.
In block 1108, security administration is carried out by setting up username and password pairs in the Authentication Server for those operators who are granted access to CPE configuration service 650.
Referring again to block 1102, one or more template files are created or modified. In one specific embodiment, such operations are carried out using configuration template manager 716. For each service type, operation type and CPE type, CPE configuration service 650 provides a pre-defined template file that is stored in persistent storage. In one specific embodiment, CPE configuration service 650 internally stores a template registration table. The template registration table has a plurality of rows, wherein each row stores column values for CPE type, service type, operation type, and template file name or location. Using the index table, CPE configuration service 650 can select the correct template for each service request. In one embodiment, a user also can extend the pre-defined template, create a new template, or over-ride the default template that is provided by CPE configuration service 650. If multiple template files are registered for the same device type, service type and operation type, the user is prompted to select one using the GUI.
As part of block 1102, a default system configuration is created. The default system configuration may be created bas on a pre-defined system template. In one embodiment, the system template contains information that defines, for various CPE devices: Call Agent configuration (IP address, service type, version); data, signal, bearer PVC configuration; signal, bearer IP address configuration; bridged mode for data (no IP address required); and voice ports dial peer configuration.
Each system template file of CPE configuration service 650 contains values of variables that are service related. For example, values for ${System IPAddress_bearer} and ${System_IPAddress_signal} variables are provided. Each system template file contains such variable values for each CPE type and service type. Values for certain variables may be generated by CPE configuration service 650, such as IP address. Values for other variables may be derived from a service request. A template file may also contain non-service related variables, e.g. SNMP trap destination IP address, which are required for configuring the device. The values for such variables are specified by the OSS applications or OSS operator as additional input to CPE configuration service 650 in a service request.
Referring now to block 1106, a DHCP address pool is configured for voice service. An IP address pool for each service area is configured prior to subscriber CPE provisioning. Each address pool configures a group of IP addresses within an IP subnet that are available for allocation for voice signaling and bearer PVCs. Each DHCP address pool has a policy associated with it that allows configuration data such as TFTP server name, Call Agent info etc. to be specified. The policy also specifies DHCP-lease-time, which is generally set as ‘permanent’.
In one specific embodiment, an operator uses network registrar 720, through either a command line interface or GUI, to configure two DHCP IP address pools in DHCP server 624. The operator also uses network registrar 720 to configure DNS server 626 for scope, policy and DNS zone information. Specific steps involved in this process may include:

    
    
        1. Create a DHCP scope (IP address pool) with IP address range and subnet mask for voice signaling IP address allocation
        2. Define policy associated with the scope
        3. Set DHCP lease time to permanent, so that the IP address reservation will never expire.
        4. Create a DHCP scope (IP address pool) with IP address range and subnet mask for voice bearer IP address allocation
        5. Define policy associated with the scope
        6. Set DHCP lease time to permanent, so that the IP address reservation will never expire.
    
    


As indicated in block 1108, a security configuration is established. In one specific embodiment, access to CPE configuration service 650 is controlled by a login screen, and an operator is authenticated by a username, and password. When an operator logs in, the username and password are sent to Authentication server 704, which authenticates the operator using (username, password) pairs stored in its data store, and returns a response of “pass” or “fail” to the GUI login screen. The Authentication server provides a GUI screen with which a system administrator may add, delete, or modify a username or password for the purpose of granting or denying an operator access to CPE configuration service 650.
Referring now to block 1104, an initial Inventory data population is created. Based on how CPE configuration service 650 is installed in a larger network environment, such as the environment shown in FIG. 7, the OSS or its operator populates the Inventory with information about the system configuration. Such information may include IP addresses of the TFTP server, DHCP server, DNS server, etc.
The information may also identify one or more appropriate sub-network objects (e.g., Region, site, CO or DSLAM complex). In one specific embodiment, the following input is required for creating a sub-network object: containing sub-network name (if not root); sub-network type: e.g. region, site, central office, DSLAM-group etc.; sub-network name: e.g., US-West, California, San Jose, DSLAM-group-3; system configuration data for the sub-network (optional). The system configuration data, if provided, consists of DHCP scope names and IP address ranges for voice service (signaling and bearer); CNR servers (DHCP and DNS); FTP server name/IP address; TFTP server name/IP address; Telnet Gateway host name; and Call Agent info (IP address, service type, version).
4.5 Provisioning a DSL CPE Device
FIG. 12A is a flow diagram of a process of provisioning a DSL CPE device.
In block 1202, a CPE creation request is received. In one specific embodiment, a CPE creation request is a message or programmatic call that contains values for: device type and model; subscriber ID (optional); Full pathnames identifying a sub-network in which the CPE device resides, e.g., region/site/central office/DSLAM Complex2; Device name; DSLAM ID, loop ID. In this embodiment, the CPE creation request is processed by a programmatic function that returns a message indicating that a subscriber CPE object was created, or that a failure occurred.
Block 1202 or a function that implements it may include various sub-steps. As indicated by block 1204, the sub-steps include a check whether the sub-networks (including the DSLAM Complex that contains the DSLAM object identified by <DSLAM ID>) already exist in CPE configuration service 650 Inventory. If the sub-networks identified in the request are not found in the Inventory, then the process returns an error message that requests the OSS or its operator to create objects representing the sub-networks and DSLAM group object in the Inventory of CPE configuration service 650, as shown by block 1206.
In block 1208, the process checks to determine whether a corresponding CPE object already exists in the Inventory of CPE configuration service 650. If a duplicate CPE object exists, then an error message is returned, as indicated by block 1210. Otherwise, as shown by block 1211, the process creates a CPE object in the Inventory having values for device type and model; subscriber ID (if given in the request); full path sub-network names; device name; DSLAM ID and loop ID; Provisioning state (un-provisioned). The status of the above steps is also logged in a log file for purposes of providing an audit trail.
Referring now to FIG. 12B, in block 1212, a resource allocation request is received. In one specific embodiment, the resource allocation request contains values for Service type (e.g., data and voice service); Service request number (optional); Voice signaling, bearer PVC; IP address/FQDN for signaling and bearer PVC (optional); Scope names of DHCP address pools for voice (optional); Data PVC; and Management PVC and IP address (optional, needed only if different from signaling). If the resource allocation process is successful, then it returns an output message that contains the IP addresses and FQDNs for signaling and bearer PVCs that have been allocated. If the process fails, then a failure message is returned.
In one specific embodiment, block 1212 involves sub-steps shown in block 1214, block 1216, etc.
In block 1214, the process retrieves system configuration data from the containing sub-networks. For example, the Inventory containment tree is traversed starting from the <DSLAM ID> object towards the root, stopping on the first sub-network that has associated system configuration data. If configuration data does not exist in the sub-networks, then the default configuration is used.
In block 1216, IP addresses are allocated for signaling and bearer PVCs by communicating with the DHCP server, and corresponding DNS records are updated. In one specific embodiment, block 1216 involves determining whether IP addresses/FQDNs are given in the request received in block 1212. If not, then the DHCP scope names are used to identify one or more DHCP address pools that have been obtained from user input or the system configuration. To obtain specific network addresses for signaling, bearer and management channels, an address mock-up approach is used. In conventional DHCP processing, a DHCP request includes a unique identifier, such as a MAC address, of the device for which a network address is requested. However, in the present context, the CPE devices are not in direct communication with the DHCP server, and therefore are not registered with the DHCP server, which will not recognize their MAC addresses if they are provided in a request. Therefore, to obtain a signaling, bearer, and management address, a mock-up identifier analogous to a MAC address is generated. The mock-up identifier may comprise a pseudo-random value, a concatenation of a pseudo-random values with various type identifiers, etc. The mocked-up identifiers are provided to the DHCP server in requests for network addresses.
In block 1222, the process updates the DNS server with mappings for (signal IP address, signal FQDN) and (bearer IP address, bearer FQDN). If the DNS update fails, then the preceding step is rolled back, an error is logged, and the process returns with a failure message. In that case, the CPE device remains in “un-provisioned” state 902. If the DNS update succeeds, as shown by block 1223A, then the CPE object enters the Assigned state 904, as indicated by block 1223B, and the CPE object is updated with values for Service type; Service request number; Voice PVCs, IP addresses and FQDNs (signal and bearer); Client ID used to reserve IP address in DHCP; Scope name of DHCP address pool for voice; Data PVC; Management PVC, IP address (if not given, use the signaling PVC, IP address); Provisioning state (assigned). The status of the above steps also is logged in a log file to provide an audit trail.
Referring now to FIG. 12C, In block 1224, a CPE provision request is received. In one specific embodiment, the CPE provision request contains values for Service request number (optional), Operation (“create”), Template file (optional), Service attributes (used as input for generating configure file), and Template data (values of service provider defined variables in configure template file). If provisioning is successful, the process returns a configuration file name and FTP server name. If provisioning fails, the process returns error messages.
In block 1226, a configuration file is generated for the CPE device. At block 1227A, if a template file name is not specified in the service request, then the process selects and retrieves a template file based on the device type and service type. The selection is carried out using the registration table. In one embodiment, each template file is based on a device configuration file appropriate for the type of device represented by the CPE device, and the type of service to be provided to the device. The template file omits values for fields that require subscriber-specific information, such as signaling and bearer PVC, IP addresses for signaling and bearer PVC, Data PVC, Call Agent information such as IP address, service type, version, etc.
The template data is then generated or derived, as shown by block 1227B based on the input data. In one embodiment, generating the template data involves generating values for a signaling and bearer PVC, IP addresses for signaling and bearer PVC, Data PVC, Call Agent info such as IP address, service type, and version, etc., and combining such values with the template file to result in creating a complete, subscriber-specific configuration file for the specific CPE device and service of the subscriber. The configuration file is given a unique name and saved.
In block 1228, the configuration file is sent to a file server.
In block 1230, the CPE object in the Inventory is updated with values for Service request number (if given), Template file name, Configuration file name, FTP server name/IP address, Service attributes, Template data, Provisioning state (provisioned). The CPE object enters the Provisioned state 906. The status of the above steps is logged in the log file.
Referring now to FIG. 12D, in block 1232, a subscription modification request is received. In one specific embodiment, the request includes values for Service type (modify voice service or data service), Operation (update), Subscriber ID (optional), Service request number (optional), device type and model, device-name, Full path sub-network names (from root, e.g., region/site/central office/DSLAM Complex2) where the CPE resides, Template file for configure update (optional), Service attributes (used as input data for generating the configure file), and Template data (values of service provider defined variables in configure template file). Upon success, the subscription modification process returns a configuration file name and FTP server name.
In one specific embodiment, as shown by block 1234, the process of block 1232 involves determining whether a CPE object already exists in the Inventory of CPE configuration service 650. If not, at block 1235A, an error message is returned indicating that the CPE object does not exist. At block 1235B, the process checks whether the CPE object is in the “provisioned” state 906 and if its operational state is “up”, If not, then an error message is returned indicating that the configuration update cannot be done, as shown by block 1235C.
In block 1236, system configuration data from the containing sub-networks is retrieved. If configuration data doesn't exist in the sub-networks, default configuration data is used.
In block 1238, a configuration file is generated for the CPE device. If the name of a template file is not given in the request, then the process retrieves a template file based on device type, operation type and service type. The process generates template data, derived from CPE object attributes and service attributes. If the configuration file is generated successfully, the configure update file is given a unique name. The configuration file is then sent to a file server, and overwrites any existing previous version of the update file.
In block 1240, the CPE object is updated in the Inventory of CPE configuration service 650, with values for Template file names, Service attributes, and Template data. The status of the above steps also is logged in the log file.
Referring now to FIG. 12E, block 1242 involves processing a subscription deletion request. In one embodiment, the deletion request contains values for Service type: voice and data service deletion; Operation (deletion); Subscriber ID (optional); Service request number (optional); device type and model; device name; Full path sub-network names (from root, e.g., region/site/central office/DSLAM Complex2) where the CPE resides; Template file (optional); Template data (values of service provider defined variables in configure template file, optional).
In block 1244, the CPE device is un-provisioned using the steps shown in the succeeding blocks. In particular, in one specific embodiment, a test is carried out to determine whether the CPE object already exists in the Inventory of CPE configuration service 650. If not, an error message is returned indicating that the CPE object does not exist. Retrieve system configuration data from the containing sub-networks. If configuration data doesn't exist in the sub-networks, use default configuration.
In block 1246, a configuration file is generated. In one embodiment, if a template file is not given, then the process retrieves a template file based on device type, operation type and service type, and fills in the template data. The configure update file is given a unique name.
In block 1248, the configuration file is sent to the file server, and overwrites any existing previous update file. Alternatively, CPE configuration service 650 telnets to the device, using the signaling PVC for management, downloads the configure file, and applies the configuration. The configuration is applied by merging it to the running configuration. If the merge is successful, the merged configuration file becomes the start up configuration.
In block 1250, the CPE object is updated in the Inventory of CPE configuration service 650, with values for Template file name, Template data, and Provisioning state (Assigned). The status of the above steps also is logged in a log file.
Referring now to FIG. 12F, block 1252 illustrates initiation of a process to de-allocate a resource. In block 1254, CPE configuration service 650 tests whether a CPE object received as part of the request already exists in Inventory. If not, the service returns an error indicating that CPE object does not exist. In block 1256, the service retrieves system configuration data from the containing sub-networks. If configuration data doesn't exist in the sub-networks, a default configuration is used.
In block 1258, the service tests whether a CPE object has been introduced to the CPE configuration service 650 as a “deployed CPE” object. A deployed CPE object represents a CPE device that is initially configured outside of CPE configuration service 650 and introduced into CPE configuration service 650 for configure update purposes. If the object represents a deployed CPE device, then the process returns a success message indicating that it is the responsibility of the OSS or operator to de-allocate resources for the device, as shown by block 1259.
In block 1260, if IP addresses and FQDNs have been allocated by CPE configuration service 650, the IP addresses for signaling and bearer PVCs are de-allocated by communication with the DHCP server. In block 1262, the process updates the DNS server by removing mappings of (IP address, FQDN) from DNS. If the DNS update fails, an error is logged.
In block 1264, the CPE object in the Inventory is updated, with values for IP addresses and FQDNs for signaling and bearer PVCs, and Provisioning state as un-provisioned.
In block 1266, a Delete operation is carried out. Specifically, in one embodiment, in block 1268, the CPE configuration files are deleted from the FTP server. In block 1270, the CPE object is deleted from the CPE configuration service 650 Inventory. The status of these steps is logged in a log file to provide an audit trail.
The foregoing general processes are also applicable to T1 CPE devices. However, T1 CPE devices are configured through a pre-stage and configure update process. During pre-stage: the configuration file is generated by CPE configuration service 650 based on configuration templates, and downloaded to T1 CPE via the console port. During configuration update: configuration update can be applied via Telnet to the device. Further, although processes herein have been described in the context of ATM networks that use PVCs as signaling channels, embodiments are not limited to that context.
4.6 Audit Trail Log and Log Viewer
CPE configuration service 650 may maintain an Audit Trail Log that records all provisioning activities and status data. In one embodiment, the Audit Trail Log is stored in a database, and a GUI viewer is provided for viewing and sorting log records.
In one specific embodiment, each service request from OSS or service provider operator is logged in a log record. A unique service request number or subscriber ID is entered for a service request. The subscriber ID or service request number are logged, and can be used to sort or search the log records. A log record may contain the following fields User name (string, identifies the operator who performs the service request through the GUI); Server name (string, the provisioning server that serves the request); Log category (enum, one of these values: none, info); Source (string, contains service request number if given); Message (string, contains CPE name, operation, operation status etc.); Date time (string, in the format “yyyy/MM/dd HH::mm::ss” in GMT); Host name (string, identifies the client host where operator logs in); External Tag (string, used to identify subscriber ID if given).
According to one specific embodiment, the log viewer enables log records to be sorted by date, server name, source (service request number), user, external tag (subscriber ID), and category. Further, log records can be searched and displayed by a range of dates, server name, source(service request number), user, external tag (subscriber ID), or log category.
5.0 Hardware Overview
FIG. 13 is a block diagram that illustrates a computer system 1300 upon which an embodiment of the invention may be implemented. The preferred embodiment is implemented using one or more computer programs running on a network element such as a router device. Thus, in this embodiment, the computer system 1300 is a router.
Computer system 1300 includes a bus 1302 or other communication mechanism for communicating information, and a processor 1304 coupled with bus 1302 for processing information. Computer system 1300 also includes a main memory 1306, such as a random access memory (RAM), flash memory, or other dynamic storage device, coupled to bus 1302 for storing information and instructions to be executed by processor 1304. Main memory 1306 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 1304. Computer system 1300 further includes a read only memory (ROM) 1308 or other static storage device coupled to bus 1302 for storing static information and instructions for processor 1304. A storage device 1310, such as a magnetic disk, flash memory or optical disk, is provided and coupled to bus 1302 for storing information and instructions.
An communication interface 1318 may be coupled to bus 1302 for communicating information and command selections to processor 1304. Interface 1318 is a conventional serial interface such as an RS-232 or RS-422 interface. An external terminal 1312 or other computer system connects to the computer system 1300 and provides commands to it using the interface 1314. Firmware or software running in the computer system 1300 provides a terminal interface or character-based command interface so that external commands can be given to the computer system.
A switching system 1316 is coupled to bus 1302 and has an input interface 1314 and an output interface 1319 to one or more external network elements. The external network elements may include a local network 1322 coupled to one or more hosts 1324, or a global network such as Internet 1328 having one or more servers 1330. The switching system 1316 switches information traffic arriving on input interface 1314 to output interface 1319 according to pre-determined protocols and conventions that are well known. For example, switching system 1316, in cooperation with processor 1304, can determine a destination of a packet of data arriving on input interface 1314 and send it to the correct destination using output interface 1319. The destinations may include host 1324, server 1330, other end stations, or other routing and switching devices in local network 1322 or Internet 1328.
The invention is related to the use of computer system 1300 for automating customer premises equipment provisioning in a telecommunications network. According to one embodiment of the invention, automating customer premises equipment provisioning in a telecommunications network is provided by computer system 1300 in response to processor 1304 executing one or more sequences of one or more instructions contained in main memory 1306. Such instructions may be read into main memory 1306 from another computer-readable medium, such as storage device 1310. Execution of the sequences of instructions contained in main memory 1306 causes processor 1304 to perform the process steps described herein. One or more processors in a multi-processing arrangement may also be employed to execute the sequences of instructions contained in main memory 1306. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.
The term “computer-readable medium” as used herein refers to any medium that participates in providing instructions to processor 1304 for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 1310. Volatile media includes dynamic memory, such as main memory 1306. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 1302. Transmission media can also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications.
Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, an EPROM, a FLASH-EPROM, any other memory chip or cartridge, or any other medium from which a computer can read.
Various forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to processor 1304 for execution. For example, the instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 1300 can receive the data on the telephone line and use an infrared transmitter to convert the data to an infrared signal. An infrared detector coupled to bus 1302 can receive the data carried in the infrared signal and place the data on bus 1302. Bus 1302 carries the data to main memory 1306, from which processor 1304 retrieves and executes the instructions. The instructions received by main memory 1306 may optionally be stored on storage device 1310 either before or after execution by processor 1304.
Communication interface 1318 also provides a two-way data communication coupling to a network link 1320 that is connected to a local network 1322. For example, communication interface 1318 may be an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 1318 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 1318 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
Network link 1320 typically provides data communication through one or more networks to other data devices. For example, network link 1320 may provide a connection through local network 1322 to a host computer 1324 or to data equipment operated by an Internet Service Provider (ISP) 1326. ISP 1326 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet” 1328. Local network 1322 and Internet 1328 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 1320 and through communication interface 1318, which carry the digital data to and from computer system 1300, are exemplary forms of carrier waves transporting the information.
Computer system 1300 can send messages and receive data, including program code, through the network(s), network link 1320 and communication interface 1318. In the Internet example, a server 1330 might transmit a requested code for an application program through Internet 1328, ISP 1326, local network 1322 and communication interface 1318. In accordance with the invention, one such downloaded application provides for automatically provisioning customer premises equipment devices in a telecommunications network as described herein.
The received code may be executed by processor 1304 as it is received, and/or stored in storage device 1310, or other non-volatile storage for later execution. In this manner, computer system 1300 may obtain application code in the form of a carrier wave.
6.0 Extensions and Alternatives
In the foregoing specification, the invention has been described with reference to specific embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.

## Claims

1. A method of automating provisioning of network services for customer premises equipment of a subscriber in a next generation digital telecommunications network, the method comprising the steps of:
receiving a service request from a network service provider that comprises information uniquely identifying the customer premises equipment to be provisioned, and a service to be provided by the customer premises equipment;
receiving information indicating that access is provisioned for a subscriber associated with the customer premises equipment and that one or more permanent virtual circuits are established in network elements of the network for facilitating the access;
retrieving a configuration template for a configuration appropriate for the customer premises equipment;
allocating and reserving at least one resource associated with the customer premises equipment;
allocating and reserving network addresses for a voice signaling channel and a bearer channel associated with communications between the customer premises equipment and the network;
updating a domain name service server with information that associates the allocated and reserved network addresses with the customer premises equipment;
creating and storing one or more mappings for the permanent virtual circuits in a switch device that directs network communications to the customer premises equipment;
generating configuration data for the customer premises equipment based on the configuration template and stored system configuration information; and
delivering the configuration data over the network to the customer premises equipment to result in provisioning the customer premises equipment to provide the service.

2. A method as recited in claim 1, wherein the customer premises equipment is an ADSL router, wherein the network is an asynchronous transfer mode (ATM) network, and wherein the step of generating configuration data includes the step of allocating and reserving an IP address and fully-qualified domain name for each of a plurality of permanent virtual circuits associated with communications among the network and the router.

3. A method as recited in claim 1, wherein the service request comprises information uniquely identifying the customer premises equipment to be provisioned, information identifying one or more permanent virtual circuits assigned by the service provider to the customer premises equipment; and access control data.

4. A method as recited in claim 1, wherein the customer premises equipment is an ADSL router, wherein the network is an asynchronous transfer mode (ATM) network, and wherein the step of delivering the configuration data comprises the steps of storing the configuration data in a file server that is communicatively coupled to the network and delivering the configuration data from the file server to the ADSL router using file transfer protocol.

5. A method as recited in claim 1, wherein the customer premises equipment is an T1 CPE device, wherein the network is an asynchronous transfer mode (ATM) network, and wherein the step of delivering the configuration data comprises the steps of pre-staging the configuration data in a file server that is communicatively coupled to the network and delivering the configuration data from the file server to the T1 CPE device using telnet.

6. A method as recited in claim 1, wherein the step of generating configuration data includes the steps of:
allocating and reserving one or more network addresses respectively associated with one or more communication channels between the network and the customer premises equipment by communicating with a dynamic host control protocol (DHCP) server;
allocating and reserving one or more fully qualified domain names respectively associated with one or more communication channels between the network and the customer premises equipment by communicating with a domain name service (DNS) server.

7. A method as recited in claim 1, further comprising the steps of:
creating and storing updated configuration data in response to receiving a request to update provisioning of the customer premises equipment;
generating a request to a proxy element of a network access device to update the provisioning to the customer premises equipment.

8. A method as recited in claim 1, further comprising the steps of:
creating and storing updated configuration data in response to receiving a request to update provisioning of the customer premises equipment;
delivering the updated configuration data to the customer premises equipment;
applying the updated configuration data as a merge to an existing configuration of the customer premises equipment, to result in creating a merged configuration;
saving the merged configuration as a start-up configuration for the customer premises equipment.

9. A method as recited in claim 1, further comprising the steps of:
retrieving system configuration data from one or more sub-networks that contain the customer premises equipment;
the updating the domain name server includes updating the domain name server with mappings of the network addresses and corresponding fully-qualified domain names.

10. A method as recited in claim 1, wherein the steps of retrieving a configuration template for a configuration appropriate for the customer premises equipment include the steps of:
extracting a device type and service type from the service request;
searching a template registry table for the template based on the device type and service type;
if a template associated with the device type and service type is not found in the template registry table, selecting and using a default configuration template.

11. A computer-readable medium having stored one or more sequences of instructions for automatically provisioning customer premises equipment of a subscriber in a next generation digital telecommunications network to provide a network service, which instructions, when executed by one or more processors, cause the one or more processors to carry out the steps of:
receiving a service request from a network service provider that comprises information uniquely identifying the customer premises equipment to be provisioned, and a service to be provided by the customer premises equipment;
receiving information indicating that access is provisioned for a subscriber associated with the customer premises equipment and that one or more permanent virtual circuits are established in network elements of the network for facilitating the access;
retrieving a configuration template for a configuration appropriate for the customer premises equipment;
allocating and reserving at least one resource associated with the customer premises equipment;
allocating and reserving network addresses for a voice signaling channel and a bearer channel associated with communications between the customer premises equipment and the network;
updating a domain name service server with information that associates the allocated and reserved network addresses with the customer premises equipment;
creating and storing one or more mappings for the permanent virtual circuits in a switch device that directs network communications to the customer premises equipment;
generating configuration data for the customer premises equipment based on the configuration template and stored system configuration information;
delivering the configuration data over the network to the customer premises equipment to result in provisioning the customer premises equipment to provide the service.

12. A computer-readable medium as recited in claim 11, wherein the customer premises equipment is an ADSL router, wherein the network is an asynchronous transfer mode (ATM) network, and wherein the generating configuration data includes allocating and reserving an IP address and fully-qualified domain name for each of a plurality of permanent virtual circuits associated with communications among the network and the router.

13. A computer-readable medium as recited in claim 11, wherein the service request comprises information uniquely identifying the customer premises equipment to be provisioned, information identifying one or more permanent virtual circuits assigned by the service provider to the customer premises equipment and access control data.

14. A computer-readable medium as recited in claim 11, wherein the customer premises equipment is an ADSL router, wherein the network is an asynchronous transfer mode (ATM) network, and wherein the delivering the configuration data includes storing the configuration data in a file server that is communicatively coupled to the network and delivering the configuration data from the file server to the ADSL router using file transfer protocol.

15. A computer-readable medium as recited in claim 11, wherein the customer premises equipment is an T1 CPE device, wherein the network is an asynchronous transfer mode (ATM) network, and wherein the delivering the configuration data includes pre-staging the configuration data in a file server that is communicatively coupled to the network and delivering the configuration data from the file server to the T1 CPE device using telnet.

16. A computer-readable medium as recited in claim 11, wherein the generating configuration data includes:
allocating and reserving one or more network addresses respectively associated with one or more communication channels between the network and the customer premises equipment by communicating with a dynamic host control protocol (DHCP) server;
allocating and reserving one or more fully qualified domain names respectively associated with one or more communication channels between the network and the customer premises equipment by communicating with a domain name service (DNS) server.

17. A computer-readable medium as recited in claim 11, further comprising:
creating and storing updated configuration data in response to receiving a request to update provisioning of the customer premises equipment;
generating a request to a proxy element of a network access device to update the provisioning to the customer premises equipment.

18. A computer-readable medium as recited in claim 11, further comprising:
creating and storing updated configuration data in response to receiving a request to update provisioning of the customer premises equipment;
delivering the updated configuration data to the customer premises equipment;
applying the updated configuration data as a merge to an existing configuration of the customer premises equipment, to result in creating a merged configuration;
saving the merged configuration as a start-up configuration for the customer premises equipment.

19. A computer-readable medium as recited in claim 11, further comprising:
retrieving system configuration data from one or more sub-networks that contain the customer premises equipment;
the updating the domain name server includes updating the domain name server with mappings of the network addresses and corresponding fully-qualified domain names.

20. A computer-readable medium as recited in claim 11, wherein the retrieving a configuration template for a configuration appropriate for the customer premises equipment includes:
extracting a device type and service type from the service request;
searching a template registry table for the template based on the device type and service type;
if a template associated with the device type and service type is not found in the template registry table, selecting and using a default configuration template.

21. An apparatus for automatically provisioning customer premises equipment of a subscriber in a next generation digital telecommunications network to provide a network service, comprising:
means for receiving a service request from a network service provider that comprises information uniquely identifying the customer premises equipment to be provisioned and a service to be provided by the customer premises equipment;
means for receiving information indicating that access is provisioned for a subscriber associated with the customer premises equipment and that one or more permanent virtual circuits are established in network elements of the network for facilitating the access;
means for retrieving a configuration template for a configuration appropriate for the customer premises equipment;
means for allocating and reserving at least one resource associated with the customer premises equipment;
means for allocating and reserving network addresses for a voice signaling channel and a bearer channel associated with communications between the customer premises equipment and the network:
means for updating a domain name service server with information that associates the allocated and reserved network addresses with the customer premises equipment;
means for creating and storing one or more mappings for the permanent virtual circuits in a switch device that directs network communications to the customer premises equipment;
means for generating configuration data for the customer premises equipment based on the configuration template and stored system configuration information;
means for delivering the configuration data over the network to the customer premises equipment to result in provisioning the customer premises equipment to provide the service.

22. An apparatus as recited in claim 21, wherein the customer premises equipment is an ADSL router, wherein the network is an asynchronous transfer mode (ATM) network, and wherein the means for generating configuration data includes means for allocating and reserving an IP address and fully-qualified domain name for each of a plurality of permanent virtual circuits associated with communications among the network and the router.

23. An apparatus as recited in claim 21, wherein the service request comprises information uniquely identifying the customer premises equipment to be provisioned, information identifying one or more permanent virtual circuits assigned by the service provider to the customer premises equipment and access control data.

24. An apparatus as recited in claim 21, wherein the customer premises equipment is an ADSL router, wherein the network is an asynchronous transfer mode (ATM) network, and wherein the means for delivering the configuration data includes means for storing the configuration data in a file server that is communicatively coupled to the network and delivering the configuration data from the file server to the ADSL router using file transfer protocol.

25. An apparatus as recited in claim 21, wherein the customer premises equipment is an T1 CPE device, wherein the network is an asynchronous transfer mode (ATM) network, and wherein the means for delivering the configuration data includes means for pre-staging the configuration data in a file server that is communicatively coupled to the network and delivering the configuration data from the file server to the T1 CPE device using telnet.

26. An apparatus as recited in claim 21, wherein the means for generating configuration data includes:
means for allocating and reserving one or more network addresses respectively associated with one or more communication channels between the network and the customer premises equipment by communicating with a dynamic host control protocol (DHCP) server;
means for allocating and reserving one or more fully qualified domain names respectively associated with one or more communication channels between the network and the customer premises equipment by communicating with a domain name service (DNS) server.

27. An apparatus as recited in claim 21, further comprising:
means for creating and storing updated configuration data in response to receiving a request to update provisioning of the customer premises equipment;
means for generating a request to a proxy element of a network access device to update the provisioning to the customer premises equipment.

28. An apparatus as recited in claim 21, further comprising:
means for creating and storing updated configuration data in response to receiving a request to update provisioning of the customer premises equipment;
means for delivering the updated configuration data to the customer premises equipment;
means for applying the updated configuration data as a merge to an existing configuration of the customer premises equipment, to result in creating a merged configuration;
means for saving the merged configuration as a start-up configuration for the customer premises equipment.

29. An apparatus as recited in claim 21, further comprising:
means for retrieving system configuration data from one or more sub-networks that contain the customer premises equipment;
means for updating the domain name server with mappings of the network addresses and corresponding fully-qualified domain names.

30. An apparatus as recited in claim 21, wherein the means for retrieving a configuration template for a configuration appropriate for the customer premises equipment includes:
means for extracting a device type and service type from the service request;
means for searching a template registry table for the template based on the device type and service type;
means for if a template associated with the device type and service type is not found in the template registry table, selecting and using a default configuration template.

31. An apparatus for automatically provisioning customer premises equipment of a subscriber in a next generation digital telecommunications network to provide a network service, comprising:
a processor;
a network interface communicatively coupled between the processor and the network and configured to communicate data among the processor and the network;
a computer-readable medium having stored one or more sequences of instructions which, when executed by the processor, cause the processor to carry out the steps of:
receiving a service request from a network service provider that comprises information uniquely identifying the customer premises equipment to be provisioned and a service to be provided by the customer premises equipment;
receiving information indicating that access is provisioned for a subscriber associated with the customer premises equipment and that one or more permanent virtual circuits are established in network elements of the network for facilitating the access;
retrieving a configuration template for a configuration appropriate for the customer premises equipment;
allocating and reserving at least one resource associated with the customer premises equipment;
allocating and reserving network addresses for a voice signaling channel and a bearer channel associated with communications between the customer premises equipment and the network;
updating a domain name service server with information that associates the allocated and reserved network addresses with the customer premises equipment;
creating and storing one or more mappings for the permanent virtual circuits in a switch device that directs network communications to the customer premises equipment;
generating configuration data for the customer premises equipment based on the configuration template and stored system configuration information;
delivering the configuration data over the network to the customer premises equipment to result in provisioning the customer premises equipment to provide the service.

32. An apparatus for automatically provisioning customer premises equipment of a subscriber in a next generation digital telecommunications network to provide a network service, comprising:
a provisioning engine configured to receive a service request from a network service provider that comprises information uniquely identifying the customer premises equipment to be provisioned, and a service to be provided by the customer premises equipment;
a configuration template manager communicatively coupled to the provisioning engine and configured to retrieve a configuration template for a configuration appropriate for the customer premises equipment;
means in the provisioning engine for allocating and reserving at least one resource associated with the customer premises equipment and for generating configuration data for the customer premises equipment based on the configuration template and stored system configuration information;
wherein the means in the provisioning engine for allocating and reserving at least one resource associated with the customer premises equipment and for generating configuration data for the customer premises equipment based on the configuration template and stored system configuration information includes means for:
receiving information indicating that access is provisioned for a subscriber associated with the customer premises equipment and that one or more permanent virtual circuits are established in network elements of the network for facilitating the access;
allocating and reserving network addresses for a voice signaling channel and a bearer channel associated with communications between the customer premises equipment and the network:
updating a domain name service server with information that associates the allocated and reserved network addresses with the customer premises equipment;
creating and storing one or more mappings for the permanent virtual circuits in a switch device that directs network communications to the customer premises equipment; and

a configuration delivery manager communicatively coupled to the provisioning engine and configured to deliver the configuration data over the network to the customer premises equipment to result in provisioning the customer premises equipment to provide the service.

33. An apparatus as recited in claim 32, further comprising a resource manager that is communicatively coupled to the provisioning engine and communicatively coupled to a dynamic host control protocol (DHCP) server and a domain name service (DNS) server, wherein the resource manager is configured to request and receive one or more network addresses from the DHCP server and to request and receive one or more fully-qualified domain names from the DNS server.

34. An apparatus as recited in claim 32, further comprising an inventory manager that is communicatively coupled to the provisioning engine a to an inventory repository that comprises network element inventory information, and wherein the means for generating configuration data includes means for generating the configuration data based on the network element inventory information.

35. An apparatus as recited in claim 32, wherein the customer premises equipment is an ADSL router, wherein the network is an asynchronous transfer mode (ATM) network, and wherein means for generating configuration data includes means for allocating and reserving an IP address and fully-qualified domain name for each of a plurality of permanent virtual circuits associated with communications among the network and the router.

36. An apparatus as recited in claim 32, wherein the service request comprises information uniquely identifying the customer premises equipment to be provisioned, information identifying one or more permanent virtual circuits assigned by the service provider to the customer premises equipment; and access control data.

37. An apparatus as recited in claim 32, wherein the customer premises equipment is an ADSL router, wherein the network is an asynchronous transfer mode (ATM) network, and wherein means for delivering the configuration data comprises means for storing the configuration data in a file server that is communicatively coupled to the network and delivering the configuration data from the file server to the ADSL router using file transfer protocol.

38. An apparatus as recited in claim 32, wherein the customer premises equipment is an ADSL router, wherein the network is an asynchronous transfer mode (ATM) network, and wherein the configuration delivery manager is further configured to cause the configuration data to be stored in a file server that is communicatively coupled to the network and delivered from the file server to the ADSL router using file transfer protocol.

39. An apparatus as recited in claim 32, wherein the customer premises equipment is an T1 CPE device, wherein the network is an asynchronous transfer mode (ATM) network, and wherein the configuration delivery manager is further configured to cause the configuration data to be pre-staged in a file server that is communicatively coupled to the network and delivered from the file server to the T1 CPE device using telnet.

40. An apparatus as recited in claim 32, wherein the provisioning engine is further configured to:
create and store updated configuration data in response to receiving a request to update provisioning of the customer premises equipment; and
generate a request to a proxy element of a network access device to update the provisioning to the customer premises equipment.

41. An apparatus as recited in claim 32, wherein the provisioning engine is further configured to:
create and store updated configuration data in response to receiving a request to update provisioning of the customer premises equipment;
deliver the updated configuration data to the customer premises equipment;
apply the updated configuration data as a merge to an existing configuration of the customer premises equipment, to result in creating a merged configuration; and
save the merged configuration as a start-up configuration for the customer premises equipment.

42. An apparatus as recited in claim 32, further comprising means for:
retrieving system configuration data from one or more sub-networks that contain the customer premises equipment;
means for updating the domain name server with mappings of the network addresses and corresponding fully-qualified domain names.

43. An apparatus as recited in claim 32, wherein the configuration template manager is further configured to:
extract a device type and service type from the service request;
search a template registry table for the template based on the device type and service type; and
if a template associated with the device type and service type is not found in the template registry table, selecting and using a default configuration template.