The invention described herein relates to a multimedia environment that can include set-top boxes, cable cards, and other content storage or content facilitator devices in communication with at least one viewing device and a corresponding companion device.
A number of primary viewing devices such as televisions that are enabled with networking capability or access (also conventionally referred to as “Connected TVs”) and displays or monitors that are connected via set-top boxes (STB), commonly provided from third parties, such as cable, satellite, or wireless companies, for example; and gaming consoles can typically communicate with other devices in a home local area network (LAN). In such networks, the primary viewing device may recognize the presence of an authorized second viewing device, for example, a mobile phone, tablet computing device, netbook computer, multi-media device or gaming device within the LAN and may enable the second viewing device to function as a companion to the primary viewing device. Specifically, software may enable a user to use the companion device as a remote control (for example, causing the primary viewing device to change channels). However some primary viewing devices employ a web browser to display media content and include a user interface (UI). The UI can be executed, either via a combination of Hyper Text Markup Language (HTML) or Cascading Style Sheets (CSS) or JavaScript. In these types of primary viewing devices, the UI may also be downloaded from a web server, wherein all communication happens only within a domain of the web server. Consequently, such devices encounter significant communication difficulties to identify and enable a second authorized viewing device to function as a companion device to the primary viewing device. Furthermore, where there may be multiple users in multiple locations that are viewing a single program together as a group, there realistically may be multiple primary viewing devices and multiple secondary devices. In such cases, the primary devices may each be receiving their content from multiple sources Also, there are significant technical difficulties associated with enabling primary viewing devices to recognize a set of other authorized devices that will function as a companion device to the primary viewing device.
Therefore, an improved method and system are needed to reliably connect a companion device to a primary viewing device.
The accompanying figures, where like reference numerals refer to identical or functionally similar elements throughout the separate views, together with the detailed description below, are incorporated in and form part of the specification, and serve to further illustrate embodiments of concepts that include the claimed invention, and explain various principles and advantages of those embodiments.
Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of embodiments of the present invention.
The apparatus and method components have been represented where appropriate by conventional symbols in the drawings, showing only those specific details that are pertinent to understanding the embodiments of the present invention so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein.
A method for enabling communication between a companion device and a primary viewing device includes determining presence of the primary viewing device; and determining presence of a second viewing device. The method further comprises determining that the second viewing device is a companion to the primary viewing device and causes establishment of a viewing group that includes the primary viewing device and the second viewing device, now deemed the companion viewing device to the primary viewing device. A notification message is provided to the primary viewing device with information enabling the primary viewing device to determine that there is a companion device for it. Additionally, a notification message is provided to the second viewing device with information enabling the second device to determine that it is a companion device for the primary viewing device.
Another embodiment includes a viewing group, comprised of the primary viewing device and the second viewing device as at least one companion device, receiving a message, from a third viewing device, indicating intent to join the viewing group. As such, the embodiment determines whether the third viewing device is authorized to join the viewing group. In addition, the embodiment sends a message to at least one device in the viewing group that informs the viewing group about presence of the third device; and also sends a message to the third viewing device with information about the viewing group.
For simplicity sake, the discussion that follows is primarily focused on two audio/visual media content devices. However, it is contemplated that the number of audio/visual media content devices can be in the hundreds or thousands within a large scale system. Additionally, the discussion contemplates connecting multiple viewing devices (i.e., combinations of several primary viewing devices and several companion devices) in multiple locations. The following detailed description is merely illustrative in nature and is not intended to limit the embodiments of the subject matter or the application and uses of such embodiments. As used herein, the word “exemplary” means “serving as an example, instance, or illustration.” Any implementation described herein as exemplary is not necessarily to be construed as preferred or advantageous over other implementations. Furthermore, there is no intention to be bound by any expressed or implied theory presented in the preceding technical field, background, brief summary or the following detailed description. Before describing in detail embodiments that are in accordance with the present invention, it should be observed that the embodiments reside primarily in combinations of method steps and device components related to associating objects in an electronic device. Accordingly, the device components and method steps have been represented where appropriate by conventional symbols in the drawings, showing only those specific details that are pertinent to understanding the embodiments of the present invention so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein. In this document, relational terms such as first and second, top and bottom, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. The terms “comprises,” “comprising,” or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. An element proceeded by “comprises . . . a” does not, without more constraints, preclude the existence of additional identical elements in the method, or device that comprises the element. Also, throughout this specification the term “key” has the broad meaning of any key, button or actuator having a dedicated, variable or programmable function that is actuatable by a user.
Techniques and technologies may be described herein in terms of functional and/or logical block components and with reference to symbolic representations of operations, processing tasks, and functions that may be performed by various computing components or devices. Such operations, tasks, and functions are sometimes referred to as being computer-executed, computerized, software-implemented, or computer-implemented. In practice, one or more processor devices can carry out the described operations, tasks, and functions, and the various block components shown in the figures may be realized by any number of hardware, software, and/or firmware components configured to perform the specified functions. For example, an embodiment of a system or a component may employ various integrated circuit components, e.g., memory elements, digital signal processing elements, logic elements, look-up tables, or the like, which may carry out a variety of functions under the control of one or more microprocessors or other control devices.
For the sake of brevity, conventional techniques related to signal processing, data transmission, signaling, network control, and other functional aspects of the systems (and the individual operating components of the systems) may not be described in detail herein. Furthermore, the connecting lines shown in the various figures contained herein are intended to represent exemplary functional relationships and/or physical couplings between the various elements. It should be noted that many alternative or additional functional relationships or physical connections may be present in an embodiment of the subject matter.
At a second location, for example Home 2, an audio visual media content pair is depicted. A television or monitor 155 may be connected directly to a third communication network 130 and a mobile computing device 165 may be connected via a wireless network interface, for example, to the second communication network 120. The third communication network 130 within communications system 100 provides broad communication coverage and may encompass the first communication network 110 and the second communication network 120 to provide audio/visual media content and communication messages and protocol information. The third communication network 130 can be a service provider network from a cable company or a wireless communications company, for example. The third communication network 130 can provide Internet service and Internet media related data and content via the World Wide Web or similar means. The third communication network 130 may be a remote server-dominant network comprised of multiple servers linked or networked together, for example a user interface server 132 and a content server 134 that may be integrated wholly or be independent of each other. The third communication network may be an overlay network that utilizes multiple underlying networks and servers to enable inter-device communication.
The first, second, and third communication networks are communicatively coupled together and transmit and receive data and media content between them. A companion device connector 140 is coupled to the third communication network 130. While the companion controller is shown as being coupled to the third communication network 130, in various other embodiments, all or a part of the controller may be coupled to other networks such as 110 and 120. The companion device connector 140 exists to establish companionship between at least two audio/visual media content devices. Companion device connector 140 is also able to distinguish between primary viewing devices and companion devices, for example using a device profile database and determine whether a present audio/visual media content device is a companion device to at least one of the other present audio/visual media content devices within communications system 100. In some embodiments, the companion device connector is able to associate multiple companion devices to a primary viewing device. In some other embodiments, the companion device connector is able to associate multiple primary viewing devices and companion devices, at different networks, together as part of a single viewing set. A primary viewing device such as a high definition television communicatively connected to the first communication network 110, for example, is a first audio/visual media content device 150. Alternatively, the primary viewing device may also be communicatively coupled to a cable-card, for example, or a personal computer, monitor, display surface, tablet computer, smart phone, gaming console or a set top box, capable of streaming media content to the primary viewing device. A possible companion device, the second audio/visual media content device 160 (also referred herein interchangeably as the second viewing device) is communicatively coupled to the second communication network 120. Alternatively, the second viewing device may be coupled to the first communication network 110. The companion device connector 140 determines whether the second audio/visual media content device (e.g., a smart phone or tablet computing device) is actually a companion device to the first audio/visual media content device (e.g., a HDTV or display surface that is communicatively connected to a STB). The companion device connector 140 employs the third communication network (e.g., the Internet) to inform at least one of the first or second audio/visual media content devices about the existence or presence of the newly determined companion device. Additionally, companion device connector 140 may enable these devices to communicate with each other. For example, companion device connector 140 may utilize conventional sticky sessions to enable the primary viewing device to maintain a connection, so that the primary device may receive messages from the companion device. Specifically, companion device connector 140 performs the steps of receiving a message from at least one viewing device in the viewing group; determining other viewing devices in the viewing group, and; transmitting the message to at least a subset of the other viewing devices in the viewing group. Companion device connector 140 may also convert or translate messages received from the companion device from one format (such as XML) to another format (such as JSON), or according to a profile of a recipient viewing device, in general.
In one embodiment, the companion device detector 140 may reside in a single server. In another embodiment, companion device connector 140 may comprise a combination of servers that maintains the device profile and relationship between companion devices and converts message formats, for example, one may employ an XMPP messaging server to enable the companion devices to connect and share presence information, a load balancer with sticky sessions to enable a primary device to maintain connections, and a front-end servlet to provide the UI and enable the primary viewing device to send and receive messages.
Should the second viewing device be determined not to be a suitable companion device for the primary viewing device, no further attempts to communicatively link the two viewing devices occur at this time. However, where it has been determined that the second viewing device is a suitable companion device for the primary viewing device, then Operation 235 creates a viewing group (interchangeably termed a “view group” herein) to encompass both the primary viewing device and the now deemed companion device. A view group may comprise an identity of the view group, such as viewgroup1@home1.net. Its membership would comprise of the first and the second devices. The connector may automatically add additional devices to this view group, for example, based on information in the preference database. For instance, when the connector determines the presence of the primary viewing device 150, it may automatically create a view group for home 1, comprising all the devices in home 1.
Operation 240, of flowchart 200, provides information about the newly determined companion device to the first audio/visual media content device. This information can be in the form of metadata. In one embodiment, the notification may be directly sent from the controller or companion connector to the first device. In another embodiment, the notification may be sent to another device, which sent the presence information on behalf of the first device, which in turn may inform the first device. In a similar fashion, Operation 250 provides information about the first audio/visual media content device (also termed, “a primary viewing device”) to the second audio/visual media content device (also termed, “a companion device”). This information can be in the form of metadata. Metadata may comprise information such as identity of the view group and additional information in the form of capabilities of the viewing device: user_name@domain_name/resource_name, IP address, phone numbers etc. Of course, the label designations of the audio/visual media content devices may be reversed dependent on how a user may handle and view the media content displayed or received by a particular audio/media content device.
Operation 340 as shown in
Operation 430 inquires whether the message provides information about a new companion device for the primary viewing device. If Operation 430 determines that no new companion device is present, then Operation 460 updates state information locally, and if needed also updates state information at a local audio/visual media content device. For example, the message may correspond to a channel change message from another device in the view group. This may in turn result in the primary device updating its state and also announcing that update in the local network. Otherwise, if the message provides information about a new companion device, Operation 440 obtains information to communicate via messages with the newly determined or deemed companion device. The information can include the companion device's profile comprising, for example, owner name, type of companion device, information to send messages to the companion such as a phone number, IP address or universal resource identifier (URI), security key to secure the messages between the devices, format or protocol of companion device, etc. Based on this message the primary device may determine the identity of the companion device user, for example, based on a mapping between device identification such as phone number, media access control (MAC) address and user identification. The mapping may be present locally on the device or on a remote server, such as the companion connector. The primary viewing device may then update its configuration setting such as the kinds of operations that the companion device would be allowed to perform, such as purchase pay per view programs, kinds of channel that the companion device can tune to, administrative settings that the companion device can modify etc., and the kinds of state information that would be transmitted to the companion device etc.
Operation 450, in
Additionally, Operation 460 of
If the new companion device inquiry result from Operation 530 is positive, that is a new companion device, for the primary viewing device, is determined to be present, then Operation 560 obtains information to communicate with the companion device. This may include a phone number, URL, IP address or some other form of communication identifier to communicate with the new companion device. The identifier may be that of the companion device itself or a proxy, such as the companion device connector which is enabled to translate and forward messages to the devices in a view group. In addition, Operation 570 sends at least one state update message to the companion device. The obtained information may include information about the identity of at least one primary viewing device, i.e., the first audio/visual media content device. The information can also include the primary viewing device's profile comprising, for example, owner name, type of primary viewing device, format or protocol of primary viewing device, or alternatively the companion device's profile, etc. Alternatively, this information may be generated when there is a state change. Operation 570 enables transmission of a message to be sent to the newly identified companion device. This message may be sent via the companion device connector or directly. A combination of these transmission schemes may be used to communicate with the multiple primary and companion devices that may be part of a viewing group.
If the inquiry result from Operation 540 is positive, that is a new primary viewing device is present, Operation 580 retrieves or obtains information corresponding to the new primary viewing device. The information can include the primary viewing device's profile or state information corresponding to the view group or the primary viewing device, comprising, for example, owner name, type of primary viewing device, format or protocol of primary viewing device, etc. In addition, Operation 590 sends a message to the newly identified primary viewing device. The message may be sent upon discovery to provide an update of the current state of the view group or primary viewing device, or can be sent only when the next state change occurs. This message may be sent via the companion device connector or directly. A combination of these transmission schemes may be used to communicate with the multiple primary and companion devices that may be part of a viewing group.
An inquiry by Operation 650 inquires whether there are other media content devices present in the first viewing group. If there are other media content devices present in the first viewing group, Operation 660 updates the other media content devices using the state of the second viewing group. For instance, in the first view group, there may already be additional devices such as a primary viewing device. If there is a primary viewing device, then a message may be sent to it to update the state of based on the second view group information. For example, if the second view group is watching a different media resource (such as a channel, video URL, etc.), then the primary device can be trigged to tune to that media resource. If there are no other media content devices present in the first viewing group, then the process of flowchart 600 ends.
Additionally, a message translator 730 is a component of the companion device connector 700. Message translator 730 converts formats either of the first audio/visual media content device or the second or third audio/visual media content devices. Message translator 730 may also convert information embedded in the messages based on the profile or context of the receiving device. For example channel numbers may be modified based on lineup of the device. The message translator 730 enables compatibility between at least two media content devices. The companion device connector 700 likewise includes a session manager 740 for managing data transfer between devices in a view group or across multiple view groups. Companion device connector 700 includes a state manager 750 for managing the state of operation of the audio/visual media content devices. For example, the state manager 750 may track the set of primary and secondary devices that have combined to form a single viewing group. State manager 750 may also keep track of additional state information, such as the current program that a view group is watching or presenting for display and the different locations from which the program may be obtained; for example, when a viewing device in home 1 joins a view group corresponding to home 2. Home 1 and home 2 may be different sub networks such that, home 1 may be receiving a video from location 1, which may not be accessible to home 2 and the companion device connector 700 may provide a location that may be accessible to home 2 for the same media. Furthermore, companion device connector 700 may include a profile manager 760 for transmitting and receiving specific profile information about the audio/visual media content device, for example, type of device, owner of device, how long device has been in use, the name of the service provider, etc. Lastly, a group manager 770 may be included for managing one or more viewing groups that the primary viewing devices and corresponding companion devices may be a part of and may be attempting to join via the companion device connector.
In another embodiment, the companion device connector 700 of
Subsequently, a companion client logs in to a messaging server/CS. A login profile enables the CS to determine which primary device the companion device/user gets associated with. Based on information (e.g., device presence updates) via a messaging server, the CS recognizes the presence and identification of a corresponding primary device (via header properties, for example).
In sum, the embodiments describe herein provide for a network comprising at least one messaging server, a service in a cluster for a set of primary viewing devices and a set of companion devices. The service itself acts as a network based proxy for managing messaging between primary and companion devices. The service can receive messages from companion and primary devices via a messaging server. The service analyzes and determines that a message likely corresponds to a companion device of a specific primary viewing device. Alternatively, the service analyzes and determines that a message likely corresponds to a primary viewing device of a specific companion device. Messages can be processed based on a profile of the companion device.
The embodiments described herein enable a primary device to have knowledge of its companion devices by employing management of device identification and profiles. As a result, the exchange of messages between companion and primary viewing devices is enhanced and persistent.
While at least one exemplary embodiment has been presented in the foregoing detailed description, it should be appreciated that a vast number of variations exist. It should also be appreciated that the exemplary embodiment or embodiments described herein are not intended to limit the scope, applicability, or configuration of the claimed subject matter in any way. Rather, the foregoing detailed description will provide those skilled in the art with a convenient road map for implementing the described embodiment or embodiments. It should be understood that various changes can be made in the function and arrangement of elements without departing from the scope defined by the claims, which includes known equivalents and foreseeable equivalents at the time of filing this patent application.
It will be appreciated that some embodiments may be comprised of one or more generic or specialized processors (or “processing devices”) such as microprocessors, digital signal processors, customized processors and field programmable gate arrays (FPGAs) and unique stored program instructions (including both software and firmware) that control the one or more processors to implement, in conjunction with certain non-processor circuits, some, most, or all of the functions of the method and/or apparatus described herein. Alternatively, some or all functions could be implemented by a state machine that has no stored program instructions, or in one or more application specific integrated circuits (ASICs), in which each function or some combinations of certain of the functions are implemented as custom logic. Of course, a combination of the two approaches could be used.
Moreover, an embodiment can be implemented as a computer-readable storage medium having computer readable code stored thereon for programming a computer (e.g., comprising a processor) to perform a method as described and claimed herein. Likewise, another embodiment can be implemented as a non-transitory machine readable storage device, having stored thereon a computer program that include a plurality of code sections for accomplishing or performing a method as described and claimed herein. Examples of such computer-readable storage mediums include, but are not limited to, a hard disk, a CD-ROM, an optical storage device, a magnetic storage device, a ROM (Read Only Memory), a PROM (Programmable Read Only Memory), an EPROM (Erasable Programmable Read Only Memory), an EEPROM (Electrically Erasable Programmable Read Only Memory) and a Flash memory. Further, it is expected that one of ordinary skill, notwithstanding possibly significant effort and many design choices motivated by, for example, available time, current technology, and economic considerations, when guided by the concepts and principles disclosed herein will be readily capable of generating such software instructions and programs and ICs with minimal experimentation. The Abstract of the Disclosure is provided to allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in various embodiments for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus, the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separately claimed subject matter.
Number | Date | Country | |
---|---|---|---|
61529598 | Aug 2011 | US |