Patent ID: 8363661

Claim:
A method of transmitting a data stream in a network of interconnectable end-user nodes comprising a source node, a plurality of recipient nodes and a plurality of further nodes, wherein each of the end-user nodes is executing an instance of a communication client application, the method comprising: a communication client application of the source node receiving a command to transmit the data stream for group communication to the plurality of recipient nodes; selecting from the plurality of further nodes at least one relaying node to relay the data stream between the source node and the plurality of recipient nodes based in part upon a determination regarding available resources at the plurality of further nodes including, in response to determining that available resources are insufficient to support transmission of the data stream to the plurality of the recipient nodes via one of said further nodes individually, analyzing whether a combination of two or more further nodes has sufficient available resources when combined to support the transmission; the communication client application at the source node establishing a connection to the at least one relaying node that is selected; communicating, via the connection, with the communication client application at the at least one relaying node to cause the at least one relaying node to establish multiple connections to enable the group communication, the multiple connections including a connection of the at least one relaying node to each recipient node of the plurality of recipient nodes; and transmitting the data stream from the source node to the at least one relaying node to cause transmission of the data stream by the at least one relaying node to the plurality of recipient nodes on behalf of the source node using the multiple connections.