Abstract:
Embodiments of the present invention include apparatuses for a console controller in a network device. In one embodiment, the present invention includes a console controller, a display module and an input module in a network device so that a user can view, enter, or program network or network device settings at the network device. In another embodiment, the present invention can be programmed to include automated out-of-the-box initial setup procedures to guide a user in the setup, management and operation of a network devices such a DSL/Cable modems or routers, VoIP routers, wireless access points or gateways with or without remote or onsite technical support or update services.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
   The application is a divisional of U.S. patent application, entitled “Operating and Managing Network Application on a Consumer Network Device Using a Control Console Incorporated into the Consumer Network Device”, Ser. No. 11/123,681, now abandoned, filed on May 6, 2005. 

   BACKGROUND OF THE INVENTION 
   1. Field 
   This invention relates to the field of data and voice communications, and in particular, an apparatus to operate and manage a consumer network device. 
   2. Related Art 
   Since the commercialization of the Internet in the 1990s, manufacturers have introduced consumer network products and services at a breathtaking pace. From more technology driven products like telephone modems, ADSL/Cable modems, Ethernet hubs/switches, consumer broadband gateways and routers, and wireless access points, manufactures are moving rapidly to integrate networking technologies into more traditional consumer products such as IP telephony adaptors, network audio servers, network gaming consoles, and network security devices. In the foreseeable future, there will be many new consumer network products and services, to improve the usefulness of current consumer technology products and services, or to enrich further the contemporary life styles. These emerging products and services create a new landscape for communications, productivity, and entertainment for consumers. Yet at the same time the products and services employ more and complex technologies than most consumers can comprehend. The proliferation of these consumer network devices creates a new set of problems because most consumers do not possess the necessary technical knowledge to operate and to manage the products. 
   These consumer network devices typically use Internet technologies. Today these devices require a connection to a personal computer for initial set-up, periodic operation and management, and troubleshooting. The difficulties, complexities and issues that arise due to the current state of the art for setting up, managing and operating such network devices are best illustrated by examples. 
   In one scenario, a user subscribes to a DSL broadband data service and has a DSL modem. Recently the consumer bought a second personal computer. In order to have Internet access to both personal computers, the consumer learns he can connect both personal computers to a broadband gateway. He buys a consumer broadband gateway. During the initial set-up of the consumer broadband gateway, the default IP address of consumer broadband gateway is factory set at 192.168.1.101 and the subnet mask at 255.255.255.0. His two personal computers however, have IP addresses of 10.122.11.123 and 10.122.11.124, with a subnet mask of 255.255.240.0. The consumer connects the WAN port of the consumer broadband gateway to the DSL modem, and both personal computers to the LAN ports of the consumer broadband gateway. Following the instruction manual of the consumer broadband gateway, the consumer launches the Web browser, at one of his personal computers, to access the URL “http://192.168.1.101/index.html” which would allow the consumer to access the consumer broadband gateway. Due to the incompatible settings, the Web browser returns an error message indicating the failure to access the URL. The consumer checks the consumer broadband gateway and sees several blinking LED&#39;s. According to the manual, the consumer broadband gateway indicates normal LAN port activities. However, the consumer becomes frustrated as he cannot get further information which step in the initial set-up he has a mistake. After a few hours of frustration, the consumer decides to return the consumer broadband gateway. 
   In another scenario, the consumer bought a wireless network access point and connected it to his consumer network at home. Fortunately, the consumer understood enough about his home network and was able to set-up the wireless network access point. However, the new wireless network access point includes a DHCP server and was interfering with the DHCP server running in an existing consumer broadband gateway in his consumer network. This interaction caused the network to malfunction after a couple of days. The consumer&#39;s personal computer was not able to reach the wireless network access point, the consumer broadband gateway, or other consumer network devices in his consumer network. The consumer checked the wireless network access point and the consumer broadband gateway. The LEDs on the two devices indicate normal operation. After numerous calls to the customer support of the manufacturer of the wireless network access point, the manufacturer of the consumer broadband gateway, the manufacturer of the personal computer and the broadband service provider, the consumer suffers frustration as the problem remained unsolved. The consumer eventually returned the wireless network access point. 
   In another scenario, the consumer subscribed to an IP telephone service and brought home a new IP telephony adaptor. She connected the IP telephony adaptor to her consumer network, and connected her home phone to the telephone jack of the IP telephony adaptor. She faced the same problem as the consumer in the above scenario that the factory preset IP address and subnet mask were incompatible to that of her consumer network. After great frustration and many service calls, the problem was eventually resolved by an onsite service person, a costly experience for the consumer as well as the IP telephone service provider. 
   The foregoing examples illustrate a need for a user-friendly solution for a consumer to set up, operate and manage consumer network devices that will reduce the amount of time, money and frustration to both the consumer and the manufacturer, service provider or reseller. 
   BRIEF SUMMARY OF THE INVENTION 
   Embodiments of the present invention include method and apparatuses for a Console Controller. 
   In one embodiment, a control console comprising a display module, an input module and console controller is incorporated into a network device such as, but not limited to, a DSL/Cable router, a switch, a hub, a DSL/Cable modem, Voice over Internet Protocol (VoIP) router, wireless access point, wireless router or residential gateway to facilitate the display, input, programming and configuration of network settings of said network device without the use of a separate device or computer. The control console provides a means for retrieving data about and entering data for the network device on the actual network device. The control console communicates with the network application on the network device over an operation and management interface. The console controller can greatly reduce the difficulty associated with current state of the art set up, management and operation of the network device. 
   In one embodiment, the control console can have one or more lines of graphical information display with one or more single purpose or multi purpose buttons, dials or touch pads. 
   In one embodiment, the control console can have audio notification or response capabilities. Such audio notification or response can include, but is not limited to, alarms for when network functionality or status changes or sounds played to confirm button operation or successful input of information. 
   Additional embodiments will be evident from the following detailed description and accompanying drawings, which provide a better understanding of the nature and advantages of the present invention. 

   
     BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE FIGURES 
       FIG. 1  is a block diagram illustrating a Network Application and Network Function Component according to one embodiment of the present invention. 
       FIG. 2  is a block diagram illustrating a Consumer Network Device with Control Console according to one embodiment of the present invention. 
       FIG. 3  is a representation of an Input Module and Display Module according to one embodiment of the present invention. 
       FIG. 4  is a block diagram illustrating a Console Controller State Machine according to one embodiment of the present invention. 
       FIG. 5  is a block diagram illustrating a Main Menu State Machine according to one embodiment of the present invention. 
       FIG. 6  is a representation of a Main_Menu_Line_Item according to one embodiment of the present invention. 
       FIG. 7  is a representation of a Display Module and Input Module for Main Menu State Machine in Main Menu State-A according to one embodiment of the present invention. 
       FIG. 8  is a block diagram illustrating a Status Menu State Machine according to one embodiment of the present invention. 
       FIG. 9  is a representation of a Status_Menu_Line_Item according to one embodiment of the present invention. 
       FIG. 10  is a representation of a Display Module and Input Module for Status Menu State Machine in Status Menu State-A according to one embodiment of the present invention. 
       FIG. 11  is a representation of a Display Module and Input Module for Status Menu State Machine in Status Menu State-B according to one embodiment of the present invention. 
       FIG. 12  is a block diagram illustrating a Set Menu State Machine according to one embodiment of the present invention. 
       FIG. 13  is a representation of a Set_Menu_Line_Item according to one embodiment of the present invention. 
       FIG. 14  is a representation of a Display Module and Input Module for Set Menu State Machine in Set Menu State-A according to one embodiment of the present invention. 
       FIG. 15  is a representation of a Display Module and Input Module for Set Menu State Machine in Set Menu State-B according to one embodiment of the present invention. 
       FIG. 16  is a representation of a Display Module and Input Module for Set Menu State Machine in Set Menu State-C according to one embodiment of the present invention. 
       FIG. 17  is a representation of a Display Module and Input Module for Set Menu State Machine in Set Menu State-D according to one embodiment of the present invention. 
       FIG. 18  is a representation of a Display Module and Input Module for Set Menu State Machine in Set Menu State-E according to one embodiment of the present invention. 
       FIG. 19  is a block diagram illustrating a Test Menu State Machine according to one embodiment of the present invention. 
       FIG. 20  is a representation of a Test_Menu_Line_Item according to one embodiment of the present invention. 
       FIG. 21  is a representation of a Display Module and Input Module for Test Menu State Machine in Test Menu State-A according to one embodiment of the present invention. 
       FIG. 22  is a representation of a Display Module and Input Module for Test Menu State Machine in Test Menu State-B according to one embodiment of the present invention. 
   

   DETAILED DESCRIPTION OF THE INVENTION 
   Described herein are apparatuses for a Control Console for a network device. In the following description, for purposes of explanation, numerous examples and specific details are set forth in order to provide a thorough understanding of the present invention. It will be evident, however, to one skilled in the art that the present invention as defined by the claims may include some or all of the features in these examples alone or in combination with other features described below, and may further include obvious modifications and equivalents of the features and concepts described herein. 
     FIG. 1  is a diagram illustrating a conventional Network Application. Network Application  100  includes an Application Logic  110  and a Network Interface  170 . 
   In one embodiment, Network Application  100  also includes an Input/Output Function  150 , such as a speaker and a microphone, or other special purpose sensors or drivers. Application Logic  110  communicates with one or more network devices connected to Consumer Network  190  via Network Interface  170 . 
   In one embodiment, Consumer Network  190  is an IP network over Ethernet technology. 
   In one embodiment, Consumer Network  190  is an IP network over Wi-Fi technology. 
   In one embodiment, Consumer Network  190  is an IP network over a plurality of technologies. 
   Application Logic  110  includes a plurality of Network Function Component  130 . A Network Function Component  130  relates to the interaction between Application Logic  110  and Network Interface  170 . 
   In one embodiment, a Network Function Component  130  is an IP address, a subnet mask, a remote server address, a default gateway address, an option for static or dynamic IP address allocation, or the SSID of a wireless network access point. 
   In one embodiment, a Network Function Component  130  is an indication of the connectivity to a default gateway, or an indication of the quality of a communication link such as an Ethernet connection. 
   In one embodiment, a Network Function Component  130  is the transmission rate at Network Interface  170 , the number of dropped packets in a communication session, or an indication of the quality of a wireless link. 
   In one embodiment, a Network Function Component  130  is a test of a network capability of Application Logic  110 . For example, a Network Function Component  130  is a test of the connectivity of Network Interface  170  and Consumer Network  190 , a test of the connectivity towards the default gateway of Consumer Network  190 , a test of connectivity towards a remote server, the request to renew an IP address from a DHCP server application, or a test of the functionality of a firewall. 
   A consumer network device runs a number of applications, including one or more network applications. In one embodiment, a network application is a DHCP server application. 
   In one embodiment, a network application is a network access point application, such as a wireless network access point application. 
   In one embodiment, a network application is an IP phone application. 
   In one embodiment, a network application is a routing application, such as a DSL routing application, or a cable modem routing application. 
   In one embodiment, a network application is a firewall application. 
   In one embodiment, a network application is a network multi-media application, such as a network music application, a network photo album application, or a network video application. 
   In one embodiment, a network application is a network security application, such as a network surveillance application, a baby room monitoring application, or a network alarm application. 
   In one embodiment, a network application is a network remote control application, such as a home appliance remote control application, a swimming pool remote control application, or a home landscape remote irrigation application. 
     FIG. 2  is a diagram illustrating a Control Console. Control Console  200  is a part of a Consumer Network Device  280 . Control Console  200  connects to Network Application  270  over Operation and Management Interface  205 . Operation and Management Interface  205  is a programming interface. Control Console  200  operates and manages a plurality of Network Function Component  275  over Operation and Management Interface  205 . 
   Control Console  200  may include Display Module  210 , Input Module  230 , and Console Controller  250 . 
   Input Module  230  allows a user to provide input to Console Controller  250 . In one embodiment, Input Module  230  includes a plurality of keys. 
   In one embodiment, Input Module  230  includes a plurality of dials. 
   In one embodiment, Input Module  230  includes a voice recognition module. 
   Display Module  210  displays information about Network Application  270 . In one embodiment, Display Module  210  includes an alphanumeric display panel. 
   In one embodiment, Display Module  210  includes a graphic display. 
   In one embodiment, Display Module  210  includes a speaker. 
   Console Controller  250  receives user inputs from Input Module  230 , communicates with Network Application  270  via the operation and management interface  205 , determines the content to display and sends the content to Display Module  210  for display. 
   In one embodiment, the user input is to obtain the status information for a Network Function Component  275  of Network Application  270 . 
   In one embodiment, Console Controller  250  requests the status information of a Network Function Component  275  from Network Application  270 , and receives the status information from Network Application  270 . Console Controller  250  sends the status information to Display Module  210 . 
   In one embodiment, the user input is to set the value of a Network Function Component  275  of Network Application  270 , Console Controller  250  sends the identity and the value of a Network Function Component  275  to Network Application  270 , receives the result from Network Application  270 , and sends the result to Display Module  210 . 
   In one embodiment, the user input is to test a Network Function Component  275  of Network Application  270 , Console Controller  250  requests Network Application  270  to test a Network Function Component  275 , receives the test result from Network Application  270 , and sends the information to Display Module  210 . 
   Input Module and Display Module 
     FIG. 3  illustrates an embodiment of Input Module  330  and Display Module  310 . Input Module  330  includes four input keys, Key-A  331 , Key-B  332 , Key-C  333 , and Key-D  334 . A user presses the input keys at Input Module  330  to provide input to Console Controller  250 . 
   Display Module  310  is an alphanumeric display panel with three lines of display. The first line is Line-A  312 . The second line is Line-B  314 . The third line includes four parts. The first part Key-Function-A  351  is located directly above Key-A  331 . The second part Key-Function-B  352  is located directly above Key-B  332 . The third part Key-Function-C  353  is located directly above Key-C  333 . The fourth part Key-Function-D  354  is located directly above Key-D  334 . 
   In one embodiment, Line-A  312  displays a name. For example, Line-A  312  displays “MAIN MENU”. 
   In one embodiment, Line-B  314  displays a name, for example, “TEST MENU”. In another embodiment, Line-B  314  displays “IP ADDRESS”. 
   In one embodiment, Line-B  314  displays “172.168.66.62”. In one embodiment, Line-B  314  displays “255.255.240.0”. 
   In one embodiment, Line-B  314  displays “rc: 12 kbps tx: 15 kbps dp pkt: 0”. 
   In one embodiment, Line-B  314  displays “link quality is good, signal strength at 75%”. 
   In one embodiment, Line-B  314  displays “DEFAULT GATEWAY TEST”. 
   In one embodiment, Line-B  314  displays “NETWORK CONNECTION TEST”. 
   In one embodiment, Line-B  314  displays “normal, round trip latency is 159 ms”. 
   In one embodiment, Key-Function-A  351  displays the name of the function for Key-A  331 . Key-Function-B  352  displays the name of the function for Key-B  332 . Key-Function-C  353  displays the name of the function for Key-C  333 . Key-Function-D  354  displays the name of the function for Key-D  334 . 
   In one embodiment, Key-Function-A  351  displays “CHANGE”, Key-Function-B  352  displays “LOCATE”, Key-Function-C  353  displays “EXIT”, and Key-Function-D  354  displays “SAVE”. 
   Console Controller State Machine 
     FIG. 4  illustrates a Console Controller State Machine. Console Controller State Machine  400  is a state machine. The Console Controller  250  includes a plurality of Console Controller State Machine  400 . Console Controller State Machine  400  has zero or more state variables. Console Controller State Machine  400  has one Initial State  410 , a plurality of State  430 , a plurality of State Transition  450 , and a plurality of Trigger Event  470 . Console Controller  250  starts a Console Controller State Machine  400  at the Initial State  410 . Console Controller State Machine  400  enters a State  430  automatically. A user presses one of the four input keys, Key-A  331 , Key-B  332 , Key-C  333 , or Key-D  334  at Input Module  330  to provide input to Console Controller  250 . Console Controller State Machine  400  processes the input from Input Module  330 , determines that a Trigger Event  470  has occurred and triggers a State Transition  450 . A State Transition  450  leaves a State  430 , enters a different State  430 , or enters the same State  430 . During a State Transition  450 , Console Controller State Machine  400  takes zero or more actions. Each action acts on one or more state variables. Upon entering a State  430 , Console Controller State Machine  400  takes zero or more actions. 
   In one embodiment, an action acts on zero or more state variables. In another embodiment, an action invokes communications to Network Application  270 . 
   In one embodiment, an action invokes a command to Display Module  310 . 
   In one embodiment, Console Controller State Machine  400  determines that the input from Input Module  330  does not correspond to a Trigger Event  470  and ignores the input from Input Module  330 . 
   Main Menu State Machine 
     FIG. 5  illustrates a Main Menu State Machine. Main Menu State Machine  500  is a Console Controller State Machine  400 . Main Menu Machine  500  includes a Main_Menu_Line_Item_Table. Main_Menu_Line_Item_Table includes a plurality of Main_Menu_Line_Item. 
   In one embodiment, the Console Controller  250  includes a Main Menu State Machine. 
     FIG. 6  illustrates a Main_Menu_Line_Item. Main_Menu_Line_Item  600  includes a Line_Item_Name  602 , and a State_Machine_Identity  605 . Line_Item_Name  602  stores a name. State_Machine_Identity  605  refers to a Console Controller State Machine  400 . Main Menu State Machine  500  includes state variable Main_Menu_Line_Item_Table_Index. Main_Menu_Line_Item_Table_Index refers to a Main_Menu_Line_Item  600  in the Main_Menu_Line_Item_Table. 
   Main Menu Initial State  510  is the Initial State  410  of Main Menu State Machine  500 . Main Menu State Machine  500  includes a plurality of State  430 ; Main Menu State-A  530 , and Main Menu State-B  550 . Main Menu State Machine  500  includes a plurality of State Transition  450 ; Main Menu Transition-A  513  and Main Menu Transition-B  515 . Main Menu State Machine  500  includes a plurality of Trigger Event  470 ; Trigger Event-SCROLL  5133  and Trigger Event-SELECT  5153 . 
   Main Menu Initial State 
   Console Controller  250  starts Main Menu State Machine  500 . 
   In one embodiment, Console Controller  250  starts Main Menu State Machine  500  when a user switches on the power at Consumer Network Device  280 . Main Menu State Machine  500  enters Main Menu Initial State  510 . Main Menu State Machine  500  sets Main_Menu_Line_Item_Table_Index to refer to the first Main_Menu_Line_Item  600  in the Main_Menu_Line_Item_Table. Main Menu State Machine  500  enters Main Menu State-A  530 . 
   Main Menu State-A 
     FIG. 7  illustrates an example of Output Module  710  after the display actions. 
   In  FIG. 7 , Main Menu State Machine  500  displays “MAIN MENU” on Line-A  712 . Main Menu State Machine  500  retrieves the Main_Menu_Line_Item  600  referred to by Main_Menu_Line_Item_Table_Index. Main Menu State Machine  500  displays the name stored in the Line_Item_Name  602  on Line-B  714 , for example, “TEST MENU”. Main Menu State Machine  500  displays “SCROLL” on Key-Function-A  751  and “SELECT” on Key-Function-D  754 . 
   Main Menu State-B 
   Console Controller  250  stops Main Menu State Machine  500 . Console Controller  250  retrieves the Main_Menu_Line_Item  600  referred to by Main_Menu_Line_Item_Table_Index, and starts the Console Controller State Machine  400  referred to by the State_Machine_Identity  605 . 
   Main Menu Transition-A 
   In  FIG. 7 , when a user presses Key-A  731 . Main Menu State Machine  500  determines that Trigger Event-SCROLL  5133  has occurred and triggers Main Menu Transition-A  513 . Main Menu State Machine  500  changes Main_Menu_Line_Item_Table_Index to refer to the next Main_Menu_Line_Item  600  in the Main_Menu_Line_Item_Table. 
   Main Menu Transition-B 
   In  FIG. 7 , when a user presses Key-D  734 . Main Menu State Machine  500  determines that Trigger Event-SELECT  5153  has occurred and triggers Main Menu Transition-B  515 . Main Menu State Machine  500  takes no action in Main Menu Transition-B  515 . 
   Status Menu State Machine 
     FIG. 8  illustrates a Status Menu State Machine. Status Menu State Machine  800  is a Console Controller State Machine  400 . Status Menu State Machine  800  includes a Status_Menu_Line_Item_Table. Status_Menu_Line_Item_Table includes a plurality of Status_Menu_Line_Item. 
   In one embodiment, the Console Controller  250  includes a Status Menu State Machine. 
     FIG. 9  illustrates a Status_Menu_Line_Item. Status_Menu_Line_Item  900  includes a Line_Item_Name  902 , and a Status_Menu_Line_Item_Identity  905 . Line_Item_Name  902  stores a name. Status_Menu_Line_Item_Identity  905  relates to a plurality of Network Function Component  275 . Status Menu State Machine  800  has a state variable Status_Menu_Line_Item_Table_Index. Status_Menu_Line_Item_Table_Index refers to a Status_Menu_Line_Item  900  in the Status_Menu_Line_Item_Table. 
   Status Menu Initial State  810  is the Initial State  410  of Status Menu State Machine  800 . Status Menu State Machine  800  includes a plurality of State  430 ; Status Menu State-A  830 , Status Menu State-B  850 , and Status Menu State-C  870 . Status Menu State Machine  800  includes a plurality of State Transition  450 ; Status Menu Transition-A  813 , Status Menu Transition-B  815 , Status Menu Transition-C  817 , and Status Menu Transition-D  819 . Status Menu State Machine  800  includes a plurality of Trigger Event  470 ; Trigger Event-SCROLL  8133 , Trigger Event-SELECT  8153 , Trigger Event-EXIT  8173 , and Trigger Event-EXIT  8193 . 
   Status Menu Initial State 
   In one embodiment, Console Controller  250  starts Status Menu State Machine  800  as an action in the Main Menu State-B  550 . Status Menu State Machine  800  sets Status_Menu_Line_Item_Table_Index to refer to the first Status_Menu_Line_Item  900  in the Status_Menu_Line_Item_Table. Status Menu State Machine  800  enters Status Menu State-A  830 . 
   Status Menu State-A 
   In  FIG. 10 , Status Menu State Machine  800  displays “STATUS MENU” on Line-A  1012 . Status Menu State Machine  800  retrieves the Status_Menu_Line_Item  900  referred to by Status_Menu_Line_Item_Table_Index. Status Menu State Machine  800  displays the name stored in the Line_Item_Name  902  on Line-B  1014 , for example, “DATA LINK STATUS”. Status Menu State Machine  800  displays “SCROLL” on Key-Function-A  1051 , “EXIT” on Key-Function-C  1053  and “SELECT” on Key-Function-D  1054 . 
     FIG. 10  illustrates an example of Display Module  1010  after the display actions. 
   Status Menu State-B 
   In  FIG. 11 , Status Menu State Machine  800  displays “EXIT” on Key-Function-C  1153 . 
   Status Menu State Machine  800  retrieves the Status_Menu_Line_Item  900  referred to by Status_Menu_Line_Item_Table_Index. Status Menu State Machine  800  sends a request to the Network Application  270  via the Operation and Management Interface  205 . The request includes the Status_Menu_Line_Item_Identity  905 . Network Application  270  sends the result to the Console Controller  250 . Status Menu State Machine  800  displays the result, for example, “rc: 12 kpbs tx: 15 kpbs dp pkt: 0” on Line-B  1114 . 
     FIG. 11  illustrates an example of Display Module  1110  after the display actions. 
   Status Menu State-C 
   Console Controller  250  stops Status Menu State Machine  800 . Console Controller  250  starts Main Menu State Machine  500 . 
   Status Menu Transition-A 
   In  FIG. 10 , when a user presses Key-A  1031 . Status Menu State Machine  800  determines that Trigger Event-SCROOL  8133  has occurred and triggers Status Menu Transition-A  813 . Status Menu State Machine  800  changes Status_Menu_Line_Item_Table_Index to refer to the next Status_Menu_Line_Item  900  in the Status_Menu_Line_Item_Table. 
   Status Menu Transition-B 
   In  FIG. 10 , when a user presses Key-D  1034 . Status Menu State Machine  800  determines that Trigger Event-SELECT  8153  has occurred and triggers Status Menu Transition-B  815 . Status Menu State Machine  800  takes no action in Status Menu Transition-B  815 . 
   Status Menu Transition-C 
   In  FIG. 11 , when a user presses Key-C  1133 . Status Menu State Machine  800  determines that Trigger Event-EXIT  8173  has occurred and triggers Status Menu Transition-C  817 . Status Menu State Machine  800  takes no action in Status Menu Transition-C  817 . 
   Status Menu Transition-D 
   In  FIG. 10 , when a user presses Key-C  1033 . Status Menu State Machine  800  determines that Trigger Event- 8193  has occurred and triggers Status Menu Transition-D  819 . Status Menu State Machine  800  takes no action in Status Menu Transition-D  819 . 
   Set Menu State Machine 
   In one embodiment, the Console Controller  250  includes a Set Menu State Machine. 
     FIG. 12  illustrates a Set Menu State Machine. Set Menu State Machine  1200  is a Console Controller State Machine  400 . Set Menu State Machine  1200  includes a Set_Menu_Line_Item_Table. Set_Menu_Line_Item_Table includes a plurality of Set_Menu_Line_Item. 
     FIG. 13  illustrates a Set_Menu_Line_Item. Set_Menu_Line_Item  1300  includes a Line_Item_Name  1302 , and a Set_Menu_Line_Item_Identity  1305 . Line_Item_Name  1302  stores a name. Set_Menu_Line_Item_Identity  1305  relates to a plurality of Network Function Component  275 . Set Menu State Machine  1200  includes state variables Set_Menu_Line_Item_Table_Index, Set_Menu_Line_Item_Value, and Set_Menu_Line_Item_Value_Character_Index. Set_Menu_Line_Item_Table_Index refers to a Set_Menu_Line_Item  1300  in the Set_Menu_Line_Item_Table. Set_Menu_Line_Item_Value includes a plurality of alphanumeric character. Set_Menu_Line_Item_Value_Character_Index refers to an alphanumeric character in Set_Menu_Line_Item_Value. 
   Set Menu Initial State  1210  is the Initial State  410  of Set Menu State Machine  1200 . Set Menu State Machine  1200  includes a plurality of State  430 ; Set Menu State-A  1220 . Set Menu State-B  1230 , Set Menu State-C  1240 , Set Menu State-D  1250 , Set Menu State-E  1260 , and Set Menu State-F  1290 . Set Menu State Machine  1200  includes a plurality of State Transition  450 ; Set Menu Transition-A  1271 , Set Menu Transition-B  1272 , Set Menu Transition-C  1273 , Set Menu Transition-D  1274 , Set Menu Transition-E  1275 . Set Menu Transition-F  1276 , Set Menu Transition-G  1277 , Set Menu Transition-H  1278 , Set Menu Transition-I  1279 , Set Menu Transition-J  1281 , Set Menu Transition-K  1282 , and Set Menu Transition-L  1283 . Set Menu State Machine  1200  includes a plurality of Trigger Event  470 ; Trigger Event-SCROLL  12713 , Trigger Event-SELECT  12723 , Trigger Event-LOCATE  12733 , Trigger Event-LOCATE  12743 , Trigger Event-CHANGE  12753 , Trigger Event-CHANGE  12763 , Trigger Event-EXIT  12773 , Trigger Event-EXIT  12783 , Trigger Event-EXIT  12793 , Trigger Event-SAVE  12813 , Trigger Event-EXIT  12823 , and Trigger Event-EXIT  12833 . 
   Set Menu Initial State 
   In one embodiment, Console Controller  250  starts Set Menu State Machine  1200  as an action in the Main Menu State-B  550 . Set Menu State Machine  1200  sets Set_Menu_Line_Item_Table_Index to refer to the first Set_Menu_Line_Item  1300  in the Set_Menu_Line_Item_Table. Set Menu State Machine  1200  enters Set Menu State-A  1220 . 
   Set Menu State-A 
   In  FIG. 14 , Set Menu State Machine  1200  displays “SET MENU” on Line-A  1412 . 
   Set Menu State Machine  1200  retrieves the Set_Menu_Line_Item  1300  referred to by Set_Menu_Line_Item_Table_Index. Set Menu State Machine displays the name stored in the Line_Item Name  1302  on Line-B  1414 , for example, “IP ADDRESS”. Set Menu State Machine  1200  displays “SCROLL” on Key-Function-A  1451 , “EXIT” on Key-Function-C  1453  and “SELECT” on Key-Function-D  1454 . 
     FIG. 14  illustrates an example of Output Module  1410  after the display actions. 
   Set Menu State-B 
   In  FIG. 15 , Set Menu State Machine  1200  displays “LOCATE” on Key-Function-B  1552  and “EXIT” on Key-Function-C  1553 . Set Menu State Machine  1200  retrieves the Set_Menu_Line_Item  1300  referred to by Set_Menu_Line_Item_Table_Index. Set Menu State Machine sends a request to the Network Application  270  via the Operation and Management Interface  205 . The request includes the Set_Menu_Line_Item_Identity  1305 . Network Application  270  sends the result to the Console Controller  250 . Set Menu State Machine  1200  stores the result in Set_Menu_Line_Item_Value. Set Menu State Machine  1200  displays the result, for example, “172.168.29.43” on Line-B  1514 . 
     FIG. 15  illustrates an example of Output Module  1510  after the display actions. 
   Set Menu State-C 
   In  FIG. 16 , Set Menu State Machine  1200  displays “CHANGE” on Key-Function-A  1651 , “LOCATE” on Key-Function-B  1652 , “EXIT” on Key-Function-C  1653 , and “SAVE” on Key-Function-D  1654 . Set Menu State Machine  1200  displays Set_Menu_Line_Item_Value on Line-B  1614 , and highlights the alphanumeric character referred to by Set_Menu_Line_Item_Value_Character_Index. In one embodiment, Set_Menu_Line_Item_Value_Character_Index refers to the second alphanumeric character. Set Menu State Machine  1200  displays “172.168.29.43” with the second alphanumeric character “4” in white color and darkened background. In a different embodiment, Set Menu State Machine  1200  underlines the second alphanumeric character “4” on Line-B  1614 . 
     FIG. 16  illustrates an example of Output Module  1610  after the display actions. 
   Set Menu State-D 
   In  FIG. 17 , Set Menu State Machine  1200  displays “CHANGE” on Key-Function-A  1751  and “EXIT” on Key-Function-C  1753 . Set Menu State Machine  1200  changes the alphanumeric character referred to by Set_Menu_Line_Item_Value_Character_Index to the next alphanumeric value. In one embodiment, the alphanumeric character has an alphanumeric value of “4”. Set Menu State Machine  1200  changes the alphanumeric value from “4” to “5”. Set Menu State Machine  1200  displays Set_Menu_Line_Item_Value on Line-B  1714 , and highlights the alphanumeric character referred to by Set_Menu_Line_Item_Character_Index. For example, Set Menu State Machine  1200  displays “172.168.29.53” and highlights the alphanumeric character “5”. 
     FIG. 17  illustrates an example of Output Module  1710  after the display actions. 
   Set Menu State-E 
   In  FIG. 18 , Set Menu State Machine  1200  displays “EXIT” on Key-Function-C  1853 . 
   Set Menu State Machine  1200  retrieves the Set_Menu_Line_Item  1300  referred to by Set_Menu_Line_Item_Table_Index. Set Menu State Machine sends a request to the Network Application  270  via the Operation and Management Interface  205 . The request includes the Set_Menu_Line_Item_Identity  1305 , and the Set_Menu_Line_Item_Value. Network Application  270  sends the result to the Console Controller  250 . Set Menu State Machine  1200  determines the content and sends the content to Display Module  1810  for display. In one embodiment, Set Menu State Machine  1200  displays “set value stored successfully” on Line-B  1814 . 
     FIG. 18  illustrates an example of Output Module  1810  after the display actions. 
   Set Menu State-F 
   The Console Controller  250  stops Set Menu State Machine  1200 . The Console Controller  250  starts Main Menu State Machine  500 . 
   Set Menu Transition-A 
   In  FIG. 14 , when a user presses Key-A  1431 . Set Menu State Machine  1200  determines that Trigger Event-SCROLL  12713  has occurred and triggers Set Menu Transition-A  1271 . Set Menu State Machine  1200  sets the value of Set_Menu_Line_Item_Table_Index to refer to the next Set_Menu_Line_Item of the Set_Menu_Line_Item_Table. 
   Set Menu Transition-B 
   In  FIG. 14 , when a user presses Key-D  1434 . Set Menu State Machine  1200  determines that Trigger Event-SELECT  12723  has occurred and triggers Set Menu Transition-B  1272 . Set Menu State Machine  1200  takes no action in Set Menu Transition-B  1272 . 
   Set Menu Transition-C 
   In  FIG. 15 , when a user presses Key-C  1532 . Set Menu State Machine  1200  determines that Trigger Event-LOCATE  12733  has occurred and triggers Set Menu Transition-C  1273 . Set Menu State Machine  1200  sets Set_Menu_Line_Item_Value_Character_Index to refer to the first alphanumeric character of the Set_Menu_Line_Item_Value. 
   Set Menu Transition-D 
   In  FIG. 16 , when a user presses Key-B  1632 . Set Menu State Machine  1200  determines that Trigger Event-LOCATE  12743  has occurred and triggers Set Menu Transition-D  1274 . Set Menu State Machine  1200  sets Set_Menu_Line_Item_Value_Character_Index to refer to the next alphanumeric character of the Set_Menu_Line_Item_Value. 
   Set Menu Transition-E 
   In  FIG. 16 , when a user presses Key-A  1631 . Set Menu State Machine  1200  determines that Trigger Event-CHANGE  12753  has occurred and triggers Set Menu Transition-E  1275 . Set Menu State Machine  1200  takes no action in Set Menu Transition-E  1275 . 
   Set Menu Transition-F 
   In  FIG. 17 , when a user presses Key-A  1731 . Set Menu State Machine  1200  determines that Trigger Event-CHANGE  12763  has occurred and triggers Set Menu Transition-F  1276 . Set Menu State Machine  1200  takes no action in Set Menu Transition-F  1276 . 
   Set Menu Transition-G 
   In  FIG. 17 , when a user presses Key-C  1733 . Set Menu State Machine  1200  determines that Trigger Event-EXIT  12773  has occurred and triggers Set Menu Transition-G  1277 . Set Menu State Machine  1200  takes no action in Set Menu Transition-G  1277 . 
   Set Menu Transition-H 
   In  FIG. 16 , when a user presses Key-C  1633 . Set Menu State Machine  1200  determines that Trigger Event-EXIT  12783  has occurred and triggers Set Menu Transition-H  1278 . Set Menu State Machine  1200  takes no action in Set Menu Transition-H  1278 . 
   Set Menu Transition-I 
   In  FIG. 15 , when a user presses Key-C  1533 . Set Menu State Machine  1200  determines that Trigger Event-EXIT  12793  has occurred and triggers Set Menu Transition-I  1279 . Set Menu State Machine  1200  takes no action in Set Menu Transition-I  1279 . 
   Set Menu Transition-J 
   In  FIG. 16 , when a user presses Key-D  1634 . Set Menu State Machine  1200  determines that Trigger Event-SAVE  12813  has occurred and triggers Set Menu Transition-J  1281 . Set Menu State Machine  1200  takes no action in Set Menu Transition-J  1281 . 
   Set Menu Transition-K 
   In  FIG. 18 , when a user presses Key-C  1833 . Set Menu State Machine  1200  determines that Trigger Event-EXIT  12823  has occurred and triggers Set Menu Transition-K  1282 . Set Menu State Machine  1200  takes no action in Set Menu Transition-K  1282 . 
   Set Menu Transition-L 
   In  FIG. 14 , when a user presses Key-C  1433 . Set Menu State Machine  1200  determines that Trigger Event-EXIT  12833  has occurred and triggers Set Menu Transition-L  1283 . Set Menu State Machine  1200  takes no action in Set Menu Transition-L  1283 . 
   Test Menu State Machine 
   In one embodiment, the Console Controller  250  includes a Test Menu State Machine. 
     FIG. 19  illustrates a Test Menu State Machine. Test Menu State Machine  1900  is a Console Controller State Machine  400 . Test Menu State Machine  1900  includes a Test_Menu_Line_Item_Table. Test_Menu_Line_Item_Table includes a plurality of Test_Menu_Line_Item. 
     FIG. 20  illustrates a Test_Menu_Line_Item. Test_Menu_Line_Item  2000  includes a Line_Item_Name  2002 , and a Test_Menu_Line_Item_Identity  2005 . Line_Item_Name  2002  stores a name. Test_Menu_Line_Item_Identity  2005  relates to a plurality of Network Function Component  275 . Test Menu State Machine  1900  has a state variable Test_Menu_Line_Item_Table_Index. Test_Menu_Line_Item_Table_Index refers to a Test_Menu_Line_Item  2000  in the Test_Menu_Line_Item_Table. 
   Test Menu Initial State  1910  is the Initial State  410  of Test Menu State Machine  1900 . Test Menu State Machine  1900  includes a plurality of State  430 ; Test Menu State-A  1930 , Test Menu State-B  1950 , and Test Menu State-C  1970 . Test Menu State Machine  1900  includes a plurality of State Transition  450 ; Test Menu Transition-A  1913 , Test Menu Transition-B  1915 , Test Menu Transition-C  1917 , and Test Menu Transition-D  1919 . Test Menu State Machine  1900  includes a plurality of Trigger Event  470 ; Trigger Event-SCROLL  19133 , Trigger Event-SELECT  19153 , Trigger Event-EXIT  19173 , and Trigger Event-EXIT  19193 . 
   Test Menu Initial State 
   In one embodiment, Console Controller  250  starts Test Menu State Machine  1900  as an action in the Main Menu State-B  550 . Test Menu State Machine  1900  sets Test_Menu_Line_Item_Table_Index to refer to the first Test_Menu_Line_Item  2000  in the Test_Menu_Line_Item_Table. Test Menu State Machine  1900  enters Test Menu State-A  1930 . 
   Test Menu State-A 
     FIG. 21  illustrates an example of Display Module  2110  after the display actions. 
   In  FIG. 21 , Test Menu State Machine  1900  displays “TEST MENU” on Line-A  2112 . Test Menu State Machine  1900  retrieves the Test_Menu_Line_Item  2000  referred to by Test_Menu_Line_Item_Table_Index. Test Menu State Machine displays the name stored in the Line_Item_Name  2002  on Line-B  2114 , for example, “DEFAULT GATEWAY TEST”. Test Menu State Machine  1900  displays “SCROLL” on Key-Function-A  2151 , “EXIT” on Key-Function-C  2153  and “SELECT” on Key-Function-D  2154 . 
   Test Menu State-B 
     FIG. 22  illustrates an example of Display Module  2210  after the display actions. 
   In  FIG. 22 , Test Menu State Machine  1900  displays “EXIT” on Key-Function-C  2253 . Test Menu State Machine  1900  retrieves the Test_Menu_Line_Item  2000  referred to by Test_Menu_Line_Item_Table_Index. Test Menu State Machine  1900  sends a request to the Network Application  270  via the Operation and Management Interface  205 . The request includes the Test_Menu_Line_Item_Identity  2005 . Network Application  270  sends the result to the Console Controller  250 . Test Menu State Machine  1900  displays the result, for example, “test successful, round trip time 110 ms on Line-B  2214 . 
   Test Menu State-C 
   The Console Controller  250  stops Test Menu State Machine  1900 . Console Controller  250  starts Main Menu State Machine  500 . 
   Test Menu Transition-A 
   In  FIG. 21 , when a user presses Key-A  2131 . Test Menu State Machine  1900  determines that Trigger Event-SCROOL,  19133  has occurred and triggers Test Menu Transition-A  1913 . Test Menu State Machine  1900  changes Test_Menu_Line_Item_Table_Index to refer to the next Test_Menu_Line_Item  2000  in the Test_Menu_Line_Item_Table. 
   Test Menu Transition-B 
   In  FIG. 21 , when a user presses Key-D  2134 . Test Menu State Machine  1900  determines that Trigger Event-SELECT  19153  has occurred and triggers Test Menu Transition-B  1915 . Test Menu State Machine  1900  takes no action in Test Menu Transition-B  1915 . 
   Test Menu Transition-C 
   In  FIG. 22 , when a user presses Key-C  2233 . Test Menu State Machine  1900  determines that Trigger Event-EXIT  19173  has occurred and triggers Test Menu Transition-C  1917 . Test Menu State Machine  1900  takes no action in Test Menu Transition-C  1917 . 
   Test Menu Transition-D 
   In  FIG. 21 , when a user presses Key-C  2133 . Test Menu State Machine  1900  determines that Trigger Event-EXIT  19193  has occurred and triggers Test Menu Transition-D  1919 . Test Menu State Machine  1900  takes no action in Test Menu Transition-D  1919 . 
   Control Console and Console Controller State Machine 
   In one embodiment, the Console Controller  250  obtains the Main_Menu_Line_Item_Table, the Status_Menu_Line_Item_Table, the Set_Menu_Line_Item_Table, and the Test_Menu_Line_Item_Table from the Network Application  270  over the Operation and Management Interface  205 . 
   In one embodiment, Main_Menu_Line_Item_Table, Status_Menu_Line_Item_Table, Set_Menu_Line_Item_Table, the Test_Menu_Line_Item_Table are part of the programming functionalities of Console Controller  250 . 
   In one embodiment, Control Console  200  includes a data store. In one embodiment, the data store is a flash memory. 
   In one embodiment, the data store is a hard disk. In a different embodiment, the data store is a memory. Console Controller  250  retrieves Main_Menu_Line_Item Table, Status_Menu_Line_Item_Table, Set_Menu_Line_Item_Table, and Test_Menu_Line_Item_Table from the data store. 
   One Key Testing 
   In one embodiment, the Input Module includes an additional single-test-key. A user presses the single-test-key. The Console Controller sends a request to a Network Application to invoke a set of tests for a plurality of Network Function Component. 
   In one embodiment, the set of tests includes all tests invoked by the Test Menu State Machine. In another embodiment, the set of tests is a subset of the tests invoked by Test Menu State Machine. Console Controller communicates with Network Application to invoke the tests. 
   In one embodiment, Console Controller determines the set of tests and communicates with Network Application to invoke these tests. 
   In one embodiment, Console Controller communicates with Network Application and Network Application determines the set of tests to conduct. Network Application conducts the tests and sends the test result to Console Controller. Console Controller receives the test results and determines the content to display and sends the content to the Display Module for display. 
   In one embodiment, the content to display includes one line. In another embodiment, the content to display includes multiple lines. Console Controller allows the user to use an input key in Input Module to scroll through the multiple lines of test result. 
   Input and Display Modules Revisited 
   The foregoing description illustrates a Display Module with three lines of display. 
   In one embodiment, the Display Module includes five lines of display. 
   In one embodiment, Display Module includes one line of display. 
   In one embodiment, the line of display is shorter than the content to display. The Console Controller allows the user to use an input key in the Input Module to scroll through the content on the line of display. 
   In one embodiment, Display Module includes a graphic display. 
   In one embodiment, Display Module includes a speaker. 
   In one embodiment, Console Controller converts the content to voice signal and sends the voice signal to the speaker. 
   In one embodiment, Console Controller sends the content to Display Module. Display Module converts the content to voice signal and sends the voice signal to the speaker. 
   In one embodiment, the Input Module includes seven input keys. 
   In one embodiment, Input Module includes two input keys. 
   In one embodiment, the Consumer Network Device manufacturer prints the functions of the inputs keys next to the input keys at the Input Module. 
   In one embodiment, the Consumer Network Device manufacturer prints “EXIT” next to an input key. 
   In one embodiment, the Consumer Network Device manufacturer prints “SCROLL/CHANGE” next to an input key. 
   In one embodiment, Input Module includes a microphone. A user reads a voice command to the microphone. 
   In one embodiment, Input Module includes a voice recognition function. Input Module converts the voice signal to a format for communications with the Console Controller. 
   In one embodiment, the format for communications is VoiceXML. 
   In one embodiment, the format for communications is based on proprietary definitions. 
   In one embodiment, Console Controller includes a voice recognition function. Input Module sends the voice signal to Console Controller. Console Controller processes the voice signal. 
   Console Controller Revisited 
   In one embodiment, the Console Controller includes software program running on a microprocessor. 
   In one embodiment, Console Controller is based on integrated circuit technology. 
   In an embodiment, Console Controller is implemented in an ASIC. 
   In one embodiment, Console Controller is based on FPGA technology. 
   In one embodiment, the Operation and Management Interface is based on FPGA technology. 
   In one embodiment, Operation and Management Interface is based on shared memory. 
   In one embodiment, Operation and Management Interface is based on ASIC technology. 
   In one embodiment, the communications over Operation and Management Interface is based on MIB-II specifications. 
   In one embodiment, the communications over Operation and Management Interface is based on SMNP standards. 
   In one embodiment, the communications over Operation and Management Interface is based on standard ECMA-335 Common Language Infrastructure (CLI). 
   In one embodiment, the communications over Operation and Management Interface is based on EIA/TIA-232 CLI Console Interface. 
   In one embodiment, the communications over Operation and Management Interface is based on proprietary specifications. 
   A Console Controller with equivalent functionalities includes a State Machine that has different number of States, different number of State Transitions, different number of Trigger Events, and different number of state variables. 
   In one embodiment, a Console Controller includes a State Machine with twenty-six States, sixty-four State Transitions, sixty-four Trigger Events, and five state variables. 
   In one embodiment, a Console Controller includes a State Machine with thirty States, fifty-two State Transitions, fifty-two Trigger Events, and seven state variables. 
   In one embodiment Control Console  200  can provide support and service for First Day of Service (FDS) capabilities, thus reducing time, cost, frustration and number of returns of product to vendor or manufacturer typically associated with the installation or maintenance of consumer network devices. Typically, FDS capabilities can include, but are not limited to, service configuration, service activation and service confirmation. 
   In one embodiment, during installation of a consumer network device, network status and configuration information can be displayed on Display Module  210  of Control Console  200  when and if there is a need for a call to the manufacturers technical support. 
   In one embodiment, Control Console  200  can input network configuration and functionality settings through Input Module  230  as per technical supports instructions; Console Controller  250  can then program Network Application  270  over Operation and Management Interface  205 . 
   In one embodiment, when configuration settings are changed, Control Console  200  can activate any or all settings entered by a user. Console Controller programs network or other functionality settings or configurations to Network Application  270  over Operation and Management Interface  205 . 
   In one embodiment, pay, prepaid or subscription services are associated with the use of a consumer network device, such as, but not limited to, cable television or internet service, virtual private networking, or VoIP telephony service, Control Console  200  can display information and prompts on Display Module  210  for user to remotely activate such services with Input Module  230 . 
   In one embodiment, pay, prepaid or subscription services are associated with the use of a consumer network device, such as, but not limited to, cable television or internet service, virtual private networking, or VoIP telephony service, Control Console  200  can display information and prompts on Display Module  210  for user to remotely confirm such services with Input Module  230 . 
   In one embodiment, remote assistance can be requested, activated and confirmed over a network through a remote assistance network function component executed in a Network Application  270  by Control Console  200 . 
   In one embodiment, Control Console  200  can be programmed to offer remotely-assisted, semiautomatic or automatic initial setup procedures through which a user can review, enter and confirm network device settings. 
   In one embodiment, Control Console can be programmed to deliver messages, advertisements or offers for services or upgrades. 
   Foregoing described embodiments of the invention are provided as illustrations and descriptions. They are not intended to limit the invention to precise form described. In particular, it is contemplated that functional implementation of invention described herein may be implemented equivalently in hardware, software, firmware, and/or other available functional components or building blocks, and that networks may be wired, wireless, or a combination of wired and wireless. Other variations and embodiments are possible in light of above teachings, and it is thus intended that the scope of invention not be limited by this Detailed Description, but rather by Claims following.