Systems and methods for dynamically registering endpoints in a network

Information

  • Patent Grant
  • 10834049
  • Patent Number
    10,834,049
  • Date Filed
    Wednesday, June 19, 2019
    4 years ago
  • Date Issued
    Tuesday, November 10, 2020
    3 years ago
Abstract
Various systems and methods for dynamically registering a communication device with a network are disclosed. As one example, a system is disclosed that includes a home feature server, a central feature server, and a floating feature server. The floating feature server is communicably coupled to at least the home and central feature servers, and the home feature server is communicably coupled to at least the central feature server. The home feature server is associated with a communication device. The floating feature server is communicably coupled to a computer readable medium that includes instructions executable by the floating feature server to: receive an access request from the communication device; issue a services request to the home feature server; and service the access request. Various other embodiments and/or features are also disclosed.
Description
BACKGROUND OF THE INVENTION

The present invention provides systems and methods for servicing network access requests. More particularly, the present invention provides systems and methods for servicing network access requests issued by a communication device to a Voice over Internet Protocol network.


In non-traditional telecommunications systems, services are provided via a feature server provisioned to accept access from a particular communication device. In some cases, the provisioned feature server will become inoperable due to a failure of the feature server. When such a failure occurs, the services provided to the communication device may be unavailable or severely limited. Similarly, network access to the feature server may become so congested that the quality of response from the provisioned feature server may be limited.


Hence, there exists a need in the art for advanced systems and methods for offering telecommunication services.


BRIEF SUMMARY OF THE INVENTION

The present invention provides systems and methods for servicing network access requests. More particularly, the present invention provides systems and methods for servicing network access requests issued by a communication device to a Voice over Internet Protocol network.


Various embodiments of the present invention provide systems and methods for dynamically assigning a feature server for use by a particular communication device. Thus, the communication device need not necessarily access a network by an assigned feature server. Such an approach may provide, among other things, an ability to avoid network congestion and/or device failures.


Some embodiments of the present invention provide methods for dynamically provisioning feature server access in a communication network. The methods include periodically updating a network service resource list. The network service resource list indicates one or more feature servers accessible by a load balancer. Registration requests are received, and an indication of at least one feature server from the network service resource list is provided in response to the registration request. Such registration requests can be issued by a TA and/or communication device. In some cases, the indicated feature server can be used by a communication device to access the network.


In various cases, the network service resource list includes a number of feature servers presented in an ordered list. The order of the ordered list can indicate, for example, preferential access order, costs, loading, quality of service, and/or the like. Further, in some cases a list of available network resources is provided in response to the registration request. This list includes the indicated feature server provided in response to the registration request. This list of available network resources can be a subset of the network service resource list, and can be provided as an ordered list. Similarly, the order of the ordered list can indicate one or more preferences including, but not limited to, preferential access order, costs, loading, quality of service, and/or the like. In some cases, this list of available network resources is also referred to as a network resource list.


In various instances, the feature servers in the network service resource list includes pairs of NAT traversal managers and feature servers. These pairs may include pairing between feature servers and NTMs that are one to one, one to many, and/or many to many. Thus, for example, one feature server may be paired with only one NAT traversal manager, or two or more NAT traversal managers. Similarly, one NAT traversal manager may be paired with only one feature server, or with two or more feature servers. In such cases, the indicated feature server is identified in relation to an associated NAT traversal manager.


In some cases, two or more feature servers on the network service resource list are clustered. Such clustering is found where a database is commonly accessible by two or more feature servers. One of the feature servers may be a home feature server associated with a communication device issuing the registration request, and another of the feature servers may be a central feature server.


In some cases when a network access request is received from the communication device, the receiving feature server accesses a database associated with the home feature server using a services request. Where the receiving feature server and home feature server are clustered, the database access maybe performed without accessing the home feature server, while in other cases the home feature server is accessed. Where the access to the home feature server fails, the receiving feature server may issue another services request to the central feature server.


Other embodiments of the present invention provide methods for dynamically registering a communication device with a communication network. The methods include issuing a registration request to a load balancer. In response to the registration request, a network service resource list is received which indicates one or more feature servers. In addition, one of the feature servers from the network service resource list is accessed. In some cases, the network service resource list includes NAT traversal manager and feature server pairs. In such a case, accessing the feature server includes accessing the associated NAT traversal manager. In various cases, the methods include accessing another NAT traversal manager and feature server pair when a preceding access to another pair fails.


Yet other embodiments of the present invention provide systems for facilitating dynamic network access requests. Such systems include a home feature server, a central feature server, and a floating feature server. The floating feature server is communicably coupled to at least the home and central feature servers, and the home feature server is communicably coupled to at least the central feature server. The home feature server is associated with a communication device. The floating feature server is communicably coupled to a computer readable medium that includes instructions executable by the floating feature server to: receive an access request from the communication device; issue a services request to the home feature server; and service the access request. In some cases, the computer readable medium further includes instructions executable to determine that the first services access request failed, and to issue a second services access request to the central feature server.


This summary provides only a general outline of some embodiments according to the present invention. Many other objects, features, advantages and other embodiments of the present invention will become more fully apparent from the following detailed description, the appended claims and the accompanying drawings.





BRIEF DESCRIPTION OF THE DRAWINGS

A further understanding of the various embodiments of the present invention may be realized by reference to the figures which are described in remaining portions of the specification. In the figures, like reference numerals are used throughout several to refer to similar components. In some instances, a sub-label consisting of a lower case letter is associated with a reference numeral to denote one of multiple similar components. When reference is made to a reference numeral without specification to an existing sub-label, it is intended to refer to all such multiple similar components.



FIG. 1A depicts a communication network in accordance with some embodiments of the present invention;



FIG. 1B depicts an exemplary non-traditional communication device for a network in accordance with some embodiments of the present invention;



FIG. 2 depicts a system in accordance with various embodiments of the present invention;



FIG. 3A depicts a method in accordance with one or more embodiments of the present invention for dynamically registering an endpoint with a network;



FIG. 3B depicts a method in accordance with various embodiments of the present invention for a registration process of an endpoint with a network from the perspective of a communication device;



FIG. 3C depicts a method in accordance with various embodiments of the present invention for providing network access initiated from a telephone call;



FIG. 3D depicts a method in accordance with various embodiments of the present invention for providing network access initiated from a registration request from an endpoint; and



FIG. 4 is a flow diagram showing a method for identifying communication device location and dynamic registration of a communication device in accordance with various embodiments of the present invention.





DETAILED DESCRIPTION OF THE INVENTION

The present invention provides systems and methods for servicing network access requests. More particularly, the present invention provides systems and methods for servicing network access requests issued by a communication device to a Voice over Internet Protocol network.


Various embodiments of the present invention provide for dynamically registering a communication device or terminal adapter (“TA”) with a feature server. As used herein the term “communication device” is used in its broadest sense to mean any device operable to communicate information. Thus, for example, a communication device can be a TA, a dial up modem, a broadband modem, an IAD associated with a public branch exchange, an IP phone, combinations thereof, and/or the like. In the document the terms TA and communication device can generally be used interchangeably. In some cases, a TA uses a DNS to find a load balancer. The load balancer redirects the TA to a NAT traversal manager (“NTM”). Behind the NTM, there could be another load balancer that directs a registration request to a particular feature server or cluster of feature servers. In some cases, the particular feature server is a home feature server (e.g., home switch) for the TA. In the event that the TA roams to another location or in the event that the load balancer directs the TA to another feature server because of network congestion or failure, the feature server receiving the registration request (e.g. floating or visiting feature server) may load the subscriber information for the TA and notify the home feature server that the feature server receiving the registration request is now supporting the TA. The network may try to communicate with the TA via the home feature server. In such a situation, the home feature server may redirect the network to the feature server that received the registration request. Using such an approach, a communication device or TA is not limited to accessing the network by predefined feature servers, but can rather register with the network and be provisioned with any of a number of feature servers. In some cases, the systems and methods of the present invention can provide higher reliability and allow for a more efficient form of communication device roaming. Further, in various cases, the systems and methods of the present invention can provide a mechanism for doing congestion control in the network. Based on the disclosure provided herein, one of ordinary skill in the art will recognize a number of other advantages that can be achieved using systems and methods in accordance with embodiments of the present invention.


Some embodiments of the present invention provide systems and methods for dynamically provisioning feature server access in a communication network. As used herein, the term “communication network” encompasses any network capable of transmitting information from one entity to another. In one particular case, a communication network is a Voice over Internet Protocol network. Some of the systems and methods of the present invention include periodically updating a network service resource list. As used herein, the term “network resource list” is used in its broadest sense to be a list of any resources available in a network. In one particular case, the network resource list indicates one or more feature servers accessible to a load balancer and/or a communication device. In some cases, the network resource list includes pairs of NAT traversal managers and feature servers accessible to the load balancer and/or communication device. The feature servers described on the network resources list can be floating feature servers, home feature servers, and/or central feature servers as more fully set forth below. In some cases, these feature servers are described as communicably coupled one with another, or communicably coupled with other network devices. For the purposes of this document, the term “communicably coupled” is used in its broadest sense to mean coupling in any fashion that allows information to be passed between network devices. Thus, for example, communicably coupled devices can be coupled either directly or indirectly. Further, communicably coupled devices can be, for example, electrically coupled, optically coupled, wirelessly coupled, and/or physically coupled.


Turning to FIG. 1, a communication network 100 and an exemplary non-traditional communication device 124 useful in accordance with some embodiments of the present invention are illustrated. Communication network 100 includes a voice network 110 with one or more feature servers 114, one or more NTMs 112, and one or more session border controllers (“SBC”). Feature server 114 is operable to provide one or more telecommunications services supported by voice network 110. For example, feature server 114 may provide caller identification, call forwarding, voice mail, and/or the like. In one particular case, feature server 114 is a Class-5 soft switch. Session border controller 116 and NTM 112 are responsible for receiving and sending communications to/from voice network 110. Thus, as illustrated, NTM 112 is responsible for passing communications between a border network 120 and voice network 110. Similarly, session border controller 116 is responsible for passing communications between voice network 110 and border network 130.


As illustrated, border network 120 includes one or more load balancers 122, and is communicably coupled to one or more communication devices 124a. Communication devices 124 are also referred to herein as terminal adapters (“TA”). For purposes of this document, a terminal adapter/communication device can be a stand alone adapter capable of interfacing a telephone or other communication equipment to border networks 120, 130 or directly to voice network 110. Alternatively, a terminal adapter/communication device can be incorporated in a more complex communication equipment. Thus, for example, the terminal adapter may be part of a personal computer, a SIP phone, an analog phone, and/or the like. Also illustrated is another communication device 124b communicably coupled to another border network 130.


In a typical scenario, communication device 124a registers with voice network 110. This can begin by accessing load balancer 122 which dynamically directs the registration request to a feature server 114 via an NTM 112. Once communication device 124a is registered, it can be used to make calls via voice network 110. A call is initiated by sending a call request to a feature server 114 via an NTM 112 as assigned during the registration request. In turn, feature server 114 directs the telephone call to another communication device 124b via session border controller 116. In this way voice and/or other communication service can be provided between communication devices 124. Based on the disclosure provided herein, one of ordinary skill in the art will recognize other information in addition to voice that can be passed between communication devices. For example, data, video, and other information can also be passed. Further, based on the disclosure provided herein, one of ordinary skill in the art will recognize that more than IP to IP communications can be handled by systems in accordance with embodiments of the present invention. For example, a call or other communication can exit voice network 110 to an IP endpoint or to a PSTN. Thus, it should be recognized that border network 130 can be different types of networks including, but not limited to, an IP network coupled to voice network 110 via SBC 116, or a PSTN network coupled to voice network 110 via a TDM gateway (not shown).


Turning to FIG. 1B, an exemplary configuration of a compound, non-traditional communication device 124 useful in relation to embodiments of the present invention is illustrated. Non-traditional communication device 124 includes a broadband modem 115 capable of coupling to a public Internet or other border network, an Analog Terminal Adapter (“ATA”) 113 capable of attaching a traditional analog telephone 103 to broadband modem 115, and a home router 111 capable of allowing access for one or more communication devices to broadband modem 115. Such communication devices can be, for example, an electronic monitor 109, a personal computer 107, and an IP telephone 105. Electronic monitor 109 may be any device or system capable of monitoring a defined set of events and reporting on that set of events. Thus, for example, electronic monitor 109 can be a home security system or a patient health status monitoring system. Such systems may be capable of automatically initiating calls and thereafter transmitting various information. In one particular case the system may monitor patient health status or home security status. When a particular status is recognized, an emergency call can be initiated, and information relevant to the emergency can be transmitted. Based on the disclosure provided herein, one of ordinary skill in the art will recognize a number of electronic monitoring equipment that can be associated with non-traditional communication device 124, and a number of situations that can be monitored by such devices.


It should be noted that the configuration is merely exemplary and that many configurations can be used in relation to embodiments of the present invention. For example, PC 107 may connect directly to broadband router 115, and in some cases, broadband router 115 may be replaced by a dial up modem. Alternatively, IP phone 105 may include a broadband modem capable of coupling directly to a border or other network. Based on the disclosure provided herein, one of ordinary skill in the art will recognize a number of other configurations and/or equipment either apart or in combination that can serve the function of non-traditional communication device 124.


Turning to FIG. 2, a system 200 capable of dynamically provisioning feature server access in accordance with one or more embodiments of the present invention is illustrated. System 200 includes a load balancer group 210, an NTM group 220, a feature server group 230, and a telecommunication service database group 240. Load balancer group 210 includes one or more load balancers 214, 218 respectively associated with load balancer caches 212, 216 as are known in the art. In particular, load balancers 214, 218 and load balancer caches 212, 216 can be selected from those commercially available and presently deployed.


NTM group 220 includes one or more NTMs 222, 224, 226, and feature server group 230 includes one or more feature servers 232, 234, 236, 238. Feature servers 232, 234, 236, 238 and NTMs 222, 224, 226 are paired as indicated by routes 260. As illustrated, the following NTM and feature server pairs exist: (1) NTM 222 and feature server 232, (2) NTM 222 and feature server 234, (3) NTM 222 and feature server 236, (4) NTM 224 and feature server 232, (5) NTM 224 and feature server 234, (6) NTM 224 and feature server 236, (7) NTM 226 and feature server 236, and (8) NTM 226 and feature server 238. It should be understood that the pairs are merely illustrative and that many different NTM and feature server pairs can be utilized in accordance with embodiments of the present invention. For example, an NTM can be paired with only one feature server, or with many feature servers. Similarly, a feature server can be paired with only one NTM, or with a number of NTMs.


Feature server group 230 includes one or more floating feature servers 236, 238, a home feature server 234, and a central feature server 232. Each of theses feature servers are described from the perspective of a communication device. Thus, the feature server provisioned to support the communication device is home feature server 234, and central feature server 232 provides at least rudimentary network access where home feature server 234 is unavailable. In one particular case, feature server 232 is a database incorporated with database 242, and is not an actual feature server. Floating feature servers 236, 238 can be accessed by the communication device, but such feature servers may rely on one or both of home feature server 234 and central feature server 232 to service network requests originating from the communication device. It should be noted that one or both of floating feature servers 236, 238 can be provisioned to operate as a home feature server for another communication device. In such a situation, the feature would act as a floating feature server to one communication device, and as a home feature server to another communication device. In some cases, central feature server 232 can act as a floating feature server and/or a home feature server depending upon the configuration of system 200. In one particular case, the feature servers are class five soft switches specially tailored for operation in accordance with embodiments of the present invention. Further, it should be noted that when accessed by a communication device, a floating feature server can receive service information about the communication device, and can dynamically become the home feature server for the communication device.


Telecommunication service database group 240 includes one or more telecommunication service databases 242, 244, 246 associated with one or more feature servers. For example, as illustrated, telecommunication service database 242 is communicably coupled to central feature server 232. Access to telecommunication service database 242 is available by accessing central feature server 232. Similarly, telecommunication service database 246 is communicably coupled to floating feature server 238, and access thereto is available via floating feature server 238. In contrast, telecommunication service database 244 is communicably coupled to both home feature server 234 and floating feature server 236. Thus, telecommunication service database 244 may be accessed via both home feature server 234 and floating feature server 236. Because home feature server 234 and floating feature server 236 share access to a common database they are referred to as “clustered”. Clustered feature servers may both be considered a home feature server, because both have access to the provisioning information useful in servicing a TA. Based on the disclosure provided herein, one of ordinary skill in the art will recognize that floating feature servers can be clustered with other floating feature servers, a home feature server, and/or a central feature server. Similarly, a home feature server or central feature server can be clustered with various other feature server types.


Turning to FIG. 3, a series of flow diagrams 300, 301, 302 illustrate a method for dynamically registering an endpoint with a voice network. Following flow diagram 300, it is determined if it is time to update a load balancer cache (block 305). As will be appreciated by one of ordinary skill in the art, a load balancer maintains some awareness of network loading and network equipment status. This information is maintained in a cache associated with the load balancer, and is used to direct network accesses in such a way that the network accesses succeed and network congestion is reduced. This information is periodically updated based on an timer associated with a particular load balancer, or some other event such as an external indication of network equipment failure. Thus, determining whether it is time to update the load balancer cache includes querying the timer or other external event. In some cases, it may be that the load balancer cache is updated immediately as network information becomes available.


Where it is determined that it is time to update the load balancer cache (block 305), the load balancer requests network status (block 307) and in turn receives status updates (block 309). These status updates are loaded into the load balancer cache (block 311). Where the load balancer cache is updated (blocks 307-311), or where the load balancer update period is not complete (block 305), it is determined whether a registration request is received from a TA (block 313). In some cases, such a registration request is received whenever a communication device is powered on or otherwise booted, and/or periodically based on a timer implemented in the communication device. This registration request is received by a load balancer that is responsible for directing the request.


Where a registration request is received (block 313), the load balancer receiving the request accesses its cache to determined whether the communication device accessed the load balancer in the recent past. Where the communication device did not access the load balancer in the recent past, the load balancer creates a record for the communication device which is maintained in the load balancer cache for at least some period of time. Alternatively, where the communication device is reflected in the load balancer cache, the load balancer accesses information about the communication device.


In addition, the load balancer retrieves an ordered list of NTM and feature server pairs via which the communication device can access the network (block 315). This ordered list of NTM and feature server pairs is then sent to the communication device (block 317), and the communication device stores the ordered list (block 319). The TA accesses the ordered list and selects the first NTM and feature server pair. The TA issues a network access request to the feature server indicated in the selected NTM and feature server pair using the NTM indicated in the selected NTM and feature server pair (block 321). Where no response is received from the selected NTM and feature server pair (block 323), the network access request is issued to the next NTM and feature server pair (block 321). This process (blocks 321, 323) is repeated until an NTM and feature server pair are successfully accessed. Once a feature server is successfully accessed (block 323), the feature server is used to complete the network access, and is used to complete other network accesses occurring until the next time the communication device registers with the network (block 313) and the ordered list of NTM and feature server pairs is updated (blocks 315, 317, 319).


Based on the disclosure provided herein, one of ordinary skill in the art will recognize that the ordered list need not necessarily be limited to NTM and feature server pairs. For example, in one or more embodiments of the present invention, the ordered list identifies only feature servers, and other mechanisms are used to determine which NAT traversal manager will be used to access a selected feature server. Alternatively, a number of feature servers and NAT traversal managers may be indicated without being paired. In such a case, the communication device would select one of the NAT traversal managers and one of the feature servers to support a network access. Further, any list provided need not necessarily be ordered, or where ordered the order can mean different things including, for example, potential quality of service, network congestion, access cost, and/or the like.


Turning to FIG. 3B, a flow diagram 301 shows a registration process from the perspective of a communication device, and in accordance with various embodiments of the present invention. Following flow diagram 310, it is determined if a communication device has been powered on or other wise booted (block 340) or whether a registration period has expired (block 342). Where either have occurred (blocks 340, 342), the communication device issues a registration request (block 344). In response, the communication device receives a list of network resources (i.e., an access list or a network resource list) which is maintained in a memory associated with the communication device (block 346).


Turning to FIG. 3C, a flow diagram 302 shows a network access which is, in this case, a telephone call from the perspective of a communication device. Following flow diagram 302, a communication device initiates a call (block 360). In initiating the call, the communication device sends a message including the originating phone number and the destination phone number to the designated feature server (block 362). Where the designated feature server is paired with a NAT traversal manager, the message is sent to the designated feature server via the paired NAT traversal manager. Where the feature server acknowledges the request (block 364), the call is processed by the feature server (block 366). As is known in the art, this call processing can include signaling the receiving communication device regarding the incoming call, and setting up a media path between the originating communication device and the receiving communication device. The media path is maintained until the call is completed.


Alternatively, where for some reason the accessed feature server fails to acknowledge the network access request (block 364), the communication device accesses the next NTM and feature server pair from the list of NTM and feature server pairs (block 368). Where the feature server from the NTM and feature server pair responds (block 370), the responding feature server is designated as the feature server to be used for servicing network accesses (block 372). Otherwise, the next NTM and feature server pair is identified from the network resource list and accessed (blocks 368, 370). This process continues until an available feature server is identified.


Once a feature server is designated (blocks 368, 370, 372), the communication device issues a network access request to the newly designated feature server (block 362). Where this newly designated feature server acknowledges the network request (block 364), it proceeds to service the network service request. Otherwise the process for identifying a feature server to service the request is repeated (blocks 368, 370, 372).


Turning to FIG. 3D, a flow diagram 303 shows a network access which, is in this case, a registration request from the perspective of the network servicing the call. Following flow diagram 303, a feature server receives a request to register a communication device (block 341). The receiving feature server determines whether it is the home feature server for the communication device initiating the request (block 343). Where the feature server is the home feature server (block 343), the feature server accesses the telecommunication service database associated with the feature server (block 345). By accessing the telecommunication service database (block 345), the feature server identifies service settings associated with the communication device (block 347). These service settings can indicate, among other things, the quality of service offered to the communication device and what services the communication device has authorized. The services can be, but are not limited to, voice mail, call forwarding, caller identification, multi-party calling, and/or the like. The feature server then proceeds to service the registration request. (block 349).


Alternatively, where it is determined that the feature server is not the home feature server (block 343), the feature server identifies the home feature server for the communication device (block 351). In this case the receiving feature server is a floating feature server and will seek out information regarding the communication device from the home feature server of the communication device. In particular, the floating feature server determines whether it is clustered with the home feature server (block 353). Where the floating feature server is clustered with the home feature server (block 353), the floating feature server accesses the telecommunication service database associated with the cluster including the home feature server (block 355). By accessing the telecommunication service database (block 355), the floating feature server identifies service settings associated with the communication device (block 357). Using these service settings, the floating feature server proceeds to service the request (block 359).


Where it is determined that the floating feature server is not clustered with the home feature server (block 353), a service request is sent to the identified home feature server (block 361). This service request queries for service settings about the communication device from the home feature server. The floating feature server waits for some period to determine if the home feature server will acknowledge the service request (block 363). Where the home feature server acknowledges the service request (block 363), the home feature server accesses the telecommunication service database associated with the home feature server (block 365), and identifies service settings associated with the communication device (block 367). The home feature server sends the identified service settings to the requesting floating feature server (block 369). Based on the received service settings, the floating feature server proceeds to service the request (block 371).


Where the home feature server does not acknowledge the service request from the home feature server (block 363), the service request is sent to a central feature server (block 373). In general, a central feature server will offer only rudimentary service settings capable of fulfilling a basic call or other network access request. Thus, where the home feature server fails to respond, the communication device may still be offered some level of service, albeit not the entire package usually enjoyed by the communication device. The floating feature server waits for some period to determine if the central feature server will acknowledge the service request (block 375). Where the central feature server acknowledges the service request (block 375), the central feature server accesses the telecommunication service database associated with the central feature server (block 381), and identifies service settings associated with the communication device (block 383). The central feature server sends the identified service settings to the requesting floating feature server (block 385), and based on the received service settings, the floating feature server proceeds to service the request (block 387). Alternatively, where the central feature server fails to acknowledge the service request (block 375), the call request fails (block 377). Failure of the call request can be indicated to the communication device by, for example, providing a particular dial tone to the communication device, and/or sending an error message to the communication device.


Turning to FIG. 4, a flow diagram 400 shows a method for identifying communication device location and for dynamically registering a communication device in accordance with various embodiments of the present invention. Following flow diagram 400, it is determined if the communication device has recently powered on (block 405), or whether the registration period for the communication device has been exceeded (block 410). Where either of these conditions are met, the communication device issues a registration request to the network (block 415). It is then determined whether the communication device may have potentially moved since the last time it registered with the network (block 420). This can be done by determining whether the last network access by the communication device reported a different IP address for the communication device, or whether the communication device is accessing the network via a different load balancer than that used in a previous network access. These and other methods for determining the potential that a communication device has moved are more fully described in U.S. patent application Ser. No. 11/009,216 entitled “Systems and Methods for Locating Endpoints in a Communication Network”, and filed by Hagens et al; and U.S. patent application Ser. No. 11/009,212 entitled “Systems and Methods for Providing Third Party Emergency Call Termination”, and filed by Terpstra. Each of the aforementioned patent applications were previously incorporated herein by reference in their entirety.


Where it is determined that the communication device either moved or potentially moved (block 420), the physical location of the communication device is updated (block 430). This physical location information can be used to, among other things, dispatch emergency services in the event an emergency call is placed using the communication device. The process of updating the physical location of the communication device and for utilizing the updated physical location information is more fully described in U.S. patent application Ser. No. 11/009,216 entitled “Systems and Methods for Locating Endpoints in a Communication Network”, and filed by Hagens et al; and U.S. patent application Ser. No. 11/009,212 entitled “Systems and Methods for Providing Third Party Emergency Call Termination”, and filed by Terpstra. Again, the entirety of each of the aforementioned patent applications was previously incorporated herein by reference.


Where an update of the physical location of the communication device is either not warranted (block 420) or is completed (block 430), the communication device is dynamically registered with the network by assembling a network resource list and providing it to the communication device (bock 440). This can include one or more of the processes discussed above in relation to FIG. 3. An access list incorporating information for the network resource list is updated with the communication device (block 445).


In conclusion, the present invention provides novel systems, methods and arrangements for dynamically registering devices with a network. While detailed descriptions of one or more embodiments of the invention have been given above, various alternatives, modifications, and equivalents will be apparent to those skilled in the art without varying from the spirit of the invention. Therefore, the above description should not be taken as limiting the scope of the invention, which is defined by the appended claims.

Claims
  • 1. A method for dynamically provisioning feature server access in a communication network, the method comprising: periodically updating a network service resource list, wherein the network service resource list is an ordered list of a plurality of feature servers and indicates at least one feature server accessible via a load balancer;receiving a registration request from a communication device;providing the network service resource list to the communication device in response to the registration request, wherein at least one feature server is selected from the ordered list;by the selected feature server: in response to receipt of a network access request issued by the communication device, determining whether the selected feature server is a home feature server associated with the communication device;based on a determination that the selected feature server is not the home feature server associated the communication device, determining whether the selected feature server is clustered with the home feature server; andbased on a determination that the selected feature server is not clustered with the home feature server, querying the home feature server for the one or more service settings associated with the communication device.
  • 2. The method of claim 1, further comprising the selected feature server, based on a determination that the selected feature server is clustered with the home feature server, accessing a database communicably coupled to a cluster comprising the home feature server and at least one of a floating feature server and a central feature server, wherein the database identifies one or more service settings associated with the communication device.
  • 3. The method as recited in claim 1, wherein the at least one feature server is selected based at least in part upon a position in the ordered list.
  • 4. The method as recited in claim 1, wherein the at least one feature server comprises a central feature server.
  • 5. The method as recited in claim 1, wherein the at least one feature server comprises the home feature server associated with the communication device issuing the registration request.
  • 6. The method as recited in claim 1, wherein the at least one feature server is paired with a NAT traversal manager.
  • 7. The method as recited in claim 1, wherein the network service resource list further comprises a plurality of NAT traversal managers paired with the plurality of feature servers in the ordered list.
  • 8. The method as recited in claim 7, wherein each of the plurality of NAT traversal managers are respectively paired with at least one of the plurality of feature servers.
  • 9. A non-transitory computer readable medium encoded with instructions for dynamically registering a communication device with a communication network, the instructions executable by one or more processors to perform the steps of: by the communication device: issuing a registration request from the communication device to a load balancer;in response to the registration request, receiving a periodically updated network service resource list at the communication device, wherein the network service resource list comprises an ordered list of a plurality of feature servers compiled prior to receipt of the registration request by the load balancer;accessing the at least one feature server included on the ordered list of feature servers;by the accessed feature server:determining whether the accessed feature server is a home feature server associated with the communication device;based on a determination that the accessed feature server is not the home feature server associated the communication device, determining whether the accessed feature server is clustered with the home feature server; andbased on a determination that the accessed feature server is not clustered with the home feature server, querying the home feature server for the one or more service settings associated with the communication device.
  • 10. The non-transitory computer readable medium as recited in claim 9, the selected feature server further, based on a determination that the accessed feature server is clustered with the home feature server, accessing a database communicably coupled to a cluster comprising the home feature server and at least one of a floating feature server and a central feature server, wherein the database identifies one or more service settings associated with the communication device.
  • 11. The non-transitory computer readable medium as recited in claim 9, wherein the network resource list further comprises a first NAT traversal manager and feature server pair and a second NAT traversal manager and feature server pair, and wherein the at least one feature server is included with the first NAT traversal manager and feature server pair, and wherein accessing the at least one feature server includes accessing a NAT traversal manager included in the first NAT traversal manager and feature server pair.
  • 12. The non-transitory computer readable medium as recited in claim 9, wherein the at least one feature server is a first feature server; wherein the network resource list further comprises a first NAT traversal manager and feature server pair including a first NAT traversal manager and the first feature server, and a second NAT traversal manager and feature server pair including a second NAT traversal manager and the first feature server; and wherein accessing the at least one feature server includes accessing the first NAT traversal manager.
  • 13. The non-transitory computer readable medium as recited in claim 9, wherein the at least one feature server is a first feature server; wherein the network resource list further comprises a first NAT traversal manager and feature server pair including a first NAT traversal manager and the first feature server, and a second NAT traversal manager and feature server pair including the first NAT traversal manager and a second feature server; and wherein accessing the at least one feature server includes accessing the first NAT traversal manger.
  • 14. The non-transitory computer readable medium as recited in claim 9, wherein the at least one feature server is a first feature server; wherein the network resource list further comprises a first NAT traversal manager and feature server pair including a first NAT traversal manager and the first feature server, and a second NAT traversal manager and feature server pair including a second NAT traversal manager and a second feature server; and wherein accessing the at least one feature server includes accessing the first NAT traversal manager.
  • 15. A system comprising: at least one processor; andmemory, operatively connected to the at least one processor and storing instructions that, when executed by the at least one processor, cause the system to perform a set of operations, the set of operations comprising: periodically updating a network service resource list, wherein the network service resource list is an ordered list and indicates at least one feature server accessible via a load balancer;receiving a registration request from a communication device;providing the network service resource list to the communication device in response to the registration request, wherein at least one feature server is selected from the ordered list of feature servers;by the selected feature server: in response to receipt of a network access request issued by the communication device, determining whether the selected feature server is a home feature server associated with the communication device;based on a determination that the selected feature server is not the home feature server associated the communication device, determining whether the selected feature server is clustered with the home feature server; andbased on a determination that the selected feature server is not clustered with the home feature server, querying the home feature server for the one or more service settings associated with the communication device.
  • 16. The system of claim 15, the selected feature server further, based on a determination that the selected feature server is clustered with the home feature server, accessing a database communicably coupled to a cluster comprising the home feature server and at least one of a floating feature server and a central feature server, wherein the database identifies one or more service settings associated with the communication device.
  • 17. The system as recited in claim 15, wherein the at least one feature server is selected based at least in part upon a position in the ordered list of feature servers.
  • 18. The system as recited in claim 15, wherein the set of operations further comprises: based on a determination that the selected feature server is the home feature server associated with the communication device, retrieving the one or more service settings from the database communicably coupled to the home feature server.
Parent Case Info

The present application is a continuation of U.S. patent application Ser. No. 15/837,983, entitled “SYSTEMS AND METHODS FOR DYNAMICALLY REGISTERING ENDPOINTS IN A NETWORK,” filed Dec. 11, 2017, which is a continuation of U.S. patent application Ser. No. 11/009,204, entitled “SYSTEMS AND METHODS FOR DYNAMICALLY REGISTERING ENDPOINTS IN A NETWORK,” filed Dec. 9, 2004, the entire contents of which are fully incorporated by reference herein for all purposes. To the extent appropriate, a claim for priority is made to each of the above-referenced applications.

US Referenced Citations (157)
Number Name Date Kind
5603029 Aman Feb 1997 A
5742666 Alpert Apr 1998 A
5774668 Choquier et al. Jun 1998 A
5812769 Graber et al. Sep 1998 A
5819092 Ferguson et al. Oct 1998 A
5920701 Miller et al. Jul 1999 A
5956716 Kenner et al. Sep 1999 A
6047327 Tso Apr 2000 A
6052718 Gifford Apr 2000 A
6078943 Yu Jun 2000 A
6081835 Antcliff Jun 2000 A
6108703 Leighton et al. Aug 2000 A
6112239 Kenner et al. Aug 2000 A
6134530 Bunting Oct 2000 A
6138026 Irvin Oct 2000 A
6154744 Kenner et al. Nov 2000 A
6167427 Rabinovich et al. Dec 2000 A
6175869 Ahuja et al. Jan 2001 B1
6178160 Bolton et al. Jan 2001 B1
6185601 Wolff Feb 2001 B1
6185619 Joffe et al. Feb 2001 B1
6243760 Armbruster et al. Jun 2001 B1
6314465 Paul et al. Nov 2001 B1
6330605 Christensen et al. Dec 2001 B1
6374299 Ford et al. Apr 2002 B1
6412002 Denman et al. Jun 2002 B1
6412004 Chen et al. Jun 2002 B1
6438652 Jordan et al. Aug 2002 B1
6484204 Rabinovich Nov 2002 B1
6574612 Baratti et al. Jun 2003 B1
6601084 Bhaskaran et al. Jul 2003 B1
6606643 Emens et al. Aug 2003 B1
6636499 Dowling Oct 2003 B1
6665702 Zisapel et al. Dec 2003 B1
6678357 Stumer et al. Jan 2004 B2
6687731 Kavak Feb 2004 B1
6714987 Amin Mar 2004 B1
6722211 Ciobanu et al. Apr 2004 B1
6757266 Hundscheidt Jun 2004 B1
6760775 Anerousis et al. Jul 2004 B1
6778496 Meempat et al. Aug 2004 B1
6795858 Jain et al. Sep 2004 B1
6845092 Vassilovski et al. Jan 2005 B2
6857021 Schuster et al. Feb 2005 B1
6886035 Wolff Apr 2005 B2
6938031 Zoltan et al. Aug 2005 B1
6963557 Knox Nov 2005 B2
7000016 Vanderbeck et al. Feb 2006 B1
7031728 Beyer, Jr. Apr 2006 B2
7054823 Briegs May 2006 B1
7076541 Burstein et al. Jul 2006 B1
7088718 Srivastava Aug 2006 B1
7103645 Leighton et al. Sep 2006 B2
7103647 Aziz Sep 2006 B2
7110393 Tripathi et al. Sep 2006 B1
7111052 Cook Sep 2006 B1
7136651 Kalavade Nov 2006 B2
7151753 Chaney Dec 2006 B2
7174456 Henry Feb 2007 B1
7177399 Dawson et al. Feb 2007 B2
7194552 Schneider Mar 2007 B1
7248891 Charles Jul 2007 B2
7292853 Nam et al. Nov 2007 B2
7308481 Takamoto et al. Dec 2007 B2
7328281 Takeda et al. Feb 2008 B2
7333459 Feyerabend et al. Feb 2008 B2
7342928 Boulay et al. Mar 2008 B2
7379458 Inoue et al. May 2008 B2
7412521 Olson et al. Aug 2008 B2
7412538 Eytchison Aug 2008 B1
7904333 Perkowski Mar 2011 B1
9088599 Terpstra Jul 2015 B2
20010020228 Cantu Sep 2001 A1
20010042139 Jeffords et al. Nov 2001 A1
20020004402 Suzuki Jan 2002 A1
20020031107 Li Mar 2002 A1
20020032777 Kawata et al. Mar 2002 A1
20020057657 La Porta May 2002 A1
20020078209 Peng Jun 2002 A1
20020078263 Darling et al. Jun 2002 A1
20020083154 Auffray Jun 2002 A1
20020098832 Fleischer et al. Jul 2002 A1
20020139839 Catan Oct 2002 A1
20020139848 Catan Oct 2002 A1
20020139859 Catan Oct 2002 A1
20020141401 Albert et al. Oct 2002 A1
20020166117 Abrams et al. Nov 2002 A1
20020167939 Weissman-Berman Nov 2002 A1
20020186844 Levy Dec 2002 A1
20020194081 Perkowski Dec 2002 A1
20020194335 Maynard Dec 2002 A1
20020194342 Lu et al. Dec 2002 A1
20030007622 Kalmanek Jan 2003 A1
20030009392 Perkowski Jan 2003 A1
20030009559 Ikeda Jan 2003 A1
20030012344 Agarwal et al. Jan 2003 A1
20030014386 Jurado, Jr. Jan 2003 A1
20030035387 Kim Feb 2003 A1
20030041238 French et al. Feb 2003 A1
20030050051 Vilander Mar 2003 A1
20030065761 Cereja et al. Apr 2003 A1
20030105865 McCanne et al. Jun 2003 A1
20030108000 Chaney et al. Jun 2003 A1
20030110257 Hyun et al. Jun 2003 A1
20030118011 Wu Jun 2003 A1
20030156577 Dunlap et al. Aug 2003 A1
20030187725 Jotkowitz Oct 2003 A1
20030195001 Tari et al. Oct 2003 A1
20040003084 Malik Jan 2004 A1
20040005884 Nieminen Jan 2004 A1
20040006647 Kim Jan 2004 A1
20040044908 Markham Mar 2004 A1
20040083306 Gloe Apr 2004 A1
20040095938 Ryu May 2004 A1
20040113770 Falk Jun 2004 A1
20040143662 Poyhonen et al. Jul 2004 A1
20040152469 Yla-Outinen et al. Aug 2004 A1
20040153525 Borella Aug 2004 A1
20040160947 Hardy et al. Aug 2004 A1
20040190497 Knox Sep 2004 A1
20040202183 Thubert Oct 2004 A1
20040205192 Olson et al. Oct 2004 A1
20040215748 Boonie Oct 2004 A1
20040264481 Darling et al. Dec 2004 A1
20050004838 Perkowski Jan 2005 A1
20050010653 McCanne Jan 2005 A1
20050015492 Kumbalimutt Jan 2005 A1
20050022203 Zisapel et al. Jan 2005 A1
20050044141 Hameleers et al. Feb 2005 A1
20050055435 Gbadegesin et al. Mar 2005 A1
20050071279 Asano Mar 2005 A1
20050085257 Laird et al. Apr 2005 A1
20050091307 Venkatsubra Apr 2005 A1
20050091407 Vaziri et al. Apr 2005 A1
20050101327 Nam et al. May 2005 A1
20050136925 Yamauchi Jun 2005 A1
20050169438 Binning Aug 2005 A1
20050197767 Nortrup Sep 2005 A1
20050213716 Zhu et al. Sep 2005 A1
20050233728 Karaoguz et al. Oct 2005 A1
20060013147 Terpstra et al. Jan 2006 A1
20060056388 Livingood Mar 2006 A1
20060064478 Sirkin Mar 2006 A1
20060069776 Shim et al. Mar 2006 A1
20060112170 Sirkin May 2006 A1
20060235980 Pote et al. Oct 2006 A1
20060265467 Jang Nov 2006 A1
20070254625 Edge Nov 2007 A1
20090070406 Terpstra et al. Mar 2009 A1
20100248683 Terpstra Sep 2010 A1
20120243466 Hagens Sep 2012 A1
20130060941 Terpstra et al. Mar 2013 A1
20150156320 Hagens et al. Jun 2015 A1
20150312741 Terpstra Oct 2015 A1
20160021176 Terpstra et al. Jan 2016 A1
20180167357 Terpstra et al. Jun 2018 A1
20180295183 Terpstra et al. Oct 2018 A1
Foreign Referenced Citations (6)
Number Date Country
1307018 May 2003 EP
10307783 Nov 1998 JP
WO-1998057275 Dec 1998 WO
WO-1999040514 Aug 1999 WO
WO-200152497 Jul 2001 WO
WO-2003105439 Dec 2003 WO
Non-Patent Literature Citations (45)
Entry
“Cisco Distributed Director”, Cisco Systems, Inc. Jan. 1, 1996, 9 pgs.
European Examination Report, dated Feb. 9, 2016, Application No. 06717386.4, filed Jan. 3, 2006; 4 pgs.
European Examination Report, dated Oct. 25, 2017, Application No. 06717386.4, filed Jan. 3, 2006; 3 pgs.
European Examination Report, dated Sep. 19, 2012, Application No. 05744499.4, 5 pgs.
European Search Report dated May 17, 2011, counterpart European Application No. 05744499.4, 5 pgs.
European Supplementary Search Report dated Feb. 2, 2011, counterpart European Application No. 05744499.4, 4 pgs.
Extended European Search Report, dated Sep. 24, 2013, Application No. 06717386.4 filed Jan. 3, 2006; 6 pgs.
International Searching Authority, U.S. Patent and Trademark Office and Receiving Office, International Search Report (Form PCT/ISAI210) for international application No. PCT/US05/15260 dated Oct. 27, 2005, 3 pgs.
International Searching Authority, U.S. Patent and Trademark Office and Receiving Office, Written Opinion of the International Searching Authority (Form PCT/ISA/237) for international application No. PCT/US05/15260 dated Oct. 27, 2005, 3 pgs.
“NAT Traversal and VoIP: The Challenge to Peer-to-Peer Interne1 Communication”, retrieved at http′//msdn.microsoft.com/en-us/librarylbb330896(Printer)_aspxon Jul. 8, 2008 Microsoft Corporation Mar. 24, 2008, 11.
U.S. Appl. No. 13/336,813, filed Dec. 23, 2011, “Registration Redirect Server”, 40 pgs.
Almeroth, K. et al., “Scalable Delivery of Web Pages Using Cyclic Best-Effort (UDP) Multicast”, IEEE INFOCOM San Francisco, California, USA Jun. 1, 1998, pp. 1-24.
Baentsch, M. et al., “Introducing Application-Level Replication and Naming into Today's Web”, Computer Networks and ISDN Systems vol. 28, Nos. 7-11 May 1, 1996 , pp. 921-930.
Berners-Lee, T. et al., RFC 1738—Uniform Resource Locators Dec. 1, 1994, pp. 1-25.
Berners-Lee, T. et al., “Hypertext Markup Language—2.0”, Internet Engineering Task Force (IETF) Request for Comments (RFC) 1866 Nov. 1, 1995, pp. 1-77.
Berners-Lee, T. et al., “Hypertext Transfer Protocol—HTTP/1.0”, Internet Engineering Task Force (IETF) Request for Comments (RFC) 1945 May 1996 , pp. 1-60.
Berners-Lee, T. et al., “Hypertext Transfer Protocol—HTTP/1.0”, Internet Engineering Task Force (IETF), Internet Draft, draft-ietf-http-v10-spec-00.ps Mar. 1, 1995, pp. 1-59.
Berners-Lee, T., “Univeral Resource Identifiers in WWW: A Unifying Syntax for the Expression of Names and Addresses of Objects on the Network as Used in the World-Wide Web”, Internet Engineering Task Force (IETF) Request for Comments (RFC) 1630 Jun. 1, 1994, pp. 1-28.
Bestavros, A., “Demand-Based Document Dissemination to Reduce Traffic and Balance Load in Distributed Information Systems”, In Proc. IEEE Symp. on Parallel and Distributed Processing, San Antonio, TX, 8 pgs.
Bhattacharjee, S. et al., “Application-Layer Anycasting”, in Proc. IEEE INFOCOM '97 Apr. 1, 1997, 9 pgs.
Brisco, T., “DNS Support for Load Balancing”, IETF RFC 1794 Apr. 1, 1995, pp. 1-7.
Callon, R., “Use of OSI IS-IS for Routing in TCP/IP and Dual Environments”, Internet Engineering Task Force (IETF) Request for Comments (RFC) 1195 Dec. 1, 1990, pp. 1-85.
Chandra, R. et al., “BGP Communities Attribute”, Internet Engineering Task Force (IETF) Request for Comments (RFC) 1997 Aug. 1, 1996, pp. 1-5.
Chen, E. et al., “An Application of the BGP Community Attribute in Multi-home Routing”, Internet Engineering Task Force (IETF) Request for Comments (RFC) 1998 Aug. 1, 1996, pp. 1-9.
Colajanni, M. et al., “Scheduling Algorithms for Distributed Web Servers”, Intl Conf. on Distributed Computing Systems (ICDCS), Baltimore, Maryland, USA May 1, 1997, pp. 169-176.
Collins, A., “The Detour Framework for packet Rerouting”, University of Washington; http://web.archive.org/web/19990202122310/http://www.cs/washington.edu/research/networking/detour/ Oct. 29, 1998, pp. 1-20.
Eriksson, H., “MBONE: The Multicast Backbone”, Communications of the ACM vol. 37, No. 8 Aug. 1, 1994, pp. 54-60.
Fielding, R. et al., “Hypertext Transfer Protocol—HTTP/1.1”, Internet Engineering Task Force (IETF) Internet Draft, draft-ietf-http-v11-spec-00.txt Nov. 1, 1995, pp. 1-81.
Fielding, R. et al., “Hypertext Transfer Protocol—HTTP/1.1”, Internet Engineering Task Force (IETF) Request for Comments (RFC) 2068 Jan. 1, 1997, pp. 1-162.
Malkin, G., “RIP Version 2 Carrying Additional Information”, Internet Engineering Task Force (IETF) Request for Comments (RFC) 1388 Jan. 1, 1993, pp. 1-7.
Mockapetris, P., “Domain Names—Concepts and Facilities”, IETF RFC 1034 Nov. 1, 1987, 55 pgs.
Mockapetris, P., “Domain Names—Implementation and Specification”, IETF RFC 1035 Nov. 1, 1987, 55 pgs.
Moy, J., “OSPF Version 2”, Internet Engineering Task Force (IETF) Request for Comments (RFC) 1583 Mar. 1, 1994, 132 pgs.
Parris, C. et al., “A Dynamic Connection Management Scheme for Guaranteed Performance Services in Packet-Switching Integrated Services Networks”, UC Berkeley Computer Science Division Tech. Report TR-93-005 Jan. 1, 1993, 37 pgs.
Partridge, C. et al., “Host Anycasting Service”, Internet Engineering Task Force (IETF) Request for Comments (RFC) 1546 Nov. 1, 1993, pp. 1-9.
Rekhter, Y. et al., “A Border Gateway Protocol 4 (BGP-4)”, Internet Engineering Task Force (IETF) Request for Comments (RFC) 1771 Mar. 1, 1995, pp. 1-57.
Rekhter, Y. et al., “Application of the Border Gateway Protocol in the Internet”, Internet Engineering Task Force (IETF) Request for Comments (RFC) 1772 Mar. 1, 1995, pp. 1-19.
Savage, S. et al., “Detour: Informed Internet Routing and Transport”, IEEE Micro vol. 19, No. 1, pp. 1-10.
Schemers, R., “lbnamed: A Load Balancing Name Server in Perl”, 1995 LISA IX Monterey, California, pp. 1-12.
Topolcic, C., “Experimental Internet Stream Protocol, Version 2 (ST-II)”, Internet Engineering Task Force (IETF) Request for Comments (RFC) 1190 Oct. 1, 1990, pp. 1-148.
Touch, J. et al., “The X-Bone”, Third Global Internet Mini-Conference at Globecom '98, Sydney, Australia (pp. 44-52 of mini-conference) Nov. 1, 1998, pp. 59-68.
Traina, P., “BGP-4 Protocol Analysis”, Internet Engineering Task Force (IETF) Request for Comments (RFC) 1774 Mar. 1, 1995, pp. 1-10.
Traina, P., “Experience with the BGP-4 Protocol”, Internet Engienering Task Force (IETF) Request for Comments (RFC) 1773 Mar. 1, 1995, pp. 1-9.
Wessels, D. et al., “Application of Internet Cache Protocol (ICP), Version 2”, Internet Engineering Task Force (IETF) Request for Comments (RFC) 2187, pp. 1-24.
Wessels, D. et al., “Internet Cache Protocol (ICP), Version 2”, Internet Engineering Task Force (IETF) Request for Comments (RFC) 2186, pp. 1-9.
Related Publications (1)
Number Date Country
20190306114 A1 Oct 2019 US
Continuations (2)
Number Date Country
Parent 15837983 Dec 2017 US
Child 16446301 US
Parent 11009204 Dec 2004 US
Child 15837983 US