This invention relates generally to the field of communications and more specifically to a system and method for registering with a call manager.
Session Initiation Protocol (SIP) is a protocol for Internet conferencing, telephony, presence, events notification, and instant messaging. When placing a call using SIP, Domain Name Servers provide a list of proxies to the phones and facilitate communication between SIP phones. Using the Domain Name Servers, the phone detects the unavailability of the proxy when a user tries to use the phone. Therefore, a phone can be unavailable for a period of time without the user realizing the unavailability. Detecting an outage may take considerable time and increase the amount of time the phone is unavailable. Furthermore, when the phone attempts to connect to a back up proxy because the original proxy has failed, the process takes additional time using the Domain Name Servers.
In accordance with the present invention, disadvantages and problems associated with previous techniques for call management may be reduced or eliminated.
According to one embodiment of the present invention, registering with a call manager includes connecting to a first call manager and a second call manager. The endpoints register with the first call manager and send keep-alive signals to the first call manager and the second call manager. If a failure is detected in the first call manager, the system initiates a failover process. The endpoints re-register with the first call manager when the first call manager regains operability.
In another embodiment of the invention, registering with a call manager includes a plurality of call managers that register a plurality of endpoints and manage a call session associated with the plurality of endpoints. Additionally, the plurality of endpoints couple to the plurality of call managers and register with a first call manager. The plurality of endpoints maintain a connection with the first call manager and a second call manager and send keep-alive signals to the first and second call managers. One or more transfer protocol servers couple to the plurality of endpoints and provide the plurality of endpoints with configuration information.
Certain embodiments of the invention may provide one or more technical advantages. A technical advantage of one embodiment may include a call manager having high availability and a user having an improved probability of continual phone service. The embodiment facilitates quick recovery during failure while minimizing resource impacts. Another technical advantage of one embodiment may include using a call manager in a SIP environment, which provides the ability to have call preservation if a call session fails. Yet another advantage includes using call managers that provide the function of multiple call control, lower service delay, lower call delay, and lower setup delay if a failure occurs during the call session.
Certain embodiments of the invention may include none, some, or all of the above technical advantages. One or more other technical advantages may be readily apparent to one skilled in the art from the figures, descriptions, and claims included herein.
For a more complete understanding of the present invention and its features and advantages, reference is now made to the following description, taken in conjunction with the accompanying drawings, like numerals being used for like and corresponding parts of the various drawings in which:
Endpoint 118 may be any combination of hardware and/or software that provides communication services to a user. Endpoint 118 may include one or a combination of the following: a user interface to accommodate user interaction, a network interface to provide for a network connection, a memory to store, and a processor to process and manipulate data. Endpoint 118 may include digital, or Internet Protocol (IP) telephones, personal computers, or any other suitable device. System 10 contemplates any number and arrangement of endpoints 118. In various embodiments, endpoint 118 supports Transmission Control Protocol (TCP), Transport Layer Security (TLS), and User Datagram Protocol (UDP). Endpoint 118 exchanges audio, voice, data, video, or other information in a communication session in system 10 and may include multiple lines to participate in communication sessions.
Dynamic Host Configuration Protocol (DHCP) server 114 automatically assigns endpoint 118 an IP address. DHCP server 114 provides other configuration information to endpoint 118 including transfer protocol server and gateway information.
Primary call manager 106, secondary call manager 108, and tertiary call manager 110 (referred to collectively as call managers 106, 108, 110) manage the call sessions of endpoint 118. Call managers 106, 108, 110 are applications that include such capabilities as controlling call processing, routing, telephone features and options (such as call hold, call transfer, and caller identification), device configuration, and other telephony functions and parameters within system 10. Call managers 106, 108, 110 include logic to handle configuration, registration, call processing, and other management functions of endpoint 118. Call managers 106, 108, 110 may also control endpoints 118 located elsewhere in system 10. In an embodiment, a network may connect call managers 106, 108, 110 to endpoints 118. Call managers 106, 108, 110 may be implemented as software executing on one or more computers coupled to system 10. The software of call managers 106, 108, 110 may be embodied in any type of computer-readable medium, including, but not limited to, hard drives, diskettes, CD-ROMs, DVD-ROMs, or other optical or magnetic storage devices.
Survivable Remote Site Telephony (SRST) router 116 provides telephony services to endpoint 118 in system 10 if a network outage occurs. SRST router 116 also may become active if call managers 106, 108, 110 fail. SRST router 116 includes any combination of hardware and/or software that allows calls between endpoints 118 to communicate with each other, allows calls from a Public Switched Telephone Network (PSTN) to communicate with endpoint 118, and allows calls from endpoint 118 to communicate with off-site endpoint 118 through the PSTN. SRST router 116 may accept registrations from endpoint 118 and route calls.
In the illustrated embodiment, Trivial File Transfer Protocol (TFTP) server 112 provides endpoint 118 with configuration information when endpoint 118 boots up, upon endpoint 118 being reset, or any other suitable occurrence. Any suitable transfer protocol server, such as a Hyper Text Transfer Protocol server, may provide endpoint 118 with configuration information. The configuration information may include information regarding call managers 106, 108, 110, or SRST router 116. Additionally, the configuration information may include a media access control (MAC) address. The MAC address is a unique, physical address associated with each endpoint 118 at a network interface. In one embodiment, system 10 includes a plurality of TFTP servers 112. DHCP server 114 provides endpoint 118 with an address of one of the plurality of TFTP servers 112 and endpoint 118 downloads configuration files from that TFTP server 112. In another embodiment, multiple TFTP servers 112 may be on a network, enabled on the same server as a call manager, or on a different network. TFTP server 112 may be any server, including any suitable combination or arrangement of logic operable to provide endpoint 118 with configuration information.
Call manager administrator 100 provides or changes information to system 10, specifically database 102. Call manager administrator 100 may provide database 102 with configuration information for endpoint 118. Database 102 includes any database operable to contain information about system 10, endpoint 118 or any module in system 10. The information in database 102 may include configuration information for endpoint 118.
Extension mobility server (EMS) 104 allows users to temporarily access a specific endpoint 118, such as services, speed dials, and link appearances, from another endpoint 118. A user accesses EMS 104 by accessing an interface of endpoint 118. EMS 104 interacts with database 102 to apply new configuration information to endpoint 118. TFTP server 112 dynamically generates the configuration file and endpoint 118 re-reads the new configuration file from TFTP server 112 upon being reset.
In operation, endpoint 118 registers with primary call manager 106. Registration informs primary call manager 106 that endpoint 118 is ready for operation, associates endpoint 118 with primary call manager 106, and activates the lines that are configured on endpoint 118. The directory numbers for the configured lines on endpoint 118 are activated within primary call manager 106 so calls can terminate to endpoint 118. Registering with a call manager includes the following steps: querying DHCP server 114 to get module information, locating TFTP server 112, downloading the configuration files from TFTP server 112, determining what protocol to use, connecting to a first and second call manager, and sending a register message to the first call manager to which endpoint 118 successfully connects. In the illustrated embodiment, endpoint 118 connects to primary call manager 106 and secondary call manager 108 and registers with primary call manager 106. Registration may differ depending on the protocol of endpoint 118. If system 10 uses SCCP, endpoint 118 registers with primary call manager 106 with a MAC address. If system 10 uses SIP, the address-of-record of endpoint 118 is registered with primary call manager 106. System 10 routes calls to endpoint 118 using a routable uniform resource identifier, which handles calls for the address-of-record registered with primary call manager 106.
Once registered, a user may reset or restart endpoint 118. If endpoint 118 is restarted, database 102 sends the notification to TFTP server 112 and primary call manager 106. TFTP server 112 builds the configuration files. Primary call manager 106 forces endpoint 118 to re-read the configuration files from TFTP server 112. Endpoint 118 re-reads the configuration files and re-registers with primary call manager 106 with the new configuration files.
When registered with primary call manager 106, endpoint 118 sends keep-alive signals to primary call manager 106 and secondary call manager 108 to confirm operability. The keep-alive signals are register requests that continually get refreshed. A register request includes a header with an “expires” parameter. The “expires” parameter sets when the registration will be refreshed. A user may configure the “expires” parameter to achieve the desired performance. Endpoint 118 sends keep-alive signals to primary call manager 106 and secondary call manager 108 on a periodic basis as configured by a user. Primary call manager 106 and secondary call manager 108 acknowledge the keep-alive signals from endpoint 118 to confirm operability.
Endpoint 118 recognizes that primary call manager 106 fails and begins the failover process if primary call manager 106 does not acknowledge the keep-alive signals. The failover process includes endpoint 118 registering with secondary call manager 108 to manage the call sessions for endpoint 118 and connecting to tertiary call manager 110 as a backup. Secondary call manager 108 manages the call sessions for endpoint 118 until primary call manager 106 recovers from the failure. Endpoint 118 sends keep-alive signals to secondary call manager 108 and tertiary call manager 110 to confirm operability.
Primary call manager 106 may fail before endpoint 118 initially registers with primary call manager 106. Endpoint 118 monitors the recovery of primary call manager 106. Endpoint 118 uses secondary call manager 108, tertiary call manager 110, or SRST 116 to handle call sessions until primary call manager 106 recovers. Endpoint 118 may re-register with any higher level call manager that becomes operable after failing. For example, if endpoint 118 registers with tertiary call manager 110, endpoint 118 may re-register with secondary call manager 108 when secondary call manager 108 regains operability rather than waiting for primary call manager 106 to recover. When endpoint 118 determines that primary call manager 106 has recovered from failure and remained operable for a configurable period of time, endpoint 118 unregisters from secondary call manager 108, tertiary call manager 110, or SRST 116 and re-registers with primary call manager 106.
If secondary call manager 108 fails before primary call manager 106 recovers, endpoint 118 registers with tertiary call manager 110 and connects to another call manager as a backup or operates without a backup call manager. Tertiary call manager 110 manages call sessions for endpoint 118 until secondary call manager 108 or primary call manager 106 recovers. Endpoint 118 falls back to the call manager of the highest preference that is operational. When endpoint 118 begins the fall back process, it attempts to fall back to all operational call managers giving preference to primary call manager 106 should other call managers recover at similar times. If tertiary call manager 110 fails before primary call manager 106 or secondary call manager 108 recover, endpoint 118 registers with SRST router 116 to manage the call session.
An element of system 10 may include any suitable configuration of an interface, logic, and memory for performing the operations of the element. An interface refers to any suitable structure of a device operable to receive input for the device, send input from the device, or both, and may comprise one or more ports. Logic refers to any suitable hardware, software, or a combination of hardware and software. For example, logic may comprise a processor. A processor may refer to any suitable device operable to execute instructions and manipulate data to perform operations. Memory refers to any structure operable to store and facilitate retrieval of information used by a processor, and may comprise random access memory (RAM), read-only memory (ROM), magnetic drives, disk drives, compact disk (CD) drives, digital video disk (DVD) drives, removable dialog storage, any other suitable data storage device, or a combination of any of the preceding.
Modifications, additions, or omissions may be made to system 10 without departing from the scope of the invention. For example, primary call manager 106, secondary call manager 108, and tertiary call manager 110 may be connected to a network and endpoint 118 may be connected to that network.
Moreover, the operations of system 10 may be performed by more, fewer, or other modules. For example system 10 may have more than one endpoint 118 that is connected to call managers 106, 108, or 110. Furthermore, endpoints 118 may have any call manager as their primary call manager and any call manager as their secondary call manager. Endpoints 118 may share primary call managers and secondary call managers or may have different primary call managers and different secondary call managers. The components of system 10 may be integrated or separated according to particular needs. Additionally the operations of system 10 may be performed using any suitable logic comprising software, hardware, other logic, or any suitable combination of the preceding. As used in this document, “each” refers to each member of a set or each member of a subset of a set.
If primary call manager 106 is not functional, endpoint 118 registers with secondary call manager 108 at step 206. At step 208, endpoint 118 connects to tertiary call manager 110. At step 210, endpoint 118 monitors the recovery of primary call manager 106 while using secondary call manager 108 for calls and tertiary call manager 110 as a back up call manager. Endpoint 118 determines whether primary call manager 106 has recovered from its failure at step 212. If primary call manager 106 has not recovered, endpoint 118 continues to monitor the progress of primary call manager 106 and use secondary call manager 108 for call sessions.
If primary call manager 106 has recovered from its failure, endpoint 118 determines its ability to re-register with primary call manager 106 at step 214. In addition to determining when endpoint 118 may re-register with primary call manager 106, endpoint 118 also determines whether it is re-registering with primary call manager 106 according to the current configuration of endpoint 118 or whether endpoint 118 should update the configuration files from TFTP server 112. If primary call manager 106 has the ability to re-register endpoint 118, endpoint 118 unregisters with secondary call manager 108 at step 216 and re-registers with primary call manager 106 at step 218. System 10 then determines whether endpoint 118 terminates the registration with primary call manager 106 at step 220. If endpoint 118 does not terminate the registration, endpoint 118 continues from step 202, sending keep-alive signals to primary call manager 106 and secondary call manager 108. If system 10 receives a request to terminate registration at step 220, the method ends.
The method described is only an example of registering with a call manager. Modifications, additions, or omissions may be made to the method without departing from the scope of the invention. The method may include more, fewer, or other steps. Additionally, steps may be performed in any suitable order without departing from the scope of the invention. For instance, system 10 may register with secondary call manager 108 before unregistering with primary call manager 106.
Endpoint 118 sends keep-alive signals to primary call manager 106 at 308 to monitor operability and sends keep-alive signals to secondary call manager 108 at 310 to refresh registration and monitor operability. One line on endpoint 118, as selected by primary call manager 106, sends and receives keep-alive signals. The keep-alive signals sent to primary call manager 106 refresh the registration at a configurable interval. Endpoint 118 sends a registration request to primary call manager 106 with the “expires” parameter greater than zero. The keep-alive signals sent to secondary call manager 108 monitor the operability of secondary call manager 108. The “expires” parameter of the keep-alive signal is set to zero. Setting the “expires” parameter to zero minimally impacts secondary call manager 108 while continually monitoring secondary call manager 108. Primary call manager 106 and secondary call manager 108 acknowledge the keep-alive signals at 312 and 314, respectively as long as primary call manager 106 and secondary call manager 108 remain operational.
Endpoint 118 may not register with primary call manager 106 as illustrated. In another embodiment, if unable to register with primary call manager 106, endpoint 118 attempts to register with secondary call manager 108. Upon successfully registering to secondary call manager 108, endpoint 118 establishes a connection to tertiary call manager 110. Endpoint 118 sends keep-alive signals to secondary call manager 108 and tertiary call manager 110 to monitor operability. Additionally, endpoint 118 establishes a connection to primary call manager 106 and sends keep-alive signals to primary call manager 106 to monitor operability. If primary call manager 106 recovers, endpoint 118 unregisters from secondary call manager 108 while maintaining the connection with secondary call manager 108, drops the connection to tertiary call manager 110, and registers with primary call manager 106.
In yet another embodiment, secondary call manager 108 may fail while endpoint 118 is registered to primary call manager 106 and monitoring secondary call manager 108 as a backup call manager. If secondary call manager 108 does not acknowledge the keep-alive signals at 314, secondary call manager 108 has failed. Endpoint 118 connects to tertiary call manager 110. Endpoint 118 sends keep-alive signals to monitor the operability of tertiary call manager 110. While connected to tertiary call manager 110, endpoint 118 monitors the recovery of secondary call manager 108 and continues to use primary call manager 106 for call sessions. When secondary call manager 108 recovers and remains operable for a configured period of time, endpoint 118 drops the connection with tertiary call manager 110 and stops sending keep-alive signals to tertiary call manager 110. Endpoint 118 sends keep-alive signals to secondary call manager 108 to monitor operability.
To begin the failover process, endpoint 118 registers with secondary call manager 108 at 404. Endpoint 118 verifies that endpoint 118 has the most current configuration version. If endpoint 118 does not have the current configuration version, endpoint 118 updates the configuration files by downloading the current configuration files from TFTP server 112. Endpoint 118 establishes a connection with tertiary call manager 110 at 406. Endpoint 118 sends keep-alive signals to secondary call manager 108 to refresh registration and monitor operability at 408. Endpoint 118 sends keep-alive signals to tertiary call manager 110 at 410 to monitor operability. The keep-alive signals sent to tertiary call manager 110 have an “expires” parameter set to zero. If operating correctly, secondary call manager 108 and tertiary call manager 110 acknowledge the keep-alive signals at 412 and 414, respectively. At 416, endpoint 118 tests primary call manager 106 for recovery. Endpoint 118 tests primary call manager 106 by sending registration requests with the “expires” parameter set to zero. When primary call manager 106 acknowledges the request, it has recovered from the failure.
Endpoint 118 re-registers with primary call manager 106 at 510. When re-registering with primary call manager 106, endpoint 118 verifies the configuration file and downloads the current version if necessary. Endpoint 118 sends keep-alive signals to primary call manager 106 to refresh registration and monitor operability at 512. Endpoint 118 sends keep-alive signals to secondary call manager 108 at 514 to monitor operability. Primary call manager 106 and secondary call manager 108 acknowledge the keep-alive signals at 516 and 518, respectively if the call managers remain operable.
While routing calls through SRST router 116, endpoint 118 monitors the recovery of the network or the plurality of call managers to begin the fall back process. When primary call manager 106 recovers, endpoint 118 establishes a connection with primary call manager 106 at 708 to test the operability of primary call manager 106. Endpoint 118 sends keep-alive signals 710 for a configurable period of time to verify the stability of the connection and the network. Primary call manager 106 acknowledges the keep-alive signals from endpoint 118 at 712. Upon determining that the connection to primary call manager 106 is stable, endpoint 118 sends a token request 714 to primary call manager 106 that requests re-registration. If primary call manager 106 has space in its queue to re-register endpoint 118, primary call manager 106 grants the token request at 716. Endpoint 118 now begins the fall back process to primary call manager 106. Endpoint 118 unregisters from SRST router 116 at 718. Endpoint 118 re-registers with primary call manager 106 at 720. When re-registering, endpoint 118 verifies the configuration files are current. If the files are not current, endpoint 118 downloads the current version from TFTP server 112. Endpoint 118 sends keep-alive signals to monitor the operability of primary call manager 106 and refresh registration at 722. Primary call manager 106 acknowledges the keep-alive signals at 724 while operable. If endpoint 118 has an active call using SRST router 116 when primary call manager 106 recovers, endpoint 118 continues to test primary call manager 106 until endpoint 118 is idle. Once endpoint 118 is idle, endpoint 118 falls back to primary call manager 106 as described above.
While this disclosure has been described in terms of certain embodiments and generally associated methods, alternations and permutations of the embodiments and methods will be apparent to those skilled in the art. Accordingly, the above description of example embodiments does not constrain this disclosure. Other changes, substitutions, and alterations are also possible without departing from the spirit and scope of this disclosure.
Number | Name | Date | Kind |
---|---|---|---|
5105420 | Ardon et al. | Apr 1992 | A |
5706276 | Arslan et al. | Jan 1998 | A |
6122753 | Masuo et al. | Sep 2000 | A |
6226260 | McDysan | May 2001 | B1 |
6282194 | Cheesman et al. | Aug 2001 | B1 |
6522732 | Pullen et al. | Feb 2003 | B1 |
6570855 | Kung et al. | May 2003 | B1 |
6597687 | Rao | Jul 2003 | B1 |
6671883 | Rahman | Dec 2003 | B1 |
6704278 | Albert et al. | Mar 2004 | B1 |
6724756 | Fourie et al. | Apr 2004 | B2 |
6795933 | Wachel | Sep 2004 | B2 |
20030167343 | Furuno | Sep 2003 | A1 |
20040037219 | Shaffer et al. | Feb 2004 | A1 |
20040120251 | Shanley et al. | Jun 2004 | A1 |
20040190442 | Lee | Sep 2004 | A1 |
20040193951 | Shaffer et al. | Sep 2004 | A1 |
20050265327 | Buch et al. | Dec 2005 | A1 |
Number | Date | Country |
---|---|---|
2004019599 | Mar 2004 | WO |
Number | Date | Country | |
---|---|---|---|
20060182255 A1 | Aug 2006 | US |