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 host node;
a distribution tree processor operating on the host node that;
establishes overlay mesh connections from the host 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 a root mixing node to produce the composite audio signal;
constructs a local distribution tree to broadcast a composite audio signal from the host node to every other node within the participating nodesdetermines a local performance characteristic for the local distribution tree;
receives, from each of the participating nodes, a respective performance characteristic for each respective distribution tree rooted at the each node within the participating nodes;
performs an election protocol based upon the local performance characteristics and the respective performance characteristic for each respective distribution tree to determine a selected root mixing node operating in one of the participating nodes; and
determines a selected distribution tree that is rooted at the selected root mixing node to distribute the composite audio signal;
a mixing tree processor operating on the host node that;
identifies, independently of the selected distribution tree, a first intermediate mixing node from within the plurality of participating nodes, the first intermediate mixing node being identified based upon characteristics of data transmission from the first intermediate mixing node to the selected root mixing node and based upon characteristics of data transmission from each originating node within a first subset of originating nodes to the first intermediate mixing node; and
a mixer operating on the host node, that;
accepts, in response to the mixing tree processor identifying the host node as the first intermediate mixing node, respective audio stream outputs provided by the first subset of originating node; and
provides to the root mixing node a mixing of the respective audio stream outputs provided by the first subset of originating nodes.
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
20 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 host node; a distribution tree processor operating on the host node that; establishes overlay mesh connections from the host 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 a root mixing node to produce the composite audio signal; constructs a local distribution tree to broadcast a composite audio signal from the host node to every other node within the participating nodes determines a local performance characteristic for the local distribution tree; receives, from each of the participating nodes, a respective performance characteristic for each respective distribution tree rooted at the each node within the participating nodes; performs an election protocol based upon the local performance characteristics and the respective performance characteristic for each respective distribution tree to determine a selected root mixing node operating in one of the participating nodes; and determines a selected distribution tree that is rooted at the selected root mixing node to distribute the composite audio signal; a mixing tree processor operating on the host node that; identifies, independently of the selected distribution tree, a first intermediate mixing node from within the plurality of participating nodes, the first intermediate mixing node being identified based upon characteristics of data transmission from the first intermediate mixing node to the selected root mixing node and based upon characteristics of data transmission from each originating node within a first subset of originating nodes to the first intermediate mixing node; and a mixer operating on the host node, that; accepts, in response to the mixing tree processor identifying the host node as the first intermediate mixing node, respective audio stream outputs provided by the first subset of originating node; and provides to the root mixing node a mixing of the respective audio stream outputs provided by the first subset of originating nodes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of providing multi-party voice-over-IP services, the method comprising:
-
establishing, with a processor, overlay mesh connections from a host 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 a root mixing node to be mixed into a composite audio signal; constructing, with the processor, a local distribution tree to broadcast an audio signal from the host node to every other node within the participating nodes determining, with the processor, a local performance characteristic for the local distribution tree; receiving, with the processor from each of the participating nodes, a respective performance characteristic for each respective distribution tree rooted at the each node within the participating nodes; performing, with the processor, an election protocol based upon the local performance characteristics and the respective performance characteristic for each respective distribution tree to determine a selected root mixing node operating in one of the participating nodes; determining a selected distribution tree that is rooted at the selected root mixing node to distribute the composite audio signal; identifying, with the processor independently of the selected distribution tree, a first intermediate mixing node from within the plurality of participating nodes, the first intermediate mixing node being identified based upon characteristics of data transmission from the first intermediate mixing node to the selected root mixing node and based upon characteristics of data transmission from each originating node within a first subset of originating nodes to the first intermediate mixing node; and accepting at the host node, with the processor in response to the mixing tree processor identifying the host node as the first intermediate mixing node, respective audio stream outputs provided by the first subset of originating node; and providing, with the processor, to the root mixing node a mixing of the respective audio stream outputs provided by the first subset of originating nodes. - View Dependent Claims (11)
-
-
12. A computer program product for providing multi-party voice-over-IP services, the computer program product comprising:
a non-transitory storage medium readable by a processing circuit and storing computer instructions for execution by the processing circuit for performing a method comprising; establishing, with a processor, overlay mesh connections from a host 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 a root mixing node to be mixed into a composite audio signal; constructing, with the processor, a local distribution tree to broadcast an audio signal from the host node to every other node within the participating nodes determining, with the processor, a local performance characteristic for the local distribution tree; receiving, with the processor from each of the participating nodes, a respective performance characteristic for each respective distribution tree rooted at the each node within the participating nodes; performing, with the processor, an election protocol based upon the local performance characteristics and the respective performance characteristic for each respective distribution tree to determine a selected root mixing node operating in one of the participating nodes; determining a selected distribution tree that is rooted at the selected root mixing node to distribute the composite audio signal; identifying, with the processor independently of the selected distribution tree, a first intermediate mixing node from within the plurality of participating nodes, the first intermediate mixing node being identified based upon characteristics of data transmission from the first intermediate mixing node to the selected root mixing node and based upon characteristics of data transmission from each originating node within a first subset of originating nodes to the first intermediate mixing node; and accepting at the host node, with the processor in response to the mixing tree processor identifying the host node as the first intermediate mixing node, respective audio stream outputs provided by the first subset of originating node; and providing, with the processor, to the root mixing node a mixing of the respective audio stream outputs provided by the first subset of originating nodes. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
Specification