Automatic provisioning of set-top boxes

A set-top box (STB) detects activation of the STB, and performs, in response to the activation of the STB, a health check of the STB. The STB also detects connection of the STB with a network, and performs, in response to the connection of the STB, the following: a pre-provisioning of the STB, a provisioning of the STB, and a service check of the STB.

BACKGROUND

Installation of a set-top box (STB) involves a field technician (e.g., associated with a company providing television services) performing a manual radio frequency (RF) health check of the STB with a meter (e.g., prior to installing the STB), and performing a manual initialization of the STB (e.g., the field technician causes the STB to provide an initialization (INIT) message to one or more servers associated with the company). After manual initialization of the STB, the field technician manually causes the STB to provide an activation message (e.g., to activate the STB) to the one or more servers associated with the company. The field technician manually reviews visual indicators provided to the STB during the installation process, and manually checks channels provided to the STB to confirm channel entitlements. The field technician also manually checks applications associated with the STB (e.g., video on demand (VOD), an electronic program guide (EPG), digital video recorder (DVR) functionality, etc.) to ensure that the applications are functioning correctly.

Such a manual STB installation process is time consuming, costly, and susceptible to human errors. Furthermore, human errors introduced during the STB installation process may cause the STB to not function correctly in the future, which may require the field technician to return to the customer's premises and correct the errors.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

Systems and/or methods described herein may enable a field technician installing or replacing a set-top box (STB) at a customer's premises to automatically provision the STB (e.g., “plug and play provisioning of the STB”) and to automatically perform a “health check” of the STB. Such an arrangement may reduce STB installation time and may improve the field technician's efficiency during installation of the STB (e.g., may reduce human errors). Furthermore, the systems and/or methods described herein may enable the provider of the STB to ship the STB to a customer, and the customer may install the STB (e.g., without a field technician). This may increase customer satisfaction (e.g., the customer does not need to wait for the field technician), and may eliminate the cost of dispatching a field technician. The systems and/or methods described herein may also enable an installed STB (e.g., that loses information) to automatically correct itself and recover the lost information.

In one implementation, for example, the systems and/or methods may automatically perform a health check of a set-top box (STB) prior to installation of the STB, and may automatically pre-provision the STB during installation of the STB. The systems and/or methods may automatically provision the STB during installation of the STB, and may automatically perform a service check of the STB during the STB installation.

As used herein, the terms “subscriber,” “customer,” and “user” may be used interchangeably. Also, the terms “subscriber,” “customer,” and “user” are intended to be broadly interpreted to include a STB and/or a display associated with the STB or a user (e.g., a field technician associated with a company providing the STB (e.g., an television services), a customer of the company, etc.) of a STB and/or a display associated with the STB.

FIG. 1is a diagram of an exemplary network100in which systems and methods described herein may be implemented. As illustrated, network100may include a display110, a STB120, a remote control130, and a server140interconnected by a network150. Components of network100may interconnect via wired and/or wireless connections. A single display110, STB120, remote control130, server140, and network150have been illustrated inFIG. 1for simplicity. In practice, there may be more displays110, STBs120, remote controls130, servers140, and/or networks150. Also, in some instances, one or more of the components of network100may perform one or more functions described as being performed by another one or more of the components of network100.

Display110may include any type of display that is capable of displaying television programming, content provided by STB120, and/or content provided by other devices (e.g., a digital video disk (DVD) player, a video camera, etc., not shown) connected to display110. Display110may be implemented as a stand-alone device and/or may be integrated into another device. In one implementation, some or all of the functions described as being performed by STB120may be performed by display110(e.g., STB120may be integrated within display110, display110may include a cable card, etc.).

STB120may include a device that receives television programming (e.g., from server140), and provides the television programming to display110or another device. STB120may allow a user to alter the programming provided to display110based on a signal (e.g., a channel up or channel down signal) from remote control130. STB120may record video in a digital format to a disk drive or other memory medium within STB120. In one example, STB120may be incorporated directly within display110and/or may include a digital video recorder (DVR). In one implementation, STB120may permit a user to obtain on screen diagnostics relating to STB120.

Remote control130may include a device that allows a user to control programming and/or content displayed on display110via interaction with television and/or STB120.

Server140may include one or more server entities, or other types of computation or communication devices, that gather, process, search, and/or provide information in a manner described herein. In one implementation, server140may include a computer, a computer system, an application, a cable head-end, and/or a broadcasting device capable of providing content (e.g., subscription video packages, television programming, movies, on-demand services, live television, etc.) and/or other information to STB120. In one example, server140may receive information from STB120and may provide information, such as television programming and on screen diagnostic information, to STB120.

Network150may include a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network, such as the Public Switched Telephone Network (PSTN), an intranet, the Internet, an optical fiber (or fiber optic)-based network, or a combination of networks.

FIG. 2illustrates a diagram of exemplary components of a device200that may correspond to server140. As illustrated, device200may include a bus210, processing logic220, a main memory230, a read-only memory (ROM)240, a storage device250, an input device260, an output device270, and/or a communication interface280.

Bus210may include a path that permits communication among the components of device200. Processing logic220may include one or more processors, microprocessors, or other types of processing logic that may interpret and execute instructions. Main memory230may include a random access memory (RAM) or another type of dynamic storage device that may store information and instructions for execution by processing logic220. ROM240may include a ROM device or another type of static storage device that may store static information and/or instructions for use by processing logic220. Storage device250may include a magnetic and/or optical recording medium and its corresponding drive.

Input device260may include a mechanism that permits an operator to input information to device200, such as a keyboard, a mouse, a pen, a microphone, voice recognition and/or biometric mechanisms, remote control130, etc. Output device270may include a mechanism that outputs information to the operator, including a display, a printer, a speaker, etc. Communication interface280may include any transceiver-like mechanism that enables device200to communicate with other devices and/or systems. For example, communication interface280may include mechanisms for communicating with another device or system via a network, such as network150.

As described herein, device200may perform certain operations in response to processing logic220executing software instructions contained in a computer-readable medium, such as main memory230. A computer-readable medium may be defined as a physical or logical memory device. A logical memory device may include memory space within a single physical memory device or spread across multiple physical memory devices. The software instructions may be read into main memory230from another computer-readable medium, such as storage device250, or from another device via communication interface280. The software instructions contained in main memory230may cause processing logic220to perform processes described herein. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.

AlthoughFIG. 2shows exemplary components of device200, in other implementations, device200may contain fewer, different, differently arranged, or additional components than depicted inFIG. 2. In still other implementations, one or more components of device200may perform one or more other tasks described as being performed by one or more other components of device200.

FIG. 3depicts a diagram of exemplary components of a device300that may correspond to STB120. As illustrated, device300may include a bus310, processing logic320, a memory330, an input device340, an output device350, and a communication interface360.

Bus310may include a path that permits communication among the components of device300. Processing logic320may include one or more processors, microprocessors, or other types of processing logic, such as application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), etc., that may interpret and execute instructions. Memory330may include a RAM or another type of dynamic storage device that may store information and instructions for execution by processing logic320, a ROM or another type of static storage device that may store static information and instructions for use by processing logic320, and/or another type of storage device.

Input device340may include a mechanism that permits an operator to input information to device300, such as buttons or a touch-screen interface. Output device350may include a mechanism that outputs information to the operator, such as a display. Communication interface360may include any transceiver-like mechanism that enables device300to receive and/or send information from/to other devices and/or systems, such as display110, remote control130, server140, one or more entertainment components (e.g., a speaker, a video recorder, etc.), etc.

Device300may perform certain operations relating to providing on screen diagnostics. Device300may perform these, and other operations, in response to processing logic320executing software instructions contained in a computer-readable medium, such as memory330. The software instructions may be read into memory330from another computer-readable medium or from another device via communication interface360. The software instructions contained in memory330may cause processing logic320to perform processes described herein. Alternatively, hardwired circuitry may be used in place of or in combination with software instructions to implement processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.

AlthoughFIG. 3shows exemplary components of device300, in other implementations, device300may contain fewer, different, differently arranged, or additional components than depicted inFIG. 3. In still other implementations, one or more components of device300may perform one or more other tasks described as being performed by one or more other components of device300.

FIG. 4illustrates a diagram of exemplary operations capable of being performed by an exemplary portion400of network100. As illustrated, exemplary network portion400may include STB120, remote control130, and server140. STB120, remote control130, and server140may include the features described above in connection with, for example,FIG. 1.

After activating STB120(e.g., turning on STB120) and prior to installing STB120(e.g., prior to connecting STB120with server140), a health check410of STB120may be initiated with, for example, remote control130. Health check410may automatically check radio frequencies associated with STB120. For example, in one implementation, health check410may automatically check an Internet protocol (IP)/Ethernet connection and/or an out-of-band (OOB) channel associated with STB120. STB120may rely on the OOB channel to transmit control messaging from a cable head-end to STB120. Conditional access (CA), system information (SI), electronic program guide (EPG), emergency alert system (EAS), and other commands and control messages may be sent via the OOB channel, which is separate from channels that may actually be watched. STB120may receive content for the OOB channel over the IP/Ethernet connection.

After health check410is performed and STB120is connected to server140, pre-provisioning and provisioning (pre-provisioning/provisioning)420of STB120may be performed. Pre-provisioning/provisioning420may automatically perform pre-provisioning operations associated with STB120. For example, in one implementation, pre-provisioning/provisioning420may include STB120automatically sending an initialization (INIT) message to server140. Server140may initialize STB120(e.g., may send a channel map, codes, etc. to STB120) based on the INIT message. Once STB120is initialized, pre-provisioning/provisioning420may automatically perform provisioning operations associated with STB120. For example, in another implementation, pre-provisioning/provisioning420may include STB120automatically sending an activation message to server140. Server140may activate STB120(e.g., may send program entitlements to STB120) based on the activation message.

After pre-provisioning/provisioning420is performed, a service check430of STB120may be performed. Service check430may automatically perform checks of services associated with STB120. For example, service check430may include STB120automatically checking EPG, VOD, DVR, program entitlements, etc. associated with STB120(e.g., via interaction with server140).

In one exemplary implementation, STB120may provide information associated with health check410, pre-provisioning/provisioning420, and/or service check430on display110. For example, STB120may provide one or more user interfaces (e.g., on screen diagnostics) on display110that may enable a user (e.g., associated with STB120) to view information associated with health check410, pre-provisioning/provisioning420, and/or service check430(e.g., each step of the automatic provisioning of STB120). Further details of on screen diagnostic user interfaces are provided below in connection with, for example,FIGS. 8-22.

AlthoughFIG. 4shows exemplary components of network portion400, in other implementations, network portion400may contain fewer, different, differently arranged, or additional components than depicted inFIG. 4. In still other implementations, one or more components of network portion400may perform one or more other tasks described as being performed by one or more other components of network portion400. In one example, if multiple STBs120are being replaced and/or installed at a customer's premises, the multiple STBs120may provide installation states to an application (e.g., a “Tech Wizard”) provided by server140for centralized monitoring of the customer's premises.

FIG. 5depicts a diagram of exemplary pre-provisioning and/or provisioning operations (e.g., pre-provisioning/provisioning420) capable of being performed by an exemplary portion500of network100. As illustrated, exemplary network portion500may include STB120and server140. STB120and server140may include the features described above in connection with, for example,FIGS. 1 and 4.

As further shown inFIG. 5, STB120and/or server140may automatically validate customer premises equipment (CPE), as indicated by reference number510. CPE may include any equipment (e.g., a television, a DVR, STB120, etc.) provided at the premises of a customer and associated with STB120. In one example, CPE validation510may ensure that STB120is not stolen. In one exemplary implementation, server140may receive information associated with STB120(e.g., and other CPE), such as serial numbers, identification numbers, etc. Server140may compare the received information to valid information (e.g., valid serial numbers, identification numbers, etc.) contained in a database associated with server140, and may validate the CPE based on the comparison.

After CPE validation510, STB120(e.g., via server140) may automatically initialize a channel map associated with STB120, as indicated by reference number520. A channel map may include a listing of channels and/or channel information provided by, for example, an EPG. In one implementation, channel map initialization520may include STB120automatically sending an initialization (INIT) message to server140. Server140may initialize STB120and may send a channel map, codes associated with the channel map, etc. to STB120based on the INIT message.

After channel map initialization520, STB120(e.g., via server140) may automatically activate STB120, as indicated by reference number530. In one implementation, activation530may include STB120automatically sending an activation message to server140. Server140may activate STB120based on the activation message. For example, server140may send program entitlements to STB120based on the activation message. Program entitlements may include television programming permitted for STB120(e.g., determined based on a type of television package ordered by a customer, a cost of the television package, etc.).

After activation530, STB120(e.g., via server140) may automatically validate any cable cards associated with STB120, as indicated by reference number540. A cable card may include an interface for a cable line (e.g., a digital cable line). In one example, cable card validation540may ensure that any cable cards associated with STB120are not stolen. In one exemplary implementation, server140may receive information (e.g., from STB120) associated with the cable cards, such as serial numbers, identification numbers, etc. Server140may compare the received information to valid information (e.g., valid serial numbers, identification numbers, etc.) contained in a database associated with server140, and may validate the cable cards based on the comparison.

AlthoughFIG. 5shows exemplary components of network portion500, in other implementations, network portion500may contain fewer, different, differently arranged, or additional components than depicted inFIG. 5. In still other implementations, one or more components of network portion500may perform one or more other tasks described as being performed by one or more other components of network portion500.

FIG. 6illustrates a diagram of exemplary service check operations capable of being performed by an exemplary portion600of network100. As illustrated, exemplary network portion600may include STB120and server140. STB120and server140may include the features described above in connection with, for example,FIGS. 1,4, and5.

As further shown inFIG. 6, STB120(e.g., via server140) may automatically check services associated with STB120, as indicated by reference number610. Services associated with STB120may include the EPG, VOD services, content search services, program entitlements, widgets, etc. In one implementation, services check610may include STB120automatically sending a request, to server140, for available services (e.g., available to STB120). Server140may send the available services to STB120, and STB120may compare the received available services to a list of services (e.g., for which STB120should be enabled) provided in a database associated with STB120. If STB120is missing a service to which it should have access, STB120may provide an indication of the missing service (e.g., to display110).

After services check610, STB120(e.g., via server140) may automatically validate the services associated with STB120, as indicated by reference number620. In one implementation, services validation620may include STB120automatically determining if the services (e.g., the EPG, VOD services, content search services, program entitlements, widgets, etc.) associated with STB120are functioning correctly. For example, STB120may automatically determine if the VOD services (e.g., provided on a certain channel by server140) are being properly received by STB120.

After services validation620, STB120(e.g., via server140) may automatically check the validation of STB120, as indicated by reference number630. In one implementation, STB validation check630may include STB120tuning to a high value content channel (e.g., a high definition channel) associated with STB120, and determining if the high value content channel is functioning properly. For example, STB120may automatically determine if the high definition services (e.g., provided on a certain channel by server140) are being properly received by STB120.

After STB validation check630, STB120(e.g., via server140) may automatically check in-band signals for one or more channels associated with STB120, as indicated by reference number640. In one implementation, in-band signal check640may include STB120automatically checking in-band signals for three channels (e.g., a low frequency channel, a medium frequency channel, and a high frequency channel) received by STB120from server140.

AlthoughFIG. 6shows exemplary components of network portion600, in other implementations, network portion600may contain fewer, different, differently arranged, or additional components than depicted inFIG. 6. In still other implementations, one or more components of network portion600may perform one or more other tasks described as being performed by one or more other components of network portion600.

FIG. 7depicts a diagram of another exemplary network700in which systems and/or methods described herein may be implemented. As illustrated, network700may include STB120, a video hub office (VHO) server710, a network device720, and an account server730interconnected by a network (not shown). Components of network700may interconnect via wired and/or wireless connections. A single STB120, VHO server710, network device720, and account server730have been illustrated inFIG. 7for simplicity. In practice, there may be more STBs120, VHO servers710, network devices720, and/or account servers730. Also, in some instances, one or more of the components of network700may perform one or more functions described as being performed by another one or more of the components of network700. STB120may include the features described above in connection with, for example, FIGS.1and4-6. In one implementation, VHO server710, network device720, and/or account server730may include the features of server140that were described above in connection with, for example, FIGS.1and4-6.

VHO server710may include one or more server entities, or other types of computation or communication devices, that gather, process, search, and/or provide information in a manner described herein. In one implementation, VHO server710may include a computer, a computer system, an application, a cable head-end, and/or a broadcasting device capable of providing content (e.g., subscription video packages, television programming, movies, on-demand services, live television, etc.) and/or other information to STB120.

In one exemplary implementation, VHO server710may include an on-demand server, a regional content server, an advertisements (ads) server, and an interactive applications server. An on-demand server may provide on-demand services (e.g., music, video, and/or games on-demand). A regional content server may provide free television broadcasts (e.g., local broadcasts, such as NBC, CBS, ABC, and Fox). An ads server may control what advertising content (e.g., commercials) is presented in connection with the national and/or regional video content. An interactive applications server may manage the serving of interactive content. Interactive content may include any form of content with which a user can interact.

Network device720may include a digital-to-analog converter (DAC), a data transfer device, such as a gateway, a router, a switch, a firewall, a network interface card (NIC), a hub, a bridge, a proxy server, an optical add-drop multiplexer (OADM), or some other type of device that processes and/or transfers data.

Account server730may include one or more server entities, or other types of computation or communication devices, that gather, process, search, and/or provide information in a manner described herein. In one implementation, account server730may include a computer, a computer system, and/or an application capable of managing account information associated with customers of STB120.

As further shown inFIG. 7, after STB120performs health check410, STB120may send an initialization (INIT) message740to VHO server710. INIT message740may include information (e.g., serial numbers, identification numbers, etc.) associated with STB120. VHO server710may receive may receive (e.g., via INIT message740) the information associated with STB120(e.g., and other CPE), may compare the received information to valid information (e.g., valid serial numbers, identification numbers, etc.) contained in a database associated with VHO server710, and may validate the CPE based on the comparison. After CPE validation, VHO server710may send INIT message740to network device720. Network device720may receive INIT message740, and may forward INIT message740to STB120via an OOB channel associated with STB120.

STB120may receive INIT message740via the OOB channel, and may reset itself based on INIT message740. After resetting itself, STB120may send an activate message750to VHO server710, and VHO server710may receive activate message750. Based on activate message750, VHO server710may send program entitlements760(e.g., associated with STB120) to network device720. In one implementation, program entitlements760may include television programming permitted for STB120(e.g., determined based on a type of television package ordered by a customer, a cost of the television package, etc.). Network device720may receive program entitlements760, and may forward program entitlements to STB120.

As further shown, STB120may receive program entitlements760, and may determine available packages770for STB120based on program entitlements760. Available packages770may include one or more television packages available to STB120. STB120may inform VHO server710of available packages770, and VHO server710may send, to account server730and based on available packages770, update information and a request to reconcile a customer account (e.g., associated with STB120), as indicated by reference number780. For example, VHO server710provide, to account server730, information associated with available packages, identification information associated with STB120, a request to reconcile an account of a customer associated with STB120, etc. Account server730may receive update/reconcile customer account780from VHO server710, and may provide, to network device720, an indication790of reconciliation of the customer's order (e.g., for available packages770) with the customer's account. Upon receipt of indication790, STB120may be ready for operation.

FIGS. 8-22illustrate diagrams of exemplary user interfaces capable of being generated by STB120and/or server140(e.g., and displayed via display110). The user interfaces depicted inFIGS. 8-22(collectively referred to as “the user interfaces”) may include graphical user interfaces (GUIs) or non-graphical user interfaces, such as text-based interfaces. The user interfaces may provide information to users via customized interfaces (e.g., proprietary interfaces) and/or other types of interfaces (e.g., browser-based interfaces, television interfaces, etc.). The user interfaces may receive user inputs via one or more input devices, may be user-configurable (e.g., a user may change the size of the user interfaces, information displayed in the user interfaces, color schemes used by the user interfaces, positions of text, images, icons, windows, etc., in the user interfaces, etc.), and/or may not be user-configurable. Information associated with the user interfaces depicted inFIGS. 8-22may be selected by a user of STB120(e.g., via remote control130).

The user interfaces depicted inFIGS. 8-22may provide on screen diagnostics that may enable users (e.g., associated with STB120) to obtain diagnostic information regarding the health of STB120and to automatically provision STB120. The on screen diagnostics may include ten or more menu categories (or items), with multiple detailed screens associated with each category (or item), which may provide access to an entire set of diagnostic information associated with STB120. Access to each category may be dependent upon functionality associated with a model type of STB120. Menu items that are not applicable to STB's120model type may not be represented on the on screen diagnostics menu. Menu numbering for different STB120models may remain consistent regardless of missing categories or functions.

The on screen diagnostics may be accessed by powering off STB120and selecting an “OK” button associated with STB120. In other implementations, different techniques for accessing the on screen diagnostics may be used. The on screen diagnostics may be exited by powering off STB120and then powering on STB120. Reporting of diagnostic information by the on screen diagnostics may be dynamic. Furthermore, the look, feel, behavior, and user experience associated with the on screen diagnostics may be consistent for different model types of STB120.

FIG. 8illustrates a diagram of an exemplary user interface800that may correspond to an on screen diagnostics main menu. As shown, user interface800may include a STB model identifier810, a list820of items, and instructions830for accessing the menu items. STB model identifier810may identify a model number (e.g., “XXX”) associated with STB120. List820may provide an exemplary list of diagnostic information available for STB120. For example, list820may include a “Health Summary” item (D01), a “General Status” item (D02), a “Processor/Memory/HDD” item (D03), a “Tuner Status” item (D04), a “General I/O” item (D05), a “Conditional Access” item (D06), a “Network Interface-MoCA” item (D07), a “Home Networking” item (D08), a “TR-069” item (D09), and a “Cable Card” item (D10). Instructions830may provide instructions (e.g., “Highlight and pressfor Detail Info”) for accessing items of list820.

When a user selects item (D01) from list820, an exemplary user interface900, as illustrated inFIG. 9, may be provided and may correspond to a health summary item (e.g., “Health Summary” item (D01)). In one implementation, “Health Summary” item (D01) may be available as a separate application from the on screen diagnostics and may be provided by a supplier of STB120. As shown inFIG. 9, user interface900may include a STB model identifier910, a list920of fields, an option930for beginning activation, and instructions940for accessing the fields. STB model identifier910may identify a model number (e.g., “XXX”) associated with STB120. List920may provide an exemplary list of fields (e.g., “Cable Status,” “Overall Status,” etc.) associated with the health of STB120. Option930, if selected (e.g., by pressing “OK”), may cause STB120to begin activation and provisioning. In one implementation, option930may be displayed when “Overall Status” is equal to “Ready.” Instructions940may provide instructions (e.g., “Highlight and pressfor Detail Info”) for accessing the fields of list920.

If STB120is not provisioned, “Health Summary” item may execute when STB120is powered on. For an IP-enabled STB120, pressing the “OK” button may initiate automatic provisioning. If STB120is provisioned, STB120may execute an application, and a key sequence of powering off STB120followed by pressing the “OK” (or “Select”) button on remote control130may invoke the on screen diagnostics menu (FIG. 8). In user interface900, the user may scroll up and down to highlight a field of list920, and select “—scroll right” for detail information. The user may select “—scroll left” to exit the detail screen and return to user interface900.

FIG. 10illustrates a diagram of an exemplary user interface1000that may correspond to a health summary item (e.g., “Health Summary” item (D01)) for a first in-band tuner (e.g., at low frequency) associated with STB120. As shown, user interface1000may include a STB model identifier1010and a list1020of information. STB model identifier1010may identify a model number (e.g., “XXX”) associated with STB120. List1020may provide an exemplary list of diagnostic information (e.g., “Frequency,” “Signal Level,” “Tuning Mode,” “Encrypted,” “Result,” “Acceptable Range,” etc.) available for the first in-band tuner.

FIG. 11illustrates a diagram of an exemplary user interface1100that may correspond to a health summary item (e.g., “Health Summary” item (D01)) for a second in-band tuner (e.g., at high frequency) associated with STB120. As shown, user interface1100may include a STB model identifier1110and a list1120of information. STB model identifier1110may identify a model number (e.g., “XXX”) associated with STB120. List1120may provide an exemplary list of diagnostic information (e.g., “Frequency,” “Signal Level,” “Tuning Mode,” “Encrypted,” “Result,” “Acceptable Range,” etc.) available for the second in-band tuner.

FIG. 12illustrates a diagram of an exemplary user interface1200that may correspond to a health summary item (e.g., “Health Summary” item (D01)) for an OOB tuner associated with STB120. As shown, user interface1200may include a STB model identifier1210and a list1220of information. STB model identifier1210may identify a model number (e.g., “XXX”) associated with STB120. List1220may provide an exemplary list of diagnostic information (e.g., “Carrier,” “Frequency,” “Signal Level,” “Result,” “Acceptable Range,” etc.) available for the OOB tuner.

FIG. 13illustrates a diagram of an exemplary user interface1300that may correspond to a health summary item (e.g., “Health Summary” item (D01)) for an IP status associated with STB120. As shown, user interface1300may include a STB model identifier1310and a list1320of information. STB model identifier1310may identify a model number (e.g., “XXX”) associated with STB120. List1320may provide an exemplary list of diagnostic information (e.g., “MAC Address,” “IP Address,” “Gateway,” “Result,” “Acceptable Range,” etc.) available for the IP status.

FIG. 14illustrates a diagram of an exemplary user interface1400that may correspond to a health summary item (e.g., “Health Summary” item (D01)) for a Multimedia over Coax Alliance (MOCA) status associated with STB120. As shown, user interface1400may include a STB model identifier1410and a list1420of information. STB model identifier1410may identify a model number (e.g., “XXX”) associated with STB120. List1420may provide an exemplary list of diagnostic information (e.g., “Link State,” “Interface,” “MAC Address,” “IP Address,” “Result,” “Acceptable Range,” etc.) available for the MoCA status.

FIG. 15illustrates a diagram of an exemplary user interface1500that may correspond to a help screen for a health summary item (e.g., “Health Summary” item (D01)). As shown, user interface1500may include a STB model identifier1510and help information1520. STB model identifier1510may identify a model number (e.g., “XXX”) associated with STB120. Help information1520may provide help information associated with activation of STB120(e.g., “STB is ready for activation when the Overall Status field reflects the Pass status for all diagnostics.”).

When a user selects item (D02) from list820, an exemplary user interface1600, as illustrated inFIG. 16, may be provided and may correspond to a general status item (e.g., “General Status” item (D02)). As shown, user interface1600may include a STB model identifier1610, a list1620of fields, and instructions1630for accessing the fields. STB model identifier1610may identify a model number (e.g., “XXX”) associated with STB120. List1620may provide an exemplary list of fields (e.g., “H/W Model,” “MAC addr,” “Serial No.,” etc.) associated with the general status of STB120. Instructions1630may provide instructions (e.g., “Highlight and pressfor Detail Info”) for accessing the fields of list1620.

When a user selects item (D03) from list820, an exemplary user interface1700, as illustrated inFIG. 17, may be provided and may correspond to a processor/memory/hard drive (HDD) item (e.g., “Processor/Memory/HDD” item (D03)). As shown, user interface1700may include a STB model identifier1710and a list1720of fields. STB model identifier1710may identify a model number (e.g., “XXX”) associated with STB120. List1720may provide an exemplary list of fields (e.g., “System Memory,” “Flash Memory,” “Model,” “Serial #,” etc.) associated with a processor, a memory, and/or a hard drive of STB120.

When a user selects item (D04) from list820, an exemplary user interface1800, as illustrated inFIG. 18, may be provided and may correspond to a tuner status item (e.g., “Tuner Status” item (D04)). As shown, user interface1800may include a STB model identifier1810, a first list1820of fields, a second list1830of fields, and a third list1840of fields. STB model identifier1810may identify a model number (e.g., “XXX”) associated with STB120. First list1820may provide an exemplary list of fields (e.g., “Frequency,” “Signal Level,” “Data,” “Tuning Mode,” etc.) associated with a first in-band tuner of STB120. Second list1830may provide an exemplary list of fields associated with a second in-band tuner of STB120. Third list1830may provide an exemplary list of fields (e.g., “Carrier,” “Frequency,” “Signal Level,” “Packets Received,” etc.) associated with an OOB tuner of STB120.

FIG. 19illustrates a diagram of an exemplary user interface1900that may correspond to a tuner status item (e.g., “Tuner Status” item (D04)) for a first in-band tuner associated with STB120. As shown, user interface1900may include a STB model identifier1910and a list1920of information. STB model identifier1910may identify a model number (e.g., “XXX”) associated with STB120. List1920may provide an exemplary list of diagnostic information (e.g., “RF Parameters,” “Tuning Mode,” “Channel,” “Encrypted,” “Retention State,” “Tuner1State,” etc.) available for the first in-band tuner.

When a user selects item (D05) from list820, an exemplary user interface2000, as illustrated inFIG. 20, may be provided and may correspond to a general I/O item (e.g., “General I/O” item (D05)). As shown, user interface2000may include a STB model identifier2010and a list2020of fields. STB model identifier2010may identify a model number (e.g., “XXX”) associated with STB120. List2020may provide an exemplary list of fields (e.g., “MoCA,” “Ethernet,” “S-Video,” “Composite Video,” etc.) associated with general I/O devices of STB120.

When a user selects item (D06) from list820, an exemplary user interface2100, as illustrated inFIG. 21, may be provided and may correspond to a conditional access item (e.g., “Conditional Access” item (D06)). As shown, user interface2100may include a STB model identifier2110and a list2120of fields. STB model identifier2110may identify a model number (e.g., “XXX”) associated with STB120. List2120may provide an exemplary list of fields (e.g., “pay-per-view (PPV) Credit Limit,” “PPV Credit User,” “PPV Event Limit,” “PPV Event Used,” etc.) associated with conditional access of STB120.

When a user selects item (D07) from list820, an exemplary user interface2200, as illustrated inFIG. 22, may be provided and may correspond to a network interface/MoCA item (e.g., “Network Interface-MoCA” item (D07)). As shown, user interface2200may include a STB model identifier2210, a first list2220of fields, and a second list2230of fields. STB model identifier2210may identify a model number (e.g., “XXX”) associated with STB120. First list2220may provide an exemplary list of fields (e.g., “Link State,” “MAC Address,” “IP Address,” etc.) associated with an Ethernet network interface of STB120. Second list2230may provide an exemplary list of fields (e.g., “Link State,” “MAC Address,” “IP Address,” etc.) associated with a MoCA network interface of STB120.

Although user interfaces800-2200depict a variety of information, in other implementations, user interfaces800-2200may depict fewer, different, differently arranged, or additional information than depicted inFIGS. 8-22. For example, although user interfaces were not depicted for items (D08), (D09), and (D10) of list820(FIG. 8), in one implementation, STB120and/or server140may provide (e.g., via display110) user interfaces for items (D08), (D09), and/or (D10) that include information similar to the information provided above in connection withFIGS. 8-22.

FIGS. 23-26illustrate flow charts of an exemplary process2300for automatically provisioning a STB (e.g., STB120) according to implementations described herein. In one implementation, process2300may be performed by STB120. In another implementation, some or all of process2300may be performed by another device (e.g., server140) or group of devices, including or excluding STB120.

As illustrated inFIG. 23, process2300may begin with automatically performing a health check of a set-top box (STB) prior to STB installation (block2310), and automatically pre-provisioning the STB during installation of the STB (block2320). For example, in implementations described above in connection withFIG. 4, prior to installing STB120(e.g., prior to connecting STB120with server140), health check410of STB120may be initiated with, for example, remote control130. Health check410may automatically check radio frequencies associated with STB120. In one example, health check410may automatically check an Internet protocol (IP)/Ethernet connection and/or an out-of-band (OOB) channel associated with STB120. After health check410is performed and STB120is connected to server140, pre-provisioning/provisioning420of STB120may be performed. Pre-provisioning/provisioning420may automatically perform pre-provisioning operations associated with STB120. In one example, pre-provisioning/provisioning420may include STB120automatically sending an initialization (INIT) message to server140. Server140may initialize STB120(e.g., may send a channel map, codes, etc. to STB120) based on the INIT message.

As further shown inFIG. 23, the STB may be automatically provisioned during installation of the STB (block2330), and a service check of the STB may be automatically performed during installation of the STB (block2340). For example, in implementations described above in connection withFIG. 4, once STB120is initialized, pre-provisioning/provisioning420may automatically perform provisioning operations associated with STB120. In one example, pre-provisioning/provisioning420may include STB120automatically sending an activation message to server140. Server140may activate STB120(e.g., may send program entitlements to STB120) based on the activation message. After pre-provisioning/provisioning420is performed, service check430of STB120may be performed. Service check430may automatically perform checks of services associated with STB120. For example, service check430may include STB120automatically checking EPG, VOD, DVR, program entitlements, etc. associated with STB120(e.g., via interaction with server140).

Process block2320may include the process blocks depicted inFIG. 24. As shown inFIG. 24, process block2320may include automatically validating customer-premises equipment (CPE) and/or the STB (block2400), and automatically initializing the STB to receive a latest channel map and/or code information (block2410). For example, in implementations described above in connection withFIG. 5, STB120and/or server140may automatically validate customer premises equipment (CPE), as indicated by reference number510. CPE may include any equipment (e.g., a television, a DVR, STB120, etc.) provided at the premises of a customer associated with STB120. In one example, server140may receive information associated with STB120(e.g., and other CPE), such as serial numbers, identification numbers, etc. Server140may compare the received information to valid information (e.g., valid serial numbers, identification numbers, etc.) contained in a database associated with server140, and may validate the CPE based on the comparison. After CPE validation510, STB120(e.g., via server140) may automatically initialize a channel map associated with STB120, as indicated by reference number520. In one example, channel map initialization520may include STB120automatically sending an initialization (INIT) message to server140. Server140may initialize STB120and may send a channel map, codes associated with the channel map, etc. to STB120based on the INIT message.

Process block2330may include the process blocks depicted inFIG. 25. As shown inFIG. 25, process block2330may include automatically activating the STB to receive program entitlement information (block2500), and automatically validating a cable card associated with the STB (block2510). For example, in implementations described above in connection withFIG. 5, after channel map initialization520, STB120(e.g., via server140) may automatically activate STB120, as indicated by reference number530. In one example, activation530may include STB120automatically sending an activation message to server140. Server140may activate STB120based on the activation message. After activation530, STB120(e.g., via server140) may automatically validate any cable cards associated with STB120, as indicated by reference number540. In one example, server140may receive (e.g., from STB120) information associated with the cable cards, such as serial numbers, identification numbers, etc. Server140may compare the received information to valid information (e.g., valid serial numbers, identification numbers, etc.) contained in a database associated with server140, and may validate the cable cards based on the comparison.

Process block2340may include the process blocks depicted inFIG. 26. As shown inFIG. 26, process block2340may include automatically checking one or more services associated with the STB (block2600), and automatically validating the one or more services associated with the STB (block2610). For example, in implementations described above in connection withFIG. 6, STB120(e.g., via server140) may automatically check services associated with STB120, as indicated by reference number610. Services check610may include STB120automatically sending a request, to server140, for available services (e.g. available to STB120). Server140may send the available services to STB120, and STB120may compare the received available services to a list of services (e.g., for which STB120should be enabled) provided in a database associated with STB120. After services check610, STB120(e.g., via server140) may automatically validate the services associated with STB120, as indicated by reference number620. Services validation620may include STB120automatically determining if the services associated with STB120are functioning correctly.

As further shown inFIG. 26, process block2340may include automatically checking the STB validation by tuning the STB to a high value content channel (block2620), and automatically checking an in-band signal for one or more channels in low, medium, and high frequencies (block2630). For example, in implementations described above in connection withFIG. 6, after services validation620, STB120(e.g., via server140) may automatically check the validation of STB120, as indicated by reference number630. STB validation check630may include STB120tuning to a high value content channel associated with STB120, and determining if the high value content channel is functioning properly. After STB validation check630, STB120(e.g., via server140) may automatically check in-band signals for one or more channels associated with STB120, as indicated by reference number640. In one implementation, in-band signal check640may include STB120automatically checking in-band signals for three channels (e.g., a low frequency channel, a medium frequency channel, and a high frequency channel) received by STB120from server140.

Systems and/or methods described herein may enable a field technician installing or replacing a set-top box (STB) at a customer's premises to automatically provision the STB and to automatically perform a health check of the STB. Such an arrangement may reduce STB installation time and may improve the field technician's efficiency during installation of the STB (e.g., may reduce human errors). Furthermore, the systems and/or methods described herein may enable the provider of the STB to ship the STB to a customer, and the customer may install the STB (e.g., without a field technician). This may increase customer satisfaction (e.g., the customer does not need to wait for the field technician), and may eliminate the cost of dispatching a field technician. The systems and/or methods described herein may also enable an installed STB (e.g., that loses information) to correct itself and recover the lost information.

For example, while a series of blocks has been described with regard toFIGS. 23-26, the order of the blocks may be modified in other implementations. Further, non-dependent blocks may be performed in parallel.

It will be apparent that aspects, as described herein, may be implemented in many different forms of software, firmware, and hardware in the implementations illustrated in the figures. The actual software code or specialized control hardware used to implement these aspects is not limiting of the invention. Thus, the operation and behavior of these aspects were described without reference to the specific software code—it being understood that software and control hardware may be designed to implement these aspects based on the description herein.

Further, certain portions of the invention may be implemented as “logic” that performs one or more functions. This logic may include hardware, such as an application specific integrated circuit or a field programmable gate array, or a combination of hardware and software.