PEER-TO-PEER MULTI-PARTY VOICE-OVER-IP SERVICES
First Claim
1. A peer-to-peer processing node for participating in multi-party voice-over-IP services, the peer-to-peer processing node comprising:
- a distribution tree processor that;
establishes a peer-to-peer distribution tree to broadcast a composite audio signal from a root mixing node to a plurality of participating nodes, wherein a subset of the participating nodes are originating nodes that provide a respective audio stream output received by the root mixing node to produce the composite audio signal;
establishes overlay mesh interconnections among the participating nodes;
constructs a respective distribution tree from the respective node to every other node within the participating nodes;
distributes a respective performance characteristic for each respective distribution tree to each node within the participating nodes; and
performs an election protocol to determine an optimal root mixing node;
a mixing tree processor that identifies, independently of the distribution tree, a first intermediate mixing node from within the plurality of participating nodes; and
a mixer that provides to the root mixing node a mixing of respective audio stream outputs provided by a first subset of originating nodes to the mixer.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and computer program product for establishing multi-party VoIP conference audio calls in a distributed, peer-to-peer network where any number of nodes are able to arbitrarily and asynchronously start or stop producing audio output to be mixed into a single composite audio stream that is distributed to all nodes. A single distribution tree is used that has optimal communications characteristics to distribute the composite audio signal to all nodes. An audio mixing tree is established and maintained by adaptively and dynamically adding and merging intermediate mixing nodes operating between user nodes and the root of the single distribution tree. The intermediate mixing nodes and the root of the single distribution tree are all hosted, in an exemplary embodiment, on user nodes that are endpoints of the distribution tree.
-
Citations
18 Claims
-
1. A peer-to-peer processing node for participating in multi-party voice-over-IP services, the peer-to-peer processing node comprising:
-
a distribution tree processor that; establishes a peer-to-peer distribution tree to broadcast a composite audio signal from a root mixing node to a plurality of participating nodes, wherein a subset of the participating nodes are originating nodes that provide a respective audio stream output received by the root mixing node to produce the composite audio signal; establishes overlay mesh interconnections among the participating nodes; constructs a respective distribution tree from the respective node to every other node within the participating nodes; distributes a respective performance characteristic for each respective distribution tree to each node within the participating nodes; and performs an election protocol to determine an optimal root mixing node; a mixing tree processor that identifies, independently of the distribution tree, a first intermediate mixing node from within the plurality of participating nodes; and a mixer that provides to the root mixing node a mixing of respective audio stream outputs provided by a first subset of originating nodes to the mixer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer program product for providing multi-party voice-over-IP services, the computer program product comprising:
a storage medium readable by a processing circuit and storing computer instructions for execution by the processing circuit for performing a method comprising; establishing a peer-to-peer distribution tree to broadcast a composite audio signal from a root mixing node to a plurality of participating nodes, wherein a subset of the participating nodes are originating nodes that provide a respective audio stream output received by the root mixing node to produce the composite audio signal; monitoring a processing load on the first intermediate mixing node and on at least one neighbor node within the participating nodes; identifying, in response to an increase in the processing load on the first intermediate mixing node and independently of the distribution tree, a second intermediate mixing node from the at least one neighbor; assigning, in response to the identifying, a portion of the first subset of originating nodes to the second intermediate mixing node and configuring the second intermediate mixing node to provide a mixing of the portion of the first subset of originating nodes to a parent mixing node of the first intermediate mixing node; and identifying, independently of the peer-to-peer distribution tree, a first intermediate mixing node and a backup intermediate mixing node from within the plurality of participating nodes, the first intermediate mixing node providing to the root mixing node a mixing of respective audio stream outputs provided by a first subset of originating nodes to the first intermediate mixing node. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
Specification