IP Library Granted Patent US 10,263,918
Granted Patent B2
US 10,263,918 · App. 15/292,022 · Granted Apr 16, 2019

Local fault tolerance for managing alternative networks for high quality of service communications

Inventors: William M. Gillon (San Mateo, CA); Hai Lei (Ottawa, CA); Tobin E. Farrand (Burlingame, CA); David A. Bryan (Cedar Park, TX)
Assignee: Ooma, Inc.
H04L49/557H04L12/2801H04L12/2838H04L12/2898H04L43/0829H04L43/0852H04L43/0894H04L43/16H04L45/22H04L45/28H04L45/74H04L47/24H04L61/106H04L65/4015H04L65/80H04L67/16H04L69/14H04L69/40Y02D50/30
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 10,263,918
App. No.
15/292,022
Granted
Apr 16, 2019
Kind
B2
Abstract

Methods and systems are provided. Exemplary methods may include: providing a first data packet to a first interface, the first data packet including a first address and being received from a computing device, the computing device being at a premises and coupled to a third interface, the first interface coupled to a first broadband connection received at the premises, the first broadband connection being coupled to a service using a first data network; determining at least one second data packet to be received at the first interface from the service is lost or delayed; supplying a second address to the computing device for communications with the service, in response to the determining; receiving from the computing device a third data packet including the second address; modifying the third data packet including replacing the second address with the first address; and giving the modified third data packet to a second interface.

Claims (124)

1. A method for managing alternative networks comprising:

providing a first data packet to a first interface, the first data packet being received from a computing device using a third interface, the first interface coupled to a first broadband connection received at a premises, the first broadband connection being coupled to a service outside the premises using a first data network, the third interface being coupled to the computing device at the premises;

receiving some of second data packets at the first interface from the service responsive to the first data packet, the second data packets including a first recipient address and primary data from the service;

forwarding the some of the second data packets to the computing device;

receiving third data packets at a second interface from the service responsive to the first data packet, the third data packets including a second recipient address and redundant data from the service, the redundant data being associated with the primary data, the second interface coupled to a second broadband connection received at the premises, the second broadband connection being coupled to the service outside the premises using a second data network and being different from the first broadband connection;

determining that one of the second data packets to be received at the first interface from the service responsive to the first data packet is not received and/or is corrupted;

recovering the one of the second data packets using the primary data and the redundant data; and

forwarding the recovered one of the second data packets to the computing device.

2. The method of claim 1 , wherein an analog telephone is communicatively coupled to the computing device.

3. The method of claim 1 , further comprising:

sending to the service a quality of service provided by the first data network,

wherein the service provides the third data packets responsive to the quality of service.

4. The method of claim 3 , further comprising:

determining the quality of service provided by the first data network, the determining including:

measuring at least one of a data rate and a number of lost packets over the first data network; and

comparing the measurements to at least one of a predetermined data rate and a predetermined number of lost packets.

5. The method of claim 1 , further comprising:

determining a quality of service provided by the first data network; and

requesting the third data packets from the service using the determining.

6. The method of claim 5 , wherein the determining the quality of service provided by the first data network comprises:

measuring at least one of a data rate and a number of lost packets over the first data network; and

comparing the measurements to at least one of a predetermined data rate and predetermined number of lost packets.

7. The method of claim 1 , wherein the determining the one of the second data packets is at least one of not received and is corrupted uses one or more of a parity bit, checksum, and an error-correcting code (ECC).

8. The method of claim 7 , wherein the ECC is at least one of a: repetition code, cyclic redundancy check (CRC), cryptographic hash function, forward error correction (FEC) code, and channel coding.

9. The method of claim 7 , wherein the ECC is at least one of a: convolutional code, block code, Reed-Solomon code, Hamming code, Hadamard code, Expander code, Golay code, and Reed-Muller code.

10. The method of claim 1 , wherein the determining the one of the second data packets to be received at the first interface from the service is not received and/or is corrupted includes one or more of:

using a scorecard; and

detecting at least one of changes to jitter buffer size, packet latency above a predetermined threshold, and degradation in audio quality using a number of lost packets.

11. A method for managing alternative networks comprising:

providing a first data packet to a first interface, the first data packet being received from a computing device using a third interface, the first interface coupled to a first broadband connection received at a premises, the first broadband connection being coupled to a service outside the premises using a first data network, the third interface being coupled to the computing device at the premises;

receiving some of second data packets at the first interface from the service responsive to the first data packet, the second data packets including a first recipient address and primary data from the service;

forwarding the some of the second data packets to the computing device;

receiving third data packets at a second interface from the service responsive to the first data packet, the third data packets including a second recipient address and redundant data from the service, the redundant data being associated with the primary data, the second interface coupled to a second broadband connection received at the premises, the second broadband connection being coupled to the service outside the premises using a second data network and being different from the first broadband connection; and

forwarding the second data packets and the third data packets to the computing device, the computing device:

determining that one of the second data packets to be received at the first interface from the service responsive to the first data packet is not received and/or is corrupted; and

recovering the one of the second data packets using the primary data and the redundant data.

12. The method of claim 11 , wherein an analog telephone is communicatively coupled to the computing device.

13. The method of claim 11 , further comprising:

sending to the service a quality of service provided by the first data network,

wherein the service provides the third data packets responsive to the quality of service.

14. The method of claim 13 , further comprising:

determining the quality of service provided by the first data network, the determining including:

measuring at least one of a data rate and a number of lost packets over the first data network; and

comparing the measurements to at least one of a predetermined data rate and a predetermined number of lost packets.

15. The method of claim 11 , further comprising:

determining a quality of service provided by the first data network; and

requesting the third data packets from the service using the determining.

16. The method of claim 15 , wherein the determining the quality of service provided by the first data network comprises:

measuring at least one of a data rate and a number of lost packets over the first data network; and

comparing the measurements to at least one of a predetermined data rate and a predetermined number of lost packets.

17. The method of claim 11 , wherein the determining the one of the second data packets is at least one of not received and is corrupted uses one or more of a parity bit, checksum, and an error-correcting code (ECC).

18. The method of claim 17 , wherein the ECC is at least one of a: repetition code, cyclic redundancy check (CRC), cryptographic hash function, forward error correction (FEC) code, and channel coding.

19. The method of claim 17 , wherein the ECC is at least one of a: convolutional code, block code, Reed-Solomon code, Hamming code, Hadamard code, Expander code, Golay code, and Reed-Muller code.

20. The method of claim 11 , wherein the determining the one of the second data packets to be received at the first interface from the service is not received and/or is corrupted includes one or more of:

using a scorecard; and

detecting at least one of changes to jitter buffer size, packet latency above a predetermined threshold, and degradation in audio quality using a number of lost packets.

21. A system for managing alternative networks comprising:

a first interface coupled to a first broadband connection received at a premises, the first broadband connection being coupled to a service outside the premises using a first data network;

a second interface coupled to a second broadband connection received at the premises, the second broadband connection being coupled to the service outside the premises using a second data network and being different from the first broadband connection;

a third interface coupled to a computing device at the premises;

a processor coupled to the first, second, and third interfaces; and

a memory coupled to the processor, the memory storing instructions executable by the processor to perform a method comprising:

providing a first data packet to the first interface, the first data packet being received from the computing device;

receiving some of second data packets at the first interface from the service responsive to the first data packet, the second data packets including a first recipient address and primary data from the service;

forwarding the some of the second data packets to the computing device;

receiving third data packets at the second interface from the service responsive to the first data packet, the third data packets including a second recipient address and redundant data from the service, the redundant data being associated with the primary data;

determining that one of the second data packets to be received at the first interface from the service responsive to the first data packet is not received and/or is corrupted;

recovering the one of the second data packets using the primary data and the redundant data; and

forwarding the recovered one of the second data packets to the computing device.

22. The system of claim 21 , further comprising:

an analog telephone communicatively coupled to the computing device, the computing device being integrated with the system.

23. The system of claim 21 , wherein the method further comprises:

sending to the service a quality of service provided by the first data network,

wherein the service provides the third data packets responsive to the quality of service.

24. The system of claim 23 , wherein the method further comprises:

determining the quality of service provided by the first data network, the determining including:

measuring at least one of a data rate and a number of lost packets over the first data network; and

comparing the measurements to at least one of a predetermined data rate and a predetermined number of lost packets.

25. The system of claim 21 , wherein the method further comprises:

determining a quality of service provided by the first data network; and

requesting the third data packets from the service using the determining.

26. The system of claim 25 , wherein the determining the quality of service provided by the first data network comprises:

measuring at least one of a data rate and a number of lost packets over the first data network; and

comparing the measurements to at least one of a predetermined data rate and a predetermined number of lost packets.

27. The system of claim 21 , wherein the determining the one of the second data packets is at least one of not received and is corrupted uses one or more of a parity bit, checksum, and an error-correcting code (ECC).

28. The system of claim 27 , wherein the ECC is at least one of a: repetition code, cyclic redundancy check (CRC), cryptographic hash function, forward error correction (FEC) code, and channel coding.

29. The system of claim 27 , wherein the ECC is at least one of a: convolutional code, block code, Reed-Solomon code, Hamming code, Hadamard code, Expander code, Golay code, and Reed-Muller code.

30. The system of claim 21 , wherein the determining the one of the second data packets to be received at the first interface from the service is not received and/or is corrupted includes one or more of:

using a scorecard; and

detecting at least one of changes to jitter buffer size, packet latency above a predetermined threshold, and degradation in audio quality using a number of lost packets.

31. A system for managing alternative networks comprising:

a first interface coupled to a first broadband connection received at a premises, the first broadband connection being coupled to a service outside the premises using a first data network;

a second interface coupled to a second broadband connection received at the premises, the second broadband connection being coupled to the service outside the premises using a second data network and being different from the first broadband connection;

a third interface coupled to a computing device at the premises;

a processor coupled to the first, second, and third interfaces; and

a memory coupled to the processor, the memory storing instructions executable by the processor to perform a method comprising:

providing a first data packet to the first interface, the first data packet being received from the computing device;

receiving some of second data packets at the first interface from the service responsive to the first data packet, the second data packets including a first recipient address and primary data from the service;

forwarding the some of the second data packets to the computing device;

receiving third data packets at the second interface from the service responsive to the first data packet, the third data packets including a second recipient address and redundant data from the service, the redundant data being associated with the primary data; and

forwarding the second data packets and the third data packets to the computing device, the computing device:

determining that one of the second data packets to be received at the first interface from the service responsive to the first data packet is not received and/or is corrupted; and

recovering the one of the second data packets using the primary data and the redundant data.

32. The system of claim 31 , further comprising:

an analog telephone communicatively coupled to the computing device, the computing device being integrated with the system.

33. The system of claim 31 , wherein the method further comprises:

sending to the service a quality of service provided by the first data network,

wherein the service provides the third data packets responsive to the quality of service.

34. The system of claim 33 , wherein the method further comprises:

determining the quality of service provided by the first data network, the determining including:

measuring at least one of a data rate and a number of lost packets over the first data network; and

comparing the measurements to at least one of a predetermined data rate and a predetermined number of lost packets.

35. The system of claim 31 , wherein the method further comprises:

determining a quality of service provided by the first data network; and

requesting the third data packets from the service using the determining.

36. The system of claim 35 , wherein the determining the quality of service provided by the first data network comprises:

measuring at least one of a data rate and a number of lost packets over the first data network; and

comparing the measurements to at least one of a predetermined data rate and a predetermined number of lost packets.

37. The system of claim 31 , wherein the determining the one of the second data packets is at least one of not received and is corrupted uses one or more of a parity bit, checksum, and an error-correcting code (ECC).

38. The system of claim 37 , wherein the ECC is at least one of a: repetition code, cyclic redundancy check (CRC), cryptographic hash function, forward error correction (FEC) code, and channel coding.

39. The system of claim 37 , wherein the ECC is at least one of a: convolutional code, block code, Reed-Solomon code, Hamming code, Hadamard code, Expander code, Golay code, and Reed-Muller code.

40. The system of claim 31 , wherein the determining the one of the second data packets to be received at the first interface from the service is not received and/or is corrupted includes one or more of:

using a scorecard; and

detecting at least one of changes to jitter buffer size, packet latency above a predetermined threshold, and degradation in audio quality using a number of lost packets.

Assignments (3)
RELEASE OF SECURITY INTEREST Recorded Jun 9, 2023
From: KEYBANK NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: OOMA, INC.
Reel/Frame 063910/0866 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jan 11, 2021
From: OOMA, INC.
To: KEYBANK NATIONAL ASSOCIATION
Reel/Frame 054959/0756 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2017
From: GILLON, WILLIAM M.; LEI, HAI; FARRAND, TOBIN E.; BRYAN, DAVID A.
To: OOMA, INC.
Reel/Frame 043722/0274 →
Continuity (2)
Continuation 14708132 · May 8, 2015
Related Publication 20170034044A1 · Feb 2, 2017
Cited By (1)
US 12,190,702