Embodiments of the invention relate to the field of Internet Protocol Television (IPTV); and more specifically, to systems and methods of remote monitoring and control of IPTV client devices.
IPTV is a multimedia delivery platform that utilizes a packet-based network infrastructure (e.g., broadband Internet access networks) to deliver video content to customers, typically as an alternative to delivery by traditional over-the-air television, satellite television, and cable television. A typical IPTV solution includes head-end video acquisition equipment for receiving television content, intermediate IPTV facilities (e.g., Ericsson Mediaroom™) including server platforms and associated IPTV middleware, networking devices (e.g., routers, switches) for content distribution between various nodes of the IPTV system, access nodes (e.g., very-high-bit-rate digital subscriber line (VDSL or VHDSL) or passive optical network (PON) equipment) to enable high-bandwidth transport to and from the customer premises, and operator-provided applications that manage the IPTV system and/or provide end-user IPTV applications.
Consumers (also referred to as users, end users, viewers, customers, or subscribers) of IPTV services utilize user interfaces of operator-provided applications on client devices (such as set-top boxes (STBs), tablets, smartphones, laptops, personal computers, etc.) to access IPTV content. However, the applications are often tremendously complex systems including many layered graphical interface objects and allowing various actions to be performed by the user of the client device through the use of an input interface (e.g., a remote control, a touch based input interface, voice based input interface etc.). Each service operator may provide multiple applications to run on different client devices to users of the service. The various application-client device combinations are tested during the lifecycle of each product to ensure the reliability of the applications and the client devices.
A method in an electronic device, of enabling remote control of a plurality of Internet Protocol Television (IPTV) client devices is disclosed. The method includes receiving an identification of each of the plurality of IPTV client devices, where the identification includes an IP address associated with the IPTV client device. The method continues with receiving at least one input from a user, which corresponds to one or more control commands to be performed by a subset of IPTV client devices at substantially the same time. The method further includes transmitting a copy of the one or more control commands within a set of IP packets to each one of the subset of IPTV client devices, where each set of IP packets is destined to one IPTV client device based on the IP Address of the IPTV client device.
A method in an electronic device, of enabling remote control of a plurality of Internet Protocol Television (IPTV) client devices is disclosed. The method includes receiving an identification of each of the plurality of IPTV client devices, wherein the identification includes an IP address associated with the IPTV client device. The method continues with receiving at least one input from a user through a graphical user interface, where the at least one input corresponds to one or more control commands to be performed by a subset of IPTV client devices at substantially the same time, and the subset of IPTV client devices includes at least two IPTV client devices from the plurality of IPTV client devices. The method further continues with converting the at least one input into the one or more control commands, and transmitting a copy of the one or more control commands within a set of IP packets to each one of the subset of IPTV client devices, wherein each set of IP packets is destined to one IPTV client device based on the IP Address associated with the IPTV client device.
A non-transitory machine-readable storage medium that provides instructions is disclosed. The instructions, if executed by a processor, will cause said processor to perform operations comprising receiving an identification of each of a plurality of IPTV client devices, wherein the identification includes an IP address associated with the IPTV client device. The operations further include receiving at least one input from a user through a graphical user interface, where the at least one input corresponds to one or more control commands to be performed by a subset of IPTV client devices at substantially the same time, and the subset of IPTV client devices includes at least two IPTV client devices from the plurality of IPTV client devices. The operations further include converting the at least one input into the one or more control commands, and transmitting a copy of the one or more control commands within a set of IP packets to each one of the subset of IPTV client devices, where each set of IP packets is destined to one IPTV client device based on the IP Address associated with the IPTV client device.
The invention may best be understood by referring to the following description and accompanying drawings that are used to illustrate embodiments of the invention. In the drawings:
The following description describes methods and apparatus for remote control and monitoring of multiple Internet Protocol Television (IPTV) client devices. In the following description, numerous specific details such as logic implementations, opcodes, means to specify operands, resource partitioning/sharing/duplication implementations, types and interrelationships of system components, and logic partitioning/integration choices are set forth in order to provide a more thorough understanding of the present invention. It will be appreciated, however, by one skilled in the art that the invention may be practiced without such specific details. In other instances, control structures, gate level circuits and full software instruction sequences have not been shown in detail in order not to obscure the invention. Those of ordinary skill in the art, with the included descriptions, will be able to implement appropriate functionality without undue experimentation.
References in the specification to “one embodiment,” “an embodiment,” “an example embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
Bracketed text and blocks with dashed borders (e.g., large dashes, small dashes, dot-dash, and dots) may be used herein to illustrate optional operations that add additional features to embodiments of the invention. However, such notation should not be taken to mean that these are the only options or optional operations, and/or that blocks with solid borders are not optional in certain embodiments of the invention.
In the following description and claims, the terms “coupled” and “connected,” along with their derivatives, may be used. It should be understood that these terms are not intended as synonyms for each other. “Coupled” is used to indicate that two or more elements, which may or may not be in direct physical or electrical contact with each other, co-operate or interact with each other. “Connected” is used to indicate the establishment of communication between two or more elements that are coupled with each other.
The complexity of the IPTV systems and the variety of the systems deployed to consumers of IPTV services would greatly benefit from a side-by-side testing and monitoring system. For example it is desirable to compare various IPTV applications provided by different service providers while running on the same client device. Alternatively, it may be desirable to test the same application running on different version of clients or to compare different hardware configurations when running the same version of the client device. It may also be desirable to compare side-by-side an updated version of an application with an earlier version of the same application following the update and/or compare the same application running against different network topologies. Thus, testing of various client devices is performed to ensure that the user's experience is not negatively impacted by any changes or updates that may have occurred in one of the components of the IPTV system. These changes may be due to application updates, or client device updates or any other update in the system (e.g., updates to the head-end video acquisition equipment, to the intermediate IPTV facilities, to the client device, to the applications running on the client device etc.). Further, it is also desired, by operators, to provide custom application user interfaces (UIs) for different users or devices, and it has proven tremendously difficult to maintain such custom UIs. Side-by-side testing enables discrimination testing, allowing a trained tester to quickly detect minor defects of the systems.
In traditional approaches monitoring and testing of multiple client devices (such as set-top-boxes) of IPTV systems is performed entirely manually by a trained tester while the tester is physically in front of the IPTV client devices. In these traditional approaches a trained tester sets up multiple client devices in a laboratory facility (e.g., in the case of set-top-boxes, each STB is connected to a display device and to a content source) and manually sends control commands to each of the devices (e.g., the commands are sent to each client device with a remote control coupled to the device). The control of the multiple devices requires line of sight and direct control of each one of the devices. In a typical testing scenario, the same sequence of predefined commands is executed on each client device. In order to test the multiple devices, the tester monitors the result of the same command on the display connected to each client device. This task is time consuming and prone to errors. For example, if the tester performs an error while dialing a command on the remote control of a first device, the entire sequence of commands may have to be repeated for all the devices. In a typical testing environment tens to hundreds of devices may need to be tested simultaneously. In such environment and in a traditional approach, the tester manually sends a command to each of the client devices which can be very time consuming In addition since the tester uses remote control (generally an Infra-Red remote), the signal may miss the targeted client device or get directed toward another device (which was not targeted). Further the tester may not be able to send commands at substantially the same time and consequently evaluate accurately the response time of each device. In addition it may be desirable to test multiple client devices at substantially the same time in order to test and monitor the reliability of the system at a larger scale.
A method and system for controlling and monitoring multiple client devices of an IPTV system is presented herein. The embodiments of the present invention present a system and method for enabling reliable remote control and monitoring of multiple client devices. The embodiments of the inventions enables a tester to control multiple client devices (e.g., set-top-boxes) from a remote location and receiving a real time audio/visual feedback that can be viewed side-by-side on the control device of the tester without having the need of being physically located at the same location as of the client devices. Further, the embodiments of the invention enable a tester to control multiple client devices (e.g., set-top-boxes) at the same time, by selecting a list of client devices to be tested and providing an input indicating the control command to execute on all of the devices from the list. The tester is then provided in real time with an audio/visual feedback content in response to that command for all of the client devices from the list allowing them to monitor and potentially detect any defect that may occur.
The client devices 104, 106, and 108 (or viewing systems, consumer devices, client devices, etc.) are electronic devices used by users to access audio/visual content via an IPTV system. A non-limiting example of a client device includes a Set-Top-Box (STB), which can be connected to a display (commonly a television, but can also be another type of monitor, projector, etc.). Other examples of client devices include smart phones, tablets, and laptops or desktop computer—each of which including a processor, computer-readable storage, a display, and an IPTV application that executes to allow connectivity/interaction with an IPTV system. However, other client devices can be implemented as anyone or combination of wired and/or wireless device, as any form of television client device (e.g., STB, digital video recorder (DVR)), gaming device, computer device, portable computer device, consumer device, media device, communication device, video processing and/or rendering device, appliance device, mobile phone (e.g., cellular, Voice over IP (VoIP), WiFi, etc.), a portable media device (e.g., a personal/portable media player, handheld media player, etc.), and/or as any other type of device that is implemented to receive media content in any form of audio, video, and/or image data. A client device (e.g., client 104) is associated with a device identification (e.g., a name and a list of parameters belonging to the device). Further each one of the client devices (104, 106, and 108) has an associated IP address allowing the device to communicate with other IP devices through IP networks such as the network 101.
The various client devices (104, 106, 108) shown in system 100 may or may not include a respective display device. A client device and display device together render and playback any form of audio, video, and/or image data (which will be referred to herein below as multimedia content). The client devices may output analog or digital content. The client devices described herein can also be implemented with any differing combinations of other components such as one or more processors, communication components (e.g., network interfaces), memory components, and/or processing and control circuits. For example, a client device may include network interfaces to receive multimedia data (audio/video, image data) from an IPTV system, a content provider and/or an IPTV testing system, and/or interfaces to receive broadcast and/or over-the-air inputs via which multimedia content can be received over the air. The client devices may also include one or more tuners to tune television channels and/or data streams for display and viewing.
The client devices 104, 106, and 108 are adapted to receive IP packets including multimedia content and process the content to be displayed on the display device (which is either part of the client device or external to the device). The client devices includes elements (hardware or software elements) for decrypting and decoding the multimedia content to be displayed. Further the client devices are adapted to receive IP packets including control commands. In some embodiments, the control commands are received separately from the multimedia content. The control commands are executed by each client device to perform a variety of action. A non-exhaustive list of exemplary of control commands is presented herein below : Rewind, Fast Forward, Stop, Pause, Play, Skip, Backward, Skip Forward, Record, Guide, Video On Demand (VOD), Digital Video Recorder (DVR), Menu, Up, Down, Left, Right, Info, Select, Exit, Back, Clear, Enter, Options, Power Off, Power, Power On, Alternate Audio, Aspect Ratio, Search, Slower, Faster, Quit, Play/Pause, Delete, Next, Help, Favorites, Teletext, Closed Captions, System Information, Volume Up, Volume Down, Mute, Channel Up, Channel Down, Last, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0. The commands may further include a set of custom commands that may be configured by the user of the client device. In some embodiments the control commands may be any command that may be included in a traditional remote control used for enabling selection of inputs to the client device.
In some embodiments, the client devices are located at the same location within the same testing facility. For example, the client devices may be in the same room of a testing laboratory or in different rooms of a testing laboratory. In other embodiments, each of the client devices is located in a different location remote from the other client devices. In some embodiments, the client devices may be identical while in other embodiments, at least some of the client devices are different from one another. In some of these embodiments, the client devices may have identical hardware components but may differ in terms of software applications being executed on the hardware components. For example, the devices may run different versions of operator-provided application (e.g., TV Guide Applications). While
The audio/visual to IP encoders 114, 116, and 118 are adapted to convert the multimedia content received from a respective client device 104, 106, or 108 into a set of IP packets to be transmitted through the network 101 to the remote controller 102. In some embodiments, the AV to IP encoder may be a hardware component externally coupled with the client device through a wired or wireless connection. In these embodiments the AV to IP encoder includes a processor and a memory including instructions causing the AV to IP encoder to compress the multimedia content (e.g., the compression may be performed according to any type of compression algorithm such as H.264, MPEG2, etc...). In alternative embodiments, the AV to IP encoders may be a software or a hardware element each being located within their respective client device (104, 106, or 108). For example, the client device 104 may be a tablet, and may comprise a software or a chipset AV to IP encoder within the tablet. In another example, the client device 104 is an STB coupled through a wired connection to the AV to IP encoder 114.
The remote controller 102 enables a user to control and monitor multiple IPTV client devices (e.g., client device 104, client device 106, and 108). In some embodiments, the remote controller 102 enables a user (e.g., a trained tester) to select multiple client devices to be monitored and controlled. In some embodiments the remote controller 102 enables a user to input one or more control command to be executed on each of the multiple client devices 104, 106, and 108 simultaneously (i.e., at substantially the same time). In some embodiments, the remote controller 102 may enable a user to further select a subset from the set of client devices to be controlled and monitored. The remote controller is coupled with each of the client devices through the network 101. The remote controller is located remotely from each of the client devices. The remote controller 102 will be described in further details with respect to the block diagrams of
In some embodiments, the system 100 may additionally include a remote control 110 associated with the remote controller 102. The remote control 110 may be used to send control commands to the client device(s) (104, 106, and 108) via the remote controller 102. For example, the remote control 110 may be a remote control of a set-top-box client device, or a gaming controller for entering user-selectable inputs to a gaming client device. The remote control 110 can be a handheld Infra-Red device that sends digitally-coded pulses of infrared radiation to the remote controller 102, in order to control functions such as power, volume, television channel, or other features of the client devices 104, 106, and 108.
In
At circles 1a, 1b, and 1c, the remote controller 102 transmits a set of IP packets to each of the client devices 104, 106, and 108 through the IP network 101. Each set of IP packets transports a set of one or more control commands to be executed by a respective client device. At circles 2a, 2b, and 2c each of the client devices 104, 106, and 108 receives the respective set of IP packets including the control commands The client devices are adapted to perform operations in response to the control commands and output multimedia content (audiovisual data) in response to the control commands In some embodiments each of the client devices is coupled with a source of audio visual data which is independent of the commands received from the remote controller 102. The commands cause the client devices to alter the multimedia data displayed through the client device or to perform another type of actions (record, increase the volume, etc.). In a non-limiting example, the client devices (104, 106, and 108) are set-top-boxes receiving television content from a content service provider. Upon receipt of a control command from the remote controller 102, the STB may open a TV guide of the service provider for viewing details about the TV program. In another example, the control command may be a command for recording some of the content received at each set-top-box. In a further example, the control command may be a command for changing channels at each set-top-box. The client device forwards the multimedia content to the AV to IP encoder at circles 3a, 3b, and 3c. In some embodiments, the multimedia content forwarded is responsive to the control command that is performed in each client device. For example, the multimedia content may include a video stream with closed captioning displayed following the receipt of a closed captioning control command from the remote controller 102. The multimedia content is then encoded and transported (at circles 4a, 4b, and 4c) via the IP network back to the remote controller 102. The remote controller 102 receives the AV content feedback and is adapted to display the content received from each one the client devices on a display. In some embodiments the AV content is displayed side-by-side on a display device to enable a tester to monitor and evaluate the result of each control command forwarded remotely to the client devices in real time.
The operations in the flow diagrams of
At block 202, the remote controller 102 receives an identification of each of the plurality of IPTV client devices, where the identification of each of the IPTV client devices includes an IP address associated with the IPTV client device. The identification of each device may include a name and/or identification number provided to each device, and an IP address assigned to the IPTV client device. In some embodiments the identification may further include the location of the device or any other information related to the IPTV client device.
In some embodiments, the remote controller 102 stores a list of all IPTV client devices being monitored in a configuration file (e.g., XML file). This file is updated with the identification (including the IP address) of a new IPTV client device when the IPTV device is added by a user to be monitored and remotely controlled.
Although
Referring back to
In some embodiments, the user may select a first subset of IPTV client devices to receive a first control command or set of commands (e.g., one of the control commands from the group 404 “Guide”-which will display the TV Guide as illustrated in the video section of each one of 406A, 406B, and 406C) and further select a second subset of IPTV client devices (not illustrated) to receive a different control command or set of commands (e.g., “Skip” command)
Referring back to
In one exemplary embodiment, the user may select a graphical element from the group of graphical elements 404 to send a control command to the IPTV client devices to be executed at the same time by the selected IPTV client devices. The group of graphical elements may include elements for enabling the user to perform the following control command: “Rewind, Fast Forward, Stop, Pause, Play, Skip, Backward, Skip Forward, Record, Guide, Video On Demand (VOD), Digital Video Recorder (DVR), Menu, Up, Down, Left, Right, Info, Select, Exit, Back, Clear, Enter, Options, Power Off, Power, Power On, Alternate Audio, Aspect Ratio, Search, Slower, Faster, Quit, Play/Pause, Delete, Next, Help, Favorites, Teletext, Closed Captions, System Information, Volume Up, Volume Down, Mute, Channel Up, Channel Down, Last, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0.” The graphical elements may further allow a user to program and perform custom control commands For example, in the illustrated embodiment of
In an alternative embodiment, the user may use a remote control (e.g., remote control 110) coupled with the remote controller 102 to enter an input selecting a control command to be performed by the IPTV client devices remotely controlled by the remote controller 102. The remote controller 102 is adapted to receive a control signal (e.g., Infra-Red signal, Bluetooth Low Energy (BLE) signal, etc.) input from the remote control 110 corresponding to a control command to be performed simultaneously (i.e., at substantially the same time) on the IPTV client devices (e.g., set-top-boxes).
In another embodiments, the user may input a list of control command (e.g., input a script) to be sent to the multiple client devices. In an exemplary embodiment, the user may use the graphical user interface 400 to select a sequence of input keys (a sequence of graphical elements from the group 404), which is recorded (i.e., captured) by the remote controller 102. The remote controller 102 is then adapted to replay the recorded sequence to cause the IPTV client devices to execute the same control commands In alternative embodiments, the user may input a file comprising a list of control commands to be executed by the IPTV client devices. The list includes control commands in a format corresponding to a companion API and are already in a format executable by the IPTV client devices.
Referring back to
In alternative embodiments, the remote controller 102 may receive the control commands in the proper format (e.g., a list of control command corresponding to control commands of the companion API) and the operation performed at block 208 is skipped as the control commands are already in a format executable by the IPTV client devices.
Referring back to
In the exemplary embodiment illustrated at
In some embodiments, the remote controller 102 records for each IPTV client device the history of control commands that is transmitted to the IPTV client devices. The history of control commands may be recorded to be played back at a later moment in time and executed by the same IPTV client devices (e.g., the IPTV client devices having been updated or configured with different settings) and/or to be executed by different IPTV client devices. The history of the control commands may be displayed on the graphical user interface of the remote controller 102 to enable the user to view the different control commands executed on each device. This enables the user to compare the different control command sequences performed on each device.
In one embodiment, the operations described with respect to the flow diagram of
In
While the illustrated embodiment of
In some embodiments, the IPTV client device manager 708 is operative to receive an identification of each of a plurality of IPTV client devices, which includes an IP address associated with the IPTV client device. The GUI 707 is operative to enable the remote controller 702 to receive at least one input from a user, wherein the at least one input corresponds to one or more control commands to be performed by a subset of IPTV client devices at substantially the same time, wherein the subset of IPTV client devices includes at least two IPTV client devices from the plurality of IPTV client devices. The control command converter is operative to convert the at least one input into the one or more control commands The IP packet encoder is operative to transmit a copy of the one or more control commands within a set of IP packets to each one of a subset of the plurality of IPTV client devices, where the subset includes two or more client devices, and where each set of IP packets is destined to one IPTV client device based on the IP Address of the IPTV client device. The audio/video decoder 716 is operative to decode a set of feedback IP packets into feedback multimedia content, where the feedback multimedia content is in response to the one or more control commands transmitted to each of the subset of IPTV client devices. The GUI 707 is further operative to display the feedback multimedia content.
An electronic system 700 includes a memory 710 and a processor 705. The memory 710 may be used for storing data, metadata, and programs for execution by the microprocessor(s) 705. For example, the depicted memory 710 may store computer instructions 730 that, when executed by the microprocessor(s) 705, causes the remote controller 102 of
The electronic system 700 may also include a display controller and display device 720 that provides a visual user interface for the user, e.g., GUI elements or windows. The display device 720 may also display various multimedia content to the user. The display device 720 may display a graphical user interface for remotely controlling and monitoring multiple IPTV client devices (e.g., the GUI 400, 500, and 600 of
For example, the electronic system 700 may be a personal computer (PC), tablet-style device, a personal digital assistant (PDA), a cellular telephone (e.g., smartphone), a Wi-Fi based telephone, a handheld computer which may optionally include a cellular telephone, a media player, an entertainment system, a handheld gaming system, a wearable computing device (e.g., smartwatch, digital eyewear), or devices which combine aspects or functions of these devices, such as a media player combined with a PDA and a cellular telephone in one device. In other embodiments, the electronic device may be a network computer, server, network device, router, or an embedded processing device within another device or consumer electronic product. As used herein, the terms computer, system, device, processing device, and “apparatus comprising a processing device” may be used interchangeably with the term electronic system 700 and include the above-listed exemplary embodiments.
It will be appreciated that additional components, not shown, may also be part of the system 700, and, in some embodiments, fewer components than that shown in
It will be apparent from this description that aspects of the inventions may be embodied, at least in part, in software. That is, the computer-implemented methods may be carried out in a computer system or other data processing system in response to its processor or processing system executing sequences of instructions contained in a memory, such as memory 710 or other non-transitory machine-readable storage medium. The software may further be transmitted or received over a network (not shown) via a network and/or port interface 715. In various embodiments, hardwired circuitry may be used in combination with the software instructions to implement the present embodiments. Thus, the techniques are not limited to any specific combination of hardware circuitry and software, or to any particular source for the instructions executed by the electronic system 700.
While the flow diagrams in the figures show a particular order of operations performed by certain embodiments of the invention, it should be understood that such order is exemplary (e.g., alternative embodiments may perform the operations in a different order, combine certain operations, overlap certain operations, etc.).
While the invention has been described in terms of several embodiments, those skilled in the art will recognize that the invention is not limited to the embodiments described, can be practiced with modification and alteration within the spirit and scope of the appended claims. The description is thus to be regarded as illustrative instead of limiting.
This application claims the benefit of U.S. Provisional Application No. 62/180,538, filed Jun. 16, 2015, which is hereby incorporated by reference.
Number | Date | Country | |
---|---|---|---|
62180538 | Jun 2015 | US |