`
`FIG. 1. A user may interact with user interface 84 and/or display 88 to execute the remote
`
`control application. Processor 96 then executes the remote control application and causes
`
`display 88 to display a remote control application user interface to the user. In another
`
`example, a remote control application may be stored on one or more servers on a network
`
`and be accessible via the network. For example, a user may interact with user interface 84
`
`and/or display 88 to execute a web browser. Processor 96 then executes the web browser
`
`application and causes display 88 to display a web browserto the user. The user may then
`
`interact with user interface 84 and/or display 88 to utilize a website containing remote control
`
`application content.
`
`10:63-11:6
`10:63-11:6
`
`[0050] A user may use the remote control application of remote control 75, for example, to
`
`initiate contact with a server, such as server 24, for pairing remote control 75 to one or more
`
`controlled devices, such as controlled device 18 shown in FIG. 1. In some examples, the user
`
`may also utilize the remote control application of remote control 75 to select one or more
`
`previously paired controlled devices, and to send control messages to one or more paired
`
`controlled devices. For example, the user may interact with user interface 84 and/or display
`
`88 to interact with and control any available controlled devices.
`
`11:7-21
`11:7-21
`
`[0051] FIG. 4 is a block diagram illustrating an example controlled device 118, which may
`
`be an example of controlled device 18 shown in FIG. 1 or one of controlled devices 64
`
`shown in FIG, 2. According to one example ofthe present disclosure, controlled device 118
`
`includes userinterface 120, display 124, storage device 128, one or more processors 132, and
`
`network module 136. Other example implementations of controlled device 118 are possible,
`
`having more or fewer components than those shown in FIG. 4. For example, controlled
`
`device 118 may be a personal computer having additional components(e.g., an opticaldrive,
`
`a camera,etc.). In another example, controlled device 118 may be a personal media player
`
`having fewer components than those shownin FIG. 4 (e.g., a personal media playerthat
`
`lacks a display).
`
`11:22-35
`11:22-35
`
`[0052] User interface 120 allowsa user of controlled device 118 to interact with controlled
`
`device 118. Examples of user interface 120 include an embedded keypad or other buttons.
`
`The user interface 120 may also include a detachable or otherwise independent device, such
`
`as a traditional remote control device having a keypad, a keyboard, a mouse,aroller ball,
`
`buttons, or other devices that allow a user to interact with controlled device 18. A user may
`
`15
`
`
`
`Docket No. 1133-051USP1
`
`utilize user interface 120 to control media content being presented by controlled device 118
`
`(e.g., audio or video content). In an example, a user may utilize user interface 120 to
`
`navigate to a web page on the Internet in order to display the content hosted by the web page
`
`(e.g., YouTube®, Hulu®, Netflix®, other subscription or non subscription based video
`
`content).
`
`11:36-44
`11:36-44
`
`[0053] Display 124 may comprise a variety of display devices suchas a liquid crystal display
`
`(LCD), an e-ink display, a cathode ray tube (CRT), a plasmadisplay, an organic light
`
`emitting diode (OLED)display, or another type of display device. Display 124 presents
`
`content to a user of controlled device 118. For example, display 124 may be configured to
`
`present audio and/or video content from a cable service provider, a satellite television
`
`provider, content accessible via the World Wide Web, or other content providers.
`
`11:45-55
`11:45-55
`
`[0054] Although controlled device 118 is shown asincluding display 124, aspects ofthis
`
`disclosure should not be considered limited to examples that include display 124. In some
`
`examples of controlled device 118, display 124 may be optional. For example, if controlled
`
`device comprises a web-enabled music playeror a radio, controlled device 118 may not
`
`include display 124. In other examples, controlled device 118 may include an external,
`
`independentdisplay. For example, controlled device 118 may be configured as a set top box
`
`or other componentthat is connectable to a display.
`
`11:56-67
`11:56-67
`
`[0055] Storage device 128 stores instructions for applications 130 that may be executed by
`
`one or more processors 132 associated with controlled device 118. For purposes of
`
`illustration only in the following description, applications 130 that may be executed by one
`
`or more processors 132 are described below as being executed by one processor 132.
`
`Applications 130 may bepre installed by a manufacturer of controlled device 118, or may be
`
`downloaded by a user from a server via a network, such as servers 24 and network 22 shown
`
`in FIG. 1. Applications 130 may be executed by processor 132 in response to a user
`
`interacting with controlled device 118 to execute the applications 130.
`
`12:1-15
`12:1-15
`
`[0056] Storage device 128 mayalso include instructions that cause processor 132 to perform
`
`various functions ascribed to processor 132 in this disclosure. Storage device 132 may
`
`comprise a computer-readable, machine-readable, or processor-readable storage medium that
`
`comprises instructions that cause one or more processors, e.g., processor 132, to perform
`
`various functions. Storage device 132 may include any volatile, non-volatile, magnetic,
`
`16
`
`
`
`Docket No. 1133-051USP1
`
`optical, or electrical media, such as a random access memory (RAM), read-only memory
`
`(ROM), non-volatile RAM (NVRAM),electrically-erasable programmable ROM
`
`(EEPROM), flash memory, or any other digital media. In some embodiments, storage device
`
`132 may comprise one or more of a non-transitory/tangible storage media, where the data
`
`stored in such media may or may not change (e.g., ROM, RAM).
`
`12:16-31
`12:16-31
`
`[0057] A user may interact with user interface 120 and/or display 124 to execute one or more
`
`of applications 130 stored on storage device 128. Some applications 130 may be executed
`
`automatically by controlled device 118 such as when controlled device 118 is turned on or
`
`booted up.
`
`In response, processor 132 executes the one or more applications 130 selected by
`
`a user, or executes the one or more applications 130 executed by controlled device 118.
`
`Processor 132 may include any one or more of a microprocessor, a controller, a digital signal
`
`processor (DSP), an application specific integrated circuit (ASIC), a field-programmable gate
`
`array (FPGA), or equivalent discrete or integrated logic circuitry. Additionally, the functions
`
`attributed to processor 132, in this disclosure, may be embodiedas software, firmware,
`
`hardware or any combination thereof.
`
`12:32-49
`12:32-49
`
`[0058] Processor 132 may execute one or more of applications 130 either alone or
`
`simultaneously. Examples of applications 130 include an application for displaying
`
`television content provided bya satellite or cable provider, an application for displaying
`
`content hosted on the World Wide Web, a web browserapplication, a social networking
`
`application, an e-mail application, programsto retrieve stock quotes, programsto search for
`
`restaurants, programsthat retrieve current and future weather information, games, a program
`
`to search the Internet, a program that provides news, a program that provides maps, and other
`
`programsexecuted by processor 132. Applications 130 may be executed based on a request
`
`from a user, and may be terminated based on a request from a user. Someapplications 130
`
`may be running continuously in the background. Someapplications 130 may be executed
`
`automatically by controlled device 118 such as at power up and may be terminated
`
`automatically by controlled device 118 such as at power down.
`
`12:50-13:3
`12:50-13:3
`
`[0059] In some examples, any application of applications 130 executed by processor 132
`
`may require data from one or more ofservers, such as servers 24 shown in FIG. 1. Network
`
`module 136 is configured to transmit data/requests to and receive data/responses from one or
`
`more servers via network. Network module 136 may provide received data to processor 132
`
`17
`
`
`
`Docket No. 1133-051USP1
`
`for further processing. Network module 136 may support wireless or wired communication,
`
`and includes appropriate hardware and software to provide wireless or wired communication.
`
`For example, network module 136 mayinclude an antenna, modulators, demodulators,
`
`amplifiers, and other circuitry to effectuate communication between controlled device 118
`
`and one or more servers associated with a network. Network module may 100 may
`
`communicate with one or more servers associated with the network according to a network
`
`communication protocol, such as, for example, hypertext transfer protocol (HTTP), HTTP
`
`secured by transport layer security or secure sockets layer (HTTPS), simple mail transfer
`
`protocol (SMTP), simple object access protocol (SOAP), or other communication protocols.
`
`13:4-15
`13:4-15 [0060] Controlled device 118 may be used, in some examples, in conjunction with a remote
`
`control, such as remote control 14 shown in FIG. 1, remote controls 62 shown in FIG. 2, or
`
`remote control 75 shown in FIG. 3. For example, storage device 92 may store application
`
`instructions associated with a video application or web browserfor displaying video content
`
`from the World Wide Web (e.g., YouTube® content, Hulu® content, Netflix® content, etc.).
`
`A user may interact with user interface 120 to execute the video or web browserapplication.
`
`Processor 120 then executes the video or web browserapplication and causes display 124 to
`
`display content to the user.
`
`13:16-32
`13:16-32 [0061] A user may utilize the video application of applications 130 or web browser of
`
`controlled device 118 to facilitate pairing of controlled device 118 to one or more remote
`
`controls, such as remote control 14 shown in FIG. 1. For example, controlled device 118
`
`maynotify a server, such as sever 24 shown in FIG. 1, that it is available to be joined to a
`
`session maintained by server 24 upon powering on or executing a video or web browser
`
`application. In other examples, a controlled device 118 may provide an interface that allows
`
`a user to authorize one or more remote controls to send commandsto controlled device 118
`
`via anetwork. Additionally or alternatively, controlled device 118 may display a QR code
`
`using display 124 that can be scanned by a remote control. After scanning the QR code
`
`displayed using display 124 with the remote control, the remote control may be authorized to
`
`send control signals to controlled device 118 via the network.
`
`13:33-47
`13:33-47 [0062] FIG. 5 is a block diagram illustrating an example server 160 associated with network
`
`162, which may be an example ofservers 24 of network 22 shown in FIG. 1, or servers 68 of
`
`network 66 shown in FIG. 2, in accordance with one aspect of the present disclosure. While
`
`18
`
`
`
`Docket No. 1133-051USP1
`
`described herein in relation to servers 68 of FIG. 2, server 160 may also be implemented in a
`
`variety of other network environments having components other than those shownin FIG. 2.
`
`As shownin FIG. 5, server 160 may be comprised as a single unit with an interface module
`
`164, a device management module 168, and a data repository 172. While shownasa single
`
`unit in FIG. 5, in other implementations, hardware and functions associated with server 160
`
`may be spread among more than oneserver unit. In addition, sever 160 may include more
`
`modules shownin FIG. 5.
`
`13:48-61
`13:48-61
`
`[0063] Interface module 164 is configured to accept signals being received by the server 160
`
`and transmit signals being transmitted by server 160. In some examples, input and output
`
`networkinterfaces of the interface module 164 may befunctionally integrated, while in other
`
`examples, input and output interfaces may be separate interfaces of interface module 164.
`
`For example, network interfaces of interface module 164 may include one or more network
`
`interface cards (NICs) configured to communicate over, for example, Ethernet, Transmission
`
`Control Protocol (TCP), Internet protocol (IP), Asynchronous Transfer Mode (ATM), or
`
`other network communication protocols. In some examples, server 160 may include a
`
`plurality of either or both input and outputinterfaces.
`
`13:62-14:9
`13:62-14:9
`
`[0064] Data repository 172 stores information such as user information, session information,
`
`unique identifier numbers, and any other information required to carry out data transfer
`
`between remote control 14 and controlled device 18. In some examples, an entry within data
`
`repository 172 includes a unique identification numberthat has been assigned to a remote
`
`control or controlled device. Alternatively or additionally, an entry within data repository
`
`172 may identify an association between a remote control and a controlled device. In some
`
`examples, data repository 172 may also be configured to store data from past sessions
`
`between remote control 14 and controlled device 18. In some examples, data repository 172
`
`may bestructured as one or moretables, databases, linkedlists, radix trees, Google File
`
`Systems, Google BigTable database systems, or other suitable data structure.
`
`14:10-36
`14:10-36
`
`[0065] Device management module 168 generates messages, as well as controls messages
`
`being received from and messages being transmitted to remote controls 62 and controlled
`
`devices 64 of FIG. 2. In some examples, device management module 168 receives messages
`
`from remote controls 62 and controlled devices 64 notifying device management module 168
`
`that the devices are available for pairing. Device management module 168 may authorize
`
`19
`
`
`
`Docket No. 1133-051USP1
`
`devices according to permissionsset by a user having a user account. After providing
`
`authorization, device management module 168 may generate an identification message to aid
`
`device management module 168 in managing a session. In the example of one of remote
`
`controls 62, such as remote control 62A, requesting authorization to join a session
`
`maintained by device management module 168, device management module 168 assigns
`
`remote control 62A a unique session identification number (SID). Device management
`
`module 168 may also store the SID associated with remote control 62A in data repository
`
`172, and return the SID to remote control 62A. Device management module 168 may also
`
`generate and store unique SIDsfor controlled devices 64 in a similar manner. For example,
`
`device management module 168 may assign each connected controlled device 64 that
`
`requests authorization to join a session maintained by device management module with a
`
`unique SID whichthe controlled devices 64 can then use to identify itself in future
`
`communications.
`
`14:37-64
`14:37-64
`
`[0066] After assigning SIDs to connected devices, device management module 168 can
`
`manage messages between remote controls 62 and controlled devices 64. For example,
`
`device management module 168 may receive a message containing an SID and control
`
`information from one of remote controls 62, such as remote control 62A, for controlling on
`
`or more controlled devices 64. Device management module 168 then identifies the session
`
`that includes the SID of remote control 62A and determines the intended recipient(s) (e.g.,
`
`one or more controlled devices 64) based on the other membersof the session that have been
`
`assigned SIDs. That is, device management module 168 queries data repository 172 to
`
`determine the SIDsofall devices included in the session. After determining which
`
`controlled devices 64 are associated with the session, device management module 168
`
`transmits the control information to the intended controlled devices 64. In some examples,
`
`device management module 168 transmits the control information to all devices having SIDs
`
`that are associated with the session. Devices receiving the control information that are not
`
`configured to execute the control information (e.g., other remote controls 62 of the session)
`
`can ignore the message. In other examples, device management module 168 determines
`
`which SIDs ofthe session are associated with controlled devices 64, and transmits the control
`
`information to only the controlled devices 64. The control messages can be used by the
`
`controlled devices 64 to alter playback of content of controlled devices 64.
`
`20
`
`
`
`14:65-15:27
`14:65-15:27 [0067] Device management module 168 mayalso control messages being transmitted from
`
`Docket No. 1133-051USP1
`
`controlled devices 64 to remote controls 62. For example, after assigning SIDs to connected
`
`devices, device management module 168 may be configured to receive a message containing
`
`an SID from a controlled device, such as controlled device 64A, as well as content
`
`information for updating a user interface associated with one or more connected remote
`
`controls 62. Device management module 168 then identifies the session that includes the
`
`SID of controlled device 64A and determines the indented recipient(s) (e.g., one or more
`
`remote controls 62) based on the other membersof the session that have been assigned SIDs.
`
`That is, device management module 168 queries data repository 172 to determine the SIDs of
`
`all devices included in the session. After determining which remote controls 62 are
`
`associated with the session, device management module 168 transmits the content
`
`information to the intended remote controls. In some examples, device management module
`
`168 transmits the content information to all devices having SIDs that are associated with the
`
`session. Devices receiving the content information that are not configured to execute the
`
`content information (e.g., other controlled devices 64 of the session) can ignore the message.
`
`In other examples, device management module 168 determines which SIDsofthe session are
`
`associated with remote controls 62, and transmits the content information to only the remote
`
`controls 62. The content information may be used by the remote controls 62 to update a user
`
`interface of remote controls 62 or update playlist information of remote controls 62.
`
`15:28-41
`15:28-41
`
`[0068] According to some aspects of the disclosure, device management module 168 carries
`
`out the routing of information between remote controls 62 and controlled devices by
`
`“pairing” the remote controls 62 and controlled devices 64 using the identification numbers
`
`described above. In some examples, device management module 168 pairs all authorized
`
`devices that have been issued an SID. In other examples, device management module 168
`
`identifies and stores associations of remote controls 62 and controlled devices 64 to facilitate
`
`repeat communication between remote controls 62 and controlled devices 64. Device
`
`management module 168 may pair devices in a variety of ways including, for example,
`
`utilizing QR codesor allowing a user to manage pairing via a userinterface.
`
`15:42-58
`15:42-58 [0069] In some examples, device management module 168 may utilize a QR code to
`
`facilitate a device joining a session and being paired with other devices of the session. For
`
`example, device management module 168 may generate a unique session identification
`
`21
`
`
`
`Docket No. 1133-051USP1
`
`numberthat identifies a session. Upon scanning the QR code(e.g., the QR code being
`
`displayed on one or more of controlled devices 64), a remote control, such as remote control
`
`62A, transmits a message to device management module 168 to request that remote control
`
`62A be included in the session identified in the QR code. In some examples, device
`
`management module 168 then authorizes remote control 62A, issues remote control 62A an
`
`SID, and adds the SID to the session. The process can be repeated by other remote controls
`
`62, such that device management module pairs multiple remote controls 62 with controlled
`
`device 64A,thereby allowing controlled device 64A to receive commands from multiple
`
`remote controls 62.
`
`15:59-16-6
`15:59-16-6 [0070] In other examples, a user may access a user accountstored, for example, in data
`
`repository 172 to enable device management module 168 to pair remote controls 62 and
`
`controlled devices 64. For example, a user may log into a user account maintained on server
`
`160 to associate devices(e.g., any of remote controls 62 or controlled devices 64) with the
`
`user account. Unique identification numbers for each device may be stored, for example, in
`
`data repository 172. The user may then identify remote controls 62 as remote control devices
`
`and controlled devices 64 as controlled devices, and device management module 168 can pair
`
`the devices according to the user’s preferences. After pairing, device management module
`
`168 can facilitate communication between remote controls 62 and controlled devices 64.
`
`16:7-14
`16:7-14
`
`[0071] According to some aspects of the disclosure, remote controls 62 and controlled
`
`devices 64 are HTTP clients of server 160. That is, server 160 is configured to receive and
`
`transmit messages according to HTTP protocol. In other examples, however, server 160 may
`
`be configured to receive and transmit messages according to other protocols, such as
`
`Extensible Messaging and Presence Protocol (XMPP) or Remote Procedure Call (RPC)
`
`protocol.
`
`16:15-23
`16:15-23
`
`[0072] FIG. 6 is a flowchart illustrating an example operation of a remote control
`
`communicating with a network server, in accordance with one aspect of the present
`
`disclosure. For purposesofillustration only, the method of FIG, 6 is described with respect
`
`to networked environment 10 of FIG. 1, though various other systems and/or devices may be
`
`utilized to implement or perform the method shownin FIG.6.
`
`16:24- 46
`16:24- 46 [0073] According to some examples, remote control 14 notifies servers 24 that remote
`
`control is connected to network 22, and servers 24 assign remote control 14 a remote control
`
`22
`
`
`
`Docket No. 1133-051USP1
`
`identifier (e.g., a unique SID) (200). Remote control 14 may notify servers 24, for example,
`
`automatically upon being powered on. In another example, a user maylog in to a user
`
`account maintained by the servers 24 using a remote control application on remote control
`
`14, thereby notifying servers 24 that remote control 14 is connected to network 22. In
`
`another example, remote control 14 may notify servers 24 that it is connected to network 22
`
`and request an SID by,for example, scanning a QR code displayed on controlled device 18.
`
`The QR code may be associated with a user account or active session, and severs 24 may
`
`assign remote control 14 an SID associated with the user account or session. In some
`
`examples, prior to assigning remote control 14 an SID, server 24 verifies that remote control
`
`14 is authorized to be assigned an SID. For example, a user may maintain an account on
`
`servers 24 that includes permissions regarding which remote controls and controlled devices
`
`can be associated with the user account and assigned SIDs. Upon authorization (e.g,. HTTP
`
`authorization using HTTP header information), servers 24 assign remote control 14 an SID.
`
`16:47-54
`16:47-54
`
`[0074] Remote control 14 also transmits a messageto server 24 that includes a remote
`
`control identifier and control information. For example, the remote control identifier may
`
`include the SID issued by severs 24 that identifies remote control 14 as being part of a
`
`session maintained by servers 24 (204). The control information may include data intended
`
`to alter the operation of controlled device 18 (e.g., stop playback of content, move to other
`
`content, etc.).
`
`16:55-67
`16:55-67
`
`[0075] Server 24 then identifies controlled device 18 that is intended to receive the control
`
`information. For example, server 24 may query a database of stored identification numbers
`
`to determine which controlled device is associated with the session that includes the remote
`
`control identifier. Server then transmits the control information to the intended controlled
`
`device 18 (210). In some examples, server 24 forwards the control information from the
`
`message directly to one or more controlled devices 18. In other examples, server 24 may
`
`process and/or repackage the control information of the message into a new message. After
`
`receiving the control information, controlled device 18 executes an action in accordance with
`
`the control information (212).
`
`17:1-12
`17:1-12 [0076] In some examples, multiple remote controls 14 can be paired with a single controlled
`
`device 18. For example, a plurality of remote controls 14 may be used by one or more users
`
`to scan the same QRcodedisplayed on a single controlled device 18. In this example, the
`
`23
`
`
`
`Docket No. 1133-051USP1
`
`server may transmit a control message from eachof the plurality of remote controls 14 to
`
`controlled device 18. Server 24 may also maintain a priority list that provides certain remote
`
`controls 14 with a higher priority than other remote controls. Upon receiving conflicting
`
`commands simultaneously, then, server 24 can refer to the priority list to determine which
`
`control information to send to controlled device 18.
`
`17:13-20
`17:13-20 [0077] FIG. 7 is a flowchart illustrating an example operation of a network server handling
`
`communication between a remote control and a controlled device, in accordance with one
`
`aspect of the present disclosure. For purposesofillustration only, the method of FIG, 7 is
`
`described with respect to networked environment 10 of FIG. 1, though various other systems
`
`and/or devices maybe utilized to implement or perform the method shown in FIG.7.
`
`17:21-43
`17:21-43 [0078] In some examples, server 24 receives a message from remote control 14 having a
`
`remote control identifier and control information (220). For example, the message from
`
`remote control 14 may contain an SID issued by servers 24 that identifies remote control 14
`
`as being part of a session. In addition, the message may contain control information intended
`
`to alter the operation of one or more controlled devices 18 (e.g., stop playback, begin next
`
`paybackitem, etc.). After receiving the message from remote control 14, server 24 retrieves
`
`a controlled device identifier that identifies one or more controlled devices 18 intended to
`
`receive the control information (224). For example, server 24 may query a database of stored
`
`identification numbers to determine which controlled device is associated with the session
`
`that includes the remote control identifier. Server 24 then transmits a message to the
`
`intended recipients (one or more controlled devices 18) of the control information (228). In
`
`some examples, server 24 forward the control information from the first message directly to
`
`one or more controlled devices 18. In other examples, server 24 may process and/or
`
`repackage the control information of the message from remote control 14 into a new
`
`message, which can be sent to the intended recipients of the control information.
`
`17:44-57
`17:44-57 [0079] Server 24 may, in some examples,initialize a group session upon receiving the
`
`message from remote control 14. For example, server 24 may maintain a session that
`
`includes the identifiers for all of the components sending and receiving messages(e.g.,
`
`remote control(s) 14 and controlled device(s) 18). The session may be maintained by a
`
`device management module (such as device management module 168 shownin FIG. 5) of
`
`server 24 in order to efficiently route the messages from remote control 14 to controlled
`
`24
`
`
`
`Docket No. 1133-051USP1
`
`device 18, as well as messages from controlled device 18 to remote control 14 (e.g., as
`
`discussed below with respect to FIGS. 8 and 9). Server 24 maystore identifiers associated
`
`with a session in a data repository (such as data repository 172 shown in FIG. 5).
`
`17:58-65
`17:58-65
`
`[0080] FIG. 8 is a flowchart illustrating an example operation of a network server handling
`
`communication between a controlled device and a remote control, in accordance with one
`
`aspect of the present disclosure. For purposesofillustration only, the method of FIG, 9 is
`
`described with respect to networked environment 10 of FIG. 1, though various other systems
`
`and/or devices maybe utilized to implement or perform the method shown in FIG,9.
`
`17:66-18:16
`17:66-18:16 [0081] According to some examples, controlled device 18 notifies servers 24 that controlled
`
`device 18 is connected to network 22, and servers 24 assign controlled device 18 a controlled
`
`device identifier (e.g., a unique SID) (236). Controlled device 18 may notify servers 24, for
`
`example, automatically upon being powered on. In another example, a user may log in to a
`
`user account maintained by the servers 24 using an application on controlled device 18 (e.g.,
`
`a web browserapplication), thereby notifying servers 24 that controlled device 18 is
`
`connected to network 22. In some examples, prior to assigning controlled device 18 an SID,
`
`server 24 verifies that controlled device 18 is authorized to be assigned an SID. For example,
`
`a user may maintain an account on servers 24 that includes permissions regarding which
`
`remote controls and controlled devices can be associated with the user account and assigned
`
`SIDs. Upon authorization (e.g,. HTTP authorization using HTTP header information),
`
`servers 24 assign controlled device 18 an SID.
`
`18:17-26
`18:17-26
`
`[0082] Controlled device 18 also transmits a message to server 24 that includes a controlled
`
`device identifier and content information. For example, the controlled device identifier may
`
`include the SID issued by severs 24 that identifies controlled device 18 as being part of a
`
`session (238). The content information may include data intended to update a user interface
`
`of remote control 14 (e.g., update playlist information, request user to take action regarding
`
`content playback, notify user that playback of new content has begun, andthelike).
`
`18:27-41
`18:27-41
`
`[0083] Server 24 then receives the message from controlled device 18 and identifies remote
`
`control 14 that is intended to receive the content information (240). For example, server 24
`
`may query a database ofstored identification numbers to determine which remote control 14
`
`is associated with the session that includes the controlled device identifier. Server 24 then
`
`transmits the control information to the intended controlled device 18 (242). In some
`
`25
`
`
`
`Docket No. 1133-051USP1
`
`examples, server 24 forwards the content information from the message directly to one or
`
`more remote controls 14. In other examples, server 24 may process and/or repackage the
`
`content information of the message into a new message. After receiving the content message
`
`from server 24, remote control executes an action in accordance with the message(e.g.,
`
`update a user interface of remote control 14) (244)).
`
`18:42-54
`18:42-54 [0084] Messages other than those specifically described with respect to FIG. 8 may also be
`
`exchanged between controlled device 18 and server 24. According to some aspects of the
`
`disclosure, controlled device 18 may complete a preliminary identification process, during
`
`which server 24 supplies controlled device 18 with an identification number. For example,
`
`prior to transmitting a message to remote control 14, controlled device 18 mayinitiate
`
`contact with server 24 to request an identification number. Server 24 may then generate an
`
`identification numberandtransmit the identification numberto controlled device 18.
`
`Controlled device 18 can then incorporate that identification numberinto the identifier
`
`portion of the message described above.
`
`18:55-62
`18:55-62 [0085] FIG. 9 is a flowchart illustrating an example operation of a controlled device
`
`communicating with a network server, in accordance with one aspect of the present
`
`disclosure. For purposesofillustration only, the method of FIG, 9 is described with respect
`
`to networked environment 10 of FIG. 1, though various other systems and/or devices may be
`
`utilized to implement or perform the method shownin FIG.9.
`
`18:63-19:7
`18:63-19:7
`
`[0086] In some examples, server 24 receives a message from controlled device 18 having a
`
`controlled device identifier and content information (250). For example, the message from
`
`controlled device 18 may contain an SID issued by servers 24 that identifies controlled
`
`device 18 as being part of a session. In addition, the message may contain content
`
`information intended to notify a user of an event regarding controlled device 18, or to prompt
`
`a user of remote control 14 to take an action (e.g., notification that playback has stopped,
`
`notification that play