IP Library Granted Patent US 8,971,205
Granted Patent B2
US 8,971,205 · App. 14/171,854 · Granted Mar 3, 2015

Multi-streaming communication session

Inventors: L. Anders Brownworth (Cambridge, MA); Jared Kashimba (Micanopy, FL); Timothy Jones (Cary, NC)
Assignee: Bandwidth.com, Inc.
H04L61/1529H04W36/0083H04W24/04H04W36/0016H04W76/025H04L67/148H04L69/14H04W36/18H04W36/30H04L65/4015H04L65/1003
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,971,205
App. No.
14/171,854
Granted
Mar 3, 2015
Kind
B2
Abstract

A communication session between a first communication device and a second communication device is hosted in an Internet Protocol (IP) based packet data network. A contact server functions as a bridge service between the first communication device and the second communication device. A communication link between the first communication device and the contact server or the second communication device and the contact server is initially a voice-over IP (VoIP) communication link over a wireless data network comprised of a first packet data media stream. The contact server receives the first packet data media stream and at least one other packet data media stream from the first communication device and combines them into a single packet data media stream before transmitting the combined single packet data media stream to the second communication device.

Claims (70)

1. A method comprising:

hosting a communication session between a first communication device and a second communication device in an Internet Protocol (IP) based packet data network in which a contact server functions as a bridge service between the first communication device and the second communication device enabling the exchange of media streams between the first and second communication devices, wherein the contact server has established separate communication links with the first communication device and the second communication device, and wherein (i) the communication link between the first communication device and the contact server is a voice-over IP (VoIP) communication link over a wireless data network comprised of a first VoIP packet data media stream, and (ii) the contact server is capable of receiving multiple concurrent VoIP packet data media streams from the first communication device;

receiving in the contact server the first VoIP packet data media stream and at least one other VoIP packet data media stream from the first communication device over a single communication link;

monitoring the first VoIP packet data media stream to identify missing or degraded portions there of;

identifying corresponding portions of at least one other VoIP packet data media stream; and

replacing the missing or degraded portions of the first VoIP packet data media stream with the corresponding portions of the at least one other VoIP packet data media stream to create a combined single VoIP packet data media stream; and

transmitting the combined single VoIP packet data media stream to the second communication device.

2. The method of claim 1 , wherein the combining step is performed when the first VoIP packet data media stream suffers a loss of data packets.

3. The method of claim 1 , wherein the combining step is performed when the first VoIP packet data media stream suffers a degradation of data packets.

4. The method of claim 1 , further comprising predictively determining when to combine the first VoIP packet data media stream and the at least one other VoIP packet data media stream into a single VoIP packet data media stream.

5. The method of claim 1 , wherein combining the first VoIP packet data media stream and the at least one other VoIP packet data media stream into a single VoIP packet data media stream comprises at least one of: aggregating, switching, or mixing the VoIP packet data media streams into the single VoIP packet data media stream.

6. A system for enhancing or avoiding a dropped or interrupted communication session, comprising:

a memory; and

a contact server in an Internet Protocol (IP) based packet data network including a processor for executing code to:

host a communication session between a first communication device and a second communication device in which the contact server functions as a bridge service between the first communication device and the second communication device enabling the exchange of media streams between the first and second communication devices, wherein the contact server has established separate communication links with the first communication device and the second communication device, and wherein (i) the communication link between the first communication device and the contact server is a voice-over IP (VoIP) communication link over a wireless data network comprised of a first VoIP packet data media stream, and (ii) the contact server is capable of receiving multiple concurrent VoIP packet data media streams from the first communication device;

receive in the contact server the first VoIP packet data media stream and at least one other VoIP packet data media stream from the first communication device over a single communication link;

monitor the first VoIP packet data media stream to identify missing or degraded portions there of;

identify corresponding portions of at least one other VoIP packet data media stream; and

replace the missing or degraded portions of the first VoIP packet data media stream with the corresponding portions of the at least one other VoIP packet data media stream to create a combined single VoIP packet data media stream; and

transmit the combined single VoIP packet data media stream to the second communication device.

7. The system of claim 6 , wherein combining the first VoIP packet data media stream and the at least one other VoIP packet data media stream into a single VoIP packet data media stream is performed when the first VoIP packet data media stream suffers a loss of data packets.

8. The system of claim 6 , wherein combining the first VoIP packet data media stream and the at least one other VoIP packet data media stream into a single VoIP packet data media stream is performed when the first VoIP packet data media stream suffers a degradation of data packets.

9. The system of claim 6 , the contact server processor further operative to execute code to predictively determine when to combine the first VoIP packet data media stream and the at least one other VoIP packet data media stream into a single VoIP packet data media stream.

10. The system of claim 6 , wherein combining the first VoIP packet data media stream and the at least one other VoIP packet data media stream into a single VoIP packet data media stream comprises at least one of: aggregating, switching, or mixing the VoIP packet data media streams into the single VoIP packet data media stream.

11. At least one non-transitory machine-readable medium comprising a set of instructions that in response to being executed on a computing device cause the computing device to:

host a communication session between a first communication device and a second communication device in which the contact server functions as a bridge service between the first communication device and the second communication device enabling the exchange of media streams between the first and second communication devices, wherein the contact server has established separate communication links with the first communication device and the second communication device, and wherein (i) the communication link between the first communication device and the contact server is a voice-over IP (VoIP) communication link over a wireless data network comprised of a first VoIP packet data media stream, and (ii) the contact server is capable of receiving multiple concurrent VoIP packet data media streams from the first communication device;

receive in the contact server the first VoIP packet data media stream and at least one other VoIP packet data media stream from the first communication device over a single communication link;

monitor the first VoIP packet data media stream to identify missing or degraded portions there of;

identify corresponding portions of at least one other VoIP packet data media stream; and

replace the missing or degraded portions of the first VoIP packet data media stream with the corresponding portions of the at least one other VoIP packet data media stream to create a combined single VoIP packet data media stream; and

transmit the combined single VoIP packet data media stream to the second communication device.

12. The least one non-transitory machine-readable medium of claim 11 , comprising instructions that in response to being executed on the computing device cause the computing device to combine the first VoIP packet data media stream and the at least one other VoIP packet data media stream into a single VoIP packet data media stream is performed when the first VoIP packet data media stream suffers a loss of data packets.

13. The least one non-transitory machine-readable medium of claim 11 , wherein combining the first VoIP packet data media stream and the at least one other VoIP packet data media stream into a single VoIP packet data media stream is performed when the first VoIP packet data media stream suffers a degradation of data packets.

14. The least one non-transitory machine-readable medium of claim 11 , comprising instructions that in response to being executed on the computing device cause the computing device to predictively determine when to combine the first VoIP packet data media stream and the at least one other VoIP packet data media stream into a single VoIP packet data media stream.

15. The least one non-transitory machine-readable medium of claim 11 , wherein combining the first VoIP packet data media stream and the at least one other VoIP packet data media stream into a single VoIP packet data media stream comprises at least one of: aggregating, switching, or mixing the packet data media streams into the single VoIP packet data media stream.

16. A method comprising:

hosting a communication session between a first communication device and a second communication device in an Internet Protocol (IP) based packet data network in which a contact server functions as a bridge service between the first communication device and the second communication device enabling the exchange of media streams between the first and second communication devices, wherein the contact server has established separate communication links with the first communication device and the second communication device, and wherein (i) the communication link between the first communication device and the contact server is a voice-over IP (VoIP) communication link over a wireless data network comprised of a first VoIP packet data media stream, and (ii) the contact server is capable of receiving multiple concurrent VoIP packet data media streams from the first communication device;

receiving in the contact server the first VoIP packet data media stream and at least one other VoIP packet data media stream from the first communication device over multiple communication links;

monitoring the first VoIP packet data media stream to identify missing or degraded portions there of;

identifying corresponding portions of at least one other VoIP packet data media stream; and

replacing the missing or degraded portions of the first VoIP packet data media stream with the corresponding portions of the at least one other VoIP packet data media stream to create a combined single VoIP packet data media stream; and

transmitting the combined single VoIP packet data media stream to the second communication device.

17. The method of claim 16 , wherein the combining step is performed when the first VoIP packet data media stream suffers a loss of data packets.

18. The method of claim 16 , wherein the combining step is performed when the first VoIP packet data media stream suffers a degradation of data packets.

19. The method of claim 16 , further comprising predictively determining when to combine the first VoIP packet data media stream and the at least one other VoIP packet data media stream into a single VoIP packet data media stream.

20. The method of claim 16 , wherein combining the first VoIP packet data media stream and the at least one other VoIP packet data media stream into a single VoIP packet data media stream comprises at least one of: aggregating, switching, or mixing the VoIP packet data media streams into the single VoIP packet data media stream.

21. A system for enhancing or avoiding a dropped or interrupted communication session, comprising:

a memory; and

a contact server in an Internet Protocol (IP) based packet data network including a processor for executing code to:

host a communication session between a first communication device and a second communication device in which the contact server functions as a bridge service between the first communication device and the second communication device enabling the exchange of media streams between the first and second communication devices, wherein the contact server has established separate communication links with the first communication device and the second communication device, and wherein (i) the communication link between the first communication device and the contact server is a voice-over IP (VoIP) communication link over a wireless data network comprised of a first VoIP packet data media stream, and (ii) the contact server is capable of receiving multiple concurrent VoIP packet data media streams from the first communication device;

receive in the contact server the first VoIP packet data media stream and at least one other VoIP packet data media stream from the first communication device over multiple communication links;

monitor the first VoIP packet data media stream to identify missing or degraded portions there of;

identify corresponding portions of at least one other VoIP packet data media stream; and

replace the missing or degraded portions of the first VoIP packet data media stream with the corresponding portions of the at least one other VoIP packet data media stream to create a combined single VoIP packet data media stream; and

transmit the combined single VoIP packet data media stream to the second communication device.

22. The system of claim 21 , wherein combining the first VoIP packet data media stream and the at least one other VoIP packet data media stream into a single VoIP packet data media stream is performed when the first VoIP packet data media stream suffers a loss of data packets.

23. The system of claim 21 , wherein combining the first VoIP packet data media stream and the at least one other VoIP packet data media stream into a single VoIP packet data media stream is performed when the first VoIP packet data media stream suffers a degradation of data packets.

24. The system of claim 21 , the contact server processor further operative to execute code to predictively determine when to combine the first VoIP packet data media stream and the at least one other VoIP packet data media stream into a single VoIP packet data media stream.

25. The system of claim 21 , wherein combining the first VoIP packet data media stream and the at least one other VoIP packet data media stream into a single VoIP packet data media stream comprises at least one of: aggregating, switching, or mixing the VoIP packet data media streams into the single VoIP packet data media stream.

26. At least one non-transitory machine-readable medium comprising a set of instructions that in response to being executed on a computing device cause the computing device to:

host a communication session between a first communication device and a second communication device in which the contact server functions as a bridge service between the first communication device and the second communication device enabling the exchange of media streams between the first and second communication devices, wherein the contact server has established separate communication links with the first communication device and the second communication device, and wherein (i) the communication link between the first communication device and the contact server is a voice-over IP (VoIP) communication link over a wireless data network comprised of a first VoIP packet data media stream, and (ii) the contact server is capable of receiving multiple concurrent VoIP packet data media streams from the first communication device;

receive in the contact server the first VoIP packet data media stream and at least one other VoIP packet data media stream from the first communication device over multiple communication links;

monitor the first VoIP packet data media stream to identify missing or degraded portions there of;

identify corresponding portions of at least one other VoIP packet data media stream; and

replace the missing or degraded portions of the first VoIP packet data media stream with the corresponding portions of the at least one other VoIP packet data media stream to create a combined single VoIP packet data media stream; and

transmit the combined single VoIP packet data media stream to the second communication device.

27. The at least one non-transitory machine-readable medium of claim 26 , comprising instructions that in response to being executed on the computing device cause the computing device to combine the first VoIP packet data media stream and the at least one other VoIP packet data media stream into a single VoIP packet data media stream is performed when the first VoIP packet data media stream suffers a loss of data packets.

28. The at least one non-transitory machine-readable medium of claim 26 , wherein combining the first VoIP packet data media stream and the at least one other VoIP packet data media stream into a single VoIP packet data media stream is performed when the first VoIP packet data media stream suffers a degradation of data packets.

29. The at least one non-transitory machine-readable medium of claim 26 , comprising instructions that in response to being executed on the computing device cause the computing device to predictively determine when to combine the first VoIP packet data media stream and the at least one other VoIP packet data media stream into a single VoIP packet data media stream.

30. The at least one non-transitory machine-readable medium of claim 26 , wherein combining the first VoIP packet data media stream and the at least one other VoIP packet data media stream into a single VoIP packet data media stream comprises at least one of: aggregating, switching, or mixing the packet data media streams into the single VoIP packet data media stream.

Assignments (5)
CHANGE OF NAME Recorded May 27, 2021
From: REPUBLIC WIRELESS, INC.
To: RELAY, INC.
Reel/Frame 056753/0703 →
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT NO. 9,014,138 SHOULD BE PATENT NO. 9,014,038 PREVIOUSLY RECORDED ON REEL 041030 FRAME 0123. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Aug 17, 2020
From: BANDWIDTH.COM, INC.
To: REPUBLIC WIRELESS, INC.
Reel/Frame 053583/0771 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2016
From: BANDWIDTH.COM, INC.
To: REPUBLIC WIRELESS, INC.
Reel/Frame 041030/0123 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2016
From: BANDWIDTH.COM, INC.
To: REPUBLIC WIRELESS, INC.
Reel/Frame 040821/0231 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2015
From: BROWNWORTH, ANDERS; RATHNAM, SAI; JONES, TIMOTHY; KASHIMBA, JARED
To: BANDWIDTH.COM, INC.
Reel/Frame 035503/0891 →
Continuity (3)
Continuation 13693572 · Dec 4, 2012
Provisional Application 61577579 · Dec 19, 2011
Related Publication 20140149593A1 · May 29, 2014