SYSTEM AND METHOD FOR EFFICIENTLY MIXING VOIP DATA
A method, computer program product, and computer system for monitoring a communication session between a plurality of users. It is determined whether at least two users of the plurality of users are sending media in the communication session. If only a first user of the plurality of users is sending media, the media is delivered to the plurality of users via a first technique. If the first user and a second user of the plurality of users are sending media, the media is delivered to the plurality of users via a second technique.
1 . A computer-implemented method comprising:
monitoring, by a computing device, a communication session between a plurality of users;
determining whether at least two users of the plurality of users are sending media in the communication session;
if only a first user of the plurality of users is sending media, delivering the media to the plurality of users via a first technique; and
if the first user and a second user of the plurality of users are sending media, delivering the media to the plurality of users via a second technique.
2 . The computer-implemented method of claim 1 wherein determining whether the at least two users of the plurality of users are sending media in the communication session includes determining for a predetermined interval of time whether the at least two users of the plurality of users are sending media in the communication session simultaneously.
3 . The computer-implemented method of claim 1 wherein delivering the media to the plurality of users via the first technique includes delivering a packet containing at least a portion of the media to the plurality of users without decoding and encoding the packet.
4 . The computer-implemented method of claim 1 wherein delivering the media to the plurality of users via the second technique includes:
waiting for a predetermined number of time intervals; and
mixing the media received from the first user and the second user during the predetermined number of time intervals.
5 . The computer-implemented method of claim 4 further comprising delaying sending of the mixed media to the plurality of users until after the predetermined number of time intervals.
6 . The computer-implemented method of claim 5 further comprising sending the mixed media to the plurality of users during a next time interval after the predetermined number of time intervals.
7 . The computer-implemented method of claim 6 wherein the mixed media sent to the plurality of users in the next time interval includes a plurality of time intervals of media contained in a plurality of packets sent during a single time interval.
8 . The computer-implemented method of claim 4 wherein mixing the media received from the first user and the second user includes excluding the media sent from the first user in the mixed media when delivering the mixed media to the first user.
9 . The computer-implemented method of claim 1 wherein the media is delivered to the first user and the second user via the first technique when only the first user and the second user are connected to the communication session.
10 . The computer-implemented method of claim 1 wherein delivering the media to the plurality of users via the second technique includes executing an encode operation for less than each of the plurality of users.
11 . The computer-implemented method of claim 1 wherein delivering the media to the plurality of users via the second technique includes sending a multi-channel media packet where each channel is a respective user's encoded and encrypted media stream.
12 . A computer program product residing on a computer readable storage medium having a plurality of instructions stored thereon which, when executed by a processor, cause the processor to perform operations comprising:
monitoring a communication session between a plurality of users;
determining whether at least two users of the plurality of users are sending media in the communication session;
if only a first user of the plurality of users is sending media, delivering the media to the plurality of users via a first technique; and
if the first user and a second user of the plurality of users are sending media, delivering the media to the plurality of users via a second technique.
13 . The computer program product of claim 12 wherein determining whether the at least two users of the plurality of users are sending media in the communication session includes determining for a predetermined interval of time whether the at least two users of the plurality of users are sending media in the communication session simultaneously.
14 . The computer program product of claim 12 wherein delivering the media to the plurality of users via the first technique includes delivering a packet containing at least a portion of the media to the plurality of users without decoding and encoding the packet.
15 . The computer program product of claim 12 wherein delivering the media to the plurality of users via the second technique includes:
waiting for a predetermined number of time intervals; and
mixing the media received from the first user and the second user during the predetermined number of time intervals.
16 . The computer program product of claim 15 further comprising delaying sending of the mixed media to the plurality of users until after the predetermined number of time intervals.
17 . The computer program product of claim 16 further comprising sending the mixed media to the plurality of users during a next time interval after the predetermined number of time intervals.
18 . The computer program product of claim 17 wherein the mixed media sent to the plurality of users in the next time interval includes a plurality of time intervals of media contained in a plurality of packets sent during a single time interval.
19 . The computer program product of claim 15 wherein mixing the media received from the first user and the second user includes excluding the media sent from the first user in the mixed media when delivering the mixed media to the first user.
20 . The computer program product of claim 12 wherein the media is delivered to the first user and the second user via the first technique when only the first user and the second user are connected to the communication session.
21 . The computer program product of claim 12 wherein delivering the media to the plurality of users via the second technique includes executing an encode operation for less than each of the plurality of users.
22 . The computer program product of claim 12 wherein delivering the media to the plurality of users via the second technique includes sending a multi-channel media packet where each channel is a respective user's encoded and encrypted media stream.
23 . A computing system including a processor and a memory configured to perform operations comprising:
monitoring a communication session between a plurality of users;
determining whether at least two users of the plurality of users are sending media in the communication session;
if only a first user of the plurality of users is sending media, delivering the media to the plurality of users via a first technique; and
if the first user and a second user of the plurality of users are sending media, delivering the media to the plurality of users via a second technique.
24 . The computing system of claim 23 wherein determining whether the at least two users of the plurality of users are sending media in the communication session includes determining for a predetermined interval of time whether the at least two users of the plurality of users are sending media in the communication session simultaneously.
25 . The computing system of claim 23 wherein delivering the media to the plurality of users via the first technique includes delivering a packet containing at least a portion of the media to the plurality of users without decoding and encoding the packet.
26 . The computing system of claim 23 wherein delivering the media to the plurality of users via the second technique includes:
waiting for a predetermined number of time intervals; and
mixing the media received from the first user and the second user during the predetermined number of time intervals.
27 . The computing system of claim 26 further comprising delaying sending of the mixed media to the plurality of users until after the predetermined number of time intervals.
28 . The computing system of claim 27 further comprising sending the mixed media to the plurality of users during a next time interval after the predetermined number of time intervals.
29 . The computing system of claim 28 wherein the mixed media sent to the plurality of users in the next time interval includes a plurality of time intervals of media contained in a plurality of packets sent during a single time interval.
30 . The computing system of claim 26 wherein mixing the media received from the first user and the second user includes excluding the media sent from the first user in the mixed media when delivering the mixed media to the first user.
31 . The computing system of claim 23 wherein the media is delivered to the first user and the second user via the first technique when only the first user and the second user are connected to the communication session.
32 . The computing system of claim 23 wherein delivering the media to the plurality of users via the second technique includes executing an encode operation for less than each of the plurality of users.
33 . The computing system of claim 23 wherein delivering the media to the plurality of users via the second technique includes sending a multi-channel media packet where each channel is a respective user's encoded and encrypted media stream.