Patent ID: 7573875

Claim:
A method for proactively providing a redundant multicast tree in an Internet Protocol Television (IPTV) network, comprising: establishing an operating multicast tree comprising a first set of nodes and components, the first set of nodes and components of the operating multicast tree operable to process an operating data stream to facilitate delivery of one or more channels to one or more endpoints; proactively establishing a redundant multicast tree comprising a second set of nodes and components, the second set of nodes and components: comprising at least one node or at least one component that is redundant of a corresponding node or component in the first set of nodes and components of the operating multicast tree, and that is not in the first set of nodes and components of the operating multicast tree; and operable to process a redundant data stream; and the IPTV network comprises a delivery server (D-Server) that comprises the one or more buffers, the one or more buffers comprising a first buffer and a second buffer; and buffering the operating data stream in the first buffer; buffering the redundant data stream in the second buffer; detecting a failure in the operating multicast tree, the failure affecting delivery of a particular channel to a particular endpoint, wherein the detecting step further includes a step of receiving from the particular endpoint a request for a unicast stream of the particular channel, the particular channel having been previously provided to the particular endpoint from the operating data stream buffered in the first buffer; accessing the redundant data stream buffered in the second buffer; determining whether the redundant data stream buffered in the second buffer comprises data for the particular channel of the request; providing, if it is determined that the redundant data stream buffered in the second buffer comprises data for the particular channel of the request, the particular channel to the particular endpoint using the redundant data stream buffered in the second buffer by: providing from the redundant data stream buffered in the second buffer a unicast stream of data for the particular channel; adding the particular endpoint to the redundant multicast tree as a node of the redundant multicast tree; and providing data for the particular channel from the redundant data stream buffered in the second buffer to the particular endpoint as part of the redundant data stream of the redundant multicast tree.