IP Library Granted Patent US 9,912,636
Granted Patent B1
US 9,912,636 · App. 14/093,211 · Granted Mar 6, 2018

NAT traversal in VoIP communication system

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 9,912,636
App. No.
14/093,211
Granted
Mar 6, 2018
Kind
B1
Abstract

Methods, systems, and apparatuses are provided for VoIP communication with VoIP-enabled devices via a network address translator (NAT). A set of proxy servers is configured to relay communications through mapped paths of the NAT during operations including VoIP sessions through or with the plurality of VoIP-enabled devices and during other operations not involving VoIP sessions through or with the plurality of VoIP-enabled devices. The mapped paths are susceptible to being unmapped by the NAT if the mapped path is unused for a threshold duration of time. The proxy servers maintain the mapped paths through the NAT by prompting the VoIP-enabled devices to communicate data to the set of proxy servers. More specifically, a VoIP-enabled device is prompted to communicate data to the set of proxy servers, in response to the VoIP-enabled device not communicating with the set of proxy servers for a duration of time exceeding the threshold duration of time.

Claims (50)

1. An apparatus for Voice-Over-IP (VoIP) communications to and from a plurality of VoIP-enabled devices via a network address translator, the apparatus comprising:

a set of proxy servers configured and arranged to:

relay communications through mapped paths of the network address translator during operations including VoIP sessions through or with the plurality of VoIP-enabled devices and during other operations not involving VoIP sessions through or with the plurality of VoIP-enabled devices, each of the mapped paths being susceptible to being unmapped by the network address translator in response to the mapped path being unused for a threshold duration of time;

for each VoIP-enabled device of the plurality of VoIP-enabled devices, in response to the VoIP-enabled device not communicating with the set of proxy servers, via a respective one of the mapped paths, for a duration of time exceeding the threshold duration of time, prompt the VoIP-enabled device to transmit one or more messages to the set of proxy servers, via the respective one of the mapped paths, in order to maintain the respective one of the mapped paths through the network address translator to the VoIP-enabled device and receive, by at least one of the set of proxy servers, the one or more messages from the VoIP-enabled device, the one or more messages including a response message to at least one proxy server of the set of proxy servers; and

remove the VoIP-enabled device from a registration list of a first proxy server of the set of proxy servers in response to a Session Initiation Protocol (SIP) dialog being initiated by the VoIP-enabled devices through a second proxy server of the set of proxy servers.

2. The apparatus of claim 1 , wherein:

each of the plurality of VoIP-enabled devices is configured and arranged to register with one of the set of proxy servers; and

each of the set of proxy servers includes

a registration/subscription circuit configured and arranged to maintain a list of the plurality of VoIP-enabled devices registered with the proxy server, and for each VoIP-enabled device on the list, perform the prompting of the VoIP-enabled device to maintain the respective one of the mapped paths, through the network address translator, to the VoIP-enabled device, and

a routing circuit configured and arranged to relay the communications through mapped paths of the network address translator during the VoIP sessions with the plurality of VoIP-enabled devices included in the list.

3. The apparatus of claim 2 , further including a call control server configured and arranged to, in response to an incoming VoIP session to a VoIP-enabled device of the plurality of VoIP-enabled devices, determine the proxy server with which the VoIP-enabled device is registered, and route the incoming VoIP session to the proxy server.

4. The apparatus of claim 1 , wherein the set of proxy servers are running as Session Initiation Protocol Back-to-back User Agent (SIP B2BUA) servers, and wherein the VoIP-enabled device is configured and arranged to register to a domain configured as a DNS A (Domain Name System) or SRV (Service) record having multiple proxy servers of the set of proxy servers, and is further configured and arranged to register to one of the multiple proxy servers of the domain at a first registration interval and switch to another of the multiple proxy servers at a second registration interval.

5. The apparatus of claim 4 , wherein the set of proxy servers are configured and arranged to relay Real Time Protocol messages and Session Initiation Protocol messages to and from the plurality of VoIP-enabled devices, wherein a SIP registration path is a different mapped path through the network address translator than a SIP dialog path during the switch to the other of the multiple proxy servers, and wherein the multiple proxy servers are configured and arranged to track paths used to communicate the SIP dialog path used to register the VoIP-enabled devices.

6. The apparatus of claim 1 , wherein:

each VoIP-enabled device of the plurality of VoIP-enabled devices is configured and arranged to register or subscribe with a respective one of the set of proxy servers; and each proxy server of the set of proxy servers is configured and arranged to:

in response to a VoIP-enabled device of the plurality of VoIP-enabled devices initiating a Session Initiation Protocol dialog through the proxy server, operate in a first state in which the proxy server is configured and arranged to

maintain a timer indicating a duration of time since the VoIP-enabled device registered or subscribed with the set of proxy servers, and

prompt the VoIP-enabled device to transmit a communication to the proxy server in response to the duration of time indicated by the timer exceeding a threshold amount of time; and

in response to the VoIP-enabled device initiating one or more Session Initiation Protocol dialogs through a proxy server with which the VoIP-enabled device is not registered or subscribed, or with which registration or subscription has expired, operate in a second state in which the proxy server is configured and arranged to use the Session Initiation Protocol dialog to maintain a respective one of the mapped paths through the network address translator to the VoIP-enabled device until an end of the Session Initiation Protocol dialog by prompting the VoIP-enabled device to transmit Session Initiation Protocol dialog communications to the proxy server.

7. The apparatus of claim 6 , wherein the Session Initiation Protocol dialog is initiated by an Session Initiation Protocol invite message, and wherein each proxy server of the set of proxy servers is configured and arranged to:

in response to the end of the Session Initiation Protocol dialog, operate in an idle state in which the proxy server stops prompting the VoIP-enabled device to transmit the Session Initiation Protocol dialog communications to the proxy server.

8. The apparatus of claim 6 , wherein the proxy server is configured and arranged to:

add a VoIP-enabled device of the plurality of VoIP-enabled devices to a list of registered devices upon receiving an Session Initiation Protocol register message or a subscribe message from the VoIP-enabled device; and

remove the VoIP-enabled device from the list of registered devices in response to either the duration of time indicated by the timer exceeding the threshold amount or a new Session Initiation Protocol dialog being initiated by the VoIP-enabled device through another one of the set of proxy servers.

9. The apparatus of claim 6 , wherein the proxy server is configured and arranged to prompt the VoIP-enabled device to transmit a communication to the proxy server by transmitting the Session Initiation Protocol options message to the VoIP-enabled device.

10. A system for Voice-Over-IP (VoIP) communication, comprising:

a network address translator;

a plurality of VoIP-enabled devices communicatively connected to a local area network side of the network address translator; and

a set of proxy servers communicatively connected to a wide area network side of the network address translator and configured and arranged to, for each VoIP-enabled device of the plurality of VoIP-enabled devices,

register the VoIP-enabled device with the set of proxy servers,

relay communications to and from the VoIP-enabled device through a mapped path of the network address translator, each mapped path being susceptible to being unmapped by the network address translator in response to the mapped path being unused for a threshold duration of time, and

in response to the VoIP-enabled device not communicating with the set of proxy servers for a duration of time exceeding the threshold duration of time, prompting the VoIP-enabled device to transmit one or more messages to the set of proxy servers, via the mapped path, in order to maintain a respective one of the mapped paths through the network address translator to the VoIP-enabled device and receive, by at least one of the set of proxy servers, the one or more messages from the VoIP-enabled device, the one or more messages including a response message to at least one proxy server of the set of proxy servers;

a call control server, configured and arranged to, in response to an incoming VoIP session to a VoIP-enabled device of the plurality of VoIP-enabled devices, determine a first proxy server of the set of proxy servers with which the VoIP-enabled device is registered, and route the incoming VoIP session to the VoIP-enabled device via the determined proxy server; and

remove the VoIP-enabled device from a registration list of the first proxy server of the set of proxy servers in response to a Session Initiation Protocol (SIP) dialog being initiated by the VoIP-enabled devices through a second proxy server of the set of proxy servers.

11. The system of claim 10 , wherein each of the set of proxy servers includes:

a registration/subscription circuit configured and arranged to maintain a list of the plurality of VoIP-enabled devices registered with the proxy server, and for each VoIP-enabled device on the list, perform the prompting of the VoIP-enabled device to maintain the respective one of the mapped paths, through the network address translator, to the VoIP-enabled device, and

a routing circuit configured and arranged to relay the communications through mapped paths of the network address translator to and from ones of the plurality of VoIP-enabled devices that are included in the list.

12. The system of claim 11 , wherein the set of proxy servers are running as Session Initiation Protocol Back-to-back User Agent (SIP B2BUA) servers configured to relay Real Time Protocol messages and Session Initiation Protocol messages to and from the plurality of VoIP-enabled devices.

13. The system of claim 11 , wherein each of the set of proxy servers is configured to:

in response to receiving a Session Initiation Protocol register message or a subscribe message from a VoIP-enabled device of the plurality of VoIP-enabled devices, register the VoIP-enabled device for a period of time by adding the VoIP-enabled device to the list; and

in response to either the period of time elapsing or a new Session Initiation Protocol dialog being initiated by the VoIP-enabled device through another one of the set of proxy servers, remove the VoIP-enabled device from the list.

14. A method for communicating with a plurality of Voice-Over-IP (VoIP)-enabled devices via a network address translator, the method comprising:

for each VoIP-enabled device of the plurality of VoIP-enabled devices, registering the VoIP-enabled device with a set of proxy servers, and relaying communications through a mapped path of the network address translator during VoIP sessions with the VoIP-enabled device using one of the set of proxy servers, with which the VoIP-enabled device is registered, each of the mapped paths being susceptible to being unmapped by the network address translator in response to the mapped path being unused for a threshold duration of time;

for each VoIP-enabled device of the plurality of VoIP-enabled devices, in response to the VoIP-enabled device not communicating with the set of proxy servers for a duration of time exceeding the threshold duration of time, prompting the VoIP-enabled device to transmit one or more messages to one of the set of proxy servers via a respective one of the mapped paths, with which the VoIP-enabled device is registered or through which the VoIP-enabled device initiated a VoIP session, in order to maintain the respective one of the mapped paths through the network address translator to the VoIP-enabled device, and receiving, by at least one of the set of proxy servers, the one or more messages from the VoIP-enabled device, the one or more messages including a response message to at least one proxy server of the set of proxy servers; and

remove the VoIP-enabled device from a registration list of a first proxy server of the set of proxy servers in response to a Session Initiation Protocol (SIP) dialog being initiated by the VoIP-enabled devices through a second proxy server of the set of proxy servers.

15. The method of claim 14 , wherein the relaying of the communications through a mapped path of the network address translator during VoIP sessions with the VoIP-enabled device includes operating one of the set of proxy servers as a Session Initiation Protocol Back-to-back User Agent (SIP B2BUA) server, and using the SIP B2BUA server to relay Real Time Protocol messages and Session Initiation Protocol messages to and from the VoIP-enabled device.

16. The method of claim 14 , wherein the registering the VoIP-enabled device with a set of proxy servers includes:

in response a proxy server of the set of proxy servers receiving a Session Initiation Protocol register message or a subscribe message from the VoIP-enabled device, registering the VoIP-enabled device with the proxy server for a period of time indicated by the Session Initiation Protocol register message or the subscribe message, the registration of the VoIP-enabled device expiring after the period of time has elapsed; and

in response to the period of time elapsing or the VoIP-enabled device initiating an Session Initiation Protocol dialog through one of the set of proxy servers that the VoIP-enabled device is not registered with, unregistering the VoIP-enabled device.

17. The method of claim 14 , wherein the prompting of the VoIP-enabled device to transmit the one or more messages to the corresponding proxy server includes transmitting a Session Initiation Protocol options message to the VoIP-enabled device, the method including maintaining a timer until registration of the VoIP-enabled device expires, and prompting the VoIP-enabled device at intervals corresponding to the threshold duration of time.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Aug 5, 2024
From: WILMINGTON SAVINGS FUND SOCIETY, FSB
To: 8X8, INC.; FUZE, INC.
Reel/Frame 068328/0569 →
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY NUMBERS SECTION TO REMOVE APPLICATION NUMBERS 11265423, 11252205, 11240370, 11252276, AND 11297182 PREVIOUSLY RECORDED ON REEL 061085 FRAME 0861. ASSIGNOR(S) HEREBY CONFIRMS THE INTELLECTUAL PROPERTY SECURITY AGREEMENT. Recorded Jan 26, 2024
From: 8X8, INC.; FUZE, INC.
To: WILMINGTON SAVINGS FUND SOCIETY, FSB
Reel/Frame 066383/0936 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Aug 5, 2022
From: 8X8, INC.; FUZE, INC.
To: WILMINGTON SAVINGS FUND SOCIETY, FSB
Reel/Frame 061085/0861 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 29, 2013
From: LIU, ZHISHEN
To: 8X8, INC.
Reel/Frame 031692/0072 →