Abstract:
A method and apparatus for providing remote control of content rendered by a set top box is described including transmitting a state request message by a user to the set top box via a server, receiving a state reply message by the user from the set top box via the server, determining by the user if the user needs to control the set top box responsive to information in the state reply message and transmitting a remote control command to the set top box via the server. Also described are a method and apparatus including recording information of events by the set top box, receiving a state request message via a server, generating a state reply message including the recorded information, transmitting the state reply message via the server, receiving a remote control command via the server and performing an action specified by the remote control command.

Description:
FIELD OF THE INVENTION 
       [0001]    The present invention relates to using a remote smart phone to accomplish parent control of content (program) viewing by a child or children. 
       BACKGROUND OF THE INVENTION 
       [0002]    In multicast and broadcast applications, data are transmitted from a server to multiple receivers over wired and/or wireless networks. A multicast system as used herein is a system in which a server transmits the same data to multiple receivers simultaneously, where the receivers form a subset of all the receivers up to and including all of the receivers. A broadcast system is a system in which a server transmits the same data to all of the receivers simultaneously. That is, a multicast system by definition can include a broadcast system. The present invention is not limited to a conventional TV but may also be used to control content (programs) rendered on a computing device via the Internet. 
         [0003]    Set top boxes could provide rich content and popular/fashionable services to home users because they have capabilities to interface with some device within the internet. For some digital video broadcast (DVB) programs, there is a parental control descriptor in the event information table (EIT) to suggest an appropriate age level for viewing the content (program). This could prevent young children from seeing some adult programs (content). A similar function has been provided in some conditional access (CA) systems. Concerning the healthy growth of children and protecting their eyesight, some parents want a way to know the playing time of their set top box and to control its capability when they are out of the home. 
       SUMMARY OF THE INVENTION 
       [0004]    When the parents are out of the home and leave their children at home alone, they may not want their children watch TV for an extended period of time, or only allow the children to see (view) special programs of a channel at a special time or for a specific time period (duration). 
         [0005]    Using only the currently available mechanisms of CA or EIT or channel lock, this desire/requirement cannot be fulfilled. The present invention described herein provides a complete solution to implement this feature by using a remote smart phone to monitor and control the set top box (STB). 
         [0006]    Three modules are necessary. The modules may be implemented as hardware, software, firmware or any combination thereof and may be implemented using reduced instruction set computers (RISCs), application specific integrated circuits (ASICs) and/or field programmable gate arrays (FPGAs) or any equivalent technology. One module (CLIENT-STB) will be in (be executed on) the STB. A second module (SERVER) will be in (be executed on) the broadcast server. The third module (CONTROLLER) will be in (be executed on) the personal smart phone. A smart phone as used herein is an example, but the present invention is not so limited and the term smart phone may also include a laptop or notebook computer, an iPad, an iPod, an iPhone, a tablet computing device or any other equivalent mobile computing device. 
         [0007]    A method and apparatus for providing remote control of content rendered by a set top box is described including transmitting a state request message by a user to the set top box via a server, receiving a state reply message by the user from the set top box via the server, determining by the user if the user needs to control the set top box responsive to information in the state reply message and transmitting a remote control command to the set top box via the server. Also described are a method and apparatus for providing remote control of content rendered by an addressed set top box including receiving a state request message for the addressed set top box from a user, locating the addressed set top box, forwarding the state request message to the located set top box, receiving a state reply message from the located set top box, forwarding the state reply message to the user, receiving a remote control command for the located set top box from the user and forwarding the remote control command to the located set top box. Also described are a method and apparatus for providing remote control of content rendered by a set top box including recording information of events by the set top box, receiving a state request message from a user via a server, generating a state reply message including the recorded information, transmitting the state reply message to the user via the server, receiving a remote control command from the user via the server and performing an action specified by the remote control command. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0008]    The present invention is best understood from the following detailed description when read in conjunction with the accompanying drawings. The drawings include the following figures briefly described below: 
           [0009]      FIG. 1  is a block diagram of an exemplary embodiment of the modules of the present invention. 
           [0010]      FIG. 2  is a ladder diagram of the function and order of the interaction of the various modules of an exemplary embodiment of the present invention. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0011]    The CLIENT-STB module would be embedded in STB. The CLIENT-STB module could transmit (send)/receive to/from the SERVER module via a cable modem or Ethernet port. The CLIENT-STB module records and updates the set top box state including running time duration, all program names and playing time duration of content (programs) that the set top box rendered in the most recent three days. The CLIENT-STB module transmits (sends) the recorded state to the SERVER module if requested to do so. The CLIENT-STB module is able to lock all channels in the set top box or turn the set top box off when it receives such a command from the SERVER module. 
         [0012]    The SERVER module is implemented in the broadcast computer which could communicate with all devices on lines directly or indirectly via a cable modem termination system (CMTS). Devices include set top boxes, the CONTROLLER module in a remote parental control device and a web browser used as a remote parental control device. The SERVER module could receive a request from the smart phone via the internet or browser client with http. The SERVER module could locate the specified box using the specified user login name. The SERVER module requests and receives the state of the specified box via its IP address. The SERVER module could send the command to specified STB to ask it to turn itself off or lock itself. 
         [0013]    The CONTROLLER module is implemented in a smart phone or a service that the SERVER module provides on a web browser of a smart phone or other computing device. The remote user (parent) could get all information about the state of the STB via the CONTROLLER module in the remotes user&#39;s smart phone or web page hosting this service. The user could turn off the STB or lock all channels of the STB via CONTROLLER module or web browser service. The command is sent to SERVER module and executed finally in the CLIENT-STB module. 
         [0014]    Before details of the present invention are described further below are the three basic command types and structures. 
         [0015]    1. State_Request 
         [0000]    
       
         
               
               
               
               
             
               
               
               
               
             
           
               
                   
               
               
                 Syntax 
                 Num of byte 
                 Value 
                 Comment 
               
               
                   
               
             
             
               
                   
               
             
          
           
               
                 STB_State_request( ){ 
                   
                   
                   
               
               
                 magic 
                 4 
                 0x4b494453 
                 “KIDS” 
               
               
                 version 
                 1 
                 0x0 
                 Protocol version 
               
               
                 Registered_user_name 
                 16 
                   
                 User name of 
               
               
                   
                   
                   
                 the owner of the 
               
               
                   
                   
                   
                 set top box 
               
               
                   
               
             
          
         
       
     
         [0016]    2. State_Reply 
         [0000]    
       
         
               
               
               
               
             
           
               
                   
               
               
                 Syntax 
                 Num of byte 
                 Value 
                 Comment 
               
               
                   
               
             
             
               
                 STB_Run_State( ){ 
                   
                   
                   
               
               
                 magic 
                 4 
                 0x 4b494453 
                 “KIDS” 
               
               
                 version 
                 1 
                 0x0 
                 Protocol version 
               
               
                 MAC_address 
                 4 
                   
                 MAC address of the set top box 
               
               
                 Registered_user_name 
                 16  
                   
                 User name of the owner of the set 
               
               
                   
                   
                   
                 top box 
               
               
                 Current_state 
                 1 
                 0 or 1 
                 0-standby, 1-awake 
               
               
                 Boot_time 
                 4 
                 Utc time 
                 The set top box boot time 
               
               
                 Runing_time_length 
                 4 
                   
                 Second count from boot to now 
               
               
                 View_program_info_length 
                 4 
                   
                 Viewed program information 
               
               
                   
                   
                   
                 length with byte 
               
               
                 For(i=0;i&lt;N; i++){ 
                   
                   
                   
               
               
                  Event_name_length 
                 1 
                 &lt;0xff 
                 The length of event name 
               
               
                  Event_name 
                 Event name 
                   
                 The name of the 
               
               
                   
                 length 
                   
                 viewed/rendered/played program 
               
               
                  Service_id 
                 2 
                 1~0xffff 
                 The DVB service ID that event is 
               
               
                   
                   
                   
                 within; 
               
               
                  Service_name_length 
                 1 
                   
                 The name length of the service 
               
               
                  Service_name 
                 Service 
                   
                   
               
               
                   
                 name length 
                   
                   
               
               
                  View_start_time 
                 4 
                 Utc time 
                 The time that the set top box 
               
               
                   
                   
                   
                 started to play/render this event; 
               
               
                  View_end_time 
                 4 
                 Utc time 
                 The time that the set top box 
               
               
                   
                   
                   
                 stopped playing/rendering this 
               
               
                   
                   
                   
                 event; 
               
               
                  Event_content_level 
                 1 
                 &lt;0xff 
                 The event maturity level or type 
               
               
                 } 
                   
                   
                   
               
               
                  Check_sum 
                 4 
                   
                 Check sum value 
               
               
                 } 
               
               
                   
               
             
          
         
       
     
         [0017]    3. Remote_Control_Cmd 
         [0000]    
       
         
               
               
               
               
             
               
               
               
               
             
           
               
                   
               
               
                   
                 Num of 
                   
                   
               
               
                 Syntax 
                 byte 
                 Value 
                 Comment 
               
               
                   
               
             
             
               
                   
               
             
          
           
               
                 STB_Controller( ){ 
                   
                   
                   
               
               
                 magic 
                 4 
                 0x 4b494453 
                 “KIDS” 
               
               
                 version 
                 1 
                 0x0 
                 Protocol version 
               
               
                 Registered_user_name 
                 16 
                   
                 User name of the 
               
               
                   
                   
                   
                 owner of the set top 
               
               
                   
                   
                   
                 box 
               
               
                 Ctrl_command 
                 1 
                 0, 1, 2, 
                 0--turn off/stand by, 
               
               
                   
                   
                 0xFF 
                 1--lock all 
               
               
                   
                   
                   
                 channels; 2--lock 
               
               
                   
                   
                   
                 current channel. 
               
               
                   
                   
                   
                 0xFF—reset previous 
               
               
                   
                   
                   
                 command state. 
               
               
                 validity 
                 4 
                 0 or number 
                 0—for ever from  
               
               
                   
                   
                   
                 now on; 
               
               
                   
                   
                   
                 Number—time  
               
               
                   
                   
                   
                 length by second. 
               
               
                   
               
             
          
         
       
     
         [0018]    4. Remote_Control_Cmd_Ack 
         [0000]    
       
         
               
               
               
               
             
               
               
               
               
             
           
               
                   
               
               
                   
                 Num of 
                   
                   
               
               
                 Syntax 
                 byte 
                 Value 
                 Comment 
               
               
                   
               
             
             
               
                   
               
             
          
           
               
                 STB_cmd_ack( ){ 
                   
                   
                   
               
               
                 magic 
                 4 
                 0x 4b494453 
                 “KIDS” 
               
               
                 version 
                 1 
                 0x0 
                 Protocol version 
               
               
                 MAC_address 
                 4 
                   
                 MAC address 
               
               
                   
                   
                   
                 of the set top box 
               
               
                 Registered_user_name 
                 16 
                   
                 User name of the 
               
               
                   
                   
                   
                 owner of the set top 
               
               
                   
                   
                   
                 box 
               
               
                 Cmd_result 
                 1 
                 0 or 1 
                 0-failure, 1-succeed 
               
               
                   
               
             
          
         
       
     
         [0019]    A “state request” message is issued to a set top box by the CONTROLLER module in a user&#39;s remote smart phone. The “state request” message is actually received by the SERVER module in the server and forwarded to the set top box (CLIENT STB module) by the SERVER module. The user must provide the user&#39;s name who is the registered owner of the set top box. It is assumed that the user is the authorized user of the smart phone. The web browser version may require additional verification such as a password, security questions or biometric data. This may have been initiated by a user at a smart phone or via a web browser. 
         [0020]    The CLIENT-STB module in set top box replies with a “state reply” message which provides the status of the set top box. Status includes the medium access control (MAC) address of the set top box, the user name of the owner of the set top box, the current state of the set top box (0=standby and 1=awake), the time that the set top box was booted (started up), the time in seconds since the set top box was booted (started) up, the length of the program (content) that has been viewed (played, rendered), the name (title) of each event (program, content) viewed, the length (duration) of each event (program, content), the service from which the event (program, content) was received (e.g., Netflix™, M-go™ (Trademark of Technicolor), etc.), the time that the set top box started to play (render) the event (program, content), the time that the set top box ceased playing (rendering) the event (program, content), and the content level (rating, maturity level). The “state reply’ from the set top box (CLIENT STB module) is received by the SERVER module of the server and forwarded by the SERVER module of the server to the CONTROLLER module of the user&#39;s smart phone (for the user) or a CONTROLLER module in a web browser service (for the user). 
         [0021]    Based on the “state reply” the user may issue a remote control command to the set top box. The user issues such a remote control command via the CONTROLLER module in the user&#39;s smart phone or via a CONTROLLER module of a web browser service. The remote control command is received by the SERVER module of the server and forwarded to the set top box (CLIENT-STB module). The control command options are to turn off the set top box, to lock all channels of the set top box, to lock the current channel being viewed of the set top box, or to reset to cancel previous command. Each command sent to CLIENT-STB module has its validity checked, which will ensure that the command (request, message) is valid. The validity value 0 means the STB will keep the status after execute current command forever. The reset command is used to recover the STB status. 
         [0022]    After the STB executes the remote command, the CLIENT-STB module will send its reply as remote_control_cmd_ack msg to the SERVER module, which message is then transferred to the CONTROLLER module. The user thus knows that the remote control commend was executed (performed, finished, completed). One exception is the turn off command option. The CLIENT-STB module has to send out remote_control_cmd_ack after it is in stand-by mode and before the set top box turns itself off. 
         [0023]    Once the STB is awakened again by the child in the home, the previous command is still valid if its validity has not expired. So there is a case that the STB could not be awakened up any longer due to the previous command (standby option, validity=‘0’). The user could cancel the previous command in order to recover the STB with a reset option in the remote control command when this case occurs or the user wants to use the STB without any limitation when the user returns home. The user must install the CONTROLLER module in the user&#39;s smart phone. The set top box is interfaced via the Internet with its Ethernet port directly. 
         [0024]    Sometimes a user wants to know how long a time his/her child has been watching (viewing) TV in the home. The following could clearly show the use case. The message process and protocol of network and transport layers are ignored for purposes of the following description. It should be noted that a user cannot control what his/her child might be watching (viewing) while at a friend&#39;s home. The flip side of the present invention is that the user may be controlling what a friend of the child is watching at the user&#39;s home. 
         [0025]    Referring to  FIG. 2 , the CONTROLLER module may be installed in a user&#39;s smart phone or be accessed via a web browser that is part of, and supported by, the server. In the case where the user is accessing the control system of the present invention via the user&#39;s smart phone, it is assumed that the user is in control of his/her smart phone and no verification is required. In the case where the user is accessing the control system of the present invention via a web browser then the user may be required to login and provide a password, answer security questions or provide biometric data for verification. Steps (acts) ( 1 ), ( 6 ), and ( 7 ) may be performed via the CONTROLLER module in a user&#39;s smart phone or via a CONTROLLER module via a web browser. 
         [0026]    At step ( 1 ) the user via one of the CONTROLLER modules transmits (sends) a state request message (state_request msg) to the SERVER module of the server. At step ( 2 ) the SERVER module of the server locates the target set top box using the registration name provided in the state request message. The SERVER module of the server searches for the target set top box using the user name of the registered set top box owner provided by the user in the state request message. The SERVER locates the target set top box&#39;s internet protocol (IP) and MAC address. At step ( 3 ) the SERVER module of the server transmits (sends, forwards) the state request message to the target set top box. The SERVER module accomplishes step ( 3 ) by encapsulating the state request message as an IP packet and sends (transmits, forwards) the IP packet to the target set top box. At step ( 4 ) the CLIENT-STB module of the target set top box generates a state reply message (state_reply msg) with all of its state information. At step ( 5 ) the CLIENT-STB module of the set top box replies (transmits, sends) to the SERVER module of the server with the state reply message having the state information contained therein. At step ( 6 ) the SERVER module of the server transmits (sends, forwards) the state reply message to the user via one of the CONTROLLER modules. The user makes a determination based on the state reply message if he/she needs to control the set top box. If the user does not wish to control the set top box then the method of the present invention ends at this point. If the user determines that he/she needs to control the set top box based on the state reply message then at step ( 7 ) the user via one of the CONTROLLER modules transmits (sends, forwards) a remote control command (remote_control cmd) to the SERVER module of the server (destined for the target set top box). Upon receipt of the remote control command from the user, the SERVER module of the server transmits (sends, forwards) the remote control command to the CLIENT STB module of the set top box. The command options are to turn the set top box off completely, to lock all channels of the set top box or to lock the current channel being viewed on the set top box, or to reset the box to its normal state so as to cancel the previous command. Once the CLIENT-STB module finishes (completes) the command action or before it turns itself off, at step ( 9 ) it will send remote control command acknowledgement which will be received by user via the CONTROLLER module at step ( 10 ). 
         [0027]    If the set top box is connected to the WLAN directly, then steps ( 3 ), ( 5 ) and ( 8 ) will be in the internet network. If the set top box can only communicate with the CMTS by cable modem, then steps ( 3 ), ( 5 ) and ( 8 ) will be transmitted (forwarded, sent) in the cable network with fixed up/down frequencies. 
         [0028]    It is to be understood that the present invention may be implemented in various forms of hardware, software, firmware, special purpose processors, or a combination thereof. Special purpose processors may include application specific integrated circuits (ASICs), reduced instruction set computers (RISCs) and/or field programmable gate arrays (FPGAs). Preferably, the present invention is implemented as a combination of hardware and software. Moreover, the software is preferably implemented as an application program tangibly embodied on a program storage device. The application program may be uploaded to, and executed by, a machine comprising any suitable architecture. Preferably, the machine is implemented on a computer platform having hardware such as one or more central processing units (CPU), a random access memory (RAM), and input/output (I/O) interface(s). The computer platform also includes an operating system and microinstruction code. The various processes and functions described herein may either be part of the microinstruction code or part of the application program (or a combination thereof), which is executed via the operating system. In addition, various other peripheral devices may be connected to the computer platform such as an additional data storage device and a printing device. 
         [0029]    It is to be further understood that, because some of the constituent system components and method steps depicted in the accompanying figures are preferably implemented in software, the actual connections between the system components (or the process steps) may differ depending upon the manner in which the present invention is programmed. Given the teachings herein, one of ordinary skill in the related art will be able to contemplate these and similar implementations or configurations of the present invention.