Entitlement management across a plurality of user devices and, more particularly, proactively refreshing entitlements across active user devices after subscription changes and program purchases.
Subscription-based content distribution systems provide program content to users on their user devices, such as a set-top box coupled to a television (“TV”) or a smart device, such as smartphones and tablets, for example, which have integral display screens. Users may purchase respective subscription packages that entitle the subscriber to a predetermined grouping of channels and services. Subscription packages may include various combinations or bundles of some of the available channels and services, or for all of the available channels and services provided by the content delivery system. Services may include on-demand services and pay-per-view services, for example. Each package has a respective cost.
Program content is provided to user devices in program signal streams. User devices tune to selected channels to receive program content associated with that channel. To ensure that program content can only be viewed by paying subscribers, the program signal streams are typically scrambled. Decryption keys for descrambling respective program signal streams or programs are provided to set-top boxes and smart devices of user's entitled to view such program content when a user device is turned on and rebooted.
A listing of program content provided by a content delivery system, including the broadcast time and channel, is typically displayable by a user device on an electronic program guide.
In some electronic program guides, such as the program guide 10 in
If a locked channel or program is selected for viewing, a popup may appear on the user's TV to the effect that the subscriber is not authorized to watch the channel but could upgrade their subscription by calling a phone number of a customer service representative, or via their set-top box or smart device, for example.
In known content delivery systems, when a user updates their subscription and/or purchases a program via their set-top box, a cloud service or other component of the system obtains a list of the user's set-top boxes and their connection information and pushes the updated entitlements to the user's set-top boxes. The pushed entitlements will be received by the user's active set-top boxes so that channels in the updated subscription and/or purchased programs may be viewed on TVs connected to any of those active set-top boxes. The updated entitlements are provided to all the set-top boxes, including the set-top boxes that were off when the purchase was made, when a respective set-top box is turned on and rebooted
The content delivery system instructs the respective user device on which the purchase was made to remove the locked icon on the EPG displayed by the respective user device and a provides a key for the purchased channel(s) or program to the respective user device. This may be accomplished in real-time or near real-time. Referring to
The right to view program content on a channel and the right to view an individual program is referred herein as an “entitlement”. When a user has an entitlement to a channel or program, it will be indicated on the EPG or other user interfaces on their user device, such as on an on demand or pay-per-view page, and they will be able to view the channel and/or program with their user device.
While a user may be able to watch a channel in the purchased subscription or a purchased program on the set-top box through which the user made the purchase of the new subscription or program, and other active set-top boxes, known content delivery systems do not enable a user to also watch the purchased channels or programs on active smart devices, such as smart phones and tablets, for example, until those smart devices are turned off, turned on, and rebooted. In addition, known content delivery systems do not enable updated subscriptions and/or programs purchased on a first smart device to be viewed on that smart device or other active smart devices. For example, if a user purchases a new subscription on a smart device while a set-top box connected to a TV is also active, the user will not be able to watch any of the channels in the newly purchased subscription on the set-top box because the set top box has not been updated with the current entitlements. The set-top box would need to be turned off, turned on, and rebooted before it is updated with the current subscriptions and/or purchases. Similarly, active user devices will not be updated to reflect a new purchase when the purchase is made through a customer service representative until the user device is turned off, turned on, and rebooted. These issues may negatively impact a customers' experience as they cannot enjoy the services that they have purchased via the desired user device, which can be annoying.
In accordance with embodiments of the invention, all active user devices are updated to reflect current purchases made on any one of the user devices or through a customer service representative. In one example, purchases made on set-top boxes are reflected on active smart devices, purchases made on smart devices are reflected on active smart devices and active set-top boxes, and purchases made on set-top boxes are reflected on active set-top boxes and active smart devices.
In one example, all the active user devices may be updated in in near-real time, without turning off, turning on, and rebooting the active user device. In examples of embodiments of the invention, near-real time may be from one second to a few seconds, such as up to 3 to 5 seconds, up to about a minute, such as 30 seconds or 60 seconds, for example, depending on the capabilities of the network.
In accordance with an embodiment of the invention, a method of managing entitlements to program content of a content delivery system is disclosed comprising receiving a request, from a user, by a processing device, to subscribe to a video package or to purchase a video program from the content delivery system. The user has at least one user device configured for watching the program content. At least one entitlement resulting from the subscription or purchase is calculated and connection information for each at least one user device is retrieved from database. The at least one calculated entitlement is pushed to each at least one user device by the processing device, via a network, using the connection information.
The request may be received from a respective set-top box, a respective smart device, or via a customer care representative, for example. Calculating entitlements may comprise identifying codes corresponding to the subscription or purchase and identifying respective channels in the subscription or a channel on which the purchased program is provided based, at least in part, on a mapping of codes to channels for a geographic location of the user. Pushing at least one entitlement may comprise pushing at least one instruction to each at least one user device to update a user interface displayable by the user device to reflect that the user is entitled to a respective channel and/or program. The at least one instruction may comprise an instruction to remove an icon associated with the respective channel and/or program indicative of the respective channel and/or program being prevented from viewing by the user. Program content may be provided to each at least one user device in a scrambled format and the method may further comprise pushing at least one key to each at least one user device to descramble received program content in the subscription or to descramble the program. The method may comprise receiving the request from a set-top box and pushing the at least one entitlement to all set-top boxes of the user and to all smart devices of the user; receiving the request from a smart device and pushing the entitlements to all set-top boxes of the user and to all smart devices of the user; or receiving the request via a customer service representative and pushing the at least one entitlement to all set-top boxes of the user and/or to all smart devices of the user.
In accordance with another embodiment of the invention, a system for managing entitlements to content of a content delivery system is disclosed comprising at least one database for storing mappings between video packages provided by the content delivery system and respective channels for receiving the programs in the video packages; mappings between individual programs and respective channels for receiving the individual programs, based, at least in part, on a geographic location of a user; and connection information for user devices of respective users. The system further comprises a processing device configured to receive a request, from a user, to subscribe to a video package or to purchase a program from the content delivery system, where the user has at least one user device on which to watch the programs. The processing device is further configured to calculate at least one entitlement resulting from the subscription or purchase, based, at least in part, on the mappings in the at least one database, and obtain connection information for each at least one user device of the user from the at least one database. The processing device is further configured to push the at least one entitlement to the at least one user devices of the user, via a network, using the connection information. The processing device may be configured to implement other features as described above and herein.
In accordance with another embodiment of the invention, a video streaming device is disclosed comprising storage for storing a video streaming platform client and a graphical user interface including an electronic program guide. The video streaming device further comprises a processing device configured to receive entitlements pushed by a content delivery system while active, via a network; update the graphical user interface to indicate that a user is entitled to view respective channels and/or programs, based, at least in part, on the received entitlement; and display the updated graphical user interface. The video streaming device may be a set-top box or a smart device, for example. The smart device may be a smart phone or a table, for example.
The processing device may be configured to update the graphical user interface by removing an icon associated with the respective channel and/or program indicative of the respective channel and/or program being locked from viewing by the user. The at least one processing device may be configured to receive program content from the content delivery system and cause display of the received program content that the user has received an entitlement to, on a display device associated with the video streaming device. The received program content may be scrambled, and the processing device may be configured to receive at least one key for descrambling scrambled program content from the content delivery system, via a network; descramble the scrambled program content using the at least one key; and cause display of the descrambled program content. While the term set-top box is used in the description, it should be understood that the term “set-top box” also refers to set-top terminals.
As discussed above, purchases of new subscriptions with and programs from a content delivery system made via a respective set-top box and/or smart phone, or a customer service representative, may not be reflected on all of a customer's active platforms and devices in real time or near real-time. A user may not, therefore, be able to access the channels of the recently purchased subscription or the recently purchased programs.
As used herein, the term “entitlement” refers to an ability to view a program or program content on a one or more channels based on a purchase of the program or purchase of a subscription that includes the one or more channels. A user may watch programs and program content to which they have entitlements on their user devices, such as set-top boxes coupled to display devices, such as TVs, and on their smart devices. In accordance with embodiments of the invention, after a purchase is made on a user device, such as a user's smart device, other active user devices, including a set-top box that is also active, will also be updated with the purchased entitlement(s). In some content delivery systems, a program or channel to which a user is not entitled may be indicated by a “lock icon” on an electronic program guide (“EPG”) or other such graphical user interface. In this case, in accordance with embodiments of the invention, when an entitlement is received to a locked channel or program, the channel or program is “unlocked,” which includes removal of the lock icon on the EPG. Alternatively, an EPG or other such graphical user interface may only display programs and channels to which a user is entitled or provide such an option to the user. This indicates to the user that a program or channel is available for viewing. In this case, in accordance with embodiments of the invention, the EPG or other such graphical user interface is modified to indicate the availability of the program or channel. In both cases, it is not necessary for the user to reboot their set-top box or IP video App by turning their set-top box off and on again, or by turning the IP video App off and on again on their smart device, to watch a purchased channel or program.
In one example, each new subscription package or program purchase through any available platform (via a user device or a customer service representative, for example) is provided to a common component of the backend of a content delivery system, such as to a billing system of the backend of the content delivery system. Changes in subscriptions and purchases in the customer account are detected, new entitlements are calculated based on the updated subscription and purchases, connection information for all of the user's devices are identified, and the entitlements are pushed to all the user devices based on the connection information. All the user's active devices can receive the pushed entitlements so that the user can watch the channels in the purchased subscription or the purchased program on any of the active devices, without having to turn the active devices off and on again. If the pushed notification is not confirmed by a user device, the backend retries pushing of the entitlements. Retries may be limited to a predetermined number of times. In one example, all a persistent connection is made with each active user device with a push notification service of the backend across a network. Web sockets or Server-sent events may be sent across the Internet or another such network to create the persistent connection. It is noted that other types of video streaming devices may interact with and obtain program content from the content delivery system, such as Roku and Apple TV streaming video devices, for example. In one example, any video streaming device that supports Web sockets or Server-sent events for creating persistent connections with a content delivery system may be used. A streaming media device may be configured to support Web sockets or Server-sent events by downloading an application (“App”) of the content delivery service, for example.
The distribution network 140 may be any one of a number of conventional broadband communications networks that are available, such as a fiber optic network, a telecommunications network, a cable television network and the like. The distribution network 140 may comprise one or more of an optical network, a hybrid fiber coax (“HFC”) network for cable, an IP network, a Plain Old Telephone System (POTS) for ADSL, a terrestrial broadcast system like MMDS or LMDS, or a satellite distribution system like DBS, for example.
The headend 110 may include a cable modem communication system (“CMTS”) 150. Other components of the headend 110 related to providing program content to subscribers, such as a telemetry data capture device (“TDCD”) configured to receive data signals from the cable modem communication system (“CMTS”) 150, a session controller, a content asset module, user interface asset module, and a transport processor, for example, which are known in the art, are not shown or further discussed because they do not relate to embodiments of the present invention. These and other components of the head end 110, and the operation of the head end are described in more detail in US Patent Publication No. 201710230211, for example, which is assigned to the assignee of the present application and is incorporated by reference herein.
The Hub-3 in this example includes a router 152 configured to receive downstream data from the head end 110 and propagate upstream data toward head end 110. In addition, in this example, the Hub-3 may also include a cable modem termination system (“CMTS”) 154 configured to propagate downstream data toward the set-top box STB-3 via the distribution network 140 and to receive upstream data from the set-top box STB-3 via the distribution network 140. The other hubs 120 may be similarly configured.
A conditional access server (“CAS”) 152 is coupled to the headend 110 via a network. As is known in the art, the CAS 152 receives program content from a variety of sources (not shown) and scrambles the program content. One or more keys for descrambling the scrambled program content may be encapsulated in an entitlement management message (“EMM”). EMMs are provided by the CAS 152 to the headend 110, which may send the EMMs to respective set-top boxes 130 via the CMTS 150, for example, through the hubs 120 and the distribution network 130, for example, in a manner known in the art. The key(s) are then used to descramble the scrambled program content, in a manner known in the art.
The system 200 also includes a portion of the backend 220 of the CDS 100 related to updating entitlements. In this example, the backend 220 resides at least partially in the cloud 222. The cloud 222 may be a private cloud, for example. The cloud 222 may also be hosted on a cloud platform, such as Amazon AWS or Microsoft Azure, for example.
An upgrade service cloud App 224, an entitlements service cloud App 226, a push notification service cloud App 230, and a care service cloud App 232 are run by one or more virtual processing devices (PROC) 234, as is known in the art. A billing system 228 is also provided in the backend 220. The billing system may or may not be in the cloud 222. If not in the cloud 222, the billing system may be run by a computer or server in a data center, for example. Other virtual components, such as virtual memory (MEM) 236, virtual random access memory (“RAM”) or virtual dynamic RAM (“DRAM”), for example, and virtual storage (STOR) 237, such as a one or more hard drives or solid state storage devices (“SSDs”), are also provided, as needed. Additional cloud Apps are shown in
In this example, an electronic program guide (“EPG”) cloud service 238 is also provided in the backend 220 to provide EPGs to set-top boxes, such as the STB-3, for display on user devices, such as the TV 212. In other examples, the EPG may be provided by a third party via a network, for example. The set-top box 208 communicates with the backend 220 via a network, such as the Internet 240 or a private network, for example.
A content delivery network (“CDN”) 242 provides program content to smart devices, such as the smart device 244. The CDN 242 works in conjunction with a digital rights management system (“DRM”) 243, in a manner known in the art. The DRM 243 may also be a cloud App in the backend 220 or may be a separate system, for example. The program content may be provided through the Internet 240 or a private network to smart devices, such as the smart device 244, for example, in a scrambled format. The DRM 243 also provides license keys for descrambling programs and channels to the CDN 242, which then provides the license keys to a respective smart device when requested by a respective smart device, as is known in the art. License keys may be provided to respective smart devices via a network, such as the Internet or a private network, for example,
An IP TV App 246 is shown residing on the smart device 244. The IP TV App 242 may be an iOS, Android, Roku, Apple TV, or other such App enabling access to program content on the smart device 244.
The upgrade service cloud App 224 is a web application that receives requests for service upgrades from set-top boxes and smart devices, such as the set-top box 208 and the smart device 240, processes the request, and returns a response to a user 302, via the set-top box or the IP TV App. The care service cloud App 232 is a web application that handles requests from a customer care agent, such as the customer care agent 246 in
The entitlement service cloud App 226 stores a mapping from the account subscription or subscriptions to actual TV channels in an entitlements database, shown in
The billing system 228 handles the billing and accounting aspects of the CDS 100 including user account information, user billing, user payments, and user subscriptions. The billing system 228 stores billing codes for each subscription and program purchase of each user. The billing system 228 may include one or more services and one or more databases, for example (not shown). User account information may include connection information for user devices, for example.
The entitlement system cloud App 226 receives the updated billing codes assigned by the billing system 228 in an event and determines the channels corresponding to the billing codes in the user's account based on the mapping. Once determined, the calculated entitlements are stored in the entitlements database 324 in association with the user's account number, for example. The current entitlements do not, therefore, need to be calculated again unless there is a change in a subscription. After calculating the user's entitlements, the entitlements system cloud App 226 posts an event to the push notification service cloud App 230 including the calculated channels.
The push notifications service cloud App 230 pushes the new entitlements, based on the new or updated subscriptions of the user 302, to the user on the user's active device, either the set-top box 208 or the smart device 240.
The billing system 228 stores account information for all the users of the system 200. When a purchase of a new subscription, on demand program, or a rental program is requested by a user 302, the billing system 228 may confirm that the user is an active subscriber, that the user is current in payments, and/or that if the purchase is made, a credit limit on the account will not be exceeded, for example.
As mentioned above, each user's account with the billing system 228 includes billing codes associated with the subscriptions and programs purchased by the user. When there is a change in a subscription or a new program is purchased, the billing codes for the current subscription or program are updated by the billing system 228. The billing codes identify the channels and programs the user is entitled to view on their devices based on the user's purchased subscriptions and purchased programs.
All changes in subscriptions requested by users via set-top boxes, smart devices, and customer care agents in this example are provided to a common component, in this example the billing system 228, in accordance with an embodiment of the invention. The subscription changes are provided from the billing system 228 to the entitlements service cloud App 226, which then provides the changes to the push notification service cloud App 230. Additional cloud Apps may be provided, as discussed below.
Messages may be sent between the backend 220 and set-top box 208 and the smart device 240, as well as among components in the backend 220, via HTTP, HTTPS, or UDP, messages, for example, as is known in the art. Messages may be sent between the set-top box 208 and the Internet 240, and between the Internet and the backend 220, via messages, for example. Messages may be sent between a smart device 244 and the Internet 240, and the Internet and the backend 220 via HTTPS message, for example. Messages between components of the backend 220 may be HTTP messages, because the cloud 222 is a secure environment.
In other examples, some or all of the functions performed by the backend 220 described herein may be performed by one or more non-virtual processing devices, such as one or more central processing units, microprocessors, or microcontrollers, residing on one or more computers or servers under the control of suitable software, or combination of software and hardware, for example, as discussed with respect to
An upgrade service cloud App 308 corresponds to the upgrade service cloud App 224 of
A billing system 312 corresponds to the billing system 228 of
A care service cloud App 314 corresponds to the care service cloud App 232 of
A billing event handler cloud App 316 in this example receives new billing events generated by the billing system 312 related to changes in billing codes when a new subscription and/or program is purchased. The billing event handler cloud App 316 posts new billing code events to a billing events queue cloud App 318, which stores the new billing code events. The billing events queue cloud App 318 may be configured to send a confirmation message to the billing event handler cloud App 316 when a new billing code event is received. If a confirmation message is not received within a predetermined period of time, the billing event handler cloud App 316 may store the new billing code event in a billing code event handler database 319. The billing event handler cloud App 316 may be configured to periodically retrieve stored events from the billing event database 319 and retry posting the retrieved billing code events to the billing events queue cloud App 318.
A billing events consumer 320 monitors the billing events queue 318 for new billing code events. When a new billing code event is identified, the billing events consumer 320 retrieves the event and identifies the user account to which the billing code event relates. The billing events consumer 320 forwards the billing code event and the identified user account to the billing mirror database 314. The billing events consumer 320 also informs an entitlement system cloud App (“entitlements system”) 322 that a change has taken place in the user account. The billing events consumer 320 may process the events, if necessary, to format the event for the entitlements system cloud App 322, for example.
The entitlements system 322 stores a mapping of each available subscription, each on demand program, and each pay per view program to respective TV channels in an entitlements database 324. Since the channels that respective programs from a respective source (NBC, ABC, CBS, HBO, for example) may air on may vary based on the geographic location of the user 302, the channels the user's set-top box 304 need to tune to in order to display a respective program need to be determined. For example, program content provided by CBS may air on channel 2 in New York and on channel 7 in Florida. The mapping correlates the codes associated with respective subscriptions with corresponding channels in respective geographic areas. In one example, each package, individual on-demand program, individual rental program, and other individual service is associated with a respective code, as discussed above with respect to the billing system 312. One or a few billing codes may identify multiple or all of the corresponding channels. The billing codes may be correlated with respective channels in respective geographic areas in one or more tables, for example. Determining the actual TV channels a respective user 302 has access to, based on their subscription(s), is referred to as “calculating” the user's entitlements. Once calculated and stored in an entitlements database 324, the calculated entitlements for a respective user 302 do not need to be calculated again unless there is a change in the user's subscription. The mapping is applicable to the set-top box(es) 304 and the smart device(s) 306 of the user 302.
When the entitlements system 322 is informed of a new billing code event related to a respective user account by the billing events consumer 320, the entitlements system retrieves all or at least the new billing codes associated with the user's account from the billing mirror database 314, based on an identification of the respective user account. The entitlements system 322 then calculates the entitlements, as described above. After calculating the user's entitlements, the entitlements system 322 stores the calculated entitlements an entitlements database 324 and posts an event to a push notification service cloud App 326, which corresponds to the push notifications service cloud App 230 in
The push notifications service cloud App 326 pushes the new entitlements, based on the new or updated subscriptions of the user 302, to the user 302 on the user's active device or devices, either or both the set-top box 304 and IP TV App 306 on the user's mobile device, in this example. Connection information for each device (each set-top box 304 and mobile device having an IP TV App 306) is stored in a client connection database 328. The push notifications service App 326 obtains the connection information for a respective device from the client connection database 328. In one example, a failed event database 330 stores failed push notification events for retry by the push notification service cloud App 326 at a later time, as discussed further below. Providing the failed event database 330 and retrying pushed notifications are optional.
It will be apparent to those skilled in the art that alternative architectures of the backend 300 of
The video platform client 404 also sends a “get entitlements” request to the entitlement system App 416, at Step 418. The entitlement system 416 retrieves the entitlements for the user 402 from the entitlements database 419, at Step 422. The entitlements may be located in the entitlements database 419 by searching for the account number of the user whose device is being boot up, for example. The entitlements database 419 returns the entitlements for the requesting video platform client 404 to the entitlement system 416, at Step 424.
The entitlement system 416 returns the entitlements to the video platform client 404. The video platform client 404 displays the received entitlements to the user 402 on the TV or mobile device associated with the video platform client.
If the entitlement system 416 cannot retrieve the entitlements from the entitlements database 419 because the entitlements are not yet stored in the entitlements database, an alternative flow 428 is followed in this example in which the entitlement system requests the account information, including the subscriptions and programs purchased by the user 402, from the billing data mirror database 420 (“billing mirror DB 420” in
In addition, keys for decoding the scrambled program content provided on the channels the user is subscribed to and the programs purchased by the user are provided to the video platform client 404 of the user device 405.
In
The billing system 610 validates the user 602, confirms in this example that 1) the user's account is current (fully paid); 2) the purchase meets the user's credit limits; and 3) the user is a subscriber to video services provided by the content delivery service, for example, at Step 634, as discussed above. The billing system 610 sends a purchase status message to the upgrade service 608, at Step 636, which then sends a purchase status message to the STB video platform 604 for display to the user 602, at 640. If the billing system 610 determines that the user meets all the requirements for the purchase, the purchase status message is a purchase acknowledgement message. If the billing system 610 determines that the user 602 does not meet all the requirements for the purchase, the purchase status message is a purchase denial message. If a purchase denial message is received, the user 602 may then call customer service to resolve the issue by increasing their credit or making a current payment, for example.
If the billing system 610 determines that the user meets all the requirements for the purchase, at Step 634, the billing system also generates a billing code event, which includes the new subscription or program purchase information, including billing codes for the purchased subscription or program. The billing code event is published to the billing event handler 612, at Step 642. The billing event handler 612 provides the billing code event to the billing events queue 614, at Step 644. In another example, the billing system 610 could provide billing code events directly to the message queue 614, in which case the billing event handler 612 would not be needed.
The billing event consumer 616 periodically checks the message queue 614 for a new posted billing code event, in Step 646. The message queue 624 may be checked from about one 2 second to about 60 seconds or more, for example, such as every second, every few seconds, such as 3-5 seconds, every 30 seconds, every 60 seconds, or another time period, for example, depending on how fast it is desired to push entitlements to user devices and the capabilities of the network. When a new posted billing code event is found, the new posted billing code event is consumed by the billing event consumer, at Step 647. The billing event consumer cloud App 616 then sends an entitlement change notification to the entitlement system 618, based on the consumed billing code event, at Step 648. The entitlement change notification includes the billing code or codes of the purchased subscription or program and an identification of the user account, which may be a user account number, for example. The billing event consumer 616 also forwards the billing codes in the billing code event to the billing mirror database 622, in Step 649. The billing mirror database stores the billing code in association with the user account number.
In the portion 600B of the method 600 that continues in
The entitlement system 618 calculates the current entitlements in light of the updated account information, at Step 654. The entitlement system 618 stores the updated entitlements in the entitlements database 620 so that the updated entitlements are available the next time a user devices boots, in Step 656. The entitlement system 618 also sends the updated entitlements to the push notification service cloud App 624, at Step 658.
The push notification service cloud App 624 retrieves connection information for all of the devices of the user 602, including the user device making the purchase, from the client connection database 626, in Step 660. The client connection database 626 returns the connection information to the push notification service cloud App 624, in Step 662.
Using the connection information, the push notification service 624 in this example pushes all the entitlements, including the new entitlements, to the IP video platform(s) 606 of the one or more smart device(s) 606a of the user, at Step 664. The push notification service 624 in this example also pushes all the entitlements, including the new entitlements, to the one or more STB video platform(s) 604 of the one or more set-top boxes 604a of the user. In other examples only the new entitlements may be pushed to the user devices in Step 664 and 666.
The pushed entitlements include instructions to the set-top box(es) 604a and smart devices 604b to remove the icon indicating that the channel or program is locked, such as the icon 12 in
It is noted that in this example, entitlements are pushed to all of the user devices for which connection information is available in the client connection database 626. Only active devices, however, will receive the entitlements and update the EPG displayed on the active devices. As discussed above, the user devices that are not currently active will receive all the current entitlements when they are turned on and rebooted.
Unlocking locked channels after receiving entitlements during boot up by set-top boxes and smart devices is well known in the art. The user's set-top box(es) and smart device(s) may unlock channels when they receive pushed entitlements in the same manner that they unlock locked channels after receiving entitlements during boot up, for example. In another example, the EPG cloud App 238 in
The IP video platform 606 displays the updated entitlements to the user by displaying the updated EPG on a display screen on the smart device 244 of
The IP video platform 606 of a respective smart device 606 returns a confirmation message to the push notification service 624, in Step 672. The STB video platform 604 of a respective set-top box 604a returns a confirmation message to the push notification service 624, in Step 674. The confirmation message may be an HTTP status message, such as an HTTP status message 200, which indicates that the message was successfully sent and received, for example.
After the predetermined period of time without receiving a confirmation message from the IP video platform 606, for example, in Step 675, the push notification service 624 may send the push notification to the retry (or failed event) database 677 for storage, in Step 678 in Step 678, so it can be sent again at a later time. Similarly, if the push notification service 624 does not receive a confirmation message from the set-top box platform 604, and the other active devices of the user, within the predetermined period of time, or if the push notification service receives a failure message from set-top box platform, the push notification service 624 may send the push notification to the retry (or failed event) database for storage, which is not shown in
After a second predetermined period of time after storage of the push notification in the retry database 677, for example, the push notification service 624 is configured to retrieve the pushed notification, in Step 679 and send the retrieved push notification to the IP video platform 606 and other user devices that have not sent a confirmation message or from which a failure message has been received, in Step 680. Steps 675-680 may be repeated until a confirmation message is received from all the user devices or the process times out. For example, the push notification service 624 may be configured to send a first retry one (1) second after failure to receive a confirmation message or after receipt of an HTTP failure message, for example. The push notification service 624 may be further configured to send the next and subsequent retries in an exponentially increasing pattern, such as after 3 seconds, 5 seconds, and 8 seconds after failure to receive a confirmation message or from receiving a failure message, for example. In another example, the push notification service 624 may be configured to send another push notification in constant intervals, such as every 5 seconds, for example. Retries may continue for a predetermined number of times, such as 3 to 10 times, for example. After the predetermined number of retries, the push notification service 624 may stop attempting to send push notifications. The user 602 may then need to contact customer service for assistance, for example.
The CSR 676 sends a purchase message to the billing system 610, at Step 684. The purchase message includes information concerning the subscription/program purchased and the user 602, for example. As above, the billing system 610 validates the user 602 by confirming that the user's account is current, the purchase meets the user's credit limits, and/or that the user is active, for example, at Step 686. If the billing system 610 determines that the user meets all the requirements for the purchase, the billing system 610 generates and sends a purchase event message to the billing event producer 612, at Step 688.
The additional Steps are similar to those described with respect to
It is noted that EMMs are not provided to smart devices on boot up as they are for set-top boxes. Instead, license keys to stream channels and programs are retrieved by a respective smart device from a DRM, such as the DRM in
In response to the tuning request, the video server 625 provides streaming session information, including the streaming URL and the DRM token for the tuned to channel to the smart device 606a, in Step 629. The smart device 606a sends the received DRM token to the DRM 631, with an identification of the smart device and the user, for example, in Step 633. The DRM 631 sends the license keys for the requested DRM token, in Step 635. License keys are stored by the DRM 629 in a database (not shown). The license keys may also be sent to the smart device 606a via the Internet 240 of
While in the examples above, processes are performed by cloud Apps under the control of one or more virtual processing devices and storage devices, corresponding processes may be performed by one or more non-virtual processing devices and other non-virtual components, such as non-virtual databases.
The database(s) 704 represents one or more databases corresponding to the offers database 310, the billing data mirror database 314, the entitlements database 324, and the failed event (or retry) database 330 of
A set-top box 724, a smart device 726 including an IP TV App 728, and a care agent 730 are shown in communication with the hardware platform via a network, such as the Internet 732, for example.
The computer 702 may also be configured in whole or in part to implement aspects of embodiments of the invention by hardware, such as an application-specific integrated circuit (ASIC), or by a combination of hardware and software, for example.
The processing device 802 controls operation of the user device, under the control of software, a combination of hardware or software, or by hardware, such as an ASIC, for example. The processing device 802 may be a central processing unit, a microprocessor, or a microcontroller, for example.
If the user device 800 is a set-top box, the processing device 802 may send program signals for display on a TV and may send control signals to the TV based on the input of an input device 810 to control certain TV functions, such as turning on and off the TV, controlling the volume of the TV, etc. In addition, if the user device 800 is a set-top box, the input device 810 is a remote control and input components on the set-top box itself, for example. If the user device 800 is a smart device, programs are displayed on the display screen of the smart device and input device may be a keyboard of the smart device, for example.
The storage 804 in this example is provided to store software programs for controlling operation of the processing device 802, for example. The storage 804 may also store recorded programming content in the case of a set-top box DVR, for example. A video platform client (“video platform”) 812 is shown in the storage 804. As discussed above, if the user device 800 is a set-top box, the video platform 812 is a set-top box video platform, and if the user device 800 is a smart device, the video platform is an IP streaming video platform.
The processing device 802, under the control of the video platform 812, determines the channel to be tuned to, based on the input of the input device 810. The PSS block 808 in a set-top box represents components of the user device 800 dedicated to tuning to a respective program stream of a plurality of program signal streams provided by the headend of the content delivery system and selected by a user, descrambling the programming content, which may be in the form of MPEG program signals, for example, performing trick functions on the programming content, and performing other functions related to the program signal stream, as is known in the art, for example. These components and their operation are well known in the art. If the user device 800 is a set-top box, the set-top box may provide a program signal stream to the TV via a coaxial cable, for example.
If the user device 800 is a smart device, the processing device 802 descrambles program content with license keys and causes display of program content under the control of the IP video platform 812.
The memory 806, which may be random access memory or virtual dynamic RAM (“DRAM”), for example, may store EMMs and license keys received from the headend or the CDN to descramble scrambled program content, depending on whether the user device is a set-top box or a smart device. The memory 806 may also store the EPG 813 received from the backend, such as the backend 220 of
Examples of implementations of embodiments of the invention are described above. Modifications may be made to those examples without departing from the scope of the invention, which is defined by the claims, below.