A network-enabled user interface device, for example a VoIP telephony device,
includes
a display, a user input interface, an interface controller, and an application
controller. The interface controller is configured for generating display elements
for the display, controlling the user input interface based on received commands,
and outputting responses to the application controller. The application controller
is configured for outputting the commands to the interface controller based on
application operations executed locally (i.e., within the user interface device),
or remotely (e.g., by a server in communication with the user interface device).
Remote application operations may include communications between the application
controller and the remote server. The interface controller also may generate the
display elements based on messages received from the network. Hence, the network-enabled
user interface device can provide to the user interaction with arbitrary applications,
executed locally or remotely, enabling any executable application to be provided
to the user, independent of user action.