Claims
- 1. A method for routing telephone calls over the Internet between an originating gateway and a destination gateway, comprising:
selecting a destination gateway that is capable of routing a telephone call to a destination telephone; selecting an optimal route from a plurality of routes, wherein each route includes an originating gateway capable of sending data packets to the selected destination gateway, and wherein the originating gateway on the optimal route comprises a source gateway; and inserting header data into digital data packets containing a call setup request, wherein the header data ensures that data packets containing a failed call setup request are returned to the source gateway, regardless of which gateway acts as the originating gateway.
- 2. The method of claim 1, further comprising making a first call setup attempt by sending the data packets containing the call setup request from the source gateway to the destination gateway.
- 3. The method of claim 2, wherein if the first call setup attempt fails and the data packets containing the call setup request are returned to the source gateway, the method further comprises:
identifying the next-most optimal route; inserting new header data into the data packets containing the call setup request, wherein the new header data identifies the originating gateway connected with the next-most optimal route; and sending the data packets containing the call setup request to the originating gateway connected with the next-most optimal route.
- 4. The method of claim 3, wherein the method further comprises:
stripping off the header data identifying the originating gateway connected with the next-most optimal route from the data packets containing the call setup request; and making a second call setup attempt by sending the data packets containing the call setup request from the originating gateway connected with the next-most optimal route to the destination gateway, wherein if the second call setup attempt fails, the data packets containing the call setup request will be returned to the source gateway.
- 5. The method of claim 4, wherein if the second call setup attempt fails, the method further comprises:
identifying a third-most optimal route; inserting new header data into the data packets containing the call setup request, wherein the new header data identifies the originating gateway connected with the third-most optimal route; sending the data packets containing the call setup request to the originating gateway connected with the third-most optimal route; stripping off the header data identifying the originating gateway connected with the third-most optimal route from the data packets containing the call setup request; and making a third call setup attempt by sending the data packets containing the call setup request from the originating gateway connected with the thirst-most optimal route to the destination gateway, wherein if the third call setup attempt fails, the data packets containing the call setup request will be returned to the source gateway.
- 6. The method of claim 1, wherein the inserting step comprises inserting header data that identifies an originating gateway, and a path onto the Internet.
- 7. The method of claim 6, wherein the inserting step also comprises inserting header data that identifies a destination gateway.
- 8. The method of claim 1, wherein the inserting step comprises inserting header data that identifies a source gateway, an interim gateway and a destination gateway.
- 9. The method of claim 8, wherein the header data identifying an interim gateway can be stripped off the data packets containing the call setup request by the interim gateway such that the information identifying the source gateway and the destination gateway is left intact.
- 10. The method of claim 1, wherein the step of selecting an optimal route from a plurality of routes comprises selecting an originating gateway, and a path onto the Internet.
- 11. The method of claim 10, wherein selecting a path onto the Internet comprises selecting an Internet Service Provider.
- 12. The method of claim 1, wherein the step of selecting a destination gateway comprises selecting an optimal destination gateway and at least one additional destination gateway from among a plurality of candidate destination gateways.
- 13. The method of claim 1, wherein the step of selecting a route comprises selecting an optimal originating gateway an Internet Service Provider, and at least one additional originating gateway and Internet Service Provider.
- 14. A system configured to route telephone calls over the Internet, comprising:
a routing controller configured to generate routing information that identifies routes for communicating digital data packets bearing telephone calls over the Internet; a source gateway configured to receive the routing information and to insert header data into data packets containing a call setup request, wherein the header data is configured to ensure that if a call setup attempt fails, the data packets containing the call setup request will be returned to a source gateway, regardless of which originating gateway placed the data packets onto the Internet.
- 15. The system of claim 14, wherein the routing controller is configured to generate routing information that includes an originating gateway and an Internet Service Provider.
- 16. The system of claim 14, wherein the routing controller is configured to generate routing information that includes an optimal route, and at least one additional route, and wherein the optimal route includes the source gateway.
- 17. The system of claim 14, wherein the system further comprises an interim gateway, and wherein the source gateway is configured to insert header data into the data packets containing the call setup request such that the header data identifies the source gateway, and the interim gateway, and wherein the source gateway is configured to forward the data packets to the interim gateway.
- 18. The system of claim 17, wherein the interim gateway is configured to receive the data packets forwarded by the source gateway, to remove the header data identifying the interim gateway, and to place the data packets onto the Internet.
Parent Case Info
[0001] This application is a continuation-in-part of U.S. application Ser. No. 10/298,208, filed Nov. 18, 2002, the disclosure of which is hereby incorporated by reference. The application also claims priority to U.S. Provisional Patent Application Serial No. 60/331,479, filed Nov. 16, 2001, and U.S. Utility application Ser. No. 10/094,671, filed Mar. 7, 2002, the disclosure of both of which are hereby incorporated by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60331479 |
Nov 2001 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
10298208 |
Nov 2002 |
US |
Child |
10646687 |
Aug 2003 |
US |