Fault management in communication system

By adopting daisy chain communication topology and action synchronization mechanism in the contact center system, the problem of difficulty in achieving high availability in the existing technology is solved, efficient failure recovery and service sustainability are achieved, and the scalability and fault tolerance of the system are improved.

CN119404494APending Publication Date: 2025-02-07AFINITI AI LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380048217.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-06-22
Filing Date
2023-06-21
Publication Date
2025-02-07

AI Technical Summary

Technical Problem

Existing high availability models are difficult to achieve high availability of contacts and agents in contact center systems, especially when services can continue after multiple consecutive failures.

Method used

The daisy chain communication topology and action synchronization mechanism are adopted to synchronize service information from active nodes to multiple alternate nodes, reducing resource consumption of active nodes, and improving the scalability and fault tolerance of the system during operation.

Benefits of technology

It realizes efficient failure recovery and service continuity in the contact center system, reduces the load and synchronous traffic of active nodes, and improves the scalability and fault tolerance of the system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119404494A_ABST
    Figure CN119404494A_ABST
Patent Text Reader

Abstract

A method for failure recovery in a communication system comprising an active node and a first backup node. The method includes an active node performing an action, where a block of information is generated as a result of performing the action. The method further includes the active node transmitting an information update message including the information block or an action identifier identifying the action to the first backup node. The method further includes the first backup node sending an information update message including the information block or the action identifier to the second backup node.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments related to fault management in communication systems are disclosed. Background Art

[0002] An example of a communication system is a contact center system (also known as a call center system). A contact center system may employ a matchmaking module whose function is to assign contacts (also known as calls) to agents that are available to handle those contacts. Sometimes, a contact center may have agents available and waiting for assignment of inbound or outbound contacts (e.g., telephone calls, Internet chat sessions, emails). At other times, a contact center may have contacts waiting in one or more queues for agents to become available for assignment. Summary of the invention

[0003] Certain challenges currently exist. For example, for communication systems, such as, for example, contact center systems, it is advantageous to achieve high availability. That is, it is important that the system be able to provide continuous, uninterrupted service after suffering a component or network failure. Typical high availability models, such as a typical active-standby redundant deployment model, where an active node is responsible for delivering communication services, and a standby node is ready to take over service responsibilities if the active node fails, cannot achieve high availability for active contacts and agents in a contact center system. In order to achieve a higher degree of service survivability, it is also desirable to have more than one standby node in the system so that service can continue even after multiple consecutive failures.

[0004] Thus, in one aspect, a method for failure recovery in a communication system including an active node and a first standby node is provided.

[0005] In one embodiment, the method includes: an active node performs an action, wherein an information block is generated as a result of performing the action; the active node transmits an information update message including the information block or an action identifier identifying the action to a first standby node; and the first standby node sends an information update message including the information block or the action identifier to a second standby node.

[0006] In another embodiment, the method includes the active node performing an action, thereby generating an information block as a result of performing the action, and the active node transmitting an information update message including an action identifier identifying the action to the first standby node.

[0007] In another aspect, a computer program comprising instructions is provided, which, when executed by a processing circuit system of a device, causes the device to perform any method disclosed herein. In one embodiment, a carrier containing the computer program is provided, wherein the carrier is one of an electronic signal, an optical signal, a radio signal, and a computer-readable storage medium. In another aspect, a device configured to perform the method disclosed herein is provided. The device may include a memory and a processing circuit system coupled to the memory. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] The accompanying drawings, which are incorporated herein and form a part of the specification, illustrate various embodiments.

[0009] Figure 1A An example communication system according to an embodiment is shown.

[0010] Figure 1B An example communication system according to an embodiment is shown.

[0011] Figure 1C An example communication system according to an embodiment is shown.

[0012] Figure 1D An example communication system according to an embodiment is shown.

[0013] Figure 2 An example daisy-chain node configuration is shown.

[0014] Figure 3 is a flow chart illustrating a process according to an embodiment.

[0015] Figure 4A is a flow chart illustrating a process according to an embodiment.

[0016] Figure 4B is a flow chart illustrating a process according to an embodiment.

[0017] Figure 5 is a block diagram of a node according to an embodiment.

[0018] Fig. 6A is a flow chart illustrating a process according to an embodiment.

[0019] Figure 6B is a flow chart illustrating a process according to an embodiment. DETAILED DESCRIPTION

[0020] As used herein, the term "module" may be understood to refer to software, firmware, hardware and / or various combinations thereof. However, a module should not be interpreted as software that is not implemented on hardware, firmware or recorded on a computer-readable recordable storage medium (i.e., the module itself is not software). It should be noted that modules are exemplary. Modules may be combined, integrated, separated and / or replicated to support various applications. In addition, the functions performed at a specific module described herein may be performed at one or more other modules and / or by one or more other devices, rather than at a specific module or in addition to the functions performed at a specific module. In addition, a module may be implemented across multiple devices and / or may be other components that are local or remote to each other. Additionally, a module may be moved from one device and added to another device, and / or may be included in two devices.

[0021] Figure 1A An example communication system 100 is shown. In this example, the communication system 100A is a contact center system. Figure 1A As shown, the communication system 100A may include a central switch 110. The central switch 110 may receive inbound contacts (e.g., telephone callers) or support outbound connections with contacts via a telecommunications network (not shown). The central switch 110 may include contact routing hardware and software to help route contacts among one or more contact centers, or to one or more private branch exchanges (PBXs) and / or automatic call distributors (ACDs) or other queuing or switching components, including other Internet-based, cloud-based, or otherwise networked contact-agent hardware or software-based contact center solutions.

[0022] If there is only one contact center, or only one PBX / ACD routing component, in the communication system 100, the central switch 110 may not be necessary. If more than one contact center is part of the communication system 100, each contact center may include at least one contact center switch (e.g., contact center switches 120A and 120B). Contact center switches 120A and 120B may be communicatively coupled to the central switch 110. In an embodiment, the topology of various routing and network components may be configured to implement the contact center system.

[0023] Each contact center switch of each contact center may be communicatively coupled to a plurality of agents (or "agent pools"). Each contact center switch may support a certain number of agents (or "seats") logged in simultaneously. At any given time, a logged in agent may be available and waiting to be connected to a contact, or a logged in agent may be unavailable for a variety of reasons, such as being connected to another contact, performing some post-call function (such as recording information about the call), or taking a break.

[0024] exist Figure 1A In the example of FIG. 1 , the center switch 110 routes the contact to one of two contact centers via the contact center switch 120A and the contact center switch 120B, respectively. Each of the contact center switches 120A and 120B is shown with two agents, respectively. Agents 130A and 130B can log in to the contact center switch 120A, and agents 130C and 130D can log in to the contact center switch 120B.

[0025] The communication system 100A may also be communicatively coupled to integration services from, for example, third-party vendors. Figure 1A In an example of the present invention, the pairing module 140 can be communicatively coupled to one or more switches in the switch system of the communication system 100, such as the central switch 110, the contact center switch 120A, or the contact center switch 120B. In some embodiments, the switches of the communication system 100A can be communicatively coupled to multiple pairing modules. In some embodiments, the pairing module 140 can be embedded within a component of the contact center system (e.g., embedded in a switch or otherwise integrated with the switch). The pairing module 140 can receive information about agents (e.g., agents 130A and 130B) logged into the switch and information about incoming contacts via another switch (e.g., the central switch 110) from the switch (e.g., the contact center switch 120A), or in some embodiments, receive information from a network (e.g., the Internet or a telecommunications network) (not shown).

[0026] The contact center may include multiple pairing modules. In some embodiments, one or more pairing modules may be or are components of one or more switch (such as the central switch 110 or the contact center switches 120A and 120B) pairing module 140. In some embodiments, the pairing module may determine which pairing module may handle the pairing of a particular contact. For example, the pairing module may alternate between enabling pairing via a behavioral pairing (BP) module and enabling pairing using a first-in, first-out (FIFO) module. In other embodiments, a pairing module (e.g., a BP pairing module) may be configured to simulate other pairing strategies.

[0027] Figure 1B A second example communication system 100B is shown. Figure 1BAs shown, the communication system 100B may include one or more agent endpoints 151A, 151B and one or more contact endpoints 152A, 152B. The agent endpoints 151A, 151B may include an agent terminal and / or an agent computing device (e.g., a laptop computer, a mobile phone). The contact endpoints 151A, 151B may include a contact terminal and / or a contact computing device (e.g., a laptop computer, a mobile phone). Depending on the functionality of the endpoint devices, the agent endpoints 151A, 151B and / or the contact endpoints 152A, 152B may be connected to a contact center as a service (CCaaS) 170 via the Internet or a public switched telephone network (PSTN).

[0028] Figure 1C An example communication system 100C is shown with an example configuration of a CCaaS 170. For example, the CCaaS 170 may include multiple data centers 180A, 180B. The data centers 180A, 180B may be physically separated and may even be located in different countries and / or continents. The data centers 180A, 180B may communicate with each other. For example, one data center may be a backup for another data center; thus, in some embodiments, only one data center 180A or 180B receives the agent endpoints 151A, 151B and the contact endpoints 152A, 152B at a time.

[0029] Each data center 180A, 180B includes a web demilitarized zone device 171A and 171B, respectively, which is configured to receive agent endpoints 151A, 151B and contact endpoints 152A, 152B, which are connected to CCaaS communication via the Internet. The web demilitarized zone (DMZ) devices 171A and 171B can operate outside the firewall to connect with the agent endpoints 151A, 151B and contact endpoints 152A, 152B, while the remaining components of the data center 180A, 180B can be within the firewall (except for the phone DMZ devices 172A, 172B, which can also be outside the firewall). Similarly, each data center 180A, 180B includes a phone DMZ device 172A and 172B, respectively, which is configured to receive agent endpoints 151A, 151B and contact endpoints 152A, 152B, which are connected to CCaaS communication via PSTN. The phone DMZ devices 172A and 172B may operate outside of a firewall to connect with the agent endpoints 151A, 151B and contact endpoints 152A, 152B, while the remaining components of the data center 180A, 180B (excluding the web DMZ devices 171A, 171B) may be located inside the firewall.

[0030] In addition, each data center 180A, 180B may include one or more nodes 173A, 173B and 173C, 173D, respectively. All nodes 173A, 173B and 173C, 173D may communicate with web DMZ devices 171A and 171B, respectively, and with phone DMZ devices 172A and 172B, respectively. In some embodiments, only one node in each data center 180A, 180B may communicate with web DMZ devices 171A, 171B and phone DMZ devices 172A, 172B at a time.

[0031] Each node 173A, 173B, 173C, 173D may have one or more pairing modules 174A, 174B, 174C, 174D, respectively. Figure 1A Similar to the pairing module 140 of the communication system 100A of FIG. 1 , the pairing modules 174A, 174B, 174C, 174D can pair contacts with agents. For example, the pairing module can alternate between enabling pairing via a behavioral pairing (BP) module and enabling pairing using a first-in-first-out (FIFO) module. In other embodiments, a pairing module (e.g., a BP module) can be configured to emulate other pairing strategies.

[0032] Now go to Figure 1D , the disclosed CCaaS communication system (eg, Figure 1B and / or 1C) can support multi-tenancy so that multiple contact centers (or contact center operations or businesses) can operate in a shared environment. That is, the disclosed CCaaS communication system can handle multiple tenants, each tenant having its own set of non-overlapping agents, where each agent only interacts with contacts of a single tenant. Figure 1D The CCaaS 170 shown in FIG. 1 includes two tenants 190A and 190B. Return to Figure 1C For example, multiple tenants may be supported by node 173A supporting tenant 190A and node 173B supporting 190B. In another embodiment, data center 180A supports tenant 190A and data center 180B supports tenant 190B. In another example, multiple tenants may be supported by shared machines or shared virtual machines; such as node 173A may support both tenants 190A and 190B, and similarly so may nodes 173B, 173C, and 173D.

[0033] In other embodiments, the system may be configured for a single tenant within a dedicated environment, such as a private machine or private virtual machine.

[0034] As described above, it is advantageous for a communication system (such as, for example, the communication systems 100A, 100B, 100C, 100D) to achieve high availability. Therefore, in the embodiments disclosed herein, an active-standby redundant deployment model is adopted. For example, Figure 2 A logical configuration of an active node 202 (e.g., a node including a pairing module 140) and three backup (or "standby") nodes 206_1, 206_2, and 206_3 is shown. This logical configuration is exemplary, as the communication system can have any number of standby nodes. The active node 202 is responsible for delivering communication services (e.g., pairing contacts with agents), while each standby node is prepared to take over service responsibilities in the event of a failure of all nodes logically configured before the standby node.

[0035] In order for a standby node (e.g., node 206_1) to successfully and quickly take over service responsibilities, the standby node needs to maintain a copy of certain service information stored in the active node, such as, for example, contact attributes, seat attributes, etc. Such service information is usually highly dynamic (e.g., frequently changed) and has a large volume, especially in large communication systems. Therefore, the present disclosure newly provides a data synchronization mechanism from the active node to the standby node to implement such a high-availability communication system.

[0036] Compared to the currently disclosed systems and techniques, conventional active-standby node combinations typically perform the following steps: 1) when the active node performs an action, the active node stores the information block generated by the action in its service information storage (e.g., a database); 2) the active node sends a copy of the information block to the standby node; and 3) when the standby node receives the information block, it updates its local copy of the service information accordingly. Information block data transmission occurs in seconds, or if the information block data transmission is large enough, it occurs in tens of seconds or minutes, and therefore, information block transmission is always a time-consuming process.

[0037] If this conventional active-standby node combination is used for a contact center, then when the active node goes offline, all calls—including (1) calls where agents are connected to contacts and (2) calls that are on hold in a queue—will be disconnected, even if a standby node exists, because the backup of information is too slow to be designed to manage transitions or active call states, especially for contact centers that handle hundreds or thousands of events per minute.

[0038] Additionally, when multiple standby nodes are configured in a system, this active-standby node combination is typically implemented using a star topology, where the active node "pushes" service information updates to all standby nodes configured in the system. However, this configuration has disadvantages, including increasing the load on the active node because (1) the active node is responsible for "pushing" service information updates to each standby node, and (2) any updates in the topology (such as adding or subtracting nodes from the topology) require software changes to the active node to send more or fewer "pushes" depending on the number of standby nodes updated. In particular, with respect to (2), changes to the active-standby node topology, or indeed any updates to the active node software, are typically made while the active node is offline. Due to the low fault tolerance of conventional systems, there is no system and method for providing updates to the active node while the active node itself is in use.

[0039] This disclosure describes two solutions to these problems, which can be used together or separately in a contact center system.

[0040] The first solution is a "daisy chain" communication topology for more efficiently synchronizing active node service information from a first active node in a contact center system to multiple standby nodes in the contact center system. Figure 2 This daisy chain topology is shown in Figure 1. For example, Figure 2 The node 202 corresponds to Figure 1C Node 173A, and Figure 2 The nodes 206-1, 206-2, 206-3 correspond to Figure 1C Nodes 173B, 173C, and 173D.

[0041] like Figure 2 As shown, the active node of the contact center system will form the head of the daisy chain 200 and will only send information update messages to the standby nodes that are logically "directly" connected to the active node (i.e., node 206_1 in this example). Each time the standby node 206_1 receives an information update message (e.g., updated service information or an action identifier that enables node 206_1 to generate updated service information, as described below) from the active node, node 206_1 will update its own local copy of the service information and also forward (relay) the information update to standby node 206_2, which is the "next" standby node after standby node 206_1 in the daisy chain. Similarly, standby node 206_2 will perform the same local update and then forward operation so that the same service information update will propagate along the daisy chain until it reaches the end of the daisy chain (standby node 206_3 in this example).

[0042] The advantage of this daisy-chain topology is that no matter how many standby nodes are configured in the system, the active node only needs to send information update messages to one standby node. Compared with the typical "star" topology, this daisy-chain topology greatly reduces the resource consumption (in terms of CPU cycles and network bandwidth) on the active node for "pushing" service information updates.

[0043] Another advantage is that the daisy-chain topology makes reconfiguration (e.g., scaling up or down) of the high availability system during operation very efficient. For example, suppose a user decides to scale up its high availability capabilities by adding a new standby node during operation, then with the daisy-chain topology, the user can simply add the new standby node to the end of the daisy-chain topology, or insert the new standby node into the middle of the daisy-chain topology without requiring high-bandwidth changes from the active node to resynchronize with another standby node. Similarly, individual active or standby nodes can be temporarily offline for maintenance and reinserted into the system without requiring contact center system downtime. In a traditional star topology, when reconfiguring the topology, the active nodes will be restarted or require software updates; if used in a contact center, the contact center needs to be offline. The daisy-chain topology allows the topology to be reconfigured while the contact center is online.

[0044] The second solution uses "action synchronization" to replace the traditional data replication method. With action synchronization, instead of the active node sending an information update message including an information block generated based on the active node performing an action (i.e., a process including one or more steps) to the standby node, the active node sends an information update message including an action identifier that identifies the action. Upon receiving the information update message, the standby node performs the identified action, resulting in the exact same changes to its local copy of the service information (i.e., the information block), thereby achieving the same effect as traditional data replication. For example, the action performed by the active node at the contact center system may include instructions for:

[0045] Create a new agent object and populate the new agent object with relevant agent details;

[0046] Modify part of an existing agent object;

[0047] Create a new contact object and populate the new contact object with relevant agent details;

[0048] Modify part of an existing contact object;

[0049] Create presence information for new contacts;

[0050] Create status information for new agents;

[0051] modify the status information of an existing contact; and / or

[0052] Modify the status information of an existing agent.

[0053] In some embodiments, before the action synchronization method can be used, the standby node needs to be synchronized with the active node so that the standby node has the same service information as the active node (e.g., "brain dump"). Once the standby node is synchronized with the active node, the active node can start using the application replication method. Therefore, as an example, assume that the active node has created 1000 seat objects and 50 call objects. In this case, the active node can first provide instructions to the standby node to create all 1000 seat objects and all 50 call objects, where all parameters are the same as the parameters currently existing on the active node, so that the standby node will be synchronized with the active node. After completing this "brain dumping", if the active node performs an action using a specific set of parameters, and the execution of this action generates a new call object, the active node only needs to send an action identifier and a set of parameters to the standby node to be able to copy its data to the standby node, which will trigger the standby node to perform the identified action using the set of parameters, which will cause the standby node to create a new call object, which is the same as the call object created by the active node. In this way, the standby node can keep in sync with the active node.

[0054] The advantage of the action synchronization approach is that it uses fewer resources than traditional approaches because less data is sent from the active node. The information update message identifying the action is much smaller than the data change (information block) resulting from the action. For example, an information update message identifying the action "create a new call" can be communicated using a relatively small message (e.g., 12 bytes), while the new call object resulting from this action can have a relatively much larger size (e.g., several kilobytes (KB)). Therefore, for the same system size and load level, using action synchronization can potentially significantly reduce the synchronization traffic that the active node needs to send to the standby node. This reduction in traffic can greatly help system scalability because it saves CPU cycles and network bandwidth on the active node.

[0055] Another advantage of the action synchronization approach is that information update messages identifying actions can be transmitted from the active node to the standby node more quickly (e.g., on the order of nanoseconds or microseconds) than conventional active-standby systems that use information block data transmission (for which the standby node requires several seconds or tens of seconds to receive updates from the active node). In addition, the action synchronization approach is also faster because the information update message can be transmitted from the active node to the passive node while the active node itself is still processing the information update message. Therefore, this is different from conventional systems - in which the standby node must first wait for the active node to process the operation, create a new information state, and send the new information state to the standby node. In this way, the standby node can receive or even begin processing the action and update its own memory / state information before the active node completes. This is also helpful if the health of the active node begins to deteriorate; the standby node can have accurate memory / state information even if the active node's memory fails while executing the action.

[0056] Another advantage is that the action synchronization method reduces the possibility of data corruption on the standby node due to network problems (such as reconnection and data loss) on the synchronization traffic. In order to prevent data corruption (e.g., partial data update), traditional data replication usually needs to adopt complex data integrity protection, such as cyclic redundancy check (CRC), forward error correction (FEC) encoding, to help detect and recover synchronization traffic data loss. With action synchronization, this problem becomes less serious because the action identifier sent from the active node may have built-in semantics, and the standby node can easily verify its data integrity without any additional data integrity protection. If an incomplete or damaged action identifier is received, the standby node will automatically find that the action identifier is not applicable and discard it. This may cause a slight desynchronization of the objects involved, but will not cause data corruption on the standby node. The system is highly fault-tolerant, so if the standby node has slightly outdated state information for a contact object or an agent object, the standby node can still easily recover the object if necessary. Therefore, the present disclosure does not require "mind dumping" every time an imperfect action ID occurs.

[0057] Figure 3 is a flow chart illustrating a process 300 according to an embodiment. The process 300 may start at step s302. Step s302 includes an active node of a communication system performing an action, wherein an information block is generated as a result of performing the action. Step s304 includes the active node transmitting an information update message including the information block or an action identifier identifying the action to a first standby node of the communication system. Step s306 includes the first standby node sending an information update message including the information block or the action identifier to a second standby node of the communication system.

[0058] Figure 4A 4 is a flow chart illustrating a process 400A according to an embodiment. The process 400 may start at step s402. Step s402 includes an active node of a communication system performing an action, thereby generating an information block as a result of performing the action. Step s404 includes the active node transmitting an information update message including an action identifier identifying the action to a first standby node.

[0059] Figure 4B 4 is a flow chart illustrating a process 400B according to an embodiment. The process 400 may begin at step s412. Step s412 includes an active node of the communication system determining an action instruction to be executed at the node. Step s414 includes the active node transmitting an information update message including an action identifier identifying the action instruction to the first standby node. In some examples, the information update message may include any parameters required to execute the action instruction. Step s416 includes the active node executing an action according to the determined action instruction. For example, as a result of executing the action, an information block is generated. Although steps s414 and s416 are not necessarily identical in nature, they may be used in combination. Figure 4B Although shown in sequence in FIG. 1 , steps s414 and s416 may be performed in any order, and / or may be performed simultaneously.

[0060] In the event of a failure of the active node in any of the processes 300 , 400A, 400B, the first standby node will take over the responsibilities of the active node, thereby becoming the active node.

[0061] Therefore, the present disclosure provides a contact center system having a plurality of nodes, wherein the nodes are communicatively coupled to each other in a daisy chain topology, and synchronization between the nodes occurs through the disclosed action synchronization method. Figure 1C According to the systems and methods disclosed herein, node 173A may be an active node, and nodes 173B, 173C, 173D may be backup nodes, such that node 173A synchronizes node 173B, node 173B synchronizes node 173C, and node 173C synchronizes node 173D.

[0062] The disclosed contact center system is able to newly maintain multiple contact connections with CCaaS 170 even in the event of an active node failure. Previous contact center systems would disconnect all agent endpoints and contact endpoints in the event of an active node failure. Due to the disclosed action synchronization method and the disclosed daisy chain topology, the backup node (e.g., node 173B) has almost complete data within a few microseconds of accuracy, which allows the backup node 173B to maintain connections through the Web DMZ 171a and the phone DMZ 172A in the event of an active node 172A failure. That is, even a transitional call - transitioning from "on hold" in the contact center queue to a contact endpoint connected to an agent endpoint - may be maintained, such that the agent endpoint is connected to the contact endpoint via the new active node 173B, as originally intended by the previous active node 173A; this transitional call is maintained because the backup node 173B has data accurate to the nearest microsecond time scale. This process is illustrated in Figure 6.

[0063] Figure 6A-6B A flow chart of processes 600A and 600B according to an embodiment is shown. For example, process 600A occurs after processes 300, 400A and / or 400B. Process 600A may start from step s602. Step s602 includes a first node of a communication system performing an action as an active node of multiple contact endpoints and multiple agent endpoints. Step s603 includes the first node synchronizing a second node of the communication system via an action synchronization method. For example, the action synchronization method is as disclosed herein. Step s604 includes the second node synchronizing a third node of the communication system via the action synchronization method. Step s605 includes the first node having a fault event. Step s606 includes the second node of the communication system determining that the first node has a fault event. Step s607 includes the second node becoming an active node of the communication system. After step s607, process 600A may proceed to Figure 6B Process 600B.

[0064] Process 600B begins at step s608. Step s608 includes a third node of the communication system determining that a second node is now active. Step s610 includes the second node acquiring a plurality of contact endpoints (e.g., these may be contacts on hold in a contact center); for example, the second node acquires the plurality of contact endpoints from a memory of the second node. Step s612 includes the second node acquiring a plurality of agent endpoints (e.g., these may be available agents at a contact center); for example, the second node acquires the plurality of agent endpoints from a memory of the second node. Step s614 includes the second node acquiring a plurality of agent-contact connections that were previously connected by the first node; for example, the second node acquires the plurality of contact-agent endpoints from a memory of the second node. Step s616 includes the second node maintaining the plurality of agent-contact connections, maintaining the acquired plurality of contact endpoints, and maintaining the acquired plurality of agent endpoints. Step s618 includes the second node performing further actions as an active node for the plurality of contact endpoints and the plurality of agent endpoints. Step s620 includes the second node synchronizing the third node via an action synchronization method.

[0065] For example, the first node is Figure 1C The second node is Figure 1C The third node is Figure 1C For example, in addition to the first node, there may be 2, 3, 4, 5, 10, 15, 20, and other multiple backup nodes.

[0066] Thus, even if an entire data center has a failure event (e.g., data center 180A) that causes both the active node 172A and the first standby node 172B to lose capabilities, the third node 172C at the second data center 180B will be able to become the active node for CCaaS and continue as contemplated herein.

[0067] Figure 5 5 is a block diagram of a node 500 according to some embodiments. The node 500 can be an active node or a standby node. Figure 5As shown, the node 500 may include: a processing circuit system (PC) 502, which may include one or more processors (P) 555 (e.g., one or more general-purpose microprocessors and / or one or more other processors, such as application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), etc.), which may be co-located in a single housing or a single data center, or may be geographically distributed (i.e., the node 500 may be a distributed computing device); at least one network interface 548 (e.g., a physical interface or an air interface), which includes a transmitter (Tx) 545 and a receiver (Rx) 547, for enabling the node 500 to transmit data to and receive data from other nodes connected to a network 110 (e.g., an Internet Protocol (IP) network), to which the network interface 548 is connected (physically or wirelessly) (e.g., the network interface 548 may be coupled to an antenna arrangement, which includes one or more antennas for enabling the node 500 to transmit / receive data wirelessly); and a storage unit (also known as a "data storage system") 508, which may include one or more non-volatile storage devices and / or one or more volatile storage devices. In embodiments where the PC 502 includes a programmable processor, a computer readable storage medium (CRSM) 542 may be provided. The CRSM 542 may store a computer program (CP) 543 including computer readable instructions (CRI) 544. The CRSM 542 may be a non-transitory computer readable medium, such as a magnetic medium (e.g., a hard disk), an optical medium, a storage device (e.g., a random access memory, a flash memory), etc. In some embodiments, the CRI 544 of the computer program 543 is configured such that when executed by the PC 502, the CRI causes the node 500 to perform the steps described herein (e.g., the steps described herein with reference to the flowchart). In other embodiments, the node 500 may be configured to perform the steps described herein without code. That is, for example, the PC 502 may consist of only one or more ASICs. Therefore, the features of the embodiments described herein may be implemented in hardware and / or software.

[0068] Summary of various embodiments

[0069] A1. A method for failure recovery in a communication system comprising an active node, a first standby node and a second standby node 300 (see Figure 3 ), the method includes: an active node performs an action, wherein as a result of performing the action, an information block is generated (for example, a new information block is created or an existing information block is updated); the active node transmits an information update message to a first standby node, the information update message including the information block or an action identifier identifying the action; and the first standby node sends an information update message including the information block or the action identifier to a second standby node.

[0070] A2. The method of embodiment A1, wherein the information update message includes an action identifier identifying the action.

[0071] A3. The method according to embodiment A2 further comprises: in response to receiving an information update message transmitted by the active node, the first standby node generates an information block by performing an action identified by the action identifier.

[0072] A4. The method according to any one of embodiments A1 to A3 also includes: before the active node transmits the information update message to the first backup node, the active node determines that the first backup node is the first node in the ordered set of backup nodes, wherein as a result of determining that the first backup node is the first node in the ordered set of nodes, the active node transmits the information update message to the first backup node.

[0073] A5. The method of any one of embodiments A1 to A4, wherein the active node is an active pairing module in a contact center system, and wherein the first standby node is a standby pairing module in the contact center system.

[0074] A6. The method according to any one of embodiments A1 to A5 further includes, before the active node performs the action, synchronizing the standby node with the active node.

[0075] A7. The method of embodiment A6, wherein synchronizing the standby node with the active node comprises the active node transmitting a plurality of data objects to the standby node.

[0076] B1. A method 400 for failure recovery in a communication system including an active node and a first standby node (see Figure 4), the method comprising: the active node performs an action, thereby generating an information block as a result of performing the action; and the active node transmits an information update message including an action identifier identifying the action to the first standby node.

[0077] B2. The method according to embodiment B1 further includes: in response to receiving the information update message, the first standby node generates an information block by performing an action identified by the action identifier.

[0078] B3. The method according to embodiment B2 further includes: after receiving the information update message, the first standby node transmits a message including an action identifier or an information block to the second standby node.

[0079] B4. The method according to any one of embodiments B1 to B3 also includes: before the active node transmits the information update message to the first backup node, the active node determines that the first backup node is the first node in the ordered set of backup nodes, wherein as a result of determining that the first backup node is the first node in the ordered set of nodes, the active node transmits the information update message to the first backup node.

[0080] B5. The method of any one of embodiments B1 to B4, wherein the active node is an active pairing module in a contact center system, and the first standby node is a standby pairing module in the contact center system.

[0081] B6. The method according to any one of embodiments B1 to B5 further includes, before the active node performs the action, synchronizing the standby node with the active node.

[0082] B7. The method of embodiment B6, wherein synchronizing the standby node with the active node comprises the active node transmitting a plurality of data objects to the standby node.

[0083] C1. A computer program 543 comprising instructions 544, which, when executed by the processing circuit system 502 of a node, causes the node to execute the method described in any one of the above embodiments.

[0084] C2. A carrier embodying the computer program according to embodiment C1, wherein the carrier is one of an electronic signal, an optical signal, a radio signal and a computer-readable storage medium 542.

[0085] D1. A node 500 comprising a processing circuit system and configured to perform the method according to any one of embodiments A1 to A7 and B1 to B7.

[0086] Although various embodiments are described herein, it should be understood that these embodiments are presented by way of example only and not limitation. Therefore, the breadth and scope of the present disclosure should not be limited by any of the above-mentioned exemplary embodiments. In addition, unless otherwise specified herein or clearly contradictory to the context, the present disclosure encompasses any combination of the above-mentioned elements in all possible variations thereof.

[0087] Additionally, although the processes described above and shown in the accompanying drawings are shown in the form of a sequence of steps, this is for illustration only. Therefore, it is conceivable to add some steps, omit some steps, rearrange the order of steps, and perform some steps in parallel.

Claims

1. A method (300) for performing failure recovery in a communication system comprising an active node, a first standby node and a second standby node, the method comprising: The active node performs (s302) an action, wherein an information block is generated as a result of performing the action; The active node transmits (s304) an information update message to the first standby node, the information update message including the information block or an action identifier identifying the action; and The first standby node sends (s306) an information update message including the information block or the action identifier to the second standby node.

2. The method according to claim 1, wherein: The information update message includes the action identifier identifying the action.

3. The method according to claim 2, further comprising: In response to receiving the information update message transmitted by the active node, the first standby node generates the information block by performing the action identified by the action identifier.

4. The method according to any one of claims 1 to 3, further comprising: Before the active node transmits the information update message to the first standby node, the active node determines that the first standby node is the first node in the ordered set of standby nodes, in, As a result of determining that the first standby node is the first node in the ordered set of nodes, the active node transmits the information update message to the first standby node.

5. The method according to any one of claims 1 to 4, wherein: The active node is an active pairing module in a contact center system, and The first standby node is a standby pairing module in the contact center system.

6. The method according to any one of claims 1 to 5, further comprising: Before the active node performs the action, the standby node is synchronized with the active node.

7. The method according to claim 6, wherein: Synchronizing the standby node with the active node includes the active node transmitting a plurality of data objects to the standby node.

8. A method (400) for performing failure recovery in a communication system comprising an active node and a first standby node, the method comprising: The active node performs (s402) an action, thereby generating an information block as a result of performing the action; as well as The active node transmits (s404) an information update message to the first standby node, the information update message comprising an action identifier identifying the action.

9. The method according to claim 8, further comprising: In response to receiving the information update message, the first standby node generates the information block by performing the action identified by the action identifier.

10. The method according to claim 9, further comprising: After receiving the information update message, the first standby node transmits a message including the action identifier or the information block to the second standby node.

11. The method according to any one of claims 8 to 10, further comprising: Before the active node transmits the information update message to the first standby node, the active node determines that the first standby node is the first node in the ordered set of standby nodes, in, As a result of determining that the first standby node is the first node in the ordered set of nodes, the active node transmits the information update message to the first standby node.

12. The method of any one of claims 8 to 11, wherein The active node is an active pairing module in a contact center system, and The first standby node is a standby pairing module in the contact center system.

13. The method according to any one of claims 8 to 12, further comprising: Before the active node performs the action, the standby node is synchronized with the active node.

14. The method according to claim 13, wherein: Synchronizing the standby node with the active node includes the active node transmitting a plurality of data objects to the standby node.

15. A computer program (543) comprising instructions (544) which, when executed by processing circuitry (502) of a node, cause the node to perform the method of any preceding claim.

16. A carrier comprising a computer program according to claim 15, wherein: The carrier is one of an electronic signal, an optical signal, a radio signal, and a computer-readable storage medium (542).

17. A node (500) comprising processing circuitry and configured to perform the method of any one of claims 1 to 14.