Patent ID: 7849138

Claim:
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.