IP Library Granted Patent US 8,892,748
Granted Patent B1
US 8,892,748 · App. 13/931,942 · Granted Nov 18, 2014

Systems and methods for enabling data communications to a telephony device

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,892,748
App. No.
13/931,942
Granted
Nov 18, 2014
Kind
B1
Abstract

Systems and methods for determining an interval for the transmission of keep alive messages that will prevent a pinhole of a data network interface device from closing are driven by a software client on a computing device. The software client informs a network server of a first time interval, and the server uses the first time interval to send communications to the computing device that trigger the computing device to send keep alive messages to the server. If the first time interval does not result in the pinhole closing, the software client instructs the network server to send messages to the computing device that trigger the computing device to send keep alive messages to the server according to a second, longer time interval. This process repeats until the pinhole ultimately closes, and then the last interval that did not cause the pinhole to close is selected for use.

Claims (50)

1. A method performed by a software application of a computing device that communicates with a data network via a network interface device that maintains a pinhole timer for incoming communications directed to the computing device, the method being designed to determine a time interval for sending messages that will prevent the pinhole from closing, the method comprising:

sending a first communication to a server via the network interface device before the software application is moved to the background of an operating system of the computing device for a first background period, the first communication indicating a first initial time interval at which the software application wishes to receive wake up messages from the server;

receiving at least one wake up message from the server during the first background period, wherein the receipt of each wake up message causes a message to be sent from the computing device to the server, and wherein a first test wake up message is received at a point in time that is before the end of the first background period by an interval approximately equal to a sum of the first time interval and a time increment; and

determining if the pinhole timer of the data network interface device closed during the period of time that elapses between receipt of the first test wake up message and the end of the first background period.

2. The method of claim 1 , wherein if the determining step indicates that the pinhole timer expired during the period of time that elapses between receipt of the first test wake up message and the end of the first background period, the method further comprises sending a communication to the server before subsequent background periods, the communication indicating that wake up messages should be sent to the software application each time that the first initial time interval expires.

3. The method of claim 2 , further comprising a step of recording the first initial time interval against an identifier of the network interface device.

4. The method of claim 2 , further comprising sending a communication to a server that includes the first initial time interval and an identifier of the network interface device.

5. The method of claim 1 , wherein the step of sending a communication comprises sending a Session Initiation Protocol (SIP) REGISTER message to the server.

6. The method of claim 5 , wherein the SIP REGISTER message includes the first initial time interval in a header field of the SIP REGISTER message.

7. The method of claim 1 , wherein the step of sending a communication comprises sending a communication to the server that also includes the time increment.

8. The method of claim 7 , wherein the step of sending a communication comprises sending a Session Initiation Protocol (SIP) REGISTER message that includes the time increment in a first header field of the SIP REGISTER message.

9. The method of claim 1 , wherein if the determining step indicates that the pinhole timer did not expire during the period of time that elapses between receipt of the first test wake up message and the end of the first background period, the method further comprises:

sending a second communication to the server just before the software application is moved to the background for a second background period, the second communication indicating a second initial time interval at which the software application wishes to receive wake up messages from the server, the second initial time interval being longer than the first initial time interval; and,

receiving at least one wake up message from the server during the second background period, wherein the receipt of each wake up message causes a message to be sent from the computing device to the server.

10. The method of claim 9 , wherein the method further comprises:

receiving a second test wake up message at a point in time that is before the end of the first background period by an interval approximately equal to a sum of the second initial time interval and the time increment; and

determining if the pinhole timer of the data network interface device closed during the period of time that elapses between receipt of the second test wake up message and the end of the second background period.

11. The method of claim 10 , wherein the second initial time interval is equal to a sum of the first initial time interval and the time increment.

12. The method of claim 10 , wherein if the determining step indicates that the pinhole timer expired during the period of time that elapses between receipt of the second test wake up message and the end of the second background period, the method further comprises sending a communication to the server before subsequent background periods that indicates that wake up messages should be sent to the software application each time that the second initial time interval expires.

13. The method of claim 1 , wherein the method further comprises varying the time increment for different test wake up messages.

14. The method of claim 1 , wherein the method further comprises:

storing the first time interval in association with the network interface device;

when the computing device in the future connects to the same network interface device, using the stored first time interval.

15. A system, resident on a computing device that communicates with a data network via a network interface device that that maintains a pinhole timer for incoming communications directed to the computing device, the system being configured to determine a time interval for sending messages that will prevent a pinhole of a data network interface device from closing, comprising:

means for sending a first communication to a server via the network interface device before a software application on the computing device is moved to the background of an operating system of the computing device for a first background period, the first communication indicating a first initial time interval at which the software application wishes to receive wake up messages from the server;

means for receiving at least one wake up message from the server during the first background period, wherein the receipt of each wake up message causes a message to be sent from the computing device to the server, and wherein a first test wake up message is received at a point in time that is before the end of the first background period by an interval approximately equal to a sum of the first time interval and a time increment; and

means for determining if the pinhole timer of the data network interface device closed during the period of time that elapses between receipt of the first test wake up message and the end of the first background period.

16. A non-transitory computer readable medium that stores a set of instructions which, when performed by one or more processors of computing device that communicates with a data network via a network interface device, causes the computing device to perform a method that comprises:

sending a first communication to a server via the network interface device before a software application on the computing device is moved to the background of an operating system of the computing device for a first background period, the first communication indicating a first initial time interval at which the software application wishes to receive wake up messages from the server;

receiving at least one wake up message from the server during the first background period, wherein the receipt of each wake up message causes a message to be sent from the computing device to the server, and wherein a first test wake up message is received at a point in time that is before the end of the first background period by an interval approximately equal to a sum of the first time interval and a time increment; and

determining if a pinhole timer of the data network interface device closed during the period of time that elapses between receipt of the first test wake up message and the end of the first background period.

17. The non-transitory computer readable medium of claim 16 , wherein if the determining step indicates that the pinhole timer expired during the period of time that elapses between receipt of the first test wake up message and the end of the first background period, the method further comprises sending a communication to the server before subsequent background periods, the communication indicating that wake up messages should be sent to the software application each time that the first initial time interval expires.

18. The non-transitory computer readable medium of claim 17 , further comprising a step of recording the first initial time interval against an identifier of the network interface device.

19. The non-transitory computer readable medium of claim 17 , wherein the method further comprises sending a communication to a server that includes the first initial time interval and an identifier of the network interface device.

20. The non-transitory computer readable medium of claim 16 , wherein the step of sending a communication comprises sending a Session Initiation Protocol (SIP) REGISTER message to the server.

21. The non-transitory computer readable medium of claim 20 , wherein the SIP REGISTER message includes the first initial time interval in a header field of the SIP REGISTER message.

22. The non-transitory computer readable medium of claim 16 , wherein the step of sending a communication comprises sending a communication to the server that also includes the time increment.

23. The non-transitory computer readable medium of claim 22 , wherein the step of sending a communication comprises sending a Session Initiation Protocol (SIP) REGISTER message that includes the time increment in a first header field of the SIP REGISTER message.

24. The non-transitory computer readable medium of claim 16 , wherein if the determining step indicates that the pinhole timer did not expire during the period of time that elapses between receipt of the first test wake up message and the end of the first background period, the method further comprises:

sending a second communication to the server just before the software application is moved to the background for a second background period, the second communication indicating a second initial time interval at which the software application wishes to receive wake up messages from the server, the second initial time interval being longer than the first initial time interval; and

receiving at least one wake up message from the server during the second background period, wherein the receipt of each wake up message causes a message to be sent from the computing device to the server.

25. The non-transitory computer readable medium of claim 24 , wherein the method further comprises:

receiving a second test wake up message at a point in time that is before the end of the first background period by an interval approximately equal to a sum of the second initial time interval and the time increment; and

determining if the pinhole timer of the data network interface device closed during the period of time that elapses between receipt of the second test wake up message and the end of the second background period.

26. The non-transitory computer readable medium of claim 25 , wherein the second initial time interval is equal to a sum of the first initial time interval and the time increment.

27. The non-transitory computer readable medium of claim 25 , wherein if the determining step indicates that the pinhole timer expired during the period of time that elapses between receipt of the second test wake up message and the end of the second background period, the method further comprises sending a communication to the server before subsequent background periods that indicates that wake up messages should be sent to the software application each time that the second initial time interval expires.

28. The non-transitory computer readable medium of claim 16 , wherein the method further comprises varying the time increment for different test wake up messages.

29. The non-transitory computer readable medium of claim 16 , wherein the method further comprises:

storing the first time interval in association with the network interface device;

when the computing device in the future connects to the same network interface device, using the stored first time interval.

Assignments (8)
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 →
CHANGE OF NAME Recorded Jun 8, 2022
From: VONAGE AMERICA INC.
To: VONAGE AMERICA LLC
Reel/Frame 060313/0447 →
SECURITY INTEREST Recorded Nov 12, 2018
From: VONAGE AMERICA INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 047502/0628 →
MERGER Recorded Mar 31, 2016
From: VONAGE NETWORK LLC
To: VONAGE AMERICA INC.
Reel/Frame 038320/0327 →
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 →
SECURITY INTEREST Recorded Jul 29, 2015
From: VONAGE HOLDINGS CORP.; VONAGE AMERICA INC.; VONAGE BUSINESS SOLUTIONS, INC.; VONAGE NETWORK LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 036205/0485 →
SECURITY INTEREST Recorded Aug 14, 2014
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 033545/0424 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 1, 2013
From: WOOTTON, MARK; ILTUS, SAGI
To: VONAGE NETWORK, LLC
Reel/Frame 030744/0279 →