Patent Publication Number: US-9426021-B2

Title: Communication failover in a distributed network

Description:
RELATED U.S. PATENT APPLICATION DATA 
     This application claims the benefit under 35 U.S.C. §119(e) of U.S. Provisional Application No. 61/817,028, filed Apr. 29, 2013 entitled “DPT IN THE DISTRIBUTED ARCHITECTURE REM ADDITIONS.” 
    
    
     TECHNICAL FIELD 
     The systems and methods relate to network failover systems and in particular to network failover systems using different protocols. 
     BACKGROUND 
     There are a variety of systems that can fail over a communication from a primary network to a secondary network. This works well when there is a single centralized system in the network that manages all aspects of the communication system. When the primary network fails, the centralized system is able to route a communication to the secondary network without any problems. 
     However, when the network has been decentralized, the problem becomes more acute. In distributed networks such as Session Initiation Protocol (SIP) networks, functionality has been distributed between devices such as proxy servers and other communication systems. For example, a proxy server may handle the initial call processing and another communication system will handle call features, such as call forwarding (e.g., by using a Back-to-Back User Agent (B2B UA)). In these distributed environments, the proxy server and the other communication system need to be included in the process of directing the communication to a secondary network so that the call features can still operate in a failover situation. 
     SUMMARY 
     Systems and methods are provided to solve these and other problems and disadvantages of the prior art. An initial request is received from a communication device to establish a communication session. The initial request contains a communication address of a first communication device. A communication server or communication system detects that the communication session cannot be established across a primary network. In response, the initial request is repurposed by changing the first communication address to a second communication address. The changed request is sent to a communication system, which adds a field to the changed request that indicates that the changed request is to be sent via a secondary network. The changed request is sent with the field to the communication server. The changed request with the second communication address is sent to a gateway to establish the communication session across a secondary network. A portion of the communication session is established using the second communication address. The first communication address is sent in the portion of the communication session using Dual-Tone-Multi-Frequency (DTMF). The first communication address is used to complete the communication session from the second communication device to the first communication device. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram of a first illustrative system for failing over a communication session in a distributed network. 
         FIG. 2  is a flow diagram of a method for failing over a communication session in a distributed network. 
         FIG. 3  is a flow diagram of a method for failing over a communication session in a distributed network. 
     
    
    
     DETAILED DESCRIPTION 
       FIG. 1  is a block diagram of a first illustrative system  100  for failing over a communication session in a distributed network. The first illustrative system  100  comprises communication devices  101 A- 101 N, a primary network  110 , a secondary network  111 , communication systems  120  and  121 , communication servers  122  and  123 , and gateways  124  and  125 . In  FIG. 1 , communication devices  101 A- 101 C are shown connecting to communication server  122  for illustrative purposes. Likewise communication devices  101 D- 101 N are shown connecting to communication server  123 . However, one of ordinary skill in the art would recognize that the communication devices  101 A- 101 N can be connected via a network that allows the communication devices  101 A- 101 N to connect with any of the communication systems  120 - 121 , the communication servers  122 - 123 , and the gateways  124 - 125  respectively. 
     The communication devices  101 A- 101 N may be any device that can communicate on the primary network  110  or the secondary network  111 , such as a Personal Computer (PC), a telephone, a video system, a cellular telephone, a Personal Digital Assistant (PDA), a tablet device, a notebook device, a voice server, a video server, a text messaging server, a voice mail system, and the like. As shown in  FIG. 1 , any number of communication devices  101 A- 101 N may be connected to the networks  110  and  111 . 
     The primary network  110  and/or the secondary network  111  can be any network that can send and receive information, such as the Internet, a Wide Area Network (WAN), a Local Area Network (LAN), the Public Switched Telephone Network (PSTN), a packet switched network, a circuit switched network, a cellular network, an enterprise network, a corporate network, a combination of these, and the like. The primary network  110  can use a variety of protocols, such as Ethernet, Internet Protocol (IP), Session Initiation Protocol (SIP), H.323, Integrated Services Digital Network (ISDN), and the like. In one embodiment, the primary network  110  is a SIP network and the secondary network  111  is a PSTN network that uses Plain Old Telephone System (POTS) or ISDN. 
     The communication systems  120  and  121  can be any communication system that provides services for communications, such as a communication feature server, a JSR 289 server, and/or the like. For example, the communication systems  120  and  121  can be Avaya&#39;s Communication Manager™. The communication systems  120  and  121  can provide a variety of services, such as call forwarding, call recording, call screening, call center services, Interactive Voice Response (IVR) services, call transferring, and/or the like. The communication systems  120  and  121  can be a combined communication system. The communication systems  120  and  121  may use a variety of protocols, such as Session Initiation Protocol (SIP), H.323, Integrated Digital Services Network (ISDN), Asynchronous Transfer Mode (ATM), and/or the like. 
     The communication servers  122  and  123  can be a registrar, a proxy server, a SIP proxy server, a routing device, and/or the like. For example, the communication servers  122  and  123  can be Avaya&#39;s Session Manager™. The communication servers  122  and  123  can use a variety of protocols, such as Session Initiation Protocol (SIP), H.323, Integrated Digital Services Network (ISDN), Asynchronous Transfer Mode (ATM), and/or the like. 
     The gateways  124  and  125  may be any device that can change one protocol to another protocol, such as a session border controller and the like. For example, the gateways  124  and  125  can converts SIP, ISDN, and/or H.323 to Plain Old Telephone System (POTS) in one direction and POTS to SIP, ISDN, and/or H.323 in the other direction. 
     In one embodiment, the communication device  101 A sends an initial request to establish a communication session with the communication device  101 D across the primary network  110 . The initial request comprises a communication address of the communication device  101 D. For example, the communications address of the communication device  101 D may be a telephone number of the communication device  101 D. However, in other embodiments, the communication address of the communication device  101 D may be another type of address, such as a network address, a device address, and/or the like. The communication session can be any type of communication session, such as a voice session, a text session, a video session, and/or the like. 
     The communication server  122  receives the initial request. The communication server  122  (and/or the communication system  120 ) detects that the communication session across the primary network  110  cannot be established. The communication server  122  can detect that communication session cannot be established in various ways, such as, based on a packet time-out, based on receiving or not receiving a message, based on a status, and/or the like. In response to the communication server  122  detecting that the communication session across the primary network  110  cannot be established, the communication server  122  repurposes the initial request by changing the communication address of the communication device  101 D to a second communication address. 
     The changed request is repurposed because the communication session needs to use the second communication address in order to connect to the communication device  101 D. In this embodiment, in order to use the secondary network/complete the communication, the communication server  122  needs one or more services that are provided by the communication system that the communication server  122  does not support (e.g. to send the first communication address via Dual-Tone-Multi-Frequency (DTMF), B2B UA services, and/or the like). 
     The second communication address is an intermediary address that is used to establish a communication session using the secondary network  111 . The second communication address can be a Listed Directory Number (LDN) that is a designated telephone number (or address) for failover communications. The second communication address can be, depending on the protocol used, in different fields within a packet or header. The communication server  122  sends the changed request with the second communication address to the communication system  120 . 
     The communication system  120  receives the changed request. The communication system  120  adds a field that contains a parameter that indicates that the request is to be sent via the secondary network  111 . The field can be in any type of field, including a header, a payload, a Session Initiation Protocol (SIP) invocation attachment, an identifier, an addition to an existing field, a change of an existing field, and/or the like. The communication system  120  sends the changed request with the field to the communication server  122 . In response to receiving the changed request with the field, the communication server  122  recognizes that the request is to be sent via the secondary network  111  (based on the field that indicates that the request is to be sent via the secondary network  111 ). The communication server  122  sends the changed request (with at least the second communication address) to the gateway  124 . The gateway  124  initiates establishment of a portion of the communication session, across the secondary network  111 , using the second communication address with the gateway  125 , the communication server  123 , and/or the communication system  121 . 
     Once the portion of the communication session is established, the communication system  120  sends the communication address of the communication device  101 D (that was in the changed request that the communication system  120  received) in the established communication session (i.e., in-band) using Dual-Tone-Multi-Frequency (DTMF) tones. The communication system  121  receives the DTMF tones with the communication address of the communication device  101 D. The communication address of the communication device  101 D is used to complete establishment of the communication session with the communication device  101 D. 
     To illustrate, consider the following example. A user at communication device  101 B makes a voice call to another user at communication device  101 N. The user at communication device  101 B has invoked a voice recording application (a Back-to-Back User Agent) that is running in communication system  120  to record all calls made to the user at communication device  101 N. 
     The user at communication device  101 B calls the user at communication device  101 N by dialing 303-538-1111 (the communication address of communication device  101 N). An initial SIP INVITE is sent to the communication server  122  (a SIP proxy server) to establish a SIP communication session across the primary network  110 . The communication server  122  detects that the communication session across the primary network  110  cannot be established. 
     In response to detecting that the communication session cannot be established across the primary network  110 , the communication server  122  repurposes the initial SIP INVITE by changing the communication address of the communication device  101 N (303-538-1111) with a second address (303-538-1000) that is a Listed Directory Number (LDN 303-538-1000) for the location of where the communication device  101 N is located. The LDN is a dedicated telephone number for failover conditions. The changed SIP INVITE may be in the following format: SIP:3035381000@avaya.com;avaya-dpt-dest=303-538-1111 SIP/2.0. 
     The communication server  122  sends the changed SIP INVITE with the LDN to the communication system  120 . The communication system  120  adds a field that indicates that the SIP INVITE is to be sent via the secondary network  111 . For example, the SIP INVITE may be in the following format: SIP:3035381000@avaya.com;av-dpt-outgoing SIP/2.0. The “av-dpt-outgoing” portion of the SIP INVITE indicates that the SIP INVITE is to be sent via the secondary network  111 . The communication system  120  sends the changed SIP INVITE with the field to the communication server  122 . The communication server  122  (this could be a different communication server  122  than received the initial SIP INVITE) sends the changed request to establish a portion of the communication session using the second address to the gateway  124 . A communication session is established between the communication system  120  and the communication  121 . 
     The communication system  121  sends a pass code (e.g., five known DTMF digits) back to the communication system  120 . The pass code tells the communication system  120  that it has hit the right termination point and is okay to send the first communication address (303-538-1111). In response to receiving the pass code, the communication system  120  sends the communication address of the communication device  101 N (303-538-1111) using DTMF tones to the communication system  121 . In response to receiving the communication address of the communication device  101 N, the communication system  121  completes the establishment of the communication session with the communication device  101 N. The two parties at communication devices  101 B and  101 N can now communicate with each other. The two parties are unaware of the failure of the primary network  110 . 
     In another embodiment, when the communication system  120  receives the changed request (e.g., the SIP:3035381000@avaya.com;avaya-dpt-dest=303-538-1111 SIP/2.0 message), instead of adding the field, the communication system  120  sends the request directly to the gateway  124 . In this embodiment, the “avaya-dpt-dest” field is the field that contains the parameter that indicates that the changed request is to be sent via the secondary network  111 . When the communication system  120  sees the “avaya-dpt-dest” field, the communication system  120  knows to send the request to the gateway  124 . The above examples use a specific tag for the field that indicates that the request is to be sent via the secondary network  111 . However, in other embodiments, various types of different fields and/or tags may be used. 
     In another embodiment, where the secondary network  111  supports a protocol such as SIP, the communication system  120  can send the request directly to the secondary network  111 , thus bypassing the gateway  124 . 
     In one embodiment, the communication address of the communication device  101 N cannot be directly dialed from the secondary network  111  (e.g., the number is an unlisted extension). In this case, the above process overcomes the issue of not being able to directly dial the communication device  101 N by sending the communication address of the communication device  101 N using DTMF so that the communication session between communication devices  101 B and  101 N can be established seamlessly. 
     In another embodiment, the second address (e.g. the LDN) is a number that can be used as a regular number or as a number that supports the above described process. In order to distinguish between a failover communication and a regular communication, once the portion of the communication session has been established, the communication system  120  sends an identifier in the portion of the communication session using DTMF. The identifier is used by the communication system  121  to distinguish between a failover communication and a regular communication. If communication system  121  does not receive the identifier, the communication system  121  assumes that the communication session is a regular communication session. If the communication system  121  receives the identifier, the communication system  121  assumes that the communication session is a failover communication session. 
     In another embodiment, the identifier can be used to distinguish between different types of arriving communications. For example, instead of distinguishing between a failover communication session, the identifier can distinguish between different types of failover communications. For example, a voice, video, text communication, a specific set of users, an encrypted communication, and/or the like. 
       FIG. 2  is a flow diagram of a method for failing over a communication session in a distributed network. Illustratively, the communication devices  101 A- 101 N, the communication systems  121  and  122 , the communication servers  122  and  123 , and the gateways  124  and  125  are stored-program-controlled entities, such as a computer or processor, which performs the method of  FIGS. 2-3  and the processes described herein by executing program instructions stored in a tangible computer readable storage medium, such as a memory or disk. Although the methods described in  FIGS. 2-3  are shown in a specific order, one of skill in the art would recognize that the steps in  FIGS. 2-3  may be implemented in different orders and/or be implemented in a multi-threaded environment. Moreover, various steps may be omitted or added based on implementation. 
     The process starts by the communication device  101 A sending  200  an initial request to establish a communication session with the communication device  101 D across the primary network  110  (i.e., the default is to route the initial request over the primary network  110 ). The initial request comprises the communication address of the communication device  101 D (e.g., in a SIP TO: field). The communication server  122  detects  202  that the communication session across the primary network  110  cannot be established. In response to detecting that the communication session across the primary network  110  cannot be established, the communication server  122  repurposes  204  the initial request by changing the communication address of the communication device  101 D with a second communication address. 
     The communication server  122  sends  206  the changed request to communication system  120 . The communication system  120  adds  208  a field (e.g. changes a field) to the changed request that indicates that the changed request is to be sent via the secondary network  111 . The communication system  120  sends  210  the changed request with the field to the communication server  122 . The communication server  122  sends  212  the changed request (with at least the second communication address) to the gateway  124 . The gateway  124  (e.g. in combination with communication servers  122 - 123 , communications systems  120 - 121 , and/or gateway  125 ) establishes  214  a portion of the communication session across the secondary network  111 . The communication system  120  sends  216  the communication address of the communication device  101 D using DTMF in the portion of the communication session. Communication system  121  completes establishment  218  of the communication session with the communication device  101 D using the communication address of communication device  101 D. The communication session between the communication devices  101 A and  101 D is now complete as shown in step  220 . 
     In another embodiment, the communication  121  will establish the communication session by sending a request to establish the communication with communication device  101 D by sending a request message to the communication server  123  to establish the communication session between communication devices  101 A and  101 B. 
     In an alternative embodiment, instead of the communication system  120  sending the changed request with the field in step  210  and the communication server  122  sending the changed request with the field to the gateway in step  212 , the communication system  120  can send  211  the changed request (with at least the second communication address) directly to the gateway  124 . In this embodiment, the changed request that is sent in step  206  contains the field that indicates that the changed request is to be sent via the secondary network  111  (e.g., the avaya-dpt-dest field described above). 
       FIG. 3  is a flow diagram of a method for failing over a communication session in a distributed network. The process starts by the communication device  101 A sending  200  an initial request to establish a communication session with the communication device  101 D across the primary network  110 . The initial request comprises the communication address of the communication device  101 D. The communication server  122  detects  202  that the communication session across the primary network  110  cannot be established. In response to detecting that the communication session across the primary network  110  cannot be established, the communication server  122  determines  300  that the remote communication system (e.g., the communication server  123 , the communication system  121 , and the gateway  125 ) related to the communication address of the communication device  101 D does not support the sending of the communication address of the communication device  101 D in the portion of the communication session using DTMF. The communication server  122  can determine that the remote communication system related to the communication address of the communication device  101 D does not support the sending of the communication address of the communication device  101 D in the portion of the communication session using DTMF in various ways, such as, based on an administration, based on not receiving a pass code or other indicator from the remote communication system (after following steps  200 - 214 ), and/or the like. 
     In response to determining that the remote communication system related to the address of the communication device  101 A does not support the sending of the first communication address in the portion of the communication session using DTMF, the communication server  122  directly calls  302  the remote communication system on the secondary network  111  using the network address of communication device  101 D (assuming that the communication address of the communication device  101 D can be called directly via the secondary network  111 ). A communication session is then established  304  between the communication device  101 A and the communication device  101 D. 
     In the above embodiments, the process only describes a single communication session between communication two communication devices  101 . However, in other embodiments, a communication session may involve multiple communication devices. For example, a conference call can be setup between communication devices  101 A- 101 N using the above processes. In addition, one of skill in the art would recognize that the processes described above can be implemented using any number of protocols, such as SIP, ISDN, H.322, POTS, and/or the like. 
     Of course, various changes and modifications to the illustrative embodiment described above will be apparent to those skilled in the art. These changes and modifications can be made without departing from the spirit and the scope of the system and method and without diminishing its attendant advantages. The following claims specify the scope of the invention. Those skilled in the art will appreciate that the features described above can be combined in various ways to form multiple variations of the invention. As a result, the invention is not limited to the specific embodiments described above, but only by the following claims and their equivalents.