Cluster server for telecommunications
By prioritizing the rehoming of configuration data when cluster application servers fail, the problem of telecommunications network communication interruption is solved, enabling rapid recovery and low-latency communication capabilities to meet emergency service and high-priority needs.
Patent Information
- Application Number
- CN202480048525.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-08-21
- Filing Date
- 2024-06-20
- Publication Date
- 2026-02-27
AI Technical Summary
When a cluster application server node fails, existing technologies cannot efficiently reclassify configuration data, leading to interruptions and delays in telecommunications network communication, which is particularly severe in emergency services or high-priority communications.
By efficiently triggering the reassignment of configuration data through the location server, configuration blocks and parent configuration blocks related to active communication requests are prioritized for reassignment to healthy AS nodes, while other configuration blocks are added to the queue. Dynamic priority sorting reduces network latency and ensures communication continuity and rapid recovery.
This enables the telecommunications network to quickly restore communication capabilities when cluster application servers fail, reducing communication failures, maintaining user experience, reducing network latency, and meeting the requirements of emergency services and high-priority communication.
Smart Images

Figure CN121587016A_ABST
Abstract
Description
Cross-reference to related applications
[0001] This non-provisional utility model application claims priority to UK Patent Application No. 2309364.4, filed on 21 June 2023, entitled “Cluster Server for Telecommunications,” the entire contents of which are incorporated herein by reference. Background Technology
[0002] Telecommunications networks are widely used and comprise nodes connected via network links on which messages can be sent. Subscribers to a telecommunications network correspond to users within the network and are typically identified within the network by an assigned Directory Number (DN) or other identifier. For example, when a call is initiated within a telecommunications network, the caller may enter a number into the device, and the telecommunications network uses the DN to match that number with a subscriber to facilitate call routing and / or processing.
[0003] Telecommunications networks have traditionally used circuit-switched technology, and in recent years have been migrating from circuit-switched voice technology to packet-switched voice technology. When using packet-switched voice technology, cloud resources (including cluster servers) can be used to deploy various components of the telecommunications network.
[0004] The examples described below are not limited to implementations that address any or all of the shortcomings of known devices and methods for rehoming configuration data. Summary of the Invention
[0005] The following is a brief overview of this disclosure to provide the reader with a basic understanding. This disclosure is not intended to identify key or essential features of the claimed subject matter, nor is it intended to limit the scope of the claimed subject matter. Its sole purpose is to present a set of concepts disclosed herein in a simplified form as an introduction to the more detailed description that follows.
[0006] In various examples, there exists a method and corresponding apparatus that provides an efficient way to rehom configuration data from a failed application server (AS) node, thereby providing a rapid recovery from AS node failures and maintaining the telecommunications network's ability to successfully process calls and communication requests during the rehoming process. The techniques disclosed herein also ensure a reliable clustered AS system, enabling communication requests to be processed reliably and promptly, and allowing the deployment of clustered AS systems in environments where AS node availability is not highly dependent. In some cases, this technique is also used in conjunction with provisioning flows, where requests to read or modify configurations exist.
[0007] In various examples, there are methods performed by a location server in a telecommunications network comprising a cluster of ASs. This method includes receiving a query for a subscriber and, in response to determining that configuration data associated with the subscriber is on a failed AS node of the cluster AS, determining a healthy AS node of the cluster AS. The method also includes requesting the healthy AS node to instantiate a configuration block containing the configuration data associated with the subscriber, and, in response that the configuration block containing the configuration data associated with the subscriber is a child configuration block, instantiating a first parent configuration block on which the child configuration block depends. Additionally, the method includes receiving a response from the AS that: an identifier associated with the subscriber has been registered on the healthy AS node; responding to the query with the location of the healthy AS node; and, after receiving the response from the AS, adding at least one configuration block on the failed AS node to a queue for requesting the healthy AS node to instantiate each configuration block in the queue, the at least one configuration block not including any configuration blocks that have been previously requested to be instantiated.
[0008] Many of the accompanying features will be more readily understood by referring to the detailed description below in conjunction with the accompanying drawings. Attached Figure Description
[0009] A better understanding of this specification will be achieved by reading the following detailed description in conjunction with the accompanying drawings, in which: Figure 1 This is a schematic diagram of a telecommunications network that includes a location server for rehoming profiles from failed AS nodes; Figure 2 It includes by Figure 1 Signaling diagram of an example method executed by the location server; Figure 3 It includes by Figure 1 The signaling diagram of an example method executed by a location server, which includes... Figure 1 Additional location servers in telecommunications networks; and Figure 4 An exemplary computing-based device is shown, in which an example of a configuration rehoming device is implemented for efficiently rehoming configuration data from a faulty AS node.
[0010] In the accompanying drawings, the same reference numerals are used to denote the same parts. Detailed Implementation
[0011] The detailed description provided below, in conjunction with the accompanying drawings, is intended as a description of examples of this disclosure and is not intended to represent the only form of constructing or utilizing examples of this disclosure. This description illustrates the functionality of the examples and the order of operations used to construct and operate the examples. However, the same or equivalent functionality and order can be implemented through different examples.
[0012] Using packet-switched voice technology offers numerous benefits, including scalability through the use of cloud resources. Another benefit involves fault recovery, as cloud resources can be used in a distributed manner, and in the event of a node failure, there is typically an option to use another healthy cloud node. The technology disclosed herein focuses on using clustered servers when deploying telecommunications networks to achieve benefits such as scalability and / or fault recovery. The inventors have recognized that significant problems arise when using clustered servers to deploy telecommunications networks in situations with dependent subscriber configurations, which will be described in more detail below.
[0013] The technology described herein relates to telecommunications networks that include location servers and clustered application servers (AS). Telecommunications networks are well-known and facilitate communication between devices within the network, such as teleconferencing, video calls, audio calls, telephone communications, or other forms of communication. Typically, when a device in a telecommunications network initiates a communication request (such as by initiating a call), the device triggers a request message to the telecommunications network, which is received by a routing agent device. This message typically includes an identifier that can be used to identify the requesting party and an identifier that can be used to identify the target of the communication request, such as a second device to which the call from the requesting device is directed. Herein, the subject of a communication request is defined as an identifiable party to the communication request, such as one or more of the following: the requesting party; the target; a third party. Alternatively, the message may be sent when a second device is added to an existing call, or when any other communication to a second device is requested, wherein the message identifies the subject of the communication request, such as the target device and the sending device.
[0014] Such a telecommunications network may include a clustered application server (AS), which is a clustered server comprising nodes, where, as described herein, individual nodes store configuration data for processing calls or other communication requests associated with queries against subscribers of the telecommunications network. In various examples, the application server described herein is a call agent (CA). Such a telecommunications network may also include a location server, which, upon receiving a query against a subscriber of the telecommunications network, looks up a subscriber identifier (such as a directory number (DN) or session initiation protocol identifier (SIP ID) in various examples and determines the location of the configuration data associated with the subscriber, which is required to process the calls or other communication requests associated with the query against the subscriber. In combination, AS nodes may register subscriber identifiers with the location server, and when such calls or other communication requests are received via the telecommunications network, the location server can locate the AS node containing the configuration data required to process the calls or other communication requests associated with the query against the subscriber.
[0015] In a clustered AS (Autonomous System), AS nodes sometimes fail due to hardware or network problems, power outages, incorrect software or firmware updates, or other malfunctions. In the event of a failure, configuration data stored on the failed AS node is rehomed to an active or healthy AS node to facilitate the continued processing of calls or other communication requests over the telecommunications network. Rehoming configuration data consumes significant network resources and, during the rehoming process, causes significant interruptions and, in various examples, failures of calls or inquiries to subscribers associated with communication requests.
[0016] In the telecommunications network described herein, clustered ASs and location servers are configured. A clustered AS is an AS comprising distributed nodes, where the purpose of the AS is to store configuration data necessary for communication to be processed via the telecommunications network in which the AS resides. Configuration data includes parameters, definitions, and references that facilitate communication execution. Each subscriber in the telecommunications network has associated configuration data. In various examples, configuration data includes one or more of the following: communication routing information; subscriber equipment information; the subscriber equipment's MAC address; communication permissions for the subscriber; protocol information; telephone number; subscriber identifier; service group identifier; whether the subscriber has enabled specific call features (such as call forwarding, voicemail, or other features); PBX configuration data including parameters of the private branch exchange (PBX); configuration data defining the subscriber as belonging to the Multiline Hierarchy Group (MLHG); configuration data defining the subscriber as a pilot subscriber of the MLHG; the subscriber's SIP registration status; customer or organization-specific information associated with the subscriber; and customer or organization-specific information associated with the service group.
[0017] A Business Group (BG) is a group defined within a telecommunications network that includes at least one subscriber. In various examples, a BG corresponds to an organization or enterprise, where each subscriber device corresponds to a device belonging to an end user of the organization or to a device belonging to that organization. In various examples, each subscriber in a BG has at least one aspect in its associated configuration data that is consistent across the BG. In various examples, each subscriber in a BG has at least one aspect in its associated configuration data that is identical to an aspect of the configuration data associated with another subscriber in the BG. In various examples, the configuration data associated with a BG includes configuration data for the entire enterprise.
[0018] As described herein, in various examples, configuration data includes configuration blocks, which are sub-parts of the configuration data. In various examples, at least one configuration block is included in a set of configuration blocks, where the location of this set within the telecommunications network is movable, such as moving between AS nodes. In various examples, the configuration blocks of a movable group cannot be moved independently of the group so that the functionality of the configuration data associated with that set of configuration blocks functions as designed. In other words, in various examples, the entire group must be moved together so that the configuration data of that group can be used to process communication requests in the telecommunications network. In various examples, configuration blocks that do not have dependencies (i.e., configuration blocks not included in the tree structure) are movable configuration blocks. In various examples, if a movable group is distributed across multiple AS nodes, only the configuration data of a single AS node can function to process communication requests in the telecommunications network. In various examples, the functional configuration data is the configuration data that includes the parent configuration block. In various examples, the functional configuration data is the configuration data that includes the root of a parent-child structure, which includes the child configuration blocks of that set of configuration blocks. In various examples, the configuration data for BG includes at least one configuration block corresponding to a BG subscriber.
[0019] Additionally, in various examples, the configuration blocks of the configuration data are interdependent, such that at least one configuration block depends on at least one other configuration block of the configuration data. Thus, in various examples, the configuration data comprises a parent-child (i.e., "tree") structure of parent and child configuration blocks, where child configuration blocks depend on parent configuration blocks. The root of the parent-child configuration block structure refers to the highest-level parent configuration block, such that this highest-level parent configuration block does not have any parent configuration blocks it depends on.
[0020] In various examples, configuration data (such as configuration data for a BG) includes a parent configuration block associated with at least one unified aspect of the configuration data across multiple sub-configuration blocks, and at least one sub-configuration block associated with subscriber data, which is associated with the remaining aspects of the configuration data besides these unified aspects. This improves the efficiency of configuration data storage by reducing duplication of aspects of configuration data common across sub-configuration blocks. However, this configuration block structure introduces dependencies on configuration blocks, where, in various examples, a sub-configuration block depends on a parent configuration block, and both the parent and sub-configuration blocks are required to enable the handling of communication requests associated with subscribers associated with the sub-configuration block. In various examples, the parent configuration block and at least one sub-configuration block are included in a set of configuration blocks that can be moved between AS nodes. In various examples, the total configuration data for a BG includes a parent configuration block containing BG configuration data associated with a unified aspect of the configuration data for subscribers across the BG, and at least one sub-configuration block associated with subscribers of the BG. In various examples, the configuration block associated with a subscriber contains configuration data for only a single subscriber. In various examples, a configuration block contains configuration data for at least one subscriber, and additionally or alternatively contains configuration data for a BG. In various examples, the configuration data for a BG is a movable group of configuration blocks as defined above.
[0021] Configuration data is stored on the AS nodes of the AS. In various examples, the configuration data stored on the AS nodes of the AS in a telecommunications network includes configuration blocks. In various examples, the configuration data stored on the AS nodes is associated with a single BG. In various examples, the configuration data associated with a single BG and stored on the AS nodes includes parent and child configuration blocks that depend on each other. In various examples, the tree-structured configuration blocks reside on the same AS node. In various examples, this tree structure corresponds to the structure of configuration blocks for a BG as described above.
[0022] As described above, a location server is provided within the telecommunications network described herein. The location server is a server that, upon receiving a query (such as a request message as described above) for a subscriber of the telecommunications network, locates configuration data associated with the queried subscriber, including (if present) at least one configuration block upon which the configuration block associated with the queried subscriber depends. In various examples, the location server locates the configuration data associated with the queried subscriber, including (if present) all configuration blocks upon which the configuration block associated with the queried subscriber depends. The location server then responds to the query for the telecommunications network subscriber with the location of the configuration data associated with the subscriber. In various examples, the location of the configuration data associated with the subscriber is a unique identifier for AS nodes, such as an Internet Protocol (IP) address. In various examples, the location server responds to the device that initiated the query for the subscriber. In various examples, a first location server receiving a query for a subscriber sends a request to a second location server to perform at least a portion of the functions of the first location server described herein, and the second location server responds to the first location server by replicating a response from an AS node, wherein the first location server then responds to the querying device by sending the location of configuration data associated with the subscriber. In various examples, the second location server sends the location of the configuration data associated with the subscriber to another entity, which in various examples is the first location server, which then sends the location of the configuration data associated with the subscriber to the querying device. It should be understood that the exact network setup of the telecommunications network and the devices present therein can affect the routing of queries and responses described herein, beyond the explicitly defined scenarios.
[0023] In telecommunications networks that include clustered ASs and location servers, numerous problems can arise. If one of the AS nodes storing configuration data fails, such as due to network or hardware issues, in various examples, that configuration data becomes unavailable to at least one device on the telecommunications network. This prevents the telecommunications network from facilitating communication for subscribers associated with the configuration data of the failed AS node. If the affected subscribers are involved in emergency services or have other requirements regarding time-sensitive or high-priority communication, the inability of the telecommunications network to facilitate communication has a severe impact. There are also stringent requirements such as subscribers being able to communicate with emergency services themselves, for example, requiring, in the United States legislation, an average downtime of less than five minutes per year for subscribers. If the configuration data associated with emergency service subscribers resides on only a single AS node, the failure of that single AS node can significantly impact that downtime. Even if the affected subscribers do not have such stringent communication requirements, a reduction in telecommunications network service will significantly degrade the ability of users to communicate and worsen the user experience for telecommunications network users.
[0024] To ensure the telecommunications network can continue to facilitate communication to subscribers (or continue to enable the provisioning system to read or change configurations), an alternative method is to rehom all configuration data associated with a failed node to a healthy node in one go upon detection of a failed node. This significantly degrades network performance during rehoming, especially for failed nodes that store large amounts of configuration data, such as when a large business group (BG) is located on the failed node. Additionally, rehoming all configuration data of a failed node takes time, during which communication (such as calls) to (and additionally or alternatively) subscribers associated with configuration data located on the failed node is impossible. In various examples, an emergency call to or from a subscriber outside a large BG, where the configuration data associated with that large BG and the subscriber is located on the failed node, will fail during the rehoming of the large BG until the configuration data associated with the entire large BG and the configuration data associated with the subscriber are rehomed.
[0025] An alternative approach to storing configuration data is a stateless microservices approach, where the database is consistent across AS nodes in the telecommunications network, and the call handler queries the database each time it receives a request for a subscriber to obtain the configuration data associated with that subscriber. This allows the call handler to query any other AS node in the event of an AS node failure. This approach significantly increases traffic and latency on the telecommunications network and also adds to network complexity due to the potential for introducing contingencies related to database consistency across AS nodes.
[0026] The technology disclosed herein provides an efficient way to ensure that a telecommunications network can continue to facilitate communication to subscribers (and / or the operation of the provisioning system) in the event of an AS node failure by efficiently triggering the rehoming of configuration data associated with the subscriber who is the subject of a request received by a location server, and to rapidly recover communication requests from an AS node failure. In various examples, the request received by the location server reflects an active communication request, such as a call. When the subject of a communication request has configuration data located on a failed node, making it impossible to process the active communication request, the technology disclosed herein prioritizes rehoming the configuration block associated with the subject of the communication request, and (if applicable) the first parent configuration block on which the configuration block associated with that subject depends, to a healthy AS node. This ensures that the active communication request is responded to in the shortest possible time (which may be referred to as a fast track) with the minimum amount of configuration data required for a communication session. If the configuration block associated with the subscriber is a sub-configuration block and is included in a movable group of configuration blocks as defined above, wherein the movable group of configuration blocks includes at least one additional configuration block relative to the sub-configuration block and the parent configuration block, then only the actively required configuration data in that movable group is immediately rehomed. After rehoming the configuration data associated with the subscriber who received the request, the techniques of this disclosure queue the remaining configuration blocks on the failed AS node. In various examples, dependencies (excluding configuration blocks that have already been rehomed) associated with the parent configuration block (and therefore with the child configuration block) that were initially rehomed are queued (which may be referred to as the slow channel) for future rehoming, so that the remaining configuration data, and the dependencies in various examples, are eventually rehomed and can be used for future communication requests when needed. In some cases, the location server rehoms all ancestors associated with the active communication request; for example, in some cases, when the active communication request requires a configuration block, the location server will rehom all ancestors of the required configuration block. In the presence of a provisioning system in the communication network, the provisioning system can continuously read and / or change the configuration even if the application server node fails. In some examples, the same location server is used to ensure that both communication flow and provisioning system reads and changes to the configuration continue even if the node in the cluster application server fails.
[0027] The queuing system of this disclosure also enables prioritization of configuration data rehoming, allowing the most relevant configuration data to be rehomed at any given time. Furthermore, by allowing rehoming from the queue based on parameters such as current network latency, the number of active calls, or historical data about subscriber activity, it enables reduction of latency in the telecommunications network. In various examples, the techniques of this disclosure are used to enable rehoming only when the network latency of the telecommunications network is below a threshold, thereby maintaining an acceptable level of network latency, wherein the maintained latency is less than the latency of attempting to rehom all data at once.
[0028] The queuing system of this disclosure also enables dynamic reprioritization (which may be referred to as channel switching) of configuration data rehoming. In various examples, a new active communication request (such as a call) is received via a telecommunications network, referencing a subscriber in the rehoming queue. In various examples, in response to receiving a request for that subscriber, the location server prioritizes rehoming the configuration block associated with the subscriber making the active communication request, as well as its parent configuration block, thereby enabling a much shorter connection time compared to situations where configuration data in the queue preceding the configuration data associated with that subscriber must first be rehomed. Thus, compared to queuing systems that do not implement this disclosure, the technology of this disclosure enables a smoother experience for subscribers, with fewer failed communication requests (such as calls).
[0029] In this document, rehoming configuration data is defined as the instantiation of configuration data by the AS node. In various examples, the AS node instantiates configuration data by loading configuration data from a backup database. In various examples, in response to the failure AS node becoming healthy after instantiating configuration blocks on a healthy AS node, the location server determines which block on the now-healthy failure AS node or the healthy AS node is the correct block, where the correct block is the block used to process communication requests from the telecommunications network. In various examples, the now-healthy failure AS node and blocks on the healthy AS node that were not determined to be correct blocks are de-instantiated; in various examples, this de-instantiation is performed by the now-healthy failure AS node. In various examples, in response to the now-healthy failure AS node having more configuration blocks in a movable group of configuration blocks than the healthy AS node, the configuration blocks in that movable group on the now-healthy failure AS node are determined to be correct blocks. In various examples, the corresponding block on the healthy AS node is de-instantiated. In various examples, all blocks on the now-healthy failure AS node that have the corresponding block on the healthy AS node are determined to be correct blocks. In various examples, all blocks on the healthy AS node are de-instantiated. In various examples, the backup database is distributed, such that a copy of the database exists on each AS node. In various examples, the backup database is distributed, such that copies exist for every 1, 2, 5, 10, 20, 50, or other numbers of AS nodes. In various examples, the backup database is distributed, such that a copy exists for each geographic location site of the telecommunications network, where a geographic location site is a physical site containing hardware housing at least one AS node, and where at least one geographic location site is associated with the telecommunications network. In various examples, the backup database contains copies (in text or binary format) of configuration data on a particular AS node, identified using a configuration block identifier and a subscriber identifier or BG identifier registered with the location server, the subscriber identifier or BG identifier corresponding to the subscriber or BG associated with that configuration block, respectively. Storing this copy in binary format provides efficiency.
[0030] Figure 1 This is a schematic diagram of telecommunications network 110, which includes location server 100 for rehoming profiles from failed AS nodes. Telecommunications network 110 also includes cluster AS 114, which includes AS nodes 116, 118, and 120. In various examples, cluster AS 114 includes 1, 2, 3, 5, 10, 15, 20, or more AS nodes. Figure 1 As indicated in the document, "configuration" corresponds to "configuration data".
[0031] Central Telecommunication Network 110 shows devices and connection paths in addition to those explicitly shown, because it should be understood that, in addition to the network configurations and network devices explicitly shown, any number of network configurations and additional network devices may exist, and such configurations and devices are feasible and implementable.
[0032] In various examples, the AS nodes of cluster AS 114 are geographically distributed, meaning these AS nodes are implemented using hardware located in different physical locations. In other examples, the AS nodes of cluster AS 114 are distributed in at least one group, meaning each group of AS nodes uses hardware located in different physical locations. This ensures geographical redundancy and reduces the risk of all AS nodes failing in the event of geographically specific events such as power outages, earthquakes, or other natural disasters.
[0033] A faulty AS node 118 corresponds to an AS node that is ineffective in some respect relative to its normal or specified operation. In various examples, a faulty AS node is at least one of the following: unable to connect to telecommunications network 110; implemented on defective hardware; or unable to be connected to devices of telecommunications network 110. In contrast, a healthy AS node is defined herein as an AS node that at least one of the following: operates normally; is capable of being connected to devices of telecommunications network 110; is implemented on hardware without defects; or is capable of connecting to telecommunications network 110.
[0034] Subscriber devices 112 and 114 are also associated with telecommunications network 110 and are operated by different users. In various examples, subscriber devices 112 and 114 are alternatively operated by the same user.
[0035] Location server 100 is also associated with telecommunications network 110 and connected to the network via connection 130. Location server 100 includes processor 104, memory 106, and at least one network interface 108. In some examples, location server 100 is a SIP location server. AS nodes 116, 118, and 120 have configuration data 122, configuration data 124, and configuration data 126 located thereon, respectively. In various examples, configuration data 122, 124, and 126 each include a configuration block. In various examples, the configuration blocks of configuration data 122, 124, and 126 are included in a tree structure such that at least one configuration block of each configuration data depends on at least one other configuration block of that configuration data, and such that parent and child configuration blocks are definable.
[0036] In various examples, the user associated with subscriber device 112 attempts to initiate a call to the user associated with subscriber device 114. In various examples, the user associated with subscriber device 112 attempts to initiate different types of communication requests to the user associated with subscriber device 114, such as video calls, text messages, or voice messages. When initiating a communication request, subscriber device 112 sends the request to the telecommunications network.
[0037] In various examples, telecommunications network 110 includes routing agent device 136 as defined herein. In various examples, one or more devices are implemented instead of routing agent device 136, and these devices function in the same manner. It should be noted that, although in Figure 1 The diagram illustrates a routing agent device 136 along with a simple communication path connected to the routing agent device 136, but in various examples, this particular setup is replaced by or coexists with one or more alternative communication paths and / or devices. Figure 1 The paths described are merely exemplary. In various examples, routing agent device 136 routes a received request (in various examples, a Session Initiation Protocol (SIP) request associated with a communication request to telecommunications network 110) to an AS node it deems appropriate (in various examples, corresponding to an AS node on which configuration data for processing the communication request is located). Path 140 corresponds to the reception of the communication request from subscriber device 112, wherein routing agent device 136 communicates with a location server via paths 138 and 130 to obtain the location of an AS node (such as AS node 120) having configuration data such as configuration data 126, which is required to process the communication request, such as the configuration data associated with subscriber device 112. Routing agent device 136 then uses this location information to route the communication request to AS node 120 via paths 136 and 134 to enable the processing of the communication request. In various examples, the routing agent device also communicates with subscriber device 114 via additional paths. In various examples, the communication request is received by routing proxy device 136, and routing proxy device 136 interprets the communication request to identify at least one subject of the communication request. In the example where a call is initiated by subscriber device 112 to subscriber device 114, routing proxy device 136 identifies subscriber device 112 and subscriber device 114 as subjects of the request. In various examples, routing proxy device 136 is a representative application server RPAS (trademark).
[0038] In various examples, the routing agent device then sends a query to location server 100 for one of the subject subscribers of the communication request, such as via connection 130, which in various examples is connected via an interface in at least one network interface 108. In various examples, the routing agent device subsequently sends a query to location server 100 for each subject subscriber of the communication request. In various examples, the routing agent device sends a query to location server 100 for all subject subscribers of the communication device. In various examples, the routing agent device sends a query to location server 100 for subscriber device 112. In various examples, the routing agent device sends a query to location server 100 for subscriber device 114. It should be understood that subscribers and subscriber devices are interchangeable, since devices 112 and 114 are users of telecommunications network 100.
[0039] Location server 100 receives queries for subscribers via at least one of the interfaces in network interface 108. In various examples, location server 100 receives queries for subscriber 112 via at least one of the interfaces in network interface 108. In various examples, location server 100 receives queries for subscriber 114 via at least one of the interfaces in network interface 108. In various examples, location server 100 receives queries for at least one subject of a communication request, such as subscribers 114 and 112, via at least one of the interfaces in network interface 108.
[0040] In response to determining that the configuration data associated with a subscriber (subscriber 112 in various examples, such that the configuration data is included in configuration data 124) is located on the faulty AS node 118, the location server 100 determines the healthy AS node of cluster AS 114.
[0041] In various examples, the location server stores a table 102 containing subscriber identifiers and their corresponding AS nodes (the AS nodes where the subscriber's configuration data resides). In various examples, when an AS node first initializes the subscriber's configuration data, it registers the subscriber's identifier and the AS node's location with the location server 100 to begin recording. In various examples, whenever an AS node initializes the subscriber's configuration data, it registers the subscriber's identifier and the AS node's location with the location server 100, and the location server 100 updates the subscriber identifier and corresponding AS node table 102. In various examples, when a subscriber is added to the telecommunications network 110, the subscriber's identifier is defined manually or automatically. In various examples, registering the subscriber's identifier and AS node location with the location server 100 corresponds to sending a message to the location server 100 including the subscriber identifier and AS node location, where the location server 100 updates the subscriber identifier:AS node location table 102. In various examples, the AS node location is an identifier that is unique to each AS node.
[0042] In various examples, location server 100 determines whether the configuration data associated with a subscriber resides on a faulty AS node by attempting to connect to or send a message to the AS node associated with the subscriber's identifier in Table 102. In various examples, the AS node to which the connection or communication was attempted returns an error message indicating to location server 100 that the AS node containing the configuration data associated with the subscriber is a faulty AS node. In various examples, the AS node to which the connection or communication was attempted fails to communicate or connect, thus indicating a faulty AS node. In various examples, the AS node to which the connection or communication was attempted fails to communicate or establish a connection, and location server 100 retryes communication a predetermined number of times; if communication still fails, the conclusion that the AS node is a faulty AS node is then reached. In various examples, location server 100 maintains a Flow Control Protocol (SCTP) or Transmission Control Protocol (TCP) connection to each AS and continuously monitors the status of each AS via heartbeat. In these examples, when location server 100 receives a query, it already knows whether the associated AS is healthy based on its TCP or SCTP connection. Similarly, in various examples, the connection is used to determine the health of AS nodes by monitoring heartbeats. In various examples, the heartbeat corresponds to a regular sequence of at least one packet. In various examples, if at least one packet of the AS node's heartbeat is not received by the location server 100, it is determined that the AS node has failed.
[0043] Conversely, in various examples, location server 100 determines a healthy AS node by randomly iterating through possible AS nodes and attempting to communicate or connect until communication or connection is successful, at which point the AS node is determined to be healthy. In various examples, location server 100 selects AS nodes to attempt communication or connection based on table 102. In various examples, location server 100 iterates through possible AS nodes until communication or connection is successful, and additionally until no error message is received from the AS node, at which point location server 100 assumes the AS node is healthy.
[0044] In various examples, location server 100 directly connects to or attempts to connect to an AS node, such as via path 128. In various examples, location server 100 connects to or attempts to connect to an AS node via telecommunications network 110, such as via paths 130 and 132 or paths 130 and 134. Compared to a direct connection such as via path 128, in various examples, the connection is via a specific protocol, via additional devices, or using alternative routing mechanisms. Given that the connection path depends heavily on the chosen telecommunications network architecture, the specific nature of the connection path is not elaborated upon herein. In various examples, location server 100 uses TCP as the network layer protocol and additional application layer protocols to communicate with at least one AS node via a first interface in network interface 108 to request the instantiation of a configuration block, and in various examples receives heartbeats from at least one AS node. In various examples, location server 100 receives queries from a routing broker device using the same additional application layer protocols, but the information related to the query is received on a different port of location server 100 using a second interface in network interface 108. In various examples, during instantiation on an AS node, at least one AS node sends a query to the location server for additional configuration information (via a second interface in various examples).
[0045] Once location server 100 determines a healthy AS node in cluster AS 114, it requests the healthy AS node to instantiate a configuration block containing configuration data, such as via an interface in at least one network interface 108. In various examples, this configuration data is subscriber-related configuration data located on the failed AS node. In various examples, the subscriber-related configuration data is contained in a child configuration block that depends on the parent configuration block. In various examples, the subscriber-related configuration data is configuration data associated only with that subscriber.
[0046] The request for the healthy AS node to instantiate the configuration block associated with the subscriber efficiently ensures that the configuration data used to successfully process communication requests is reassigned and becomes available for use by the telecommunications network. In response to the configuration block associated with the subscriber being a child configuration block, such as in response to the configuration data associated with the subscriber on a faulty node being included in a tree structure with parent and child configuration blocks (e.g., configuration data including the subscriber's BG), the location server 100 also requests the healthy AS node to instantiate the first parent configuration block of that child configuration block. This efficiently ensures that even in the presence of dependencies, the minimum configuration data required to successfully process communication requests is reassigned and becomes available for use by the telecommunications network.
[0047] Once the healthy AS node has instantiated the requested configuration block, AS 114 sends the following response to location server 100 (e.g., via an interface in at least one network interface 108): The subscriber identifier associated with the subscriber has been registered on the healthy AS node. In various examples, the healthy AS node sends the following response to location server 100, such as via an interface in at least one network interface 108: The subscriber identifier associated with the subscriber has been registered on the healthy AS node. In various examples, location server 100 then updates table 102 with the new AS node location of the subscriber configuration data. In various examples, the healthy AS node sends the response indicating that the subscriber identifier has been registered to location server 100 using connection path 128.
[0048] In response to receiving a response from the AS indicating that the identifier associated with the subscriber has been registered on a healthy AS node, the location server 100 responds to the initially received query with the location of the healthy AS node, such as via an interface in at least one network interface 108. This ensures that communication requests (such as calls) initiating queries against subscribers can be processed quickly and immediately without waiting for any additional configuration data to be reclassified.
[0049] Additionally, after receiving a response from the AS indicating that the subscriber-associated identifier has been registered on a healthy AS node, and in various examples after responding to the initially received query at the location of the healthy AS node, the location server 100 adds at least one configuration block (in various examples, all configuration blocks on the failed AS node) to a queue to request the healthy AS node to instantiate each configuration block in the queue, the at least one configuration block excluding any configuration blocks that have been requested to be instantiated. In various examples, the configuration data located on the failed AS node comprises multiple configuration blocks, wherein these multiple configuration blocks include at least additional configuration blocks relative to the configuration blocks requested to be instantiated by the location server 100. This ensures that additional configuration data located on the failed AS node, beyond the subscriber-associated data and (if the parent configuration block has been instantiated) the parent configuration block, is ultimately requested to be instantiated on the healthy AS node, thereby maintaining the telecommunications network's ability to facilitate communication even in the presence of a failed AS node. If a new communication request is received that requires the additional configuration data to be processed, having the additional configuration data already on a healthy AS node will allow the request to be processed immediately without impacting the telecommunications network, such as by not causing increased latency as would occur if the additional configuration data were rehomed upon receiving the request.
[0050] In various examples, at least one configuration block added to the queue on a faulty AS node is any one or more of the following: in response to a parent-child structure including a first parent configuration block, the parent-child structure including an additional parent configuration block, at least one additional parent configuration block including the root of the parent-child structure; at least one child configuration block associated with any one or more of the following: the first parent configuration block, the at least one additional parent configuration block.
[0051] Adding additional parent configuration blocks (and, in various examples, child configuration blocks associated with the parent configuration block in a parent-child structure) to the queue ensures that interdependent configuration data directly and indirectly related to the configuration block associated with the subscriber is eventually loaded, thus maintaining the telecommunications network's ability to facilitate communication even in the presence of a failed AS node. This is particularly advantageous if the subscriber for a query received by location server 100 is included in a BG with associated configuration data comprising a tree structure with child and parent configuration blocks, because while communication requests can be handled using only the child and parent configuration blocks, this leads to performance degradation in various examples until normal operation is achieved after the entire dependency tree has been reclassified. Queuing only the dependencies of the configuration blocks associated with the subscriber ensures that only data related to the queries received by location server 100 is reclassified, which is especially efficient if the failed AS node eventually returns to a healthy state, as additional configuration data not dependent on the configuration block associated with the subscriber does not need to be reclassified. In various examples, the configuration blocks selected to be added to the queue are chosen based on a determined priority, which will be explained in detail below.
[0052] It should be understood that, in various examples, at least one network interface 108 is a set of network interfaces enabling communication via multiple protocols. In various examples, location server 100 uses at least one of the network interfaces 108 that supports the Flow Control Transfer Protocol (SCTP) to communicate with AS nodes via SCTP. In various examples, location server 100 does not communicate directly with AS nodes, but rather communicates with AS 114 via SCTP, and this communication is one or more of the following: routed to AS nodes; translated for AS nodes; received by AS nodes.
[0053] Figure 2 It includes by Figure 1The signaling diagram illustrates an example method performed by a location server. Devices 216, 218, 220, and 222 are included in the same telecommunications network. The term "about" in this diagram is short for "regarding". RP 218 represents a routing agent device as defined herein. The signaling diagram includes the following representation: entities are represented horizontally in the diagram, where a single entity is represented by a single line; time is represented vertically in the diagram, where time increases downwards along the graph. In various examples, the signaling diagram shows the temporal sequence of method blocks and actions described herein. In various examples, the method blocks and actions described herein are performed in a different temporal sequence than shown in the signaling diagram. Line A 216 corresponds to a subscriber in the telecommunications network, such as subscriber device 112 or subscriber device 114. Line A 216 sends signal 200 to routing agent device 218 of the telecommunications network to invite line B to join the communication session. This signal corresponds to an example of a communication request as discussed above, such as a call from subscriber device 112 to subscriber device 114, where... Figure 2 In the context, line A 216 corresponds to subscriber device 112, and line B corresponds to subscriber device 114. In various examples, routing agent device 218 is alternatively a networking device that is not a routing agent device, but performs similar functions to a location that requests configuration data to process received communication requests.
[0054] After receiving signal 200, which includes both main subscriber line A and line B, routing agent device 218 queries location server 220 for line A. In various examples, routing agent device 218 queries location server 220 for line B and, in various examples, queries for line A.
[0055] Location server 220 receives query 202 for subscriber line A and, in response to determining that the configuration data associated with subscriber line A is on a failed AS node of cluster AS 222, determines a healthy AS node of cluster AS 222. Location server 220 sends request 204 to the healthy AS node to request the instantiation of a configuration block (in various examples, this configuration block is a single configuration block containing the configuration data associated with the subscriber; in various examples, this configuration block is configuration data associated only with the subscriber), and, in response that the configuration block containing the configuration data associated with the subscriber is a child configuration block, instantiates a first parent configuration block on which the child configuration block depends (in various examples, this is a single first parent configuration block). In various examples, the configuration data associated with subscriber line A is a child configuration block in a parent-child structure and therefore depends on at least one parent configuration block. In various examples, the parent-child structure includes at least one additional configuration block besides the configuration block requested to be instantiated. In various examples, the parent-child structure includes configuration blocks for a movable group, such that the configuration blocks of the parent and child structures reside on the same AS node so that the configuration data of the movable group can function for use by the telecommunications network to process communication requests. Therefore, location server 220 requests the healthy AS node to instantiate the child configuration block associated with subscriber line A, as well as the configuration blocks that line A depends on. The methods and systems described herein receive queries for subscribers in various examples, wherein the configuration block associated with the subscriber has a parent configuration block it depends on. In various examples, the configuration block associated with the subscriber is a configuration block associated only with that subscriber.
[0056] In various examples, determining that the configuration data associated with subscriber line A on the faulty AS node includes checking that the connection to the AS node associated with the subscriber in cluster AS 222 is unavailable. In various examples, AS 222 or at least one node of AS 222 registers a subscriber identifier with location server 220, such that location server 220 stores a table for each subscriber identifier that includes the associated location of an AS node of AS 222 on which the configuration data associated with the subscriber is stored. In various examples, request 204 is sent directly from location server 220 to a healthy AS node. In various examples, request 204 is sent from location server 220 to another device in cluster AS 222, and thus indirectly to a healthy AS node. In various examples, request 204 is sent from location server 220 to another device in cluster AS 222 that does not include the faulty AS node. In various examples, the device that does not include the faulty AS node is a supervisory node of the AS, on which it does not store configuration data for the telecommunications network to process communication requests, and which appropriately routes received requests to AS nodes.
[0057] Once the healthy AS node completes the requested instantiation, it sends response 206 to location server 220. In various examples, response 206 is sent directly from the healthy AS node to location server 220, or from the healthy AS node to another device in cluster AS 222, and thus indirectly to location server 220. Response 206 indicates that the CN associated with subscriber line A has been registered on the healthy AS node; that is, the instantiation of the configuration data associated with line A has been successfully completed. In various examples, location server 220 uses this response to update a stored table that includes the subscriber identifier and the associated AS node location, where the configuration data associated with the subscriber is stored. In various examples, the AS node location is a unique identifier for the AS node.
[0058] After receiving response 206 from AS 222, location server 220 responds 208 to the original query 202 with the location of the healthy AS node, thereby enabling communication request 200 to be processed quickly.
[0059] After receiving response 206 from AS 222 (and in various examples, after responding to original query 202 with response 208), location server 220 also adds at least one configuration block on the failed AS node (in various examples, all configuration blocks on the failed AS node) to a queue to request the healthy AS node to instantiate each configuration block in the queue, the at least one configuration block not including any configuration blocks that have been requested to be instantiated.
[0060] In various examples, at least one configuration block added to the queue on a faulty AS node is any one or more of the following: in response to a parent-child structure including a first parent configuration block, the parent-child structure including an additional parent configuration block, at least one additional parent configuration block including the root of the parent-child structure; at least one child configuration block associated with any one or more of the following: the first parent configuration block, the at least one additional parent configuration block.
[0061] In various examples, the configuration data associated with subscriber line A is a child configuration block in a parent-child structure and therefore depends on at least one parent configuration block. Thus, after receiving response 206 from AS 222, location server 220, in various examples, adds the configuration blocks in the parent-child structure (excluding configuration blocks that have already been requested to be instantiated) to a queue for further requesting healthy AS nodes to instantiate each configuration block in that queue. In various examples, the configuration data associated with line A and line B belongs to the same parent-child structure; therefore, after receiving response 206 from AS 222, location server 220 adds the configuration block associated with subscriber line B to a queue for requesting healthy AS nodes to instantiate each configuration block in that queue.
[0062] In various examples, the configuration data associated with Line A and Line B do not belong to the same parent-child structure, but reside on the same AS node. In these examples, after receiving response 206 from AS 222, location server 220 adds the configuration block associated with Line B to a queue, which is used to request the healthy AS node to instantiate each configuration block in the queue.
[0063] In various examples, location server 220 iteratively requests the healthy AS node to instantiate each configuration block in the queue. In various examples, each request is accompanied by a response from AS 222, which provides confirmation of successful instantiation. In various examples, in response to a request to instantiate configuration data associated with a subscriber, AS 222 responds: The identifier associated with this subscriber has been registered on the healthy AS node. In various examples, in response to a request to instantiate configuration data associated with BG or other entities, AS 222 responds: The identifier associated with BG or other entities has been registered on the healthy AS node. A request-response process 210 is depicted, where the configuration block first requested in the queue is the configuration block associated with subscriber line B, therefore location server 220 requests the healthy AS node to instantiate the configuration block associated with subscriber line B.
[0064] In various examples, location server 220 iterates over the queue in a random manner, such that any configuration block in the queue has an equal probability of being requested to be instantiated by a healthy AS node during the iteration. In various examples, iterating over the queue by requesting the healthy AS node to instantiate the queued configuration blocks is allowed only if the telecommunications network's attribute is below or above a predetermined threshold metric. In various examples, iterating over the queue is allowed only if the telecommunications network's latency is below a predetermined threshold. In various examples, iterating over the queue is allowed only if a certain number of active calls or other communication requests are in progress on the telecommunications network. In various examples, iterating over the queue is allowed only during a predetermined time period, which in various examples is determined by considering historical subscriber activity. In various examples, time periods with significant subscriber activity (such as time periods with more calls or other communication requests compared to alternative time periods) are used to prevent iteration over the queue.
[0065] In various examples, a request to instantiate a configuration block on a healthy AS node that fails is retried. In various examples, the unsuccessful request is retried immediately, regardless of other configuration blocks in the queue. In various examples, the unsuccessful request is re-added to the queue that triggered the request. In various examples, in response to fewer than a predetermined number of failures to instantiate the configuration block on a healthy AS node, location server 220 retries the request to instantiate the configuration block on the healthy AS node, and in response to more than a predetermined number of failures to instantiate the configuration block on a healthy AS node, location server 220 adds the configuration block to a fault queue, wherein each configuration block in the fault queue is configured to be requested for instantiation after blocks in at least one other queue have been cleared. In various examples, each configuration block in the fault queue is configured to be requested for instantiation after blocks in other queues have been cleared. In various examples, the fault queue as described herein is implemented as an appendage to the first and second queues or as an alternative to the first and second queues, or implemented as any other number or type of queue.
[0066] The request-response process 210 and the retry request-response process 212 illustrate the retry process as described above, wherein the response of the request-response process 210 indicates that the instantiation of the configuration block associated with subscriber line B has failed.
[0067] In various examples, after the configuration block is successfully instantiated (such as after receiving a response from AS 222 stating that the identifier of the entity associated with the configuration block has been registered on a healthy AS node), location server 220 responds to routing agent device 218 with the location of the configuration block. In various examples, routing agent device 218 is any other entity from which location server 220 receives queries for subscribers.
[0068] In various examples, once all queues for a particular movable configuration block have been cleared, location server 220 sends a message to AS 222 indicating that instantiation of the movable configuration block is complete and AS 222 should not expect any further configuration block instantiation requests for the same configuration block associated with query 202. Request-response procedure 214 illustrates this completion message.
[0069] In various examples, the queue of location server 220 is a first queue, also referred to as the "slow queue" in various examples, and location server 220 performs at least one of the following: moving configuration blocks from the first queue to a second queue (also referred to as the "fast queue" in various examples); moving configuration blocks from the second queue to the first queue, wherein each configuration block in the second queue is configured to be requested for instantiation by a healthy AS node before any block in the first queue. In various examples, the configuration blocks in the first queue are moved to the second queue using a determined priority, wherein higher-priority configuration blocks are moved to the second queue before lower-priority configuration blocks. In various examples, the configuration blocks in the second queue are moved to the first queue using a determined priority, wherein lower-priority configuration blocks are moved to the first queue before higher-priority configuration blocks. It should be understood that location server 220 is capable of implementing any number of queues, such that configuration blocks are moved between queues according to priority. In various examples, there are slow queues, medium queues, and fast queues (queue 1, queue 2, and queue 3, respectively), where each block in queue 3 is requested to be instantiated by a healthy AS node before any block in queue 2, and each block in queue 2 is requested to be instantiated before any block in queue 1. In various examples, blocks in queue 1 are moved to queue 3; or moved to queue 2. In various examples, blocks in queue 2 are moved to queue 1; or moved to queue 3. In various examples, blocks in queue 3 are moved to queue 1; or moved to queue 2. In various examples, queue 3 contains configuration blocks determined to have a higher priority than configuration blocks in queue 2, and queue 2 contains configuration blocks determined to have a higher priority than configuration blocks in queue 1. In various examples, queue 3 contains configuration blocks determined to have a higher priority than each configuration block in queue 2, and queue 2 contains configuration blocks determined to have a higher priority than each configuration block in queue 1. In various examples, these concepts, as well as the queue-related concepts described in this article, are extended to four, five, six, ten, twenty, or any other number of queues.
[0070] In various examples, the priority of a configuration block is determined by considering one or more of the following: whether the subscriber associated with the configuration block is currently attempting to make a call via the telecommunications network, whether the configuration block is associated with a configuration of a service group that includes the subscriber, whether the configuration block has any dependencies, whether the configuration block is a dependency of another configuration block, the number of dependencies of the configuration block, the priority of any dependencies of the configuration block, the type of the configuration block, historical data about the subscriber associated with the configuration block, and the existence of provisioning requests for the block.
[0071] In various examples, at any given time, a predetermined number of configuration blocks are allowed in the second queue, and once an empty slot appears in the second queue, the location server 220 moves a configuration block from the first queue to the second queue based on its highest priority. In various examples, blocks with higher priority are moved to the second queue before blocks with lower priority. In various examples, the location server 220 moves blocks from the first queue to the second queue at predetermined intervals. In various examples, the location server 220 moves a block from the first queue to the second queue only if the determined priority of a configuration block in the first queue exceeds a threshold priority.
[0072] In various examples, location server 220 moves a configuration block from the second queue to the first queue in response to the configuration block having a lower priority than the configuration block in the first queue.
[0073] In various examples, in response to a subscriber associated with the configuration block currently attempting to initiate a call or other communication request, or participating in an active communication request via the telecommunications network, this configuration block is given a higher priority than configuration blocks not associated with an active call or other communication request. In various examples, this configuration block is given a higher priority than any other configuration block not currently attempting to initiate a call or other communication request. In various examples, the priority is one of the following: low; medium; high. In various examples, the priority is a numerical value, ranging from 0-10, 0-100, 5-50, or any other range, numerical or non-numerical.
[0074] In various examples, the configuration block type is one of the following: line; dedicated PBX; multi-line seeker group. In various examples, the configuration block type is related to the subscriber type, including the entity the subscriber belongs to, and the configuration block is associated with that entity.
[0075] In various examples, the type of the configuration block is associated with an advanced service, and therefore the configuration block is determined to have a higher priority than configuration block types that are not associated with advanced services.
[0076] In various examples, configuration blocks with dependencies are determined to have higher priority than configuration blocks without dependencies. In various examples, the first configuration block has a higher number of dependencies than the second configuration block, causing the first configuration block to be determined to have higher priority than the second configuration block.
[0077] In various examples, configuration blocks that have a higher priority than the second configuration block and have dependencies are determined to have a higher priority than the configuration blocks that the second configuration block depends on.
[0078] In various examples, historical data shows that subscribers associated with a configuration block are less likely to attempt a communication request before subscribers associated with a second configuration block, thus leading to the determination that the second configuration block has a higher priority than the first configuration block.
[0079] In the first example (which reflects the references in this article) Figure 2 The described method states that all configuration data for the BG is stored on the same node of the cluster AS, and that all configuration data for the BG comprises configuration blocks, at least one of which depends on another configuration block. In various examples, all configuration data for the BG comprises a parent configuration block and at least one child configuration block, wherein in various examples, the parent configuration block comprises the BG's configuration data, and at least one child configuration block comprises the subscriber's configuration data, wherein the child configuration block depends on the parent configuration block. In various examples, the BG's configuration data is associated with unified configuration data across child configuration blocks (such as subscribers). In various examples, the BG's configuration data is configuration blocks of a movable group as defined herein. In this first example, the method performed by a location server of a telecommunications network including an AS includes: receiving a query for a subscriber of a service group, the subscriber corresponding to the subject of a call via the telecommunications network; in response to determining that configuration data associated with the subscriber is on a faulty AS node of the cluster AS: determining a healthy AS node of the cluster AS; requesting the healthy AS node to instantiate a parent configuration block and a child configuration block of all configuration data for the service group, wherein the parent configuration block contains the configuration data for the service group, and wherein the child configuration block depends on the parent configuration block and contains configuration data associated with the subscriber; receiving a response from the AS that an identifier associated with the subscriber has been registered on the healthy AS node; responding to the query at the location of the healthy AS node; and after receiving the response from the AS, adding at least one configuration block associated with all configuration data for the service group to a queue for requesting the healthy AS node to instantiate each configuration block in the queue, the at least one configuration block not including the parent and child configuration blocks requested to be instantiated. In various examples, after receiving a response from the AS, the method includes: adding all configuration blocks associated with all configuration data for the business group (excluding parent and child configuration blocks that are requested to be instantiated) to a queue, which is used to request a healthy AS node to instantiate each configuration block in the queue. In various examples, only the parent configuration block of the child configuration block to be instantiated is added to the queue.
[0080] Figure 3 It includes by Figure 1 The signaling diagram of an example method executed by the location server, where in Figure 1The telecommunications network includes additional location servers. The term "about" in this diagram is short for "related to". RP 218 represents a routing agent device as defined herein. The signaling diagram is represented as follows: entities are represented horizontally in the diagram, with each individual entity represented by a single line; time is represented vertically in the diagram, with time increasing downwards along the graph. In various examples, the signaling diagram illustrates the temporal sequence of the method blocks and actions described herein. In various examples, the method blocks and actions described herein are executed in a different temporal sequence than shown in the signaling diagram.
[0081] Similar to Figure 2 Subscriber line A 316 sends signal 300 to routing agent equipment 318 of the telecommunications network to invite line B to join the communication session. This signal corresponds to reference... Figure 1 Examples of communication requests discussed include calls from subscriber device 112 to subscriber device 114, where... Figure 3 In the context, line A 316 corresponds to subscriber device 112, and line B corresponds to subscriber device 114. In various examples, routing agent device 318 is alternatively a networking device that is not a routing agent device, but performs similar functions such as routing and requesting the location of configuration data needed to process communication requests.
[0082] Upon receiving signal 300, which includes both main subscriber line A and line B, routing agent device 318 queries location server A 320 for line A 302. In various examples, routing agent device 318 queries location server A 320 for line B, and in various examples, queries are made for line A. In various examples, querying the location server for a subscriber corresponds to querying the location server for the location of configuration data associated with that subscriber.
[0083] Location server A 320 receives query 302 for subscriber line A and, in response to determining that the configuration data associated with subscriber line A is on a failed AS node in cluster AS 322, determines the healthy AS node in cluster AS 222. However, with Figure 2 The difference is that location server A 320 cannot request the healthy AS node to instantiate a configuration block containing configuration data associated with subscriber line A, and in response to the configuration block containing configuration data associated with subscriber line A being a child configuration block, additionally or alternatively requests the instantiation of the first parent configuration block on which the child configuration block depends.
[0084] In various examples, location server A 320 and location server B 324 are configured such that each location server can instantiate configuration data only on a subset of the AS nodes of AS 322. In various examples, location server A 320 and location server B 324 are geographically separated from each other and can only instantiate configuration data on a subset of the AS nodes located on hardware close to that location server. In various examples, the telecommunications network includes at least one location server, such as one, two, four, five, thirty, or any other number of location servers.
[0085] In response to the inability of location server A 320 to request the healthy AS node to instantiate the expected configuration data, location server A 320 sends a request 304 to location server B 324 to instantiate the configuration data associated with subscriber line A, wherein location server B 324 is able to request the healthy AS node to instantiate the expected configuration data.
[0086] After receiving an instantiation request for configuration data associated with subscriber line A, location server B 324 requests health AS node 306 to instantiate a configuration block containing the configuration data associated with subscriber line A, and in response to the configuration block containing the configuration data associated with subscriber line A being a child configuration block, instantiates the first parent configuration block on which the child configuration block depends. This process mirrors the reference... Figure 2 The method described. Location server B 324 receives the following response 308 from AS 322: the identifier associated with subscriber line A has been registered on a healthy AS node. Location server B 324 then replicates response 310 309 and forwards response 308 to location server A 320. Location server A 320 then responds 310 to the initial query 302 from routing agent device 318 with the location of the healthy AS node.
[0087] In various examples, after receiving response 308 from AS 322, location server B 324 will add at least one configuration block on the failed AS node to a queue for requesting the healthy AS node to instantiate each configuration block in the queue, the at least one configuration block not including any configuration blocks that have been requested to be instantiated.
[0088] In various examples, instead of location server B 324 adding configuration blocks to the queue, location server A, upon receiving response 309 from location server B 324, adds at least one configuration block on the failed AS node to the queue to request the healthy AS node to instantiate each configuration block in the queue, the at least one configuration block not including any configuration blocks that have been requested to be instantiated.
[0089] It should be understood that, reference Figure 3 The described method (which involves reference to) Figure 2 The described method (distributed across multiple location servers) is applicable to any number of location servers in various examples (as long as the location server cannot request the expected configuration data for a healthy AS node instantiation). In various examples, once all queues have been cleared of configuration blocks, location server B 324 sends an instantiation completion message to AS 322, and AS 322 should not expect any further configuration block instantiation requests associated with query 302. Request-response procedure 312 illustrates this completion message. In various examples, once all configuration blocks for a service group have been instantiated, location server B 324 sends an instantiation completion message to AS 322, and AS 322 should not expect any further configuration block instantiation requests associated with that service group (and alternatively, with query 302).
[0090] As described herein, the feature of requesting a healthy AS node to instantiate a configuration block (and, where applicable, a parent configuration block) containing configuration data associated with a subscriber who is the subject of a received query, and then queuing at least one remaining configuration block on a failed AS node, operates in a non-traditional manner. This enables efficient rehoming of configuration data and rapid recovery of communication requests in the clustered AS of this disclosure, in response to an AS node failure where configuration data resides, while maintaining the telecommunications network's ability to facilitate communication requests. The location server feature described herein—requesting a healthy AS node to instantiate a configuration block (and, where applicable, a parent configuration block) containing configuration data associated with a subscriber who is the subject of a received query, and then queuing at least one remaining configuration block on a failed AS node—improves the functionality of the underlying computing device by enabling efficient rehoming of configuration data on the clustered AS nodes of this disclosure and rapid recovery from AS node failures, while maintaining the telecommunications network's ability to facilitate communication requests.
[0091] Figure 4 Various components of an exemplary computing-based device 400 are described, which are implemented as any form of computing and / or electronic device, and in some examples, examples of configuration rehoming devices corresponding to entities having the functionality of a location server as described herein are implemented. In the examples, the computing-based device is a server or computing node in a data center or communication network.
[0092] The computing-based device 400 includes one or more processors 416, which are microprocessors, controllers, or any other suitable type of processor, for processing computer-executable instructions to control the operation of the device in order to perform the methods described herein, including efficiently rehoming configuration data from a failed AS node in a telecommunications network, while rapidly recovering from AS node failure and maintaining the telecommunications network's ability to process communication requests. In some examples, such as when using a system-on-a-chip architecture, processor 416 includes one or more fixed function blocks (also called accelerators) that implement part of the method for rehoming the configuration in hardware (rather than software or firmware). Platform software, including an operating system 408 or any other suitable platform software, is provided at the computing-based device to enable application software 412 to execute on the device.
[0093] Computer-executable instructions are provided using any computer-readable medium accessible by the computing-based device 400. Computer-readable media include, for example, computer storage media (such as memory 414) and communication media. Computer storage media, such as memory 414, include volatile and non-volatile, removable and non-removable media implemented using any method or technology for storing information such as computer-readable instructions, data structures, program modules, etc. Computer storage media include, but are not limited to, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, optical disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic tape cassettes, magnetic tape, disk storage or other magnetic storage devices, or any other non-transmission medium used to store information for access by a computing device. Conversely, communication media embody computer-readable instructions, data structures, program modules, etc., in modulated data signals (such as carrier waves or other transmission mechanisms). As defined herein, computer storage media do not include communication media. Therefore, computer storage media should not be construed as the transmission of signals themselves. Although a computer storage medium (memory 414) is shown within the computing-based device 400, it should be understood that in some examples the storage device is distributed or located remotely and accessed via a network or other communication link (e.g., using one or more network interfaces 418).
[0094] The storage location of AS node 420, the storage table that optionally includes subscriber identifiers and associated AS node locations 404, and the configuration rehoming unit 402 of at least one configuration block queue 406 exist at the computation-based device 400.
[0095] In various examples, the computing-based device 400 optionally includes an input / output controller arranged to output display information to a display device, which may be separate from or integrated with the computing-based device 400. The display information may provide a graphical user interface. In various examples, the input / output controller is also arranged to receive and process input from one or more devices, such as user input devices (e.g., a mouse, keyboard, camera, microphone, or other sensors). In some examples, the user input device detects voice input, user gestures, or other user actions and provides a natural user interface (NUI). This user input can be used to change parameters of the method for configuring the rehoming device. In examples, if the display device is a touch-sensitive display device, the display device also acts as a user input device. In some examples, the input / output controller outputs data to a device other than the display device, such as a locally connected printing device.
[0096] As an alternative to or supplement to the other examples described herein, examples include any combination of the following: Clause A. A location server for a telecommunications network, comprising a cluster application server AS, wherein the location server includes: At least one network interface; processor; Memory stores instructions, which are executed when carried out by the processor, including the following methods: i) Receive queries for subscribers via at least one of the network interfaces; In response to determining that the configuration associated with the subscriber is on a faulty AS node in the cluster AS: Identify the healthy AS nodes in the cluster AS; Through at least one of the network interfaces, a request is made to the healthy AS node to instantiate a configuration block containing configuration data associated with the subscriber, and in response to the configuration block containing configuration data associated with the subscriber being a child configuration block, the first parent configuration block on which the child configuration block depends is instantiated. Receive the following response from AS via at least one of the network interfaces: The identifier associated with the subscriber has been registered on the healthy AS node; The query is responded to via at least one of the network interfaces, with the location of the healthy AS node as the reference. ii) After receiving a response from the AS, add at least one configuration block on the faulty AS node to the queue to request the healthy AS node to instantiate each configuration block in the queue, wherein at least one configuration block does not include any configuration blocks that have been requested to be instantiated.
[0097] Clause B. According to Clause A, the location server wherein at least one configuration block on the faulty AS node added to the queue is any one or more of the following: The parent-child structure includes a first parent configuration block, the parent-child structure includes additional parent configuration blocks, and at least one additional parent configuration block includes the root of the parent-child structure. At least one child configuration block associated with any one or more of the following: a first parent configuration block, at least one additional parent configuration block.
[0098] Clause C. The location server, pursuant to Clause A or Clause C, may also execute instructions for: iteratively requesting each configuration block of the healthy AS node instantiation queue via at least one network interface.
[0099] Clause D. A location server pursuant to any of the preceding clauses, wherein the queue is a first queue, the instructions may also be performed to: move a configuration block of the first queue to a second queue; move a configuration block of the second queue to the first queue, wherein each configuration block of the second queue is configured to be requested to be instantiated by a healthy AS node via at least one network interface before any block of the first queue.
[0100] Clause E. The location server according to Clause D, wherein configuration blocks are moved to a second queue using the determined priority of configuration blocks in the first queue, wherein higher priority configuration blocks are moved to the second queue before lower priority configuration blocks, and wherein configuration blocks are moved to the first queue using the determined priority of configuration blocks in the second queue, wherein lower priority configuration blocks are moved to the first queue before higher priority blocks.
[0101] Clause F. Location server under any of the preceding clauses, wherein the priority of a configuration block is determined by considering any one or more of the following: whether the subscriber associated with the configuration block is currently attempting to make a call via a telecommunications network, whether the configuration block is associated with a configuration of a service group including the subscriber, whether the configuration block has any dependencies, whether the configuration block is a dependency of another configuration block, the number of dependencies of the configuration block, the priority of any dependencies of the configuration block, the type of the configuration block, historical data about the subscriber associated with the configuration block, and the existence of a provisioning request for the block.
[0102] Clause G. Location server pursuant to any of the preceding clauses, wherein the type of configuration block is one of the following: line; dedicated switch PBX; multi-line seeker group.
[0103] Clause H. The instructions may also be executed for the location server pursuant to any of the preceding clauses to: In response to the failure to request instantiation of the configuration block for the healthy AS node, a new attempt is made to request instantiation of the configuration block for the healthy AS node.
[0104] Clause I. For a location server pursuant to any of Clauses A through G, the instructions may also be executed for: In response to the failure to request instantiate the configuration block for a healthy AS node less than a predetermined number of times, retry requesting the configuration block for the healthy AS node; and In response to a failure to instantiate a configuration block for a healthy AS node more than a predetermined number of times, the configuration block is added to a fault queue, wherein each configuration block in the fault queue is configured to be requested for instantiation after at least one other queue has been cleared.
[0105] Clause J. Location server under any of the preceding clauses, wherein determining that the configuration data associated with the subscriber is on a faulty AS node includes: checking that the connection to the AS node associated with the subscriber via at least one network interface to the cluster AS is unavailable.
[0106] Clause K. A location server pursuant to any of the preceding clauses, wherein the AS registers a subscriber identifier with the location server, such that the location server stores a table for each subscriber identifier, which includes the associated location of the AS node of the AS, on which configuration data associated with the subscriber is stored.
[0107] Clause L. A method performed by a location server of a telecommunications network, the telecommunications network including a clustered application server AS, the method comprising: i) Receive inquiries for subscribers (202); In response to determining that the configuration data associated with the subscriber is on the faulty AS node (118) of the cluster AS: Determine the healthy AS node (116, 120) of the cluster AS. Request (204) the healthy AS node instantiates a configuration block containing configuration data associated with the subscriber, and in response to the configuration block containing configuration data associated with the subscriber being a child configuration block, instantiates the first parent configuration block on which the child configuration block depends. Received the following response (206) from AS: The identifier associated with the subscriber has been registered on the healthy AS node; The query is responded to based on the location of the healthy AS node (208); and ii) After receiving a response from the AS, add at least one configuration block on the faulty AS node to the queue to request the healthy AS node to instantiate each configuration block in the queue, wherein at least one configuration block does not include any configuration blocks that have been requested to be instantiated.
[0108] Clause M. According to the method of Clause L, at least one configuration block added to the queue on the faulty AS node is any one or more of the following: The parent-child structure includes a first parent configuration block, the parent-child structure includes additional parent configuration blocks, and at least one additional parent configuration block includes the root of the parent-child structure. At least one child configuration block associated with any one or more of the following: a first parent configuration block, at least one additional parent configuration block.
[0109] Clause N. The method according to Clause L or Clause M also includes: iteratively requesting each configuration block of the healthy AS node instantiation queue.
[0110] Clause O. The method according to any one of Clauses L to N, wherein the queue is a first queue, the method further comprising at least one of: moving configuration blocks of the first queue to a second queue; moving configuration blocks of the second queue to the first queue, wherein each configuration block of the second queue is configured to be requested to be instantiated by a healthy AS node before any block of the first queue.
[0111] Clause P. According to the method of Clause O, configuration blocks are moved to a second queue using the determined priority of configuration blocks in the first queue, wherein higher priority configuration blocks are moved to the second queue over lower priority configuration blocks, and wherein configuration blocks are moved to the first queue using the determined priority of configuration blocks in the second queue, wherein lower priority configuration blocks are moved to the first queue over higher priority blocks.
[0112] Clause Q. According to the method in Clause P, the priority of a configuration block is determined by considering any one or more of the following: whether the subscriber associated with the configuration block is currently attempting to make a call via a telecommunications network, whether the configuration block is associated with a configuration of a service group that includes the subscriber, whether the configuration block has any dependencies, whether the configuration block is a dependency of another configuration block, the number of dependencies of the configuration block, the priority of any dependencies of the configuration block, the type of the configuration block, historical data about the subscriber associated with the configuration block, and the existence of a provisioning request for the block.
[0113] Clause R. The method according to any one of Clauses L to Q, wherein the type of configuration block is one of the following: line; dedicated switch PBX; multi-line seeker group; or wherein receiving a query for a subscriber includes: receiving the query as part of a communication flow; or receiving a query for reading or changing the subscriber's configuration as part of a supply flow.
[0114] Clause S. The method pursuant to any one of Clauses L through R includes: As part of the communication flow, it receives a first query for a subscriber, and as part of the supply flow, it receives a second query for reading or changing the configuration of a subscriber or another subscriber.
[0115] Clause T. A method performed by a location server of a telecommunications network, the telecommunications network including a clustered application server AS, wherein all configuration data of a service group is stored on the same node of the AS, and wherein the all configuration data of the service group includes configuration blocks, at least one configuration block in the configuration blocks depending on another configuration block in the configuration blocks, the method comprising: i) Receive inquiries from subscribers of a service group, where the subscriber corresponds to the subject of the communication request via the telecommunications network; In response to determining that the configuration data associated with the subscriber is on a faulty AS node in the cluster AS: Identify the healthy AS nodes in the cluster AS; The request is to instantiate the parent and child configuration blocks of all configuration data for the business group in the healthy AS node, where the parent configuration block contains the configuration data for the business group, and the child configuration block depends on the parent configuration block and contains configuration data associated with the subscriber. The AS received the following response: The identifier associated with the subscriber has been registered on a healthy AS node; The query should respond to the location of the healthy AS node; and ii) After receiving a response from the AS, add at least one configuration block associated with all configuration data of the business group to the queue for requesting the healthy AS node to instantiate each configuration block in the queue, wherein at least one configuration block does not include the parent and child configuration blocks that have been requested to be instantiated.
[0116] The terms 'computer' or 'computation-based device' are used herein to refer to any device that has processing power that enables it to execute instructions. Those skilled in the art will recognize that such processing power is incorporated into many different devices, and therefore the terms 'computer' and 'computation-based device' each include personal computers (PCs), servers, mobile phones (including smartphones), tablet computers, set-top boxes, media players, game consoles, personal digital assistants, wearable computers, and many other devices.
[0117] In some examples, the methods described herein are executed by software in a machine-readable form on a tangible storage medium, for example, in the form of a computer program comprising computer program code means adapted to perform all operations of one or more methods described herein when the program is run on a computer, and wherein the computer program may be embodied on a computer-readable medium. The software is adapted to execute on a parallel or serial processor, such that the method operations can be executed in any suitable order or simultaneously.
[0118] Those skilled in the art will recognize that storage devices used to store program instructions may optionally be distributed across a network. For example, a remote computer may store examples of processes described as software. A local or terminal computer may access a remote computer and download part or all of the software to run the program. Alternatively, a local computer may download fragments of software as needed, or execute some software instructions at a local terminal and some software instructions at a remote computer (or computer network). Those skilled in the art will also recognize that, by utilizing conventional techniques known to those skilled in the art, all or part of the software instructions may be executed by dedicated circuitry, such as digital signal processors (DSPs), programmable logic arrays, etc.
[0119] As will be apparent to those skilled in the art, any range or device values given herein may be extended or altered without losing the desired effect.
[0120] Although the subject matter has been described in language specific to structural features and / or methodological actions, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or actions described above. Rather, the specific features and actions described above are disclosed as exemplary forms for implementing the claims.
[0121] It should be understood that the benefits and advantages described above may refer to one example or several examples. Examples are not limited to those that solve any or all of the stated problems or those that have any or all of the stated benefits and advantages. It should also be understood that a reference to 'one' item means one or more of those items.
[0122] The operations of the methods described herein can be performed in any suitable order or simultaneously where appropriate. Additionally, individual boxes may be removed from any method without departing from the scope of the subject matter described herein. Aspects of any of the examples above can be combined with aspects of any other example described to form further examples without losing the desired effect.
[0123] The term 'including' is used herein to mean including the identified method box or element, but such box or element does not include an exclusive list, and the method or apparatus may include additional boxes or elements.
[0124] The term 'subset' is used in this article to refer to a proper subset, such that a subset of a set does not include all elements of the set (i.e., at least one element of the set is missing from the subset).
[0125] It should be understood that the above description is given by way of example only, and various modifications can be made by those skilled in the art. The above specification, examples, and data provide a complete description of the structure and use of exemplary embodiments. Although various examples have been described above with a degree of specificity or by reference to one or more individual examples, those skilled in the art can make many changes to the disclosed examples without departing from the scope of this specification.
Claims
1. A location server (100, 220) for a telecommunications network (110), comprising a cluster application server AS (114, 222), said location server comprising: At least one network interface (108); Processor (104); Memory (106), the memory storing instructions, which, when executed by the processor, perform methods including: i) Receive a query for a subscriber (202) via one of the at least one network interfaces; In response to determining the configuration associated with the subscriber on the faulty AS node (118) of the cluster AS: Determine the healthy AS node (116, 120) of the cluster AS. Through one of the at least one network interfaces, a request (204) is made for the healthy AS node to instantiate a configuration block containing configuration data associated with the subscriber, and in response to the configuration block containing configuration data associated with the subscriber being a child configuration block, a first parent configuration block on which the child configuration block depends is instantiated. The following response (206) is received from the AS via one of the at least one network interfaces: the identifier associated with the subscriber has been registered on the healthy AS node; The query is responded to via one of the at least one network interfaces, with the location of the healthy AS node as the response (208). ii) After receiving the response from the AS, add at least one configuration block on the faulty AS node to a queue to request the healthy AS node to instantiate each configuration block in the queue, wherein the at least one configuration block does not include any configuration blocks that have been requested to be instantiated.
2. The location server of claim 1, wherein the at least one configuration block added to the queue on the faulty AS node is any one or more of the following: In response to a parent-child structure including a first parent configuration block, the parent-child structure including an additional parent configuration block, and at least one additional parent configuration block including the root of the parent-child structure; At least one child configuration block associated with any one or more of the following: the first parent configuration block, the at least one additional parent configuration block.
3. The location server according to any of the preceding claims, wherein the instructions are executable for: iteratively requesting the healthy AS node to instantiate each configuration block of the queue via the at least one network interface.
4. The location server according to any of the preceding claims, wherein the queue is a first queue, and the instructions are also executable to: move a configuration block of the first queue to a second queue; move a configuration block of the second queue to the first queue, wherein each configuration block of the second queue is configured to be requested to be instantiated by the healthy AS node via the at least one network interface before any block of the first queue.
5. The location server of claim 4, wherein the configuration block is moved to the second queue using a determined priority of the configuration block in the first queue, wherein a higher priority configuration block is moved to the second queue before a lower priority configuration block, and wherein the configuration block is moved to the first queue using a determined priority of the configuration block in the second queue, wherein a lower priority configuration block is moved to the first queue before a higher priority block.
6. The location server of claim 5, wherein the priority of the configuration block is determined by considering any one or more of the following: whether the subscriber associated with the configuration block is currently attempting to make a call via the telecommunications network, whether the configuration block is associated with a service group including the subscriber, whether the configuration block has any dependencies, whether the configuration block is a dependency of another configuration block, the number of dependencies of the configuration block, the priority of any dependencies of the configuration block, the type of the configuration block, historical data about the subscriber associated with the configuration block, and the existence of a provisioning request for the block.
7. The location server according to claim 6, wherein the type of the configuration block is one of the following: line; dedicated PBX; multi-line seeker group.
8. The location server according to any of the preceding claims, the instructions may also be executed for: In response to the failure to request the healthy AS node to instantiate the configuration block, a new attempt is made to request the healthy AS node to instantiate the configuration block.
9. The location server according to any one of claims 1 to 7, wherein the instructions may also be executed for: In response to the failure to request the healthy AS node to instantiate the configuration block less than a predetermined number of times, retry requesting the healthy AS node to instantiate the configuration block; and In response to a failure to request the instantiation of a configuration block by a healthy AS node more than a predetermined number of times, the configuration block is added to a fault queue, wherein each configuration block in the fault queue is configured to be requested to be instantiated after at least one other queue has been cleared.
10. The location server according to any of the preceding claims, wherein determining the configuration data associated with the subscriber on a faulty AS node includes: The connection to the AS node associated with the subscriber via the at least one network interface to the cluster AS is found to be unavailable.
11. The location server according to any of the preceding claims, wherein the AS registers a subscriber identifier with the location server such that the location server stores a table that includes the associated location of an AS node of the AS for each subscriber identifier, the AS node storing configuration data associated with the subscriber.
12. A method performed by a location server (100) of a telecommunications network (110), the telecommunications network (110) including a cluster application server AS (114), the method comprising: i) Receive inquiries for subscribers (202); In response to determining that the configuration data associated with the subscriber is on the faulty AS node (118) of the cluster AS: Determine the healthy AS node (116, 120) of the cluster AS. The request (204) states that the healthy AS node instantiates a configuration block containing configuration data associated with the subscriber, and in response that the configuration block containing configuration data associated with the subscriber is a child configuration block, instantiates a first parent configuration block on which the child configuration block depends. The following response (206) is received from the AS: The identifier associated with the subscriber has been registered on the healthy AS node; The query is responded to based on the location of the healthy AS node (208). as well as ii) After receiving the response from the AS, add at least one configuration block on the faulty AS node to a queue to request the healthy AS node to instantiate each configuration block in the queue, wherein the at least one configuration block does not include any configuration blocks that have been requested to be instantiated.
13. The method of claim 12, wherein the at least one configuration block added to the queue on the faulty AS node is any one or more of the following: In response to a parent-child structure including a first parent configuration block, the parent-child structure including an additional parent configuration block, and at least one additional parent configuration block including the root of the parent-child structure; At least one child configuration block associated with any one or more of the following: the first parent configuration block, the at least one additional parent configuration block.
14. The method according to any one of claims 12 to 13, further comprising: Iteratively request the healthy AS node to instantiate each configuration block of the queue.
15. The method of any one of claims 12 to 14, wherein the queue is a first queue, and the method further comprises at least one of: moving a configuration block of the first queue to a second queue; moving a configuration block of the second queue to the first queue, wherein each configuration block of the second queue is configured to be requested to be instantiated by the healthy AS node before any block of the first queue.
16. The method of claim 15, wherein the configuration blocks are moved to the second queue using a determined priority of the configuration blocks in the first queue, wherein higher priority configuration blocks are moved to the second queue over lower priority configuration blocks, and wherein the configuration blocks are moved to the first queue using a determined priority of the configuration blocks in the second queue, wherein lower priority configuration blocks are moved to the first queue over higher priority blocks.
17. The method of claim 16, wherein the priority of the configuration block is determined by considering any one or more of the following: whether the subscriber associated with the configuration block is currently attempting to make a call via the telecommunications network, whether the configuration block is associated with a service group including the subscriber, whether the configuration block has any dependencies, whether the configuration block is a dependency of another configuration block, the number of dependencies of the configuration block, the priority of any dependencies of the configuration block, the type of the configuration block, historical data about the subscriber associated with the configuration block, and the existence of a provisioning request for the block.
18. The method according to any one of claims 12 to 17, wherein receiving an inquiry for a subscriber comprises: The query is received as part of the communication stream; Alternatively, it may receive the query as part of the supply flow to read or change the subscriber's configuration.
19. The method according to any one of claims 12 to 17, comprising: As part of the communication flow, it receives a first query for a subscriber, and as part of the supply flow, it receives a second query for reading or changing the configuration of the subscriber or another subscriber.
20. A method performed by a location server (100) of a telecommunications network (110), the telecommunications network (110) including a cluster application server AS (114), wherein all configuration data of a service group is stored on the same node of the AS, and wherein the all configuration data of the service group includes configuration blocks, at least one of the configuration blocks depending on another configuration block, the method comprising: i) Receive (202) an inquiry for a subscriber of the service group, the subscriber corresponding to the subject of a call made via the telecommunications network; In response to determining that the configuration data associated with the subscriber is on the faulty AS node (118) of the cluster AS: Determine the healthy AS node (116, 120) of the cluster AS. Request (204) the healthy AS node to instantiate the parent configuration block and child configuration block of all configuration data of the service group, wherein the parent configuration block contains the configuration data of the service group, and wherein the child configuration block depends on the parent configuration block and contains configuration data associated with the subscriber; The following response (206) is received from the AS: The identifier associated with the subscriber has been registered on the healthy AS node; The query is responded to based on the location of the healthy AS node (208). as well as ii) After receiving the response from the AS, at least one configuration block associated with all configuration data of the service group is added to the queue to request the healthy AS node to instantiate each configuration block in the queue, wherein the at least one configuration block does not include the parent configuration block and the child configuration block that were previously requested to be instantiated.