IP Library Granted Patent US 8,472,342
Granted Patent B1
US 8,472,342 · App. 13/690,994 · Granted Jun 25, 2013

Systems and methods of routing IP telephony data packet communications

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,472,342
App. No.
13/690,994
Granted
Jun 25, 2013
Kind
B1
Abstract

Systems and methods performed by a telephony device allow the telephony device to test the quality of multiple potential paths which can be used to conduct a telephony communication. By testing the conditions that presently exist, the telephony device can choose the path that is presently offering the best quality. A telephony communication may be setup over an initial path, and then subsequent testing may determine that it is best to switch to an alternate path offering better call quality. The initial path used for the telephony communication may be the one that offers the fastest initial connection. When multiple potential paths exist, the telephony communication may be conducted over a first path while keep alive messages are communicated over a second path so that the telephony communication can be quickly switched to the second path.

Claims (60)

1. A method performed by a first telephony device for conducting an Internet protocol (IP) telephony communication with a second telephony device via a data network, wherein the IP telephony communication is routed, at least initially, through an element of a data network that is in communication with the second telephony device, comprising:

receiving a setup request at the first telephony device, the setup request indicating that an IP telephony communication is to be established between the first telephony device and the second telephony device;

sending a first stream of data packets bearing the media of the telephony communication from the first telephony device to the element of the data network that is in communication with the second telephony device via a first path through the data network;

sending a second stream of data packets bearing the media of the telephony communication from the first telephony device to the element of the data network in communication with the second telephony device via a second path through the data network, wherein the second stream of data packets is sent via the second path at substantially the same time that the first stream of data packets is sent via the first path;

determining which of the first and second paths was the fastest to initially communicate a stream of data packets bearing the media of the telephony communication to the element of the data network in communication with the second telephony device; and

conducting an initial stage of the telephony communication by sending data packets bearing the media of the telephony communication to the element of the data network in communication with the second telephony device via the path which was the fastest to initially communicate data packets to the element of the data network in communication with the second telephony device.

2. The method of claim 1 , further comprising sending keep alive messages to the element of the data network in communication with the second telephony device via the path which was slowest to initially communicate a stream of data packets bearing the media of the telephony communication to the element of the data network in communication with the second telephony device.

3. The method of claim 1 , further comprising:

conducting an initial test of a quality of the first and second paths while the initial stage of the telephony communication is being conducted; and

conducting an intermediate stage of the telephony communication which occurs after the initial stage by sending data packets bearing the media of the telephony communication to the element of the data network in communication with the second telephony device via the path which is determined, during the initial testing step, to have the highest quality.

4. The method of claim 3 , wherein while the intermediate stage of the telephony communication is being conducted, the method further comprises sending keep alive messages to the element of the data network in communication with the second telephony device via the path which is determined to have the next-highest quality compared to the path having the highest quality.

5. The method of claim 3 , further comprising:

conducting periodic tests of the quality of the path currently in use, and at least one alternate path after the intermediate stage of the telephony communication has begun and while the telephony communication is ongoing; and

continuing the telephony communication, after each periodic test, by sending data packets bearing the media of the telephony communication to the element of the data network in communication with the second telephony device via the path which is determined to have the highest quality during the preceding periodic test.

6. The method of claim 5 , wherein the method further comprises sending, after each periodic test, keep alive messages to the element of the data network in communication with the second telephony device via the path which is determined to have the next-highest quality, compared to the path having the highest quality, during the preceding periodic test.

7. The method of claim 1 , further comprising:

conducting periodic tests of the quality of the first and second paths after the initial stage of the telephony communication has begun and while the telephony communication is ongoing; and

continuing the telephony communication, after each periodic test, by sending data packets bearing the media of the telephony communication to the element of the data network in communication with the second telephony device via the path which is determined to have the highest quality during the preceding periodic test.

8. The method of claim 7 , wherein the method further comprises sending, after each periodic test, keep alive messages to the element of the data network in communication with the second telephony device via the path which is determined to have the next-highest quality, compared to the path having the highest quality, during the preceding periodic test.

9. The method of claim 1 , wherein the element of the data network in communication with the second telephony device is at least one of a media relay, a proxy server, a gateway and a session border controller.

10. The method of claim 1 , wherein the setup request identifies the first and second paths.

11. The method of claim 1 , wherein the first telephony device selects the first and second paths.

12. The method of claim 1 , wherein the first telephony device consults a path engine of an IP telephony system to request identification of the first and second paths.

13. The method of claim 1 , wherein the second path includes a media relay which is not part of the first path.

14. The method of claim 1 , further comprising:

conducting periodic tests of a quality of both the path currently being used and at least one alternate path that could be used to communicate data packets bearing the media of the telephony communication to the element of the data network in communication with the second telephony device after the initial stage of the telephony communication has begun and while the telephony communication is ongoing; and

continuing the telephony communication, after each periodic test, by sending data packets bearing the media of the telephony communication to the element of the data network in communication with the second telephony device via the path which is determined to have the highest quality during the preceding periodic test.

15. A first telephony device that is configured to conduct an Internet protocol (IP) telephony communication with a second telephony device via a data network, wherein the IP telephony communication is routed, at least initially, through an element of a data network that is in communication with the second telephony device, comprising:

means for receiving a setup request at the first telephony device, the setup request indicating that an IP telephony communication is to be established between the first telephony device and the second telephony device;

means for sending a first stream of data packets bearing the media of the telephony communication from the first telephony device to the element of the data network that is in communication with the second telephony device via a first path through the data network;

means for sending a second stream of data packets bearing the media of the telephony communication from the first telephony device to the element of the data network in communication with the second telephony device via a second path through the data network, wherein the second stream of data packets is sent via the second path at substantially the same time that the first stream of data packets is sent via the first path;

means for determining which of the first and second paths was the fastest to initially communicate a stream of data packets bearing the media of the telephony communication to the element of the data network in communication with the second telephony device; and

means for conducting an initial stage of the telephony communication by sending data packets bearing the media of the telephony communication to the element of the data network in communication with the second telephony device via the path which was the fastest to initially communicate data packets to the element of the data network in communication with the second telephony device.

16. A non-transitory computer readable medium bearing instructions which, when performed by one or more processors of a first telephony device cause the first telephony device to conduct an Internet protocol (IP) telephony communication with a second telephony device via a data network, wherein the IP telephony communication is routed, at least initially, through an element of a data network that is in communication with the second telephony device, wherein the instructions cause the one or more processors of the first telephony device to perform a method comprising:

receiving a setup request at the first telephony device, the setup request indicating that an IP telephony communication is to be established between the first telephony device and the second telephony device;

sending a first stream of data packets bearing the media of the telephony communication from the first telephony device to the element of the data network that is in communication with the second telephony device via a first path through the data network;

sending a second stream of data packets bearing the media of the telephony communication from the first telephony device to the element of the data network in communication with the second telephony device via a second path through the data network, wherein the second stream of data packets is sent via the second path at substantially the same time that the first stream of data packets is sent via the first path;

determining which of the first and second paths was the fastest to initially communicate a stream of data packets bearing the media of the telephony communication to the element of the data network in communication with the second telephony device; and

conducting an initial stage of the telephony communication by sending data packets bearing the media of the telephony communication to the element of the data network in communication with the second telephony device via the path which was the fastest to initially communicate data packets to the element of the data network in communication with the second telephony device.

17. The non-transitory computer readable medium of claim 16 , wherein the method performed by the one or more processors of the first telephony device further comprises sending keep alive messages to the element of the data network in communication with the second telephony device via the path which was slowest to initially communicate a stream of data packets bearing the media of the telephony communication to the element of the data network in communication with the second telephony device.

18. The non-transitory computer readable medium of claim 16 , wherein the method performed by the one or more processors of the first telephony device further comprises:

conducting an initial test of a quality of the first and second paths while the initial stage of the telephony communication is being conducted; and

conducting an intermediate stage of the telephony communication which occurs after the initial stage by sending data packets bearing the media of the telephony communication to the element of the data network in communication with the second telephony device via the path which is determined, during the initial testing step, to have the highest quality.

19. The non-transitory computer readable medium of claim 18 , wherein while the intermediate stage of the telephony communication is being conducted, the method performed by the one or more processors of the first telephony device further comprises sending keep alive messages to the element of the data network in communication with the second telephony device via the path which is determined to have the next-highest quality compared to the path having the highest quality.

20. The non-transitory computer readable medium of claim 18 , wherein the method performed by the one or more processors of the first telephony device further comprises:

conducting periodic tests of the quality of the path currently in use, and at least one alternate path after the intermediate stage of the telephony communication has begun and while the telephony communication is ongoing; and

continuing the telephony communication, after each periodic test, by sending data packets bearing the media of the telephony communication to the element of the data network in communication with the second telephony device via the path which is determined to have the highest quality during the preceding periodic test.

21. The non-transitory computer readable medium of claim 20 , wherein the method performed by the one or more processors of the first telephony device further comprises sending, after each periodic test, keep alive messages to the element of the data network in communication with the second telephony device via the path which is determined to have the next-highest quality, compared to the path having the highest quality, during the preceding periodic test.

22. The non-transitory computer readable medium of claim 16 , wherein the method performed by the one or more processors of the first telephony device further comprises:

conducting periodic tests of the quality of the first and second paths after the initial stage of the telephony communication has begun and while the telephony communication is ongoing; and

continuing the telephony communication, after each periodic test, by sending data packets bearing the media of the telephony communication to the element of the data network in communication with the second telephony device via the path which is determined to have the highest quality during the preceding periodic test.

23. The non-transitory computer readable medium of claim 22 , wherein the method further comprises sending, after each periodic test, keep alive messages to the element of the data network in communication with the second telephony device via the path which is determined to have the next-lowest quality, compared to the path having the highest quality, during the preceding periodic test.

24. The non-transitory computer readable medium of claim 16 , wherein the element of the data network in communication with the second telephony device is at least one of a media relay, a proxy server, a gateway and a session border controller.

25. The non-transitory computer readable medium of claim 16 , wherein receiving a setup request comprises receiving a setup request that identifies the first and second paths.

26. The non-transitory computer readable medium of claim 16 , wherein sending a first stream of data packets comprises sending the first stream of data packets via a first path selected by the first telephony device, and wherein sending a second stream of data packets comprises sending the second stream of data packets via a second path selected by the first telephony device

27. The non-transitory computer readable medium of claim 16 , wherein the method performed by the one or more processors of the first telephony device further comprises consulting a path engine of an IP telephony system to request identification of the first and second paths.

28. The non-transitory computer readable medium of claim 16 , wherein the second path includes a media relay which is not part of the first path.

29. The non-transitory computer readable medium of claim 16 , wherein the method performed by the one or more processors of the first telephony device further comprises:

conducting periodic tests of a quality of both the path currently being used and at least one alternate path that could be used to communicate data packets bearing the media of the telephony communication to the element of the data network in communication with the second telephony device after the initial stage of the telephony communication has begun and while the telephony communication is ongoing; and

continuing the telephony communication, after each periodic test, by sending data packets bearing the media of the telephony communication to the element of the data network in communication with the second telephony device via the path which is determined to have the highest quality during the preceding periodic test.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Jul 28, 2022
From: JPMORGAN CHASE BANK, N.A.
To: VONAGE AMERICA INC.; VONAGE HOLDINGS CORP.; VONAGE BUSINESS INC.; NEXMO INC.; TOKBOX, INC.
Reel/Frame 061002/0340 →
SECURITY INTEREST Recorded Nov 12, 2018
From: VONAGE BUSINESS INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 047502/0432 →
CORRECTIVE ASSIGNMENT TO CORRECT THE LIST BY DELETING 13831728 13831785 14291602 13680382 14827548 14752086 13680067 14169385 14473289 14194220 14194438 14317743 PREVIOUSLY RECORDED ON REEL 038328 FRAME 501. ASSIGNOR(S) HEREBY CONFIRMS THE SALE, ASSIGNMENT, TRANSFER AND CONVEYANCE OF REMAINING PROPERTIES. Recorded Oct 28, 2016
From: VONAGE NETWORK LLC
To: VONAGE BUSINESS INC.
Reel/Frame 040540/0702 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 1, 2016
From: VONAGE NETWORK LLC
To: VONAGE BUSINESS INC.
Reel/Frame 038328/0501 →
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT APPLICATION NUMBER 13966486 PREVIOUSLY RECORDED ON REEL 033545 FRAME 0424. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Jan 21, 2016
From: VONAGE HOLDINGS CORP.; VONAGE NETWORK LLC; VONAGE BUSINESS SOLUTIONS INC.; VONAGE AMERICA INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 037570/0203 →