# Patent

## Title
System and method to remotely manage and audit set top box resources

## Abstract

A system and method for determining the resources available or used in a remote device is disclosed. The system can be used to determine whether the remote device is using expected resources as originally configured or to determine whether resources are available to support new or extended services. The method can be used to configure or reconfigure the remote device for its intended use or as reconfigure a remote device for new, different or extended purposes.

## Background
BACKGROUND
1. Field of the Invention
The present invention relates generally to a content distribution system, and more particularly, to system and method to remotely manage and audit set top box (referred to as “STB”) resources.
2. Background of the Invention
Many dwellings including single homes, apartments, condominiums, town houses and lofts, have installed a media distribution system to improve the reception of audio and video content. Often, these distribution systems take the form of either a cable television system or a satellite television system. These systems receive a signal from a content supplier, such as a cable television company or a satellite television company. Generally, content suppliers offer a variety of services including different levels of subscriptions, pay channels and pay per view programs. Additionally, newer STBs, like Tivo, Replay TV and Ultimate TV, include computing resources including processors, hard disk drives, controllers, and operating systems.
Some customers, in an effort to access unauthorized channels or services, attempt to modify their STBs. For example, there have been problems with users opening their STBs and installing larger disk drives, and installing memory cards that provide the codes necessary to access unauthorized channels and services. Other forms of unauthorized use of STBs and the resources associated with STBs have also occurred.
SUMMARY OF THE INVENTION
The present invention is directed to an STB that includes a remote resource manager (referred to as “RRM”). RRMs permit a service provider to monitor the resources that are associated with an STB and determine if all the resources associated with that STB are authorized. The service provider can initiate communications with an STB and, using the RRM, the service provider can essentially audit an STB and determine the available resources and/or configuration of the STB.
In one aspect, the service provider sends an interrogation signal to an RRM and the RRM responds to this interrogation signal by sending information related to the resources that are associated with the STB.
In another aspect, the service provider sends a signal that instructs an RRM to collect information related to the resources that are associated with STB.
In another aspect, the invention is directed to a method that includes provisions that permit the service provider to compare the configuration of the STB with an expected configuration and determine if the current configuration is different from the expected configuration.
In another aspect, the invention allows the service provider to modify an STB remotely by sending information to the remote resource manager.
In another aspect, the RRM can determine if a STB can support a new service requested by the user based on the presently available resources.
Additional features and advantages of the invention will be set forth in the description which follows, and in part will be apparent from the description, or may be learned by practice of the invention. The objectives and advantages of the invention will be realized and attained by the structure and steps particularly pointed out in the written description, the claims and the drawings.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a schematic diagram of a preferred embodiment of a system in accordance with the present invention.
FIG. 2 is a schematic diagram of a preferred embodiment of a set top box in accordance with the present invention.
FIG. 3 is a flow diagram of a preferred embodiment of a method in accordance with the present invention.



DETAILED DESCRIPTION OF THE INVENTION
FIG. 1 is a schematic diagram 100, portions of which show a preferred embodiments of the present invention. A service provider 102, which could be a network operator, is connected to network 104. Network 104 could be cable, terrestrial broadcast, satellite broadcast, or a combination of those forms. At least one STB 106 is connected to network 104. Usually, more than one STB 106 is connected to Network 104. However, for purposes of clarity, this description focuses on a single STB 106, keeping in mind that many more STBs could be connected to Network 104.
In addition to being connected to network 104, STB 106 is also preferably connected to a television 108. Preferably, service provider 102 distributes content through network 104 and STB 106 is adapted to receive that content and deliver it to television 108. In some embodiments, a residential gateway 114.
Residential gateway (RG) 114 is generally a device for terminating an external connection and fanning it out to multiple devices within a dwelling. In some embodiments, residential gateway 114 is a STB. Typically residential gateway 114 serves more than one purposes such as a DHCP server or as a NAT server for connections to the internet through an ISP. Residential gateway 114 can include storage, and in some cases residential gateway 114 is a managed device by the network provider.
In some cases, STB 106 includes a tuner that permits a user to access different programs or channels. In the preferred embodiment, STB 106 is connected to a second network 112. Typically, second network 112 is a telecommunications network and in some embodiments, second network 112 is a public switched telecommunications network (“PSTN”). Preferably, this second network 112 is capable of supporting Internet Protocol (“IP”) communications. Preferably, network 112 supports two way communications between service provider 102 and STB 106. In some embodiments, second network 112 is a “broadband” network, for example, DSL, cable modem, Ethernet, or some other network that supports high speed communications. While the embodiment shown in FIG. 1 shows STB 106 as a physically separate unit from associated television 108, it is possible to integrate an STB with a television. In such integrated units, the STB can be built into the television.
In some embodiments, STB 106 includes various resources that assist STB 106 in providing services to users. Referring to an embodiment of STB 106 shown in FIG. 2. STB 106 can include several components including a fixed disk drive 202 that can be used to record content, and a second fixed disk drive 204 that could be used to provide increased storage capacity. A power supply 206 can be connected to a power source and to various components to provide power to those components. STB 106 can also include a first port 218, also referred to as a network port, capable of communicating with first network 104 (see FIG. 1) and a second port 220, also referred to as a communications port, capable of communicating with second network 112 (see FIG. 1).
STB 106 can also include a motherboard 208 that supports various other components. For example, in some embodiments, motherboard 208 can include a tuner 210 that can assist a user in selecting programs. A decoder 212 could be provided to assist in converting images from a digital format to a format suitable for display on a television. In one embodiment, decoder 212 is an MPEG-2 (Motion Picture Experts Group) decoder.
A remote resource manager (referred to as “RRM”) 214 could also be associated with STB 106. In some embodiments, RRM 214 is attached to motherboard 208, in other embodiments, RRM 214 is a separate component that is located within or on STB 106 and RRM 214 is in communication with motherboard 208, and in other embodiments, RRM 214 is located outside STB 106 and is either attached or not attached to STB 106, and is in communication with motherboard 208. In some embodiments the RRM is a software program, application or algorithm that operates inside or outside the STB 106.
RRM 214 is designed to determine resources that are associated with a particular STB. In the embodiment shown in FIG. 2, RRM 214 is located within STB 106 and RRM 214 is designed to determine the resources associated with STB 106. In some embodiments, RRM 214 is designed to determine the resources that are associated with STB 106 at predetermined times, in other embodiments, RRM 214 determines the associated resources in response to a signal. Exactly when RRM 214 determines the nature and quality of the resources associated with STB 106 can be tailored to suit particular preferences and needs.
Some embodiments include an optional firewall 216. In some embodiments, firewall 216 is attached to motherboard 208. In other embodiments, firewall 216 is a separate component that is located within or on STB 106 and is in communication with motherboard 208, and in other embodiments, firewall 216 is located outside STB 106 and is either attached or not attached to STB 106, and is in communication with motherboard 208.
Firewall 216 can be hardware, software or a combination of the two. Firewall 216 is designed to protect STB 106 from unauthorized access. Firewall 216 is in communication with communications port 218. In some embodiments, communications port 218 is a modular port, for example, an RJ-111 or an RJ-45. Since STB 106 is connected to a communications network 112 (see FIG. 1) and because many different people have access to communications network 112, STB 106 may be vulnerable to unauthorized access or hacker attack.
To assist in preventing unauthorized access by third parties, firewall 216 is disposed logically between communications network 112 and other components of STB 106. In other words, firewall 216 receives information from communications network 112 before other elements of STB 106 and information from communications network 112 is sent to other components of STB 106 after firewall 216 has reviewed, analyzed, and or processed the information.
Firewall 216 can include filters, packet filtering, proxy service, and/or stateful inspection. Firewall 216 can process and/or analyze one or more communications protocols. Some examples of communications protocols that firewall 216 may be designed to process and/or analyze are: IP (Internet Protocol), TCP (Transport Control Protocol), HTTP (Hyper Text Transfer Protocol), FTP (File Transfer Protocol), UDP (User Datagram Protocol), ICMP (Internet Control Message Protocol), SMTP (Simple Mail Transport Protocol), SNMP (Simple Network Management Protocol), and/or Telnet.
FIG. 3 shows a flow diagram of a preferred embodiment of a method in accordance with the present invention. In Step 302, communication is initiated between service provider 102 and STB 106. Preferably this communications occurs over second network 112. As noted above, communication can be initiated in many different ways.
In one embodiment, communication is initiated by STB 106 at predefined intervals. For example, STB 106 initiates communications at a time when it is likely that users are not operating STB. In some embodiments, STB 106 initiates communications at 2:00 or 3:00 in the morning. STB 106 initiates communications by sending a signal over second network 112 to service provider 102. After receiving the signal, service provider 102 and STB 106 begin communications.
In other embodiments, service provider 102 initiates communications by sending the signal, preferably over second network 112, to STB 106. STB 106 responds to the signal from the service provider 102, and two-way communications between STB 106 and service provider 102 commences. In this embodiment, service provider 102 can initiate communications at predetermined times or service provider 102 can initiate communications manually by having technicians or operators associated with service provider 102 initiating communications.
After communications has been initiated, service provider 102 retrieves data from STB 106 in Step 304. Preferably, RRM 110 participates in the transmission of data to service provider 102. In one embodiment, RRM 110 receives a signal from service provider 102 and in response to that signal, RRM 110 retrieves data related to the various resources associated with STB 106.
This data can include information related to the resources associated with STB 106. This information could include the number, nature, type, kind and/or quality of components connected to or associated with STB 106 as well as the capabilities of those components. For example, in one embodiment, STB 106 uses RRM 110 to send information to service provider 102 regarding the number and size of all of the fixed disk drives that are associated with STB 106. RRM 110 can send the information automatically or in response to a second signal or request from service provider 102.
In Step 306, service provider 102 analyzes the data received from STB 106. In some embodiments, service provider 102 has access to a database or other storage facility that contains information related to STB 106. The information contained in the database relates to the configuration that service provider 102 expects of STB 106. For example, if the user of STB 106 has paid for a specific level of content and a specific size of an associated fixed disk drive 202, this information would be recorded in the database. For example, if user of STB 106 paid for basic subscription content plus a 10 gigabyte fixed disk drive, that information would be captured and recorded in the database.
Once the information related to the resources associated with STB 106 is received from STB 106, that information is compared with the information in the database. All differences between the information received from STB 106 and information retrieved from the database are noted.
For example, if the user has installed another fixed disk drive 204, or has changed the first fixed disk drive 202 to a different capacity fixed disk drive, and none of these modifications were authorized by service provider 102, service provider 102 can detect such unauthorized modifications in Step 306 where service provider 102 analyzes data from STB 106.
In step 308, data is sent from service provider 102 to STB 106. This is an optional step and need not be preformed. However, in some embodiments data could be sent to STB 106 that relates to programming content or information related to future programs. This can assist the user of STB 106 in selecting future programming for viewing and/or recording.
In some cases, service provider 102 will send operating instructions to STB 106. In those cases where service provider 102 sends operating instructions to STB 106, the service provider 102 has detected an unauthorized resource on STB 106 or service provider 102 would like to modify the configuration of STB 106.
In step 308, service provider 102 can send information and operating instructions to STB 106 to reconfigure STB 106 in such a way that the modified STB 106 will again conform to the expected configuration in accordance with the data retrieved from the database. Unauthorized modifications are generally rare, and therefore, these operating instructions are generally infrequently sent to STB 106.
In Step 310, STB 106 determines if an operating instruction has been sent from the service provider. If an operating instruction has been sent from the service provider 102, then STB 106 performs the operating instruction in Step 312. The operating instruction can include instructions that tell STB 106 to modify, disable, fail to address, or fail to use unauthorized resources. In addition, the operating command can also be used to allow or enable additional services, for example, permitting addressing of more HD space for extending record times or allowing extended EPG data, or allocate resources for new services, for example, electronic magazine or games, and/or repartioning the fixed disk drive for more or less space for PVR or other services.
Continuing with the example, if the expected resource is a 10-gigabyte hard drive, and the user of STB 106 has installed a 20-gigabyte hard drive without authorization, STB 106 would receive an instruction to either disable the 20-gigabyte hard drive or instruct STB 106 to only access 10-gigabytes of the new fixed disk drive.
In some cases, users purchase STBs with more resources than they have initially paid, and as they pay additional money to service provider 102, service provider 102 enables those additional resources already associated with STB 106. In those cases where users have purchased an STB with more capabilities than their subscription level, the operating instruction would instruct STB 106 to use existing resources that it was previously not authorize to use.
For example, a service provider 102 could sell all of their STBs with large hard drives for example, a 200 gigabyte hard drive, and only permit access to certain portions depending on the level of subscription payment. As users pay additional money, they are permitted to access greater and greater portions of their fixed disk drives. An operating instruction from service provider 102 can permit STB 106 to access additional portions of the fixed disk drive.
The operating instructions could be used to instruct STB 106 to receive or decode additional content. This feature could permit a service provider 102 to increase or decrease the level of content or the amount of content that STB 106 is authorized to receive. The operating instructions could also include information related to decrypting keys. By sending certain decrypting keys to STB 106, service provider 102 can control which programs STB 106 can successfully decode and consequently which programs the user of STB 106 can view.
In addition, the operating instructions can be used to determine if additional resources are available, for example, if additional fixed disk resources are available or if the correct processor to support MPEG 4 and/or MPEG 7 decoding in hardware or software is present. The operating instruction could also be used to diagnose software or hardware on an interactive basis with a technician from a remote location.
After the operating instructions have been performed in Step 312, an optional confirmation Step 314 can be performed. In this optional confirmation step, service provider 102 can retrieve information from STB 106 after STB 106 has been instructed to perform the operating instruction. In the confirm modification Step 314, service provider 102 can interrogate STB 106 after the operating instruction has been sent and retrieve information a second time and retrieve the information related to the new configuration, or the resources associated with STB 106. This information could be compared with an expected configuration, thus permitting service provider 102 to determine if the operating instruction was successfully executed by STB 106.
In this way, service provider 102 can confirm whether the modification has been made or not. If the modification was not made, service provider 102 can retransmit the operating instructions to STB 106 or take other corrective action. If the modification has been successful and an appropriate response has been received from STB 106, the process moves to Step 316 where the system waits for the next communications with the STB to occur.
After communications are initiated at the next appropriate interval, the process then moves to Step 302. Using this preferred method, service provider 102 can determined the amount of resources associated with an STB 106, compare those resources with expected resources, and take any necessary corrective action.
The foregoing disclosure of the preferred embodiments of the present invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many variations and modifications of the embodiments described herein will be obvious to one of ordinary skill in the art in light of the above disclosure. The scope of the invention is to be defined only by the claims appended hereto, and by their equivalents.
Further, in describing representative embodiments of the present invention, the specification may have presented the method and/or process of the present invention as a particular sequence of steps. However, to the extent that the method or process does not rely on the particular order of steps set forth herein, the method or process should not be limited to the particular sequence of steps described. As one of ordinary skill in the art would appreciate, other sequences of steps may be possible. Therefore, the particular order of the steps set forth in the specification should not be construed as limitations on the claims. In addition, the claims directed to the method and/or process of the present invention should not be limited to the performance of their steps in the order written, and one skilled in the art can readily appreciate that the sequences may be varied and still remain within the spirit and scope of the present invention.

## Claims

1. A method for communicating with a remote set top box (STB) that provides a service to end users comprising:
receiving at a location remote from the STB a first item of information related to parameter settings associated with the STB from the STB, the parameter settings affecting the provisioning of the service to the end user;
retrieving a second item of information from a database spaced from the STB;
comparing at the location remote from the STB the first item of information with the second item of information, the second item of information being related to parameter settings expected to be associated with the STB;

based on a result of the comparing, communicating to the STB from the location remote from the STB an instruction to change at least one of the parameter settings affecting the provisioning of the service to the end user; and
wherein the instruction communicated to the STB provides for at least one of enabling a resource of the STB related to the first item of information, disabling a resource of the STB related to the first item of information, including authorization keys related to the first item of information, and causing the STB to diagnose a problem of the STB related to the first item of information.

2. The method according to claim 1, wherein the second item of information is received by the first location remote from the STB from a database.

3. The method according to claim 1, wherein the first item of information includes information related to a fixed disc drive.

4. The method of claim 1, wherein the STB is integrated into a television.

5. The method of claim 1, wherein the service comprises audio and video content playback.

6. A non-transitory computer readable medium having encoded instructions that causes at least one computer to:
receive a first item of information from a set top box (STB) that provides a service to end users, wherein the first item of information relates to parameter settings that affect the provisioning of the service to the end user and that are associated with the STB;
retrieve a second item of information from a database spaced from the STB, wherein the second item of information relates to an expected configuration of the STB;
compare the first item of information with the second item of information;
send an STB instruction to the STB wherein the instruction is configured to change at least one of the parameter settings affecting the provisioning of the service to the end user; and
wherein the STB instruction provides for at least one of enabling a resource of the STB related to the first item of information, disabling a resource of the STB related to the first item of information, including authorization keys related to the first item of information, and causing the STB to diagnose a problem of the STB related to the first item information.

7. The non-transitory computer readable medium according to claim 6, wherein the encoded instructions further cause the STB instructions to be sent to a remote resource manager of the STB and wherein the encoded instructions further cause the remote resource manager to detect the resources and send the first item of information.

8. The non-transitory computer readable medium of claim 6, wherein the encoded instructions further cause the STB to receive user input that requests a new service, and determine by the remote resource manager whether the STB has the resources to support the new service.

9. The non-transitory computer readable medium of claim 6, wherein the STB is integrated into a television.

10. The non-transitory computer readable medium of claim 6, wherein the service comprises audio and video content playback.