CROSS-REFERENCE TO RELATED APPLICATIONSThe present application is a continuation of and claims priority from U.S. patent application Ser. No. 11/644,045, filed on Dec. 22, 2006 and entitled “SYSTEM AND METHOD FOR PROVIDING TELEVISION SERVICES,” now issued as U.S. Pat. No. ______, which is a continuation of U.S. patent application Ser. No. 10/335,735, filed on Jan. 2, 2003 and entitled “SYSTEM AND METHOD FOR PROVIDING TELEVISION SERVICES”, now issued as U.S. Pat. No. 8,490,145, which is a divisional of and claims priority from U.S. patent application Ser. No. 09/116,325, filed on Jul. 15, 1998 and entitled “SYSTEM AND METHOD FOR PROVIDING TELEVISION SERVICES”, now issued as U.S. Pat. No. 6,567,982, which is a continuation of and claims priority from U.S. patent application Ser. No. 08/428,718, filed on Apr. 25, 1995 and entitled “SYSTEM AND METHOD FOR PROVIDING TELEVISION SERVICES”, now issued as U.S. Pat. No. 5,818,438, the contents of each of which are expressly incorporated herein by reference in its entirety.
FIELDThe present disclosure relates in general to the field of television and in particular to the field of interactive television.
BACKGROUNDAdvances in telecommunications and computing technology are leading to the provision of interactive television (TV) on a large scale. Interactive TV involves the use of video gateways and video transport of sufficient bandwidth for video programmers and enhanced video gateway providers to offer their services to residential and business subscribers. Where such facilities are available, subscribers will not only be able to access these services by passively receiving them, but will also be able for the first time to interact with the service providers by communicating requests and commands to the providers via the same path over which the programming services are provided (or even via other paths or drivers).
Interactive TV service is capable of supporting at least the following services: (1) traditional broadcast and cable television programming; (2) video services, such as pay-per-view (PPV), near video-on-demand (NVOD), video-on-demand (VOD), promo channels, electronic program guides, etc.; (3) cable delivered PC-based services; and (4) interactive services, through the use of a combination of compression and digital video technologies. Interactive TV service also permits menuing capabilities and upstream signaling from subscribers to service providers. A subscriber interactive TV connection may, for example, provide subscribers with a screen of available enhanced video gateway providers and/or video programmers and their telephone numbers, or a menu to interactively order services and/or programs.
Interactive television may be provided over any number of paths, including coaxial cable or optical fiber, hybrid fiber/coaxial, or any other suitable path that accommodates sufficient bandwidth for desired analog and digital video channels as well as other telecommunications services. Content Providers may include, for example, providers of interactive or non-interactive over-the-air programming such as commercial television stations, cable programming such as weather, travel and entertainment channels, game channels, and on-line services of various types.
Interactive video enables a subscriber to request that an “interactive session” be established between an “interactive server” or similar platform maintained by an interactive video service provider and a “client” terminal device at the subscriber's premises. An interactive session is a two-way communication relationship, and is a precondition to interactive video services being provided to a subscriber's terminal device. Such a session utilizes the necessary downstream bandwidth and resources (defined below) for delivering interactive video service and the necessary upstream bandwidth from the subscriber's terminal device to issue commands to the interactive server. The terminal device may take the form of what has been termed a “set top box” (STB), or may be any other device capable of performing at least the following functions: (1) exchanging messages (including video-related data) over a network with the interactive server; (2) receiving messages from a user input device, such as a hand-held remote control unit; (3) translating video signals from a network-native format into a format that can be used by the television or display device; and (4) providing a video signal to a television or other display device. A STB may also be capable of performing other functions, such as: (1) inserting alphanumeric or graphical information into the video stream in order to “overlay” that information on the video image; (2) providing graphic or audio feedback to a user; or (3) possibly the most basic function, simply routing a traditional broadcast signal to a viewing device to which the STB is connected.
The STB “client” is “served” by a facility which may be operated and maintained by the video service provider. This “interactive server” provides, in response to a subscriber request, access to an “application,” which may be something as straightforward as a video program, or may itself interact with the subscriber by transmitting, for example, a subscriber prompt or menu to allow the subscriber to assert a desired selection from among a set of given commands for the interactive server to carry out.
This added functionality is in large part the result of a historically unprecedented convergence of communications and computing technology. It makes possible, for the first time, features such as the following. In the game media environment, a subscriber may download video games or even play them interactively with the interactive server and/or with other subscribers. An interactive service subscriber may order “time shift TV,” in which a particular program may be viewed at a time following its ordinary broadcast time. A subscriber may also selectively view desired parts of transactional, informational or advertising services. For example, a subscriber may view information on the weather predictions for a given location or at a given time, gather information relating to a particular sporting event or team, obtain news on demand, or query a system regarding a particular real estate market. Alternatively, a subscriber may participate in interactive entertainment programs, such as interactive game shows, interactive lottery or gambling, or request musical selections. Subscribers interested in educational programming, such as a school or a family residence, may invoke interactive “edutainment” or “how-to” programs. Interactive communication services, such as online services historically provided by the public telephone network, may also be accessed via interactive TV, which permits not only the rapid transfer of files to the subscriber but also interaction with other subscribers.
The combination of broadcast and interactive applications over interactive TV (e.g., interactive programs) creates a new mode of communication in which a user, when informed of the availability of an interactive application relating to the subject matter of a broadcast program, may invoke the application to investigate that subject matter more thoroughly and according to his or her own tastes.
Additionally, television viewers, who are accustomed to choosing at will between the available channels with instantaneous results, will expect to pass from one medium (e.g., broadcast) to another (e.g., interactive) “seamlessly” with the push of a button. To accommodate their viewer's needs, programmers may wish to provide broadcast programming, such as a commercial advertisement or a news program, and make available in the context of that program a related interactive television program.
The means by which interactive television and broadcast television are provided, however, are generally quite different. The two media, for example, are typically supplied from different sources and use different modulation techniques over different transmission paths. The originating source of broadcast programming is likely to be remote from those subscribers interested in invoking an interactive service, making telecommunication between the parties over a dedicated network prohibitively expensive and complex. By contrast, interactive servers, in order to avoid the expense of high bandwidth communications over such distances, can be located geographically close to a corresponding set of subscribers, unlike the programming sources or “Content Providers.” An interactive server can therefore efficiently provide exclusive interactive access to a large number of applications by a large number of interactive subscribers.
The technical differences between broadcast programming and interactive applications, combined with the difficulties of providing interactive services at any rate, make the provision of a smooth transition between interactive and broadcast television a difficult proposition and a seamless transition from broadcast television to interactive television and back an elusive goal.
SUMMARYThe present disclosure provides an approach for viewer-friendly and virtually instantaneous transitioning from a first analog based television program to a second program, particularly an interactive application program, and further permits a similarly rapid and easily accomplished return to viewing the first program.
To accomplish this convenient and virtually instantaneous transition between programs such as a broadcast program and an interactive application or program, the present disclosure provides a system for permitting a provider of program content to furnish a video service provider with content, such as an interactive program or application, and for permitting the video service provider to transmit to the Content Provider an identifying code or address, such as an interactive callback address. The video service provider associates this identifying code or address with a location at which the program or application will be stored. The identifying code or callback address may be a program-specific code that can be used by subscribers to invoke the program from the video services provider directly. Alternatively, the identifying code may be a common identifying code or callback address (which might be called a “well-known callback address”), used by all subscribing viewers to access a program- or application-specific identifying code or callback address, which is in turn used to invoke the program.
According to the present disclosure, Content Providers may transmit the identifying code or callback address for a second program in coordination with a first program, so that viewers of the first program, who have access to systems operated by the video service provider, may invoke the second program, which may be an interactive program or application, using that identifying code or callback address.
Also according to the present disclosure, the Content Provider may transmit the identifying code or callback address in the first program signal, for example, in the vertical blanking interval of the video stream for that program. Alternatively, the identifying code or callback address could be provided in any other suitable out-of-band channel, especially one that is capable of being synchronized with the program signal, so that the identifying code or callback address may be transmitted at appropriate times during the program.
Additionally, the present disclosure permits the Content Provider to transmit with the identifying code or callback address additional information, such as information to be used at the subscriber site to generate a screen image indicating the availability of additional content from the video service provider.
The present disclosure also provides for an interactive server, which may be operated and maintained by the video service provider. The interactive server can service requests from Content Providers for identifying codes or callback addresses, such as interactive callback addresses, can store program content from Content Providers, such as interactive programs or applications, and can associate that content with an appropriate identifying code or address, such as an interactive callback address. The interactive server according to the present disclosure can also service requests for that content from subscribing viewers.
The subscribing viewers are provided with a set top box or similar device adapted to be coupled to a video distribution network to which one or more video service provider systems are also coupled, and also adapted to be coupled to a television, computer or any other suitable display device to reside either outside of, or within, the housing of the display device. The set top box includes a receiving set capable of receiving broadband signals over the video distribution network and possibly also over the air. The set top box also includes at least one processor coupled to the receiving set and programmed to detect the presence and content of an identifying code or callback address, such as an interactive callback address, received by the receiving set either in a program signal (typically in the vertical blanking interval of that signal) or possibly in an out-of-band signal. The set top box processor is also programmed to store the identity of the channel on which the program is being received in one of at least one information storage devices or memory means to which the processor is coupled. The processor is also programmed to detect and store information accompanying the transmission of the identifying code or callback address regarding an image to be displayed on the display device (such as a video screen “button” or “icon”) to indicate the availability of content, such as an interactive application, from a video service provider. Alternatively, such information regarding the image to be displayed on the television or other display device may be pre-stored in an appropriate information storage device to which the processor is coupled. The processor is also coupled to a means for generating a video image based on the received or pre-stored “button” or “icon” information, or alternatively, is programmed to generate the video signal and is coupled to the display device in such a manner as to provide such a signal to that device.
Furthermore, the set top box processor is adapted to establish communication over the video distribution network with the video service provider, upon receiving a request from the subscribing viewer in response to seeing the screen button or icon. The processor may first store in the information storage device the identity of the channel on which the program then being viewed is being transmitted. A communication session over the network to the video service provider is then established by transmitting a message including the identifying code or callback address, such as the interactive callback address. If the identification code or callback address is a common identification code (for example, a “well-known callback address”) the video service provider returns the program- or application-specific identification code or callback address, which the processor then may use to invoke from the video service provider the associated program or application.
The video service provider transmits to the set top box the identity of a network service (i.e., a network address) or a channel on which the requested program will be provided, and the set top box processor initiates a session with the indicated network service and/or causes the receiving set to tune to the channel. The set top box then receives the program or application from the video service provider. During that session, communication between the set top box and the video service provider may be two-way.
When the program or application is terminated, or when the user signals the set top box that viewing the second program or application is no longer desired, the communication session is terminated. The processor then retrieves the identity of the first program from the information storage device, and causes the receiving set to re-tune to the first program to which the viewer had been tuned.
It is accordingly an object of the present disclosure to provide a system for permitting a Content Provider to furnish a video service provider with program content, such as an interactive application or program, and for permitting the video service provider to transmit to the Content Provider an identifying code or address, such as an interactive callback address or a “well-known interactive callback address.”
It is an object of the present disclosure to provide a system for permitting a Content Provider to furnish an identifying code or callback address along with a program for directly invoking another program, such as an interactive program furnished to subscribing viewers by the video service provider.
It is a further object of the present disclosure to provide a system for permitting a Content Provider to furnish a common identifying code or callback address (such as a “well-known interactive callback address”), used by all subscribing viewers to access a program- or application-specific identifying code or callback address that, in turn, is used to invoke the program content from the video service provider.
It is an additional object of the present disclosure to permit a Content Provider to transmit the identifying code or callback address in coordination with the program signal, such as in the vertical blanking interval of the video stream.
It is a further object of the present disclosure to permit a Content Provider to optionally transmit the identifying code or callback address in coordination with the program signal, but in any suitable out-of-band channel.
It is yet another object of the present disclosure to permit the Content Provider to transmit with the identifying code or callback address additional information, such as information to be used at the subscriber site to generate a screen image indicating the availability of additional content from the video service provider.
A further object of the present disclosure is to provide an interactive server capable of servicing requests from Content Providers for identifying codes or addresses for program content and to receive and store such content in association with the identifying code.
An additional object of the present disclosure is to provide an interactive server according to the present disclosure that can service requests for program content from subscribing viewers.
Another object of the present disclosure is to provide subscribing viewers with a set top box for detecting the presence and content of an identifying code or callback address transmitted in coordination with a-program, to store for later retrieval the identity of the channel on which the program is being received, to generate a screen image for display on a display device based on information either pre-stored or transmitted with the identifying code, to establish a session with the video services provider using the code, and upon termination of the session, to fetch the identity of, and re-tune to, the channel the subscriber was originally watching.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 is a high level functional block diagram of certain environment and components of a system according to a preferred embodiment of the present disclosure.
FIGS. 2A and 2B are a flowchart for the operation of a first embodiment of a system according to the present disclosure.
FIGS. 3A and 3B are a flowchart for the operation of a second embodiment of a system according to the present disclosure.
FIGS. 4A and 4B are a flowchart for the operation of a third embodiment of a system according to the present disclosure.
FIGS. 5A and 5B are a flowchart for the operation of a fourth embodiment of a system according to the present disclosure.
FIG. 6 is a high level diagram of an embodiment of an interactive server and certain environment according to the present disclosure.
FIG. 7A is a diagram showing the format for an interactive callback address according to the present disclosure having error correction check bits.
FIG. 7B is a diagram showing the contents of an interactive callback address according to the present disclosure, with the error correction check bits not shown.
FIG. 8 is a high level schematic diagram of a preferred embodiment of a set top box according to the present disclosure including input and output means.
FIG. 9 is a state diagram showing operating states of an embodiment of a set top box according to the present disclosure, corresponding to the embodiment of the system according to the present disclosure shown inFIGS. 2A and 2B, and indicating conditions leading to state transitions and processing associated with the states and performed incident to the state transitions.
FIG. 10 is a state diagram showing operating states of an embodiment of a set top box according to the present disclosure, corresponding to the embodiment of the system according to the present disclosure shown inFIGS. 3A and 3B, and indicating conditions leading to state transitions and processing associated with the states and performed incident to the transitions.
FIG. 11 is a state diagram showing operating states of an embodiment of a set top box according to the present disclosure, corresponding to the embodiment of the system according to the present disclosure shown inFIGS. 4A and 4B, and indicating conditions leading to state transitions and processing associated with the states and performed incident to the transitions.
FIG. 12 is a state diagram showing operating states of an embodiment of a set top box according to the present disclosure, corresponding to the embodiment of the system according to the present disclosure shown inFIGS. 4A and 4B, and indicating conditions leading to state transitions and processing associated with the states and performed incident to the transitions.
DETAILED DESCRIPTIONHigh-Level Architecture of an Embodiment of an Interactive Video Services NetworkFIG. 1 shows the primary components used in a typical setting for implementing an embodiment of the systems, devices and methods according to the present disclosure. Avideo service provider1, responsible for providing interactive applications, operates and maintains a system equipped to receive signals as well as interactive applications and other content from one or more Content Providers A, B, C, . . . , N, respectively referred to by numerals41-44. The means by which interactive applications are furnished by the Content Providers to thevideo service provider1 is discussed in detail below and in the section entitled “Assignment of Interactive Callback Address.”
Content Providers may be any original or secondary source of programming or information generally, including, for example, interactive or non-interactive over-the-air programming such as commercial television stations, cable programming such as weather, travel and entertainment channels, game channels, and on-line services of various types. Content Providers may alternatively broadcast directly to viewers, without the necessity of the broadcast being received and retransmitted to subscribers.
Over-the-air broadcast Content Providers such as commercial television stations, which may not provide programming by way of thevideo service provider1 may nevertheless furnish thevideo service provider1 with interactive applications associated with their broadcasts. An example of such a Content Provider isContent Provider A41. According to an approach described below, avideo service provider1 that has received an interactive application fromContent Provider A41 may then provide access to the interactive application tosubscribers70 of thevideo service provider1, in response to subscriber requests.
Content Providers that may not transmit programming to viewers over the air but which may provide it via cable, for example, such as weather, entertainment and game program providers, which may be represented byContent Provider B42, may provide programming to viewers via thevideo service provider1. This programming could be sent to thevideo service provider1 in the form of an RF transmission, in which case the signal would be received and suitably processed byRF equipment25. Alternatively, the programming might be transmitted to thevideo service provider1 over, for example, a network according to a cell- or packet-switching or other suitable protocol. In the latter event, the programming signal could be received atnetwork provider10 via thevideo service provider1 andswitch12.Switch12 would in turn provide the received signal, along with numerous other signals it would in general handle, to signalprocessor14, which conditions the signal for receipt and transmission byRF equipment25.
Content Providers A-N may also furnish thevideo service provider1 with one or more interactive applications which thevideo service provider1 may in turn provide tosubscribers70 of thevideo service provider1 in response to subscriber requests.
Other providers of television content such as advertisers, which may be represented byContent Provider C43, may not provide services to viewers but rather furnish content originating with them to broadcasters that incorporate that content into their own broadcasts. They may also furnish interactive applications to thevideo service provider1, as further described below. Thevideo service provider1 may then provide access bysubscribers70 to the interactive application.
Signals containing programming furnished by the Content Providers A-N (ref. numerals41-44) may have inserted into them interactive callback addresses by one or more ICA insertion mechanisms. For example,ICA insertion mechanism20 can be connected via suitable communication paths toContent Provider B42 and tointeractive server5.Insertion mechanism20 can be any known equipment for inserting information in a television signal, for example, inline21 of the vertical blanking interval of an NTSC video signal.Content Provider B42 may decide to transmit a broadcast, such as a commercial, having an associated interactive component or application that may have been provided to thevideo service provider1 and is stored in theinteractive server5.Content Provider B42 then queriesinteractive server5 for the network address and application ID for the associated interactive component. In response to the query, theinteractive server5 identifies the network address and application ID for the associated interactive component which, together, constitute an interactive callback address or ICA.Content Provider B42, which is able to issue instructions toICA insertion mechanism20, inserts the ICA received from theinteractive server5 into the transmission (e.g., of the commercial) when it is broadcast. As will be further described below, a properly equippedsubscriber STB100 will be able to sense the ICA on that broadcast channel and then display a button or icon on the viewing screen over the broadcast channel and also store the ICA. If the subscriber selects the displayed button, theSTB100 establishes a session withinteractive server5 and receives the interactive program or application associated with the broadcast.
An ICA may be inserted in a broadcast signal by other means. For example,ICA insertion mechanism22 can be operated and controlled by thevideo service provider1.ICA insertion mechanism22 can be any known mechanism for inserting information into a television signal (as with ICA insertion mechanism20). A communication path is established betweeninsertion mechanism22 andinteractive server5.ICA insertion mechanism22 is also in communication withContent Provider B42 and withRF equipment25 innetwork provider10.Content Provider B42 may decide to air a broadcast, such as a commercial, having an associated interactive component or application available oninteractive server5. As shown inFIG. 1,Content Provider B42 may broadcast directly toRF equipment25 or throughswitch12. In the event that the broadcast will be directly to theRF equipment25,Content Provider B42 prior to or during airing of the broadcast transmits a notice tovideo service provider1 that the broadcast program is to be transmitted at a given time. In response to this notice, theinteractive server5 identifies the network address and application ID for the interactive component associated with the broadcast, which, together, constitute an interactive callback address or ICA.Interactive server5, which maintains control over theICA insertion mechanism22 inserts the ICA received from theinteractive server5 into the transmission (e.g., the commercial) when it is broadcast and communicates the resultant signal toRF equipment25 ofnetwork provider10.
In the event that a Content Provider such asContent Provider B42 is transmitting a broadcast viaswitch12 innetwork provider10,ICA insertion mechanism24 is in communication withinteractive server5,Content Provider B42, and switch12 ofnetwork provider10. As with theICA insertion mechanism24,Content Provider B42 prior to or during airing of the broadcast transmits a notice tovideo service provider1 that the broadcast program is to be transmitted at a given time. In response to this notice, theinteractive server5 identifies the network address and application ID for the interactive component associated with the broadcast, which, together, constitute an interactive callback address or ICA.Interactive server5, which maintains control over theICA insertion mechanism24, as well asICA insertion mechanism22, inserts the ICA received from theinteractive server5 into the transmission (e.g., the commercial) when it is broadcast, and communicates the resultant signal to switch12 ofnetwork provider10.
In one embodiment of the disclosure, avideo service provider1 provides its services using at least some of the components shown inFIG. 1. The services provided byvideo service provider1 may include voice, data, and video services, including interactive TV and cable channel service, and including both service that is multi-cast (to all subscribers) and switched (to particular individual subscribers), which may be interactive in nature. The primary functionality of theservice provider1 in this embodiment is provided byinteractive server5, which stores and manages the interactive applications provided by the Content Providers, and which responds to requests fromsubscribers70 duringinteractive sessions subscribers70 initiate.Interactive server5 is shown and described in greater detail inFIG. 6 and the accompanying text.
Although the present discussion focuses on the provision of interactive applications, thevideo service provider1 may be an enhanced video gateway provider, offering service including menuing and navigation capabilities, billing and collections, information services, storage and order processing. As in the embodiment shown inFIG. 1, the “Level 2” or “L2” Service, presently defined, along with thesubscriber70 set top box (“STB”)100, by the Federal Communications Commission (“FCC”) as the unregulated portion of a video services network, is implemented by thevideo service provider1. In this embodiment, thevideo service provider1 is physically separated from the “Level 1” or L1 service, defined by the FCC as the regulated portion of a video services network and the portion of the system known as “video dial tone,” functionality of which is implemented bynetwork service provider10 inFIG. 1. In this configuration, the L1 service might serve a number of such video service providers (although only one is shown and described for convenience). Alternatively, thevideo service provider1 may at the same site provide both L1 and L2 services.
Interactive server5, which is part of the L2 Service, is linked to aswitch12, part of the L1 service, for transferring data according to any desired protocol or scheme, such as the ATM cell-switching protocol, for example. Theswitch12 may also switch video signals from Content Providers, as shownFIG. 1 for Content Providers B-N (reference numerals42-44, respectively), to one or morevideo signal processors20 for delivery to the network distribution facilities. In an embodiment of the disclosure,signal processing equipment14,network controller16,RF equipment25 and electrical/optical converter30 all serve to interface theswitch12 with thebroadband distribution system50.
Thesignal processing equipment14 receives digital video signals and transforms them into properly timed and mapped broadband signals for transmission to subscribers. One example of the standard according to which such transformation may be performed is the MPEG-2 standard (Moving PicturesExpert Group standard 2, an international video and audio compression and transmission standard described in ISO/IEC CD 13818-1, the contents of which are incorporated by reference herein); however, any other suitable standards, formats, protocols, data structures, sequences or organization schemes could also be employed just as easily and effectively.
Network controller16 receives input viasignal processor14 from theSTB100 ofsubscriber70 and sends output to theswitch12,signal processor14, and to theinteractive server5 in order to establish network sessions that permit downstream transmission of broadcast and interactive applications from theinteractive server5, as well as upstream signaling fromSTB100 ofsubscriber70. Thenetwork controller16 output to switch12 andsignal processor14 also provisions network resources to achieve these functions.
TheRF equipment25 provides RF modulation and RF combining for transmission of video signals onto thebroadband distribution system50. It receives input from theswitch12 in, for example, ATM format and may receive input directly from Content Providers, such as theContent Provider B42. It provides output in the form of RF transmission either directly (not shown) onto a broadbandRF distribution network50, or if the broadband RF distribution network is implemented with optical fiber, it provides output to electrical/optical converter30. In this event,converter30 transforms the input received from theRF equipment25 and places it onto thebroadband distribution system50.
Theswitch12,network controller16,RF equipment25, electrical/optical convertingequipment30 andbroadband distribution system50 together make up at least part of the L1 service provided bynetwork service provider10.Network service provider10 is responsible for setting up and maintaining a communications interface between theinteractive server5 and theSTBs100 of anode60 of subscribers.Network service provider10 receives an application transmission from theinteractive server5 in the downstream direction.Network service provider10 receives application transmission in the upstream direction from subscriber STBs100 (to be discussed at greater length below) via broadband RF transmission.
As shown inFIG. 1, provision of programming by the Content Providers41-44 may be: directly to viewers, including one ormore subscribers70, who may receive the signal, for example, with a conventional antenna (see Content Provider A41); via the service provider without requiring digital switching or conversion to broadband, when the signal is already in broadband format which may be the case, for example, if the Content Provider is a provider of over-the-air or cable channel service (see Content Provider B42); or via theservice provider1 through theswitch12 andsignal processor14. Not shown inFIG. 1, but described below with reference toFIGS. 6 and 7, is the provision of interactive applications from the Content Providers41-44 to thevideo service provider1, and the provision of an identifying code such as an interactive callback address from thevideo service provider1 to the Content Providers41-44.
A video signal provided by, or by way of, thevideo service provider1 is placed on thebroadband distribution system50.Broadband distribution system50 is most preferably a broadband network with bandwidth on the order of 750 Mhz, but it may feature a suitable bandwidth for the program content and functionality desired. In the presently described embodiment of the video dial tone system, the distribution is partitioned into a 50-750 Mhz downstream path for the provision of video services and a 5-42 Mhz upstream path for signaling by asubscriber70 to thevideo service provider1.
Broadband distribution system50 provides a link between thevideo service provider1 and one ormore nodes60 ofsubscribers70. Onesuch subscriber node60 is shown inFIG. 1. In an embodiment of the video dial tone system, asubscriber node60 may include aremote terminal65, which converts optical signals received over the network to electrical signals. The electrical signals are then provided on acoaxial distribution system66 to a number of taps (not shown), each of which may serve a number ofsubscribers70.
Subscriber70 is situated similarly to a typical television viewer in a number of respects. As shown inFIG. 1, the subscriber is equipped with one ormore televisions80,90 or other suitable image monitoring devices. As depicted in the Figure, atelevision90 may be connected directly to thecoaxial distribution system66, rather than via theSTB100, as in the case oftelevision80. The subscriber is further equipped with a settop box100 that is also coupled to thecoaxial distribution system66. TheSTB100 may be a device with certain similarities to conventional cable company STBs. However, the particular requirements of theSTB100 for implementing the present disclosure, including functionality not present in conventional STBs, are shown in greater detail inFIG. 8, which shows the components of an embodiment of anSTB100, andFIGS. 9 to 12, which depict the logic flow for four embodiments of anSTB100 according to the present disclosure and corresponding respectively toFIGS. 2A-B to5A-B.
Operation of Several Embodiments of a System According to the Present DisclosureAn interactive application must be associated with an identifying code such as an interactive callback address if it is to be invoked by subscribers. The provision of this code or address to subscribers in the context of other programming is what allows asubscriber70 with the proper equipment and data links to invoke the interactive application. The provision of an address in response to a request by a Content Provider can be accomplished in several ways, to be discussed at further length below. In addition, the address can be provided to thesubscriber70 in various ways, and the manner in which this address (and information regarding the availability of an interactive application) is provided determines to a certain extent the overall functioning of the system. Four illustrative approaches to providing an address, which may be referred to as an “interactive callback address” or “ICA,” will be discussed, along with the operation of systems according to the present disclosure for implementing these approaches, in relation toFIGS. 2A,2B,3A,3B,4A,4B,5A and5B. These Figures present each of the four approaches as a logic flow. The approaches are to be taken without limitation as examples of ways in which devices, systems, and methods according to the present disclosure may be carried out. The division of these logic flows into the boxes shown in the Figures is also by way of example, rather than of limitation (as is the remainder of this document).
Application-Specific Interactive Callback Address Transmitted with Broadcast and Identified by Standard Button Overlay
InFIG. 2A, at205, an ICA is established (as further described below) for a particular interactive application associated with given programming. The ICA describes a logical address that would map to an interactive server's network address, includes an application ID, and may include a “timeout” period, which is the time that the button should be displayed on the broadcast screen. TheSTB100 may also have a standard default timeout period, if no timeout is sent with the ICA. A subscriber'sSTB100, when equipped with this ICA, can call theinteractive server5 to establish a session with the interactive application associated with the program.
At210, the ICA is delivered to a medium (such as, for instance, a provider of program material such as video tape or live broadcast) and, in a preferred embodiment of the disclosure, is inserted or stored in the vertical blanking interval (VBI) of the desired program associated with the medium. As an alternative to providing the ICA in the VBI of a broadcast program, any other synchronized in-band or out-of-band transmission system may be used. As further described below, the ICA serves as a complete or partial basis for theSTB100 of asubscriber70 to generate a signal representing a “button” for inclusion on the screen of thetelevision80 ofsubscriber70. The ICA is inserted in the program such that the interactive button may be generated by a subscriber'sSTB100 to appear at the desired time on the screen of asubscriber70 tuned to that program. A “remove button” message may also be inserted in the VBI (or, again, another synchronized in-band or out-of-band transmission system) at the point in time when the button should be removed by theSTB100. Alternatively, the button may be removed if a new ICA is received, or if a timer expires, or finally, if the broadcast channel is changed. If, on the other hand, the button is to remain continuously on the screen, the ICA may be inserted at periodic intervals in the program.
At215, the program is delivered on a given channel. If the ICA was inserted into the VBI, it will of course be included as part of the transmission. Alternatively, the ICA may be sent over another in-band or out-of-band transmission system synchronized with the program.
Referring toFIG. 2B, at220, theSTB100, which is tuned to a given channel, listens for the ICA in the VBI or other appropriate transmission. If an ICA is detected, at225, theSTB100, at230, overlays a screen button having a standard predetermined configuration on the image displayed on the screen ofTV80 to which theSTB100 is connected. The provision and storage of the information required to generate the standard button is discussed at greater length below in the context of theSTB100. Also at230,STB100 sets an internal timer to a timer value sent as part of the ICA, or if no timer value is sent, to a standard timeout value. If no ICA is detected, thesubscriber70 continues watching the program, at285, and theSTB100 continues to listen for an ICA, at220.
As indicated at235, if thesubscriber70 has selected the displayed button, at the next step,240,STB100 stores the identity of the current broadcast channel.STB100 then resolves the ICA from a logical address to a network address and then uses the ICA to establish an interactive session between itself and theinteractive server5 corresponding to the ICA. At this point theSTB100 stores the identity of the current channel for later retrieval, erases the button from the screen, and then tunes to the correct channel for maintaining the interactive session, which channel was received from theinteractive server5 according to standard protocols whenSTB100 requested an interactive session.
As indicated at245, theinteractive server5 receives upstream data from theSTB100 and, in response, sends appropriate video screens, text, graphics, scripts, and/or other information downstream to theSTB100. TheSTB100, at250, displays on theTV80 the interactive session received from theinteractive server5, and sendssubscriber70 responses upstream to theinteractive server5.
As indicated at255, theSTB100 checks whether the interactive session has been terminated. This event will occur at the end of the interactive application, in which case theinteractive server5 terminates the session. Termination may also, of course, occur if thesubscriber70 requests it. If the session has been terminated, theSTB100 deletes the ICA, retrieves the identity of the channel that was previously being watched, and re-tunes theTV80 to that channel. If the session has not been terminated, theinteractive server5 continues to receive upstream information from theSTB100 and to send video screens, text, graphics, scripts, and/or other interactive information downstream to theSTB100, as shown at245.
At265, after theSTB100 has returned theTV80 to the original program channel, at260, theSTB100 queries whether the button is still on the screen. If it is, the next query, at270, is whether theSTB100 has received a “remove button” message. If theSTB100 has received the “remove button” message, then, at275, it erases the button. Alternatively, if theSTB100 has not received the “remove button” message, but the timer has reached the timer value transmitted with the ICA indicating that the timeout period has elapsed (described in further detail below in connection with theSTB100 logic), theSTB100 erases the button.
If, at235, it had been determined by theSTB100 that thesubscriber70 did not select the displayed button, theSTB100 checks whether it has received a “remove button” message or if the timeout period has expired, at270. If either of these conditions has occurred, theSTB100 erases the button at275 and deletes the ICA. Following275 or280, the viewer continues watching the program, at265, and, returning to220, theSTB100 resumes listening for an ICA.
Well-Known Interactive Callback Address Transmitted with Program and Identified by Standard Button Overlay
An alternative to the application-specific callback addressing scheme described above in connection withFIGS. 2A and 2B is presented inFIGS. 3A and 3B. These figures show the logical flow of an approach in which a single common identifying code or “well-known” interactive callback address is provided to allsubscribers70, indeed all viewers, but which only thesubscribers70 use if they elect to invoke that application from theinteractive server5.
At305, a program- or application-specific identifying code or ICA is established (as further described below) for a particular interactive application associated with a given program. As with the first approach, the ICA describes a logical address that would sap to an interactive server's network address, includes an application ID, and may include a “timeout” period, which is the time that the button should be displayed on the broadcast screen. Also, a well-known interactive callback address (“WKICA”) is established for all interactive applications associated with all programs. The WKICA generally includes the same sort of information as does the ICA.
The WKICA is a common address used by allSTBs100. TheSTBs100 call the WKICA to get the ICA information associated with the particular interactive application, (which would include the server ID if the subscriber were to have access to more than one interactive server). Once theSTB100, using the WKICA, has obtained the desired ICA, it will call for the desired interactive application using that ICA.
At310, the WKICA is delivered to a medium (for instance, a provider of program material such as video tape or live broadcast) and, in a preferred embodiment of the disclosure, is inserted or stored in the VBI of the desired program associated with the program medium. As an alternative to providing the WKICA in the VBI of a program, any other in-band or out-of-band transmission system may be used if it is synchronized with the program. The WKICA is inserted so that it will appear on theTV80 screen ofsubscriber70 during the desired time in the program. A “remove button” and/or time expiration message may also be inserted in the VBI (or other synchronized transmission system) at the point in time when the button should be removed. If the button is to remain continuously on the screen, the WKICA may be inserted at periodic intervals throughout the program.
The program is then transmitted at315, on a particular channel. The WKICA is thus included in the VBI as part of the program transmission, or it may be sent on another in-band or out-of-band transmission system synchronized with the program.
Referring toFIG. 3B, theSTB100, tuned to a particular program channel, listens, at320, for the WKICA in the VBI or other appropriate transmission system. If, at325, a WKICA in the VBI or other system is detected, an interactive session is established at330; otherwise, the viewer continues watching the program and a timer is set, at385.
At330, theSTB100 calls the WKICA to establish an interactive session with the application identified by the WKICA. At the outset of the session, theSTB100 provides the application identified by the WKICA with the identity of the channel being viewed by thesubscriber70. TheSTB100 receives from the application specific information associated with the program channel, such as the type of button to display and the specific ICA to call to establish the appropriate interactive session, assuming thesubscriber70 selects it by pressing the button. TheSTB100 sets the timer and displays on the screen of theTV80 the type of button specified by the application associated with the WKICA and proceeds to wait for a “remove button” message or for the period for which the timer is set to expire. TheSTB100, using components and according to processing further described below, generates the button based in part on information previously stored, for example by software download, in theSTB100.
TheSTB100 also waits, at335, for the subscriber to select the button on the viewing screen. If a selected button is detected, theSTB100 at340 stores the identity of the current broadcast channel in memory for later retrieval. It then calls the specific ICA it has received from the WKICA to establish the appropriate interactive session for the button that was pressed. TheSTB100 also erases the button from the screen, and tunes to the appropriate channel for the interactive session.
During the interactive session, such as at345, theinteractive server5 receives upstream information from theSTB100 and sends downstream to theSTB100 text, graphics, scripts, and/or other information. As shown at350, theSTB100 displays the interactive session on the screen ofTV80, and receives viewer commands and interactive responses and sends those signals upstream to theinteractive server5.
TheSTB100, as indicated at355, determines whether the interactive session has been terminated, either at the subscriber's command, or if the end of the interactive application has been reached. If the interactive application has not been terminated, theSTB100 and theinteractive server5 continue providing the functionality in the states shown atpoints345 and350. If the interactive session has been terminated, theSTB100 at360 deletes the specific ICA and retrieves from memory the identity of the program channel thesubscriber70 had been viewing and re-tunes to that channel so that thesubscriber70, at365, can continue viewing the broadcast program on that channel.
If at335 the viewer had not selected the broadcast screen button,STB100 would, at370, check whether a “remove button” message has been received or whether the timeout period has expired. If not,STB100 returns to335, checking whether the displayed button has been selected. If a “remove button message” has been received or the timeout period expired,STB100 erases the button, at375, and deletes the specific ICA. The viewer may then continue viewing the broadcast program at365, and theSTB100, at320, continues listening for a WKICA in the VBI.
Application-Specific Interactive Callback Address Transmitted with Program and Identified by a Non-Standard Button Overlay
A third embodiment of a system and method according to the present disclosure is depicted inFIGS. 4A and 4B. InFIG. 4A at405 an interactive callback address package (ICAP) is established for an interactive application associated with a given program. This ICAP includes an ICA and may also include customized button information. This customized information may include:
a) type(s) of button(s);
b) characteristics of button(s);
c) location on the screen of button(s);
d) text of button(s); and
e) other unique characteristics of button(s).
The ICA describes a logical address that would map to an interactive server's network address, includes an application ID, and may include a “timeout” period, which is the time that the button should be displayed on the broadcast screen. As with the first described embodiment, the ICA will be used by theSTB100 to address a call to establish an interactive session associated with the program.
At410, the ICAP is delivered to a program medium (for instance, a provider of program material such as video tape or live broadcast) and, in a preferred embodiment of the disclosure, is inserted or stored in the vertical blanking interval (VBI) of the desired program associated with the program medium. As an alternative to providing the ICAP in the VBI of a program, any other synchronized in-band or out-of-band transmission system may be used. The ICAP is inserted in the program so that it will appear on the subscriber's70 screen at the desired time. In addition to the ICAP, a “remove button” message may also be inserted in the VBI (or other transmission system) so that the button will be removed at the desired time. If it is desired that the button remain continuously on the viewing screen, the ICAP may be inserted at periodic intervals throughout the program.
At415, the program is transmitted on a given channel. Along with this program, the ICA may be included either in the VBI, or transmitted on another in-band or out-of-band transmission system synchronized with the program.
Referring toFIG. 4B, anSTB100 tuned to the channel listens at420 for the ICAP in the VBI or other appropriate transmission. At425, if an ICAP is detected, theSTB100, at430, uses any customized button information contained in the ICAP to generate and overlay a customized button in a customized location over the image. If the ICAP does not contain information for a customized button, theSTB100 uses standard defaults that have been previously stored in theSTB100, for example via software download. TheSTB100 sets an internal timer to a timer value sent as part of the ICAP, or if no timer value is sent, to a standard timeout value. When the button is being displayed, theSTB100 listens for the remove button message to remove the button.
If, at425, no ICAP was detected, thesubscriber70 simply continues watching the program, at485, and theSTB100 continues to listen for the ICAP, at420.
If thesubscriber70 selects the displayed button, at435, theSTB100, at440, stores in memory the identity of the current channel. TheSTB100 then uses the ICA from the ICAP it has received to establish an interactive session between theSTB100 and the appropriateinteractive server5. TheSTB100 erases the button from the screen, and tunes to the correct channel for the interactive session, which channel was received from theinteractive server5 according to standard protocols whenSTB100 requested an interactive session.
When the interactive session has been established, theinteractive server5, at445, receives upstream information from theSTB100 and sends video screens, text, graphics, scripts, and/or other information downstream to theSTB100. As shown at450, theSTB100 displays the interactive session on the screen of theTV80. TheSTB100 also receives viewer interactive responses and sends responses upstream to theinteractive server5.
If the interactive session is terminated, which may be a result of thesubscriber70 issuing a termination command, or simply as a result of the completion of the interactive application,STB100 detects this event at455 and, at460, deletes the ICAP and re-tunes to the channel that was originally being watched and thesubscriber70 continues watching the program on that channel, at465. If a termination is not detected, the interactive session continues at445 and450.
If, at435, it had been determined by theSTB100 that thesubscriber70 did not select the displayed button, theSTB100 determines, at470, whether it has received a remove-button message or whether the timer has expired. If neither event has occurred, theSTB100 continues checking whether viewingsubscriber70 has selected the button, at435. If a remove button message has been received at470, theSTB100 erases the button and deletes the ICAP, at475; if it has not, theSTB100 at475 erases the button and deletes the ICAP only if a button timeout period has been exceeded, at470. After theSTB100 erases the button and deletes the ICAP, theviewing subscriber70 continues watching the broadcast program, at465. Also, theSTB100 resumes listening for the ICAP at420.
Application-Specific Interactive Callback Address and Button Overlay Both Transmitted with Program
In a fourth embodiment of a system and method according to the present disclosure, the logical flow of which is illustrated atFIGS. 5A and 5B, an application-specific ICA is transmitted with the program, along with a button inserted on the video program at the point of transmission.
Referring toFIG. 5A, at505, an ICA is established for a particular interactive application associated with a given program. As with the previously described embodiments, the ICA describes a logical address that would map to an interactive server's network address, includes an application ID, and may include a “timeout” period, which is the time that the button should be displayed on the broadcast screen. The ICA ultimately will be used by theSTB100 of thesubscriber70 viewing the program to invoke an interactive session associated with that program.
At510, the ICA is delivered to a medium (for instance, a provider of material such as video tape or live broadcast) and, in a preferred embodiment of the disclosure, it is inserted or stored in the vertical blanking interval (VBI) of the desired program associated with the medium. As an alternative to providing the ICA in the VBI of a program, any other in-band or out-of-band transmission system may be used if it is synchronized with the program. The ICA is inserted into the program so that it will appear at the desired point in the program, and the button is also inserted into the program so that it will appear at that desired time on the screens of all viewers receiving the program, including viewers that are not subscribers and that lack anSTB100. When the button is removed from the program image (and thus the viewers' screens), a “remove button” message is inserted in the VBI. When theSTB100 of aviewing subscriber70 receives this message, theSTB100 deletes the ICA. The timeout period can be sent with the ICA if the duration of the button display, and hence how long the ICA is to be active, is predetermined.
The program, at515, is transmitted on a particular channel. As described above in connection with510, the ICA may either have been incorporated in the transmission, or be sent on an in-band or out-of-band transmission system that is synchronized with the program.
STB100 at520 checks for an ICA in the VBI of the video stream (or in another suitable preselected transmission). As indicated at525, if an ICA is detected, theSTB100 does not overlay a button, at530, since the button is overlaid at the broadcast source and has appeared on the screen when the ICA arrived at theSTB100. Rather theSTB100 sets the timer and begins checking for a “delete ICA” message or timeout.
If the ICA was not detected, thesubscriber100 simply continues watching the program, at565.
TheSTB100, at535, checks whether thesubscriber100 has selected the displayed button. If selection of the button is detected, theSTB100 stores the identity of the broadcast channel being viewed. It then uses the ICA to establish an interactive session, at540, with the appropriateinteractive server5. TheSTB100 receives and then tunes to the correct channel for an interactive session.
If, at535, thesubscriber70 had not selected the button displayed on the screen of theTV80, theSTB100 continues checking, as shown at570, whether a “delete ICA” message has been received or if the timer has expired. If either or both these events have occurred, then theSTB100, at575, deletes the ICA. After575, the viewer continues watching the program, at565.
During the interactive session, theinteractive server5, at545, receives upstream information from theSTB100 and sends video screens, text, graphics, scripts, and/or other information downstream to theSTB100. At550, theSTB100 displays the interactive session on the screen of theTV80. It also receives viewer interactive responses and commands and sends them upstream to theinteractive server5.
TheSTB100 checks, at555, whether the interactive session has been terminated. If it has not, the interactive session continues, at545 and550. If the session has been terminated, which may have occurred as a result of a command issued by viewingsubscriber70, or due to the end of the interactive application having been reached, theSTB100 deletes the ICA, retrieves the identity of the channel, whichsubscriber70 had been watching, and re-tunes to that channel.
Thesubscriber70 continues watching the program, at565. TheSTB100 continues to listen for the ICA, at520, in the VBI or other appropriate transmission.
Assignment of Interactive Callback AddressAn interactive callback address (ICA) is associated with an interactive application to enable subscribers to invoke an interactive application, as well as to uniquely identify an interactive application for any number of additional reasons. The ICA describes a logical address that maps to an interactive server's network address, includes an application ID, and may also include a “timeout” period message, which indicates the amount of time that a button indicating the availability of an interactive application or program should be displayed on the broadcast screen. The ICA may be furnished in association with a program to subscribers in a variety of ways, two of which are described below. Once the ICA is received by a subscriber terminal device such as anSTB100, the ICA may be stored so that it will be available at the request ofsubscriber70 to call and establish with aninteractive server5 an interactive session associated with a program. The ICA may be assigned in a number of ways, two of which are described below, with reference toFIG. 1,FIG. 6 andFIGS. 7A and 7B.
Case I: Locally Assigned Interactive Callback AddressesWhen content, such as an interactive news program or a commercial advertisement, is specifically developed for an interactive platform, as may be the case for locally originating programming, aContent Provider45 requests an ICA from avideo service provider1 operating aninteractive server5 linked to one ormore nodes60 ofsubscribers70. This request may be made by any suitable means. It could be done simply by making a telephone call to thevideo service operator2, or it could be done by purely electronic means, such as e-mail, or automatically, or remotely invoking an application on theinteractive server5 designed for this purpose. TheContent Provider45 also then transmits to thevideo service provider1 the interactive application. This transmission may be done by physically sending the interactive application to thevideo service provider1 on tape, magnetic disk, optical disk or other suitable medium; alternatively, it could be done by electronic or optical transmission of the data, such as over a network.
After receiving the request for the ICA, theinteractive server5 assigns an ICA consistent with the state of theinteractive server5 and itsmemory8 andother storage devices8A and9. Thevideo service provider1 also stores the application received from the Content Provider in a suitable storage device, such asvideo storage9, and stores the ICA and perhaps information relating to the interactive application in a database maintained, for example, indisk storage8A. Such additional information may include an application ID selected by thevideo service provider1.
If theinteractive server5 is called by asubscriber70 with an ICA, theinteractive server5 may thus retrieve using the ICA any information necessary for locating and running the interactive application. The new ICA may be selected according to any suitable scheme. In one embodiment of the present disclosure, the ICA has a format of the form shown inFIGS. 7A and 7B. As shown inFIG. 7A, but without limitation, the ICA preferably comprises 32 bits. According to an error correction scheme, such as a Hamming code or other suitable approach, a number of checkbits or parity-type bits are incorporated into the ICA. InFIG. 7A,6 such bits110-115 are shown asbits1,2,4,8,16, and32 corresponding to the ICA content shown inFIG. 7B. Hence 38 bits are used to transmit the ICA, with a coding rate of about 0.84. Any error correction schemes suitable for minimizing errors in the transmission of an ICA having a known format may be used.
InFIG. 7B, the components of the ICA are shown. Bits9-32 contain aprogram identifier120, including a server ID and an application ID. Bits3-8 are used for anindustry code125, which is assigned to large Content Providers to uniquely identify them.Bits1 and2 correspond totime cycle identifier130, which facilitates re-cycling of program identifiers: when a particular application no longer is being provided by the Content Provider identified by a particular industry code, the Content Provider can re-use a particular program identifier.Time cycle identifier130 is prefixed to ensure uniqueness of the ICA when a program identifier is used an additional time. Where, as shown, thetime cycle identifier130 is allocated two bits, a givenprogram identifier120 may be used uniquely four times.
When the interactive application has been stored, a new ICA has been selected for the interactive application, and the ICA and interactive application information have been stored in a database, thevideo service provider1 orinteractive server5 sends a message to theContent Provider45. This message may include a description of the type of application, an ICA confirmation including the ICA itself, an application ID (including a server number and application number), any other information, such as billing information, and a timeout value for specifying the length of time a screen button should persist.
Case II: Content-Defined Interactive Callback AddressesIn case I, an interactive application may have been developed for a particular interactive server and was to be assigned an address by that server. As an alternative to case I, interactive applications associated with pre-developed content (that is, created specifically to be associated with the interactive application) may already be associated with and labeled with an ICA by theContent Provider45. This may be, but is not necessarily, the case for nationally originating programmers. For such content-defined ICAs, the interactive application and the pre-assigned ICA are both transmitted to the desired video service providers. The transmission may be done simply by shipping a tape, magnetic disk, optical disk or other suitable medium to the video service provider, or alternatively, may be electronically or optically transmitted over a network. The receivingvideo service provider1 orinteractive server5 stores the interactive application, then adds the ICA and assigns an application ID. An application ID is an identifier for purposes of internal organization and tracking by thevideo service provider1. Thus, for a nationally originating program in which the ICA identifying the program is national, theinteractive server5 of (local)video service provider1 translates the (national) ICA to a local server address of its internal database, for example ondisk storage8A. Once this information has been stored, a receivingvideo service provider1 sends a confirmation message to theContent Provider45, including what it has recorded as the ICA, the application ID, and a description of the application. As an alternative scheme, not shown in the Figures, the (local)video service provider1 is linked to a national server running the interactive application, and the local server using the ICA provides a link from the subscriber to the national interactive server.
The Interactive ServerOne or moreinteractive servers5 may be maintained as part of theLevel 2 service (L2, defined above in connection withFIG. 1) in order to provide service to subscribers in a particular geographical area. An embodiment of theinteractive server5 according to the present disclosure may be coupled to one or more transmission paths, such as a satellite downlink, for receiving programs. Theinteractive server5 is also coupled to alevel 1 network (L1, defined in connection withFIG. 1), through which it interacts withsubscribers70, receiving program requests and commands, and sending programming as requested by each subscriber.
An embodiment of aninteractive server5 is shown inFIG. 6. Theinteractive server5 may include, for example, one ormore processors7, one ormore memory devices8, and one or more storage devices such asdisk storage8A. These components may be linked to one another by adata bus6. Theinteractive server5 may also include avideo storage medium9, in which device interactive applications supplied by Content Providers may be stored for retrieval upon request by asubscriber70.
Theinteractive server5 may receive input and provide output to a video service operator, represented schematically atreference numeral2, or over data link11 to theswitch12, or over data link3A directly to aContent Provider45. In response to a request by aContent Provider45 for an ICA to be associated with a program, for example, thevideo service provider1 may interact with theinteractive server5 via I/O mechanism4 in order to obtain an interactive application address, at which an interactive application will be found when stored with theinteractive server5, and, if necessary, a port address, to combine with the address of theinteractive server5 itself for transmission to theContent Provider45 via acommunication link3. Under an alternative scheme, aContent Provider45 could establish a link with theinteractive server5 itself over communications link3aand obtain an ICA directly.
When avideo service provider1 has received an interactive application from aContent Provider45, thevideo service provider1, via I/O mechanism4, loads the interactive application into an appropriate storage medium, such asvideo storage9, which-may be a separate storage medium from theinteractive server memory8 or the interactiveserver disk storage8A, such that the interactive application may be retrieved using the interactive application address portion of the ICA furnished to theContent Provider45.
Thevideo service provider1 may also interact with theinteractive server5 to perform system management functions such as data storage management, if such functions are not carried out automatically.
Set Top Box ArchitectureAsubscriber70 to an interactive video service will be equipped with anSTB100 for receiving transmissions and initiating an interactive session. The functionality of theSTB100 may reside in a stand-alone device, literally a box that can be placed on, or at least near, the television, that is similar in outward form to conventional devices for receiving cable programs. TheSTB100 functionality could alternatively be performed by hardware resident elsewhere, such as within the television or display console, or by any suitably equipped terminal device. Since the hardware may be proprietary to the interactive video provider and may generally be a physically independent device, the term set top box is used here, but the disclosure is not so limited.
The components of an embodiment of anSTB100 that may be used to implement the system and method according to the present disclosure are shown inFIG. 8.STB100 is coupled tocoaxial distribution system66, as was briefly described in connection withFIG. 1. Input toSTB100 received overcoaxial distribution system66 is handled by receiving set components, eitheranalog tuner1210 or digital tuner/demodulator1218.Analog tuner1210 may be any conventional tuner suitable for use in receiving video signals over a cable distribution system or the like. Analog signals oncoaxial distribution system66 having a particular carrier frequency are received byanalog tuner1210 if it is tuned to that frequency.Analog tuner1210 is coupled to secureprocessor subsystem1212.Secure processor subsystem1212 may be any known system for receiving scrambled or otherwise secured analog signals over a private distribution system. Typically, thesecured processor subsystem1212, its components, and their functionality are compatible with remote terminal65 (at the head end of thecoaxial distribution system66 and shown inFIG. 1).Secure processor subsystem1212 includes aconventional analog descrambler1216 for descrambling signals received and forwarded byanalog tuner1210.Secure processor subsystem1212 also includes anon-volatile memory subsystem1214 for storing information necessary for decoding received transmissions, including normal cable program transmissions, pay-per-view program transmissions and the like.
Digital signals oncable distribution system66 are received by digital tuner/demodulator1218 if they are in a band to which the digital tuner/demodulator1218 is tuned. Digital tuner/demodulator1218, which can be any suitable conventional component, demodulates signals it is tuned to receive in order to reconstruct the desired digitized analog signal. This resulting signal is transmitted tovideo decoder1220, a conventionally available device that interprets the input stream.Video decoder1220 thereby recovers the compressed signal to produce a video signal.
Analog descrambler1216 andvideo decoder1220 are both coupled to graphics assistmodule1222. Graphics assistmodule1222 can be any conventionally available graphics processor suitable for adding a graphics overlay onto the video signals received from thevideo decoder1220 and/or theanalog descrambler1216 in response to instructions implemented by software running onCPU1228. The functionality of graphics assistmodule1222 could be implemented byCPU1228 if it were suitably programmed and capable of sufficient throughput. As will be further described below, graphics assistmodule1222, in response to instructions received oversystem bus1224, generates a video signal overlaid on the existing television signal indicating the availability of an interactive program. For example, graphics assistmodule1222 may generate a button image, or a logo or other pattern or symbol, and inject the image into the video stream such that the image appears in a designated portion of the screen. Information used in generating this button, as described below, may be available in the signal received overcoaxial distribution system66, or may use information stored in theSTB100, such as instatic memory1229, in which the button information may be pre-loaded.
The video stream emerging fromanalog descrambler1216 orvideo decoder1220, and from graphics assistmodule1222, is provided to NTSCsignal generation module1226. As an alternative to NTSC,signal generation module1226 could generate signals according to any available and desired video format. NTSCsignal generation module1226 is conventional circuitry for transforming the output ofanalog descrambler1216,video decoder1220 and graphics assist1222 into the standard form usable by a conventional television or monitor (not shown in this view). This functionality could, alternatively, convert input signals to any suitable standard format. As shown inFIG. 8, NTSCsignal generation module1226 generates a set of coordinated signals and provides them onchannel3 or4,1226A, to a monitor adapted to receive and display television signals (not shown). Also transmitted by NTSCsignal generation module1226 to the monitor or television (not shown) is a composite/Svideo Out signal,1226B, and left and right audio signals,1226C.
In addition to the previously described components and functionality, which have to do with the receipt and provision of television signals, possibly with inserted graphics,STB100 includes a number of components and implements several additional functions.
The processing associated with managing and controlling the functions of the settop box100 is performed byCPU1228.CPU1228 may be any suitable commercially available processor and preferably one capable of performing in excess of 30 Mips, such as a Power PC or Pentium chip. In running system software stored in static memory1229 (which may be an EEPROM, ROM or the like),CPU1228 has access viasystem bus1224 tostatic memory1229 and todynamic memory1230, (which may be conventionally available memory, preferably with a storage capacity of at least about 4-5 MB).CPU1228 also has access viasystem bus1224 to information regarding the current channel, to the graphics assist1222 regarding screen button or other graphical display signals, and tovideo decoder1220 and digital tuner/demodulator1218, as well as to secureprocessing subsystem1212 andanalog tuner1210 in order to assert command messages to those components.
Interaction bysubscriber70 withSTB100 may be by any suitable means, but is preferably by conventional infrared (IR) remote control.IR controller1232 receives signals from subscriber-controlled remotecontrol input device1233 via an IR receiver and associated circuitry (not shown). Instructions received byIR controller1232 may be asserted viasystem bus1224 as commands to secureprocessor subsystem1212 andanalog tuner1210, as well as tovideo decoder1220 anddigital tuner demodulator1218.IR controller1232 can also send messages toCPU1228 when, for example,subscriber70 requests an interactive program or other service.
Interaction by theSTB100 upstream viacoaxial distribution system66 and tovideo service provider1 is conducted byCPU1228 throughWAN communications processor1234.WAN communications processor1234 can be any conventional device suitable for converting messages received viasystem bus1224 into a WAN-compatible protocol, such as IP (internet protocol).Upstream modulator1236, which can be any conventional device, modulates signals received fromWAN communications processor1234 for transmission overcoaxial distribution system66 and viaremote terminal65 andnetwork provider10 tointeractive server5 of video services provider1 (as shown inFIG. 1).
STB Processing Associated with Operation of Several Embodiments of a System According to the Present Disclosure
InFIGS. 9-12, the processing associated with four embodiments of theSTB100 according to the present disclosure is shown in the form of diagrams depicting the processing states of theSTB100, conditions for transitioning between those states and processing associated with each state and incident to the state transitions. The embodiment shown inFIG. 9 corresponds to the embodiment of the disclosure shown inFIGS. 2A and B,FIG. 10 corresponds toFIGS. 3A and B,FIG. 11 toFIGS. 4A and B, andFIG. 12 toFIGS. 5A and B. The processor states and processing carried out bySTB100 are implemented byCPU1228, shown inFIG. 8. As has been described with reference to that figure,CPU1228 has access viasystem bus1224 to signals received overcoaxial distribution system66 that have been descrambled or decoded as necessary by either ofvideo decoder1220 oranalog descrambler1216.CPU1228 is easily capable of sampling these sources sufficiently frequently to detect the receipt of new video frames and to detect the presence and content of information in the VBI of received video signals. In alternate embodiments of the present disclosure, theSTB100 could receive and analyze information received via other in-band or out-of-band transmission paths.
The processes shown in these figures could also be represented as logic flow diagrams. Moreover, the exact ordering of the numbered boxes of the flowcharts is not a limitation of the disclosure, but merely an illustration of one way in which the depicted function of each embodiment of this aspect of the present disclosure may be carried out.
STB Processing where an Application-Specific Interactive Callback Address is Transmitted with Program and Identified by a Standard Button Overlay
Processes performed bySTB100 in carrying out the first embodiment the system and method according to the present disclosure are shown inFIG. 9. As shown, theSTB100 process begins when thesubscriber70 turns on theSTB100 to view a program. TheSTB100 process at that time initializes into the idle state,700. While in theidle state700, theSTB100 checks a number of conditions: it checks whether a video frame has been received; whether a screen button has been selected by viewingsubscriber70; whether a “remove button” message has been received with a video frame; and whether a button timer has exceeded a threshold value and thus expired.
If a video frame has been received,702,STB100 enters a new state,704, in which it tests the video frame, particularly the VBI of that frame, for the presence of an ICA. As described elsewhere in this application, according to the present disclosure, the ICA could alternatively be transmitted to theSTB100 by any suitable in-band or out-of-band means.
If no ICA is detected in the given frame bySTB100 at706, the process returns toidle state700. However, if an ICA is detected in the received frame at708,STB100 at710 stores the ICA, for example in dynamic memory1230 (shown inFIG. 8).STB100 then enters a new state,712.
Instate712,STB100 tests the detected ICA for the presence of information relating to the drawing of a screen button to indicate to viewingsubscriber70 that an interactive program is available. If such information related to the configuration of the screen button is found, at718, thenSTB100 draws a custom button according to this information, at720. Also at720,STB100 sets a timer for the screen button, whichSTB100 will check to ensure that the button remains on the screen no longer than a desired maximum time. If the button information was not found in the ICA,714, thenSTB100 at716 draws a standard button on the basis of information stored instatic memory1229, shown inFIG. 8.STB100 at716 also sets the timer to be later checked in order to ensure that the standard screen button is timely erased. After the button is drawn and the timer is set at716 or720,idle state700 is resumed.
When in theidle state700, in addition to testing whether a video frame has been received, as described above,STB100 also tests whether a screen button, if present on the screen, has been selected by subscribingviewer70.STB100 can access this information available fromIR controller1232 viasystem bus1224, as shown inFIG. 8. If a button has been selected,722,STB100, at724, saves in dynamic memory1230 (shown inFIG. 8) the identity of the channel currently being viewed bysubscriber70.STB100 at724 also erases the screen button, which provides feedback tosubscriber70 that the button has been selected.
After the channel has been saved and the button erased at724,STB100 enters theinteractive application state726. Ininteractive application state726,STB100 establishes an interactive session withinteractive server5 ofvideo service provider1 over the network by sending a message containing the ICA usingWAN communications processor1234 and upstream modulator1236 (shown inFIG. 8 and described above) overcoaxial distribution system66, and viaremote terminal65 andnetwork service provider10 tointeractive server5 of video service provider1 (shown inFIG. 1).
STB100 remains in theinteractive application state726 as long as the interactive application invoked by the ICA and provided byvideo service provider1 has not ended or been terminated by subscribingviewer70 viaIR controller1232. If either of these events are detected bySTB100 at728, however,STB100 at730 retrieves fromdynamic memory1230 the earlier-stored identity of the channel originally being watched and issues a command to eithervideo decoder1220 and digital tuner/demodulator1218 orsecure processor subsystem1212 andanalog tuner1210 to re-tune to that original channel. Also at730,STB100 deletes the ICA fromdynamic memory1230.STB100 then returns to theidle state700.
While inidle state700, and in addition to testing for the reception of video frames and whether a screen button has been selected,STB100 also checks, when a video frame has been received at702, but no ICA has been detected at706, for a “remove button” message in the VBI of the video frame (or in any other suitable in-band or out-of-band signaling path).STB100 also periodically checks whether the timer, set at716 or720, has expired. If either a “remove button” message has been received or the expiration of the timer has been detected, at732, thenSTB100, at734, erases the screen button and deletes the ICA fromdynamic memory1230, if one had been previously stored.STB100 then returns to itsidle state700 and continues checking for video frames, the selection of a screen button, remove button messages and timer expirations.
STB Processing where a Well-Known Interactive Callback Address is Transmitted with a Program and Identified by Standard Button Overlay
InFIG. 10, processes performed bySTB100 in connection with a second embodiment of the system and method according to the present disclosure are shown in state diagram form. TheSTB100 process begins when thesubscriber70 turns on theSTB100 to view a program. The STB process initializes into the idle state,800. While in theidle state800, theSTB100 checks a number of conditions: it checks whether a video frame has been received; whether a screen button has been selected by viewingsubscriber70; whether a “remove button” message has been received with a video frame; and whether a button timer has exceeded a threshold value and thus expired.
If a video frame has been received, at802,STB100 enters a new state,804. In this state, it tests the video frame, particularly the VBI of that frame, for the presence of a WKICA (i.e., a well-known interactive callback address, described above) associated with the program being viewed. As discussed elsewhere in this application, according to the present disclosure, the WKICA could alternatively be transmitted to theSTB100 by any suitable in-band or out-of-band means.
IfSTB100 detects at806 no WKICA in the given frame, the process returns tostate800. However, if a WKICA is detected in the received frame, at808,STB100, at810, stores the WKICA, for example in dynamic memory1230 (shown inFIG. 8).STB100 then calls the WKICA, establishes an interactive session with the WKICA, and sends the WKICA application the identity of the broadcast channel on which it received the WKICA.STB100 then receives from the WKICA application the specific ICA, which it must call if the associated button on the screen is selected.STB100 stores the ICA, for example in dynamic memory1230 (shown inFIG. 8) and then enters a new state,812.
Instate812,STB100 tests information downloaded from the WKICA interactive session for the presence of information relating to the drawing of a screen button to indicate to viewingsubscriber70 that an interactive program is available. If such information related to the configuration of the screen button is found, at818, thenSTB100 draws a custom button according to this information, at820. Also at820,STB100 sets a timer for the screen button, which it will check to ensure that the button remains on the screen no longer than a desired maximum time. If the button information was not received from the WKICA interactive session, at814, thenSTB100, at816, draws a standard button on the basis of information stored instatic memory1229, shown inFIG. 8.STB100, at816, also sets the timer to be later checked in order to ensure that the standard screen button is timely erased. After the button is drawn and the timer is set at816 or820,idle state800 is resumed.
When in theidle state800, in addition to testing whether a video frame has been received, as described above,STB100 also tests whether a screen button, if present on the screen, has been selected by viewingsubscriber70.STB100 can access this information, available fromIR controller1232, viasystem bus1224, as shown inFIG. 8. If a button selection has been selected,822,STB100 at824 saves in dynamic memory1230 (shown inFIG. 8) the identity of the channel currently being viewed bysubscriber70.STB100, at824, also erases the screen button, thus providing feedback tosubscriber70 that the button has been selected.
After the channel has been saved and the button erased, at824,STB100 calls the specific ICA and enters the interactive application state,826. Ininteractive application state826,STB100 initiates an interactive session withinteractive server5 ofvideo service provider1 over the network by sending a message containing the ICA usingWAN communications processor1234 and upstream modulator1236 (shown inFIG. 8 and described above) overcoaxial distribution system66, and viaremote terminal65 andnetwork service provider10 tointeractive server5 of video service provider1 (shown inFIG. 1).
STB100 remains in theinteractive application state826 as long as the interactive application invoked by the ICA and provided byvideo service provider1 has not ended or been terminated by subscribingviewer70 viaIR controller1232. If either of these events are detected bySTB100, at828, at830 it retrieves fromdynamic memory1230 the earlier-stored identity of the channel originally being watched and issues a command to eithervideo decoder1220 and digital tuner/demodulator1218 orsecure processor subsystem1212 andanalog tuner1210 to re-tune to that original channel. Also at830,STB100 deletes the ICA fromdynamic memory1230.STB100 then returns to theidle state800.
In addition to testing inidle state800 for the reception of video frames and whether a screen button has been selected,STB100 also conducts a further check. If, at802, a video frame has been received, but no WKICA has been detected at806,STB100 checks for a “remove button” message in the VBI of the video frame (or in any other suitable in-band or out-of-band signaling path).STB100 also periodically checks whether the timer, set at816 or820, has expired. If either a “remove button” message has been received or the expiration of the timer has been detected, at832, thenSTB100, at834, erases the screen button and deletes the ICA fromdynamic memory1230, if one had been previously stored.STB100 then returns to itsidle state800 and continues checking for video frames, the selection of a screen button, remove button messages and timer expirations.
STB Processing where an Application-Specific Interactive Callback Address Package is Transmitted with Program and Identified by a Non-Standard Button Overlay
A third embodiment of the processing performed bySTB100 in implementing the system and method according to the present disclosure is shown inFIG. 11. TheSTB100 process begins when thesubscriber70 turns on theSTB100 to view a program. TheSTB100 process initializes into the idle state,900. While in the idle state,900, theSTB100 checks a number of conditions: it checks whether a video frame has been received; whether a screen button has been selected by viewingsubscriber70; whether a “remove button” message has been received with a video frame; and whether a button timer has exceeded a threshold value and thus expired.
If a video frame has been received, at902,STB100 enters a new state,904, in which it tests the video frame, particularly the VBI of that frame, for the presence of an ICAP associated with the program being viewed. As described above in connection withFIGS. 4A and 4B, an ICAP is an interactive callback address package, described above as optionally including non-standard or customized button information such as: a) type(s) of buttons; b) description of buttons; c) location of button(s) on screen; d) text of button(s); and e) other characteristics of buttons. As discussed elsewhere in this application, according to the present disclosure, the ICAP could alternatively be transmitted to theSTB100 by any suitable in-band or out-of-band means.
IfSTB100, at906, detects no ICAP in the given frame, the process returns tostate900. However, if an ICAP is detected in the received frame, at908,STB100 at910 stores the ICAP, for example in dynamic memory1230 (shown inFIG. 8).STB100 then enters a new state,912.
At912,STB100 tests the detected ICAP for the presence of custom information relating to the drawing of a screen button to indicate to viewingsubscriber70 that an interactive program is available. If such information related to the configuration of the screen button is found, at918, thenSTB100 draws a custom button according to this information, at920. Also at920,STB100 sets a timer for the screen button, which it will check in order to ensure that the button remains on the screen no longer than a desired maximum time. If the button information was not found in the ICAP, at914, thenSTB100, at916, draws a standard button on the basis of information stored instatic memory1229, shown inFIG. 11.STB100, at916, also sets the timer to be later checked in order to ensure that the standard screen button is timely erased. After the button is drawn and the timer is set at916 or920,idle state900 is resumed.
When in theidle state900, in addition to testing whether a video frame has been received, as described above,STB100 also tests whether a screen button, if present on the screen, has been selected by subscribingviewer70.STB100 can access this information, available fromIR controller1232, viasystem bus1224, as shown inFIG. 8. If a button has been selected,922,STB100 at924 saves in dynamic memory1230 (shown inFIG. 8) the identity of the channel currently being viewed bysubscriber70.STB100, at924, also erases the screen button, thus providing feedback tosubscriber70 that the button has been selected.
After the channel has been saved and the button erased, at924,STB100 enters the interactive application state,926. Ininteractive application state926,STB100 establishes an interactive session withinteractive server5 ofvideo service provider1 over the network by sending a message containing the ICAP usingWAN communications processor1234 and upstream modulator1236 (shown inFIG. 8 and described above) overcoaxial distribution system66, and viaremote terminal65 andnetwork service provider10 tointeractive server5 of video service provider1 (shown inFIG. 1).
STB100 remains in the interactive application state,926, as long as the interactive application invoked by the ICAP and provided byvideo service provider1 has not ended or been terminated by subscribingviewer70 usingIR controller1232. If either of these events are detected bySTB100, at928,STB100, at930, retrieves fromdynamic memory1230 the earlier-stored identity of the channel originally being watched and issues a command to eithervideo decoder1220 and digital tuner/demodulator1218, or to secureprocessor subsystem1212 andanalog tuner1210 to retune to that original channel. Also at930,STB100 deletes the ICAP fromdynamic memory1230.STB100 then returns to theidle state900.
In addition to testing inidle state900 for the reception of video frames and whether a screen button has been selected,STB100 also conducts a further check. If, at902, a video frame has been received but no ICAP has been detected, at906,STB100 checks for a “remove button” message in the VBI of the video frame (or in any other suitable in-band or out-of-band signaling path).STB100 also periodically checks whether the timer, set at916 or920, has expired. If either a “remove button” message has been received or the expiration of the timer has been detected at932, thenSTB100 at934 erases the screen button and deletes the ICAP fromdynamic memory1230, if one had been previously stored.STB100 then returns to itsidle state900 and continues checking for video frames, the selection of a screen button, remove button messages and timer expirations.
STB Processing where an Application-Specific Interactive Callback Address and Button Overlay are Both Transmitted with the Program
Referring toFIG. 12, processing bySTB100 in connection with the fourth embodiment of the system and method according to the present disclosure is shown. In this embodiment, the button indicating the availability of an interactive program is inserted into the signal at its point of origin and thus need not be overlaid bySTB100.
TheSTB100 process begins when thesubscriber70 turns on theSTB100 to view a program. TheSTB100 process initializes into the idle state,1000. While in the idle state,1000, theSTB100 checks a number of conditions: it checks whether a video frame has been received; whether a screen button has been selected by viewingsubscriber70; and whether a timer has expired by exceeding a threshold value.
If a video frame has been received,1002,STB100 enters a new state,1004, in which it tests the video frame, particularly the VBI of that frame, for the presence of an ICA associated with the program being reviewed. As discussed elsewhere in this application, according to the present disclosure, the ICA could alternatively be transmitted to theSTB100 by any suitable in-band or out-of-band means.
IfSTB100 detects, at1006, no ICA in the given frame, the process returns to the idle state,1000. However, if an ICA is detected in the received frame,1008,STB100, at1010, stores the ICA, for example in dynamic memory1230 (shown inFIG. 8).STB100, also at1010, sets the timer. TheSTB100 then returns to the idle state,1000. No button needs to be drawn, since a button will be present, if at all, in the received broadcast signal and thus on the screen.
When in the idle state,1000, in addition to testing whether a video frame has been received, as described above,STB100 also tests whether a screen button, if present on the screen, has been selected by subscribingviewer70.STB100 can access this information, available fromIR controller1232, viasystem bus1224, as shown inFIG. 8. If a button has been selected, at1012,STB100, at1014, saves in dynamic memory1230 (shown inFIG. 8) the identity of the channel currently being viewed bysubscriber70.STB100, at1014, need not erase the screen button, since it was not responsible for overlaying the button. Rather, at the desired time, the button is removed at the point of origin, where it was inserted into the video stream.
After the channel has been saved at1014,STB100 enters the interactive application state,1016. In the interactive application state,1016,STB100 establishes an interactive session withinteractive server5 ofvideo service provider1 over the network by sending a message containing the ICA.STB100 sends the message containing the ICA usingWAN communications processor1234 and upstream modulator1236 (shown inFIG. 8 and described above) overcoaxial distribution system66, and viaremote terminal65 andnetwork service provider10 tointeractive server5 of video service provider1 (shown inFIG. 1).
STB100 remains in theinteractive application state1016 as long as the interactive application invoked by the ICA and provided byvideo service provider1 has not ended or been terminated by subscribingviewer70 usingIR controller1232. If either of these events are detected bySTB100, at1018, however,STB100 at1020 retrieves fromdynamic memory1230 the earlier-stored identity of the channel originally being watched.STB100 then also issues a command to eithervideo decoder1220 and digital tuner/demodulator1218, or to secureprocessor subsystem1212 andanalog tuner1210, to re-tune to the original channel. Also at1020,STB100 deletes the ICA fromdynamic memory1230.STB100 then returns to theidle state1000.
In addition to testing inidle state1000 for the reception of video frames and whether a screen button has been selected,STB100 also conducts a further check. If at1002 a video frame has been received but no ICA has been detected at1006,STB100 checks periodically whether the timer, set at1010, has expired. If either the screen button has been removed from the broadcast image at its source or the expiration of the timer has been detected at1022, thenSTB100 at1024 deletes the ICA fromdynamic memory1230, if one had been previously stored.STB100 then returns to itsidle state1000 and continues checking for video frames, the selection of a screen button, remove button messages and timer expirations.
Signaling Between the Set Top Box and the Interactive Server Associated with Establishing an Interactive Session
When asubscriber70 has seen an icon or button on the screen during a particular program, and wishes to view the interactive application, he or she “pushes the button” by sending the appropriate signal to theSTB100 using a suitable user input device, such as IRremote input device1233. The signal may be any preselected signal the input device is capable of generating, and theSTB100 is capable of receiving. It could, for example, be one or more existing keys on the IRremote input device1233. When theSTB100 receives this preselected signal while instate712,812,912 or1012, depending on the embodiment (in whichstate STB100 tests for the selection of a button by viewingsubscriber70, as described), theSTB100 saves the present channel number indynamic memory1230, initiates an application for setting up an interactive session, including sending a session request message to thenetwork service provider10. As defined above, the L1 service, or video dial tone, provided bynetwork service provider10 represents the data communications phase of a system for providing video services and is the part of that system that is regulated by the FCC. As described above in connection withFIG. 1, thenetwork service provider10 operates the following components: theswitch12, thenetwork controller16, thesignal processing equipment14, and theRF equipment25, and interfaces with thedistribution network50.
Thenetwork service provider10 at the request ofSTB100, is responsible for establishing a session betweenSTB100 and theinteractive server5. If a connection with theinteractive server5 is properly established by thenetwork service provider10 and theinteractive server5 is up and capable of conducting an interactive session, theinteractive server5 sends a session accept message back to thenetwork service provider10, which in turn sends a session accept message to theSTB100.
Once theSTB100 has received the session accept message from theinteractive server5 by way of thenetwork service provider10, it uses the ICA to send an application ID request message directly via the network service provider10 (i.e., thenetwork service provider10 service needs only to transmit but not process the message) indicating theapplication server5 with which the session is requested. Thenetwork service provider10 sets up an interactive session with the indicatedinteractive server5 and sends a confirmation to theSTB100. When it has received this confirmation theSTB100 issues a request to thenetwork service provider10 to connect with theinteractive serve5. Thenetwork service provider10 then notifies theinteractive server5 of the request. If theinteractive server5 is able to respond to the request, thenetwork service provider10 establishes a connection between theinteractive service5 and theSTB100, and the interactive session proceeds.
The foregoing describes a preferred embodiment of the present disclosure. Various changes and modifications to what is disclosed may be adopted or implemented without departing from the scope of the disclosure.