Methods, systems, and computer readable media for exchanging outbound registration count information between interrogation call session control functions (I-CSCF) and using outbound registration count information for serving CSCF (S-CSCF) selection

By introducing the Sc-ext interface between I-CSCFs to exchange outbound registration count information and calculating the updated registration capacity of the S-CSCF, the overload problem of the S-CSCF in the IMS network is solved, and more efficient load balancing and traffic routing are achieved.

CN121753314APending Publication Date: 2026-03-27ORACLE INT CORP
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-08-19
Publication Date
2026-03-27

AI Technical Summary

Technical Problem

In IMS networks, due to the unequal load on S-CSCFs, S-CSCFs may become overloaded due to registration traffic, and existing technologies cannot effectively select S-CSCFs to avoid overload.

Method used

An Sc-ext interface is introduced between I-CSCFs to exchange outbound registration count information. The updated registration capacity of the S-CSCF is received and calculated through the Diameter interface. A load balancing algorithm is used to select a suitable S-CSCF to reduce the risk of overload.

Benefits of technology

By sharing outbound registration count information, the I-CSCF can route traffic more intelligently, avoid selecting potentially overloaded S-CSCFs, improve load balancing efficiency, and reduce the possibility of traffic bursts and transaction timeouts.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121753314A_ABST
    Figure CN121753314A_ABST
Patent Text Reader

Abstract

A method for exchanging outbound registration count information between I-CSCFs and using the outbound registration count information for S-CSCF selection includes receiving, at a first I-CSCF in a cluster of I-CSCFs and from each S-CSCF in the cluster of S-CSCFs, a value indicating a registration capacity of the S-CSCF. The method further includes receiving, at the first I-CSCF and from at least one other I-CSCF in the cluster of I-CSCFs, an outbound registration count indicating a number of outbound registrations that the at least one other I-CSCF has to the S-CSCFs in the cluster of S-CSCFs. The method further includes calculating, by the first I-CSCF and using the value indicating the registration capacity of the S-CSCF and the outbound registration count, a value indicating an updated registration capacity of the S-CSCF. The method further includes selecting, by the first I-CSCF, an S-CSCF for the at least one outbound registration message using the value indicating the updated registration capacity.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Priority requirements

[0002] This application claims priority to U.S. Patent Application Serial No. 18 / 240,842, filed August 31, 2023, the disclosure of which is incorporated herein by reference in its entirety. Technical Field

[0003] This article describes topics related to message passing in Internet Protocol Multimedia Subsystem (IMS) networks. More specifically, this article describes topics related to exchanging outbound registration count information between I-CSCFs and using that outbound registration count information for S-CSCF selection. Background Technology

[0004] In an IMS network, the Call Session Control (CSCF) is the entity that handles IMS registration traffic to register a User Equipment (UE) when it is attached to the network. There are three types of CSCFs: the Proxy CSCF (P-CSCF), the I-CSCF, and the S-CSCF. The P-CSCF receives IMS registration requests sent on behalf of the UE and acts as a proxy by forwarding the registration requests to the I-CSCF in the core network. The I-CSCF receives the IMS registration request from the P-CSCF, selects an S-CSCF, and forwards the IMS registration request to the selected S-CSCF. The S-CSCF acts as a registrar for UE registration by processing the registration request.

[0005] One problem in IMS networks is that S-CSCFs can become overloaded due to unequal load distribution. An S-CSCF can share its registration capacity with an I-CSCF. However, each I-CSCF receives and has access to the full registration capacity of the S-CSCF. Therefore, two different I-CSCFs can attempt to utilize the full registration capacity of a given S-CSCF, potentially overloading that S-CSCF.

[0006] Given these and other difficulties, there is a need to exchange outbound registration count information between I-CSCFs and use that registration count information for S-CSCF selection. Summary of the Invention

[0007] A method for exchanging outbound registration count information between Interrogation Call Session Control Functions (I-CSCFs) and using the outbound registration count information for Service CSCF (S-CSCF) selection includes: receiving, at a first I-CSCF of a plurality of I-CSCFs in an I-CSCF cluster and from each S-CSCF of a plurality of S-CSCFs in an S-CSCF cluster, a value indicating the registration capacity of that S-CSCF. The method further includes: receiving, at the first I-CSCF and from at least one other I-CSCF in the I-CSCF cluster, an outbound registration count indicating the number of outbound registrations that the at least one other I-CSCF has to S-CSCFs in the S-CSCF cluster. The method further includes: calculating, by the first I-CSCF, an updated registration capacity value indicating the S-CSCF's registration capacity using the value indicating the S-CSCF's registration capacity and the outbound registration count. The method further includes: selecting an S-CSCF for at least one outbound registration message by the first I-CSCF using the updated registration capacity value.

[0008] According to another aspect of the subject matter described herein, receiving a value indicating the registration capacity of the S-CSCF includes receiving a value indicating the registration capacity via the Diameter interface.

[0009] According to another aspect of the subject matter described herein, receiving outbound registration counts includes receiving outbound registration counts via the Diameter interface.

[0010] According to another aspect of the subject described herein, receiving outbound registration counts via the Diameter interface includes receiving outbound registration counts via Diameter Service Association Request (SVR) messages.

[0011] According to another aspect of the subject matter described herein, receiving outbound registration counts via Diameter SVR messages includes receiving outbound registration counts via outbound registration count attribute value pairs (AVPs) included in each Diameter SVR message.

[0012] According to another aspect of the subject matter described herein, receiving outbound registration counts via outbound registration count (AVP) includes: receiving the S-CSCF name and the corresponding outbound registration count for each of the at least one other I-CSCFs that has active registrations.

[0013] According to another aspect of the subject matter described herein, calculating the updated registration capacity value indicating each S-CSCF in the S-CSCF includes: for each S-CSCF, summing the outbound registration count received from the at least one other I-CSCF in the cluster and the outbound registration count of the first I-CSCF to generate the total registration count of that S-CSCF, and subtracting the total registration count from the value indicating the registration capacity of that S-CSCF.

[0014] According to another aspect of the subject matter described herein, using a value indicating the updated registration capacity to select an S-CSCF for outbound registration messages includes: providing the value indicating the updated registration capacity to the load balancing algorithm that selects the S-CSCF.

[0015] According to another aspect of the subject matter described herein, selecting an S-CSCF using a value indicating the updated registration capacity includes: determining, using the value indicating the updated registration capacity, that an S-CSCF is unhealthy or more overloaded than other S-CSCFs in the S-CSCF cluster, and selecting an alternative S-CSCF from the S-CSCF cluster.

[0016] According to another aspect of the subject matter described herein, a method for distributing and using outbound registration count information includes: a first I-CSCF communicating the outbound registration count of the first I-CSCF to at least one other I-CSCF in a cluster of I-CSCFs.

[0017] According to another aspect of the subject matter described herein, a system is provided for exchanging outbound registration count information between Interrogation Call Session Control Functions (I-CSCFs) and using the outbound registration count information for Service CSCF (S-CSCF) selection. The system includes a first I-CSCF among a plurality of I-CSCFs in an I-CSCF cluster, the first I-CSCF including at least one processor and memory. The system also includes an updated registration capacity calculation module, executable by the at least one processor, for: receiving a value indicating the registration capacity of each of the plurality of S-CSCFs in the S-CSCF cluster; receiving an outbound registration count from at least one other I-CSCF in the I-CSCF cluster, the outbound registration count indicating the number of outbound registrations of the at least one other I-CSCF to the S-CSCFs in the S-CSCF cluster; and calculating a value indicating the updated registration capacity of the S-CSCF using the value indicating the registration capacity of the S-CSCF and the outbound registration count. The system also includes an S-CSCF selection module, which can be executed by the at least one processor to select an S-CSCF for at least one outbound registration message using a value indicating the updated registration capacity.

[0018] According to another aspect of the subject matter described herein, the updated registration capacity calculation module is configured to receive a value indicating the registration capacity of the S-CSCF via the Diameter interface.

[0019] According to another aspect of the subject described in this article, the updated registration capacity calculation module is configured to receive outbound registration counts via the Diameter interface.

[0020] In another aspect of the subject described herein, the updated registration capacity calculation module is configured to receive outbound registration counts via Diameter Service Association Request (SVR) messages.

[0021] According to another aspect of the subject described in this article, each Diameter SVR message includes an Outbound Registration Count Attribute Value Pair (AVP) carrying the outbound registration count.

[0022] According to another aspect of the subject matter described in this article, the outbound registration count (AVP) includes the S-CSCF name and the corresponding outbound registration count.

[0023] According to another aspect of the subject matter described herein, when calculating the updated registration capacity value indicating each S-CSCF in the S-CSCF, the updated registration capacity calculation module is configured to: for each S-CSCF in the S-CSCF, sum the outbound registration count received from the at least one other I-CSCF in the cluster and the outbound registration count of the first I-CSCF to generate the total registration count of the S-CSCF, and subtract the total registration count of the S-CSCF from the value indicating the registration capacity of the S-CSCF.

[0024] According to another aspect of the subject matter described herein, when using a value indicating the updated registration capacity to select an S-CSCF for outbound registration messages, the S-CSCF selection module is configured to provide the value indicating the updated registration capacity to the load balancing algorithm that selects the S-CSCF.

[0025] According to another aspect of the subject matter described herein, a system for distributing and using outbound registration count information includes an outbound registration count tracking / communication module for communicating the outbound registration count of a first I-CSCF to at least one other I-CSCF in a cluster of I-CSCFs.

[0026] According to another aspect of the subject matter described herein, a non-transitory computer-readable medium having executable instructions stored thereon is provided, which, when executed by a computer's processor, control the computer to perform steps. The steps include: receiving, at a first I-CSCF in a cluster of Interrogation Call Session Control Functions (I-CSCFs) and from each of a plurality of S-CSCFs in a cluster of Serving CSCFs (S-CSCFs), a value indicating the registration capacity of that S-CSCF. The steps also include: receiving, at the first I-CSCF and from at least one other I-CSCF in the cluster of I-CSCFs, an outbound registration count indicating the number of outbound registrations that the at least one other I-CSCF has to S-CSCFs in the cluster of S-CSCFs. The steps further include: calculating, by the first I-CSCF, an updated registration capacity value indicating the S-CSCF's registration capacity using the value indicating the S-CSCF's registration capacity and the outbound registration count. The steps further include: selecting an S-CSCF for at least one outbound registration message by the first I-CSCF using the updated registration capacity value.

[0027] The subjects described herein can be implemented using software in conjunction with hardware and / or firmware. For example, the subjects described herein can be implemented as software executed by a processor. In one exemplary embodiment, the subjects described herein can be implemented using a non-transitory computer-readable medium having computer-executable instructions stored thereon, which control computer execution steps when executed by a computer's processor. Exemplary computer-readable media suitable for implementing the subjects described herein include non-transitory computer-readable media, such as disk storage devices, on-chip memory devices, programmable logic devices, and application-specific integrated circuits (ASICs). Furthermore, computer-readable media implementing the subjects described herein can be located on a single device or computing platform or can be distributed across multiple devices or computing platforms. Attached Figure Description

[0028] Exemplary embodiments of the subject matter described herein will now be explained with reference to the accompanying drawings, in which:

[0029] Figure 1 This is a network diagram illustrating the interfaces between the I-CSCF, S-CSCF, and the I-CSCF used to exchange outbound registration count information;

[0030] Figure 2 This is a message flow diagram illustrating an exemplary message exchange between I-CSCFs on the Sc-ext interface;

[0031] Figure 3 This is a message flow diagram illustrating the exchange and use of outbound registration count information by the I-CSCF;

[0032] Figure 4 This is a network diagram of the I-CSCF cluster;

[0033] Figure 5 This is a block diagram illustrating an exemplary architecture of an I-CSCF capable of sharing outbound registration count information with other I-CSCFs and using outbound registration count information from other I-CSCFs for S-CSCF selection; and

[0034] Figure 6 This is a flowchart illustrating an exemplary process performed by the I-CSCF for distributing and using outbound registration count information to select an S-CSCF. Detailed Implementation

[0035] To reduce the likelihood of S-CSCFs becoming overloaded and / or the possibility of selecting unhealthy S-CSCFs or S-CSCFs with heavier loads than other S-CSCFs in the cluster for new IMS registrations, the subject described in this paper introduces a new interface called the Sc-ext interface between I-CSCFs. This new interface allows I-CSCFs to exchange outbound registration count information with each other. Outbound registration count information refers to the number of successfully active IMS registrations that each S-CSCF in the cluster has. I-CSCFs can use the outbound registration counts and the registration capacity information of the S-CSCFs reported by the S-CSCFs through the interface between the S-CSCFs and I-CSCFs (referred to as the Sc interface) to calculate the updated registration capacity of the S-CSCFs. The I-CSCFs can then use the updated registration capacity to perform S-CSCF selection (e.g., using a load balancing algorithm).

[0036] Figure 1 This is a network diagram illustrating the I-CSCF, S-CSCF, and the Sc-ext interface between the I-CSCF and the I-CSCF used for exchanging outbound registration count information. Figure 1 In China, I-CSCF 1001-100 N S-CSCF 1021-102 in the S-CSCF cluster N Send IMS registration. The Home Subscriber Server (HSS) 104 stores subscription information for IMS users. S-CSCF 1021-102 N Through the Sc interface to I-CSCF 1001-100 N The Sc interface is used to communicate registration capacity information and dynamically manage multiple S-CSCFs. Using the Sc interface, S-CSCFs can register and deregister with the I-CSCF at any time. The Sc interface can also be used to negotiate capabilities between I-CSCFs and S-CSCFs. S-CSCFs can advertise dynamically adjusted capacity (based on Key Performance Indicators (KPIs)) and service information to the I-CSCF. Using KPI information, the I-CSCF will be able to manage S-CSCF availability. The Sc interface is also used for reliable transport to deliver messages between I-CSCFs and S-CSCFs and for error notification. However, without the Sc-ext interface, I-CSCFs lack a way to communicate with each other and share useful information related to load balancing, which limits the I-CSCF's ability to load balance registrations among S-CSCFs.

[0037] Consider the scenario of two I-CSCFs (I-CSCF-A and I-CSCF-B) and one S-CSCF (S-CSCF-A). Assume S-CSCF-A has registered itself with both I-CSCFs via the Sc interface. When S-CSCF-A publishes its current maximum endpoint support capacity (e.g., Max-Eps-Supp=10) to both I-CSCFs, each I-CSCF will have the same snapshot of S-CSCF-A's KPI metrics. Therefore, each of these I-CSCFs "assumes" from its own perspective that S-CSCF-A is capable of handling 10 subscribers.

[0038] If I-CSCF-A and I-CSCF-B each send 10 registrations individually to this S-CSCF, it effectively means that S-CSCF-A has 20 transactions (i.e., 10 from I-CSCF-A and 10 from I-CSCF-B) to process, exceeding its processing capacity and potentially causing traffic bursts / transaction timeouts. S-CSCF-A can update its capacity to I-CSCF-A and I-CSCF-B via Diameter Service Association Request (SVR) messages sent through the Sc interface. Updates are typically sent periodically, for example, every 60 seconds. However, S-CSCF-A may become overloaded before reporting its updated capacity (e.g., processing capacity, memory capacity, and maximum supported endpoints) to I-CSCF-A and I-CSCF-B.

[0039] One possible way to reduce the likelihood of S-CSCF overload is to increase the frequency of SVR refresh messages on the Sc interface. However, increasing the frequency of SVR refresh messages will only exacerbate the situation by increasing traffic in the core network. Using the Sc-ext interface described herein, I-CSCFs will be able to communicate with each other and share relevant information about themselves and their associated S-CSCFs. By exchanging information such as outbound registration with each S-CSCF, I-CSCFs in the same mesh network can make informed decisions about routing traffic to healthy / capable S-CSCFs and avoid selecting S-CSCFs that may encounter capacity overload issues. The Sc-ext interface includes an AVP that can be carried in the SVR message and used to share outbound registration count information between I-CSCFs. An example of an AVP will be described in detail below.

[0040] The Sc-ext interface between I-CSCF nodes can be used for many purposes, not limited to exchanging outbound registration count information. For example, the Sc-ext interface can be used to periodically share each I-CSCF's KPI metrics (server capacity, current load, health status, etc.) with other I-CSCFs in the same cluster, so that in the event of an overloaded I-CSCF, other healthy I-CSCFs can act as backups and take over load balancing control. Using the Sc-ext interface in this way enables I-CSCFs to make intelligent decisions about how to effectively distribute traffic and avoid overloading specific nodes.

[0041] When a new S-CSCF is added to or removed from the network, I-CSCFs can exchange information about the new S-CSCF's capacity and update the information used by the I-CSCF's load balancing algorithm, thus ensuring a smooth S-CSCF scaling process and endpoint allocation. By sharing outbound registration information, I-CSCFs in the same cluster will know which S-CSCFs in the cluster have active registrations with them. In addition to information about S-CSCF capacity, each I-CSCF will also have information about how many SIP / IMS (registration) requests were sent to each S-CSCF on the Sc-ext interface in each reporting interval and successfully processed by it. The number of SIP / IMS registration requests sent by I-CSCFs to S-CSCFs and successfully processed by them is called the outbound registration count. The S-CSCF capacity information and the S-CSCF's outbound registration count can be fed as input to the load balancing algorithm at each I-CSCF for efficient load balancing.

[0042] For simplicity, let's consider a cluster with three S-CSCFs and two I-CSCFs. The table and associated descriptions below illustrate a series of steps that can be performed in this scenario. At time t1, all S-CSCFs have published their respective KPI metrics and service information to the two I-CSCFs via SVR messages. Table 1 illustrates the reported capacity of the S-CSCFs and the capacity of each S-CSCF from the perspective of each I-CSCF.

[0043]

[0044] Table 1: Reported S-CSCF capacity and capacity from the perspective of I-CSCF

[0045] As can be seen from Table 1, each I-CSCF sees and believes that it can access the full capacity of each S-CSCF (regardless of whether any part of that capacity is being used by another I-CSCF).

[0046] Table 2 below illustrates the problem in this scenario. Since each I-CSCF has a snapshot view of 10 / 20 / 30 subscribers respectively for S-CSCF-A / B / C, the S-CSCF is very likely to be overloaded due to registration.

[0047]

[0048] Table 2: S-CSCF Overload

[0049] As can be seen from Table 2, if I-CSCF-A and I-CSCF-B each attempt to access the full processing capacity of S-CSCF A, B and C, then S-CSCF will be overloaded.

[0050] Using the Sc-ext interface described herein, I-CSCFs do not rely solely on the information they receive from S-CSCFs. Instead, they receive outbound registration count information from other I-CSCFs in the network.

[0051] In one example, the I-CSCF publishes outbound registration count information via the Sc-ext interface, which is a Diameter interface. The message type used to convey the outbound registration count information is a Diameter SVR message. The SVR message may include a list of S-CSCF names and the number of successful registrations sent to that S-CSCF via the Outbound-Reg-Count AVP in the SVR message.

[0052] In one example, the SVR message may include an Outbound-Reg-Count AVP, which carries the following XML data:

[0053]

[0054] The following are the definitions of the attributes in Outbound Registration Count (AVP):

[0055] OutboundRegistrationCount - Indicates the start / end tag of the complete XML tree.

[0056] ServingCSCF - The parent tag that encloses the information of each S-CSCF

[0057] ServerName - This label indicates the S-CSCF server name / SIP URI.

[0058] OutboundRegCount - This label indicates the number of successful registrations sent to this S-CSCF since the last SVR update via the Sc-ext interface.

[0059] Each I-CSCF in an I-CSCF keeps track of the number of successful registrations sent to each of the S-CSCFs to which it has registered, and publishes this information at predefined periodic intervals via the Outbound-Reg-Count AVP in an SVR message sent to other I-CSCFs through the Sc-ext interface. Below is an example of the structure of an SVR message.

[0060]

[0061] In the SVR message structure, the [OutboundRegCount] attribute stores a list of outbound registration counts for each S-CSCF that is registered to communicate with the I-CSCF. <servingcscf>The attribute stores the name of the CSCF.

[0062] In response to receiving a list of S-CSCF identifiers and their respective outbound registration counts, the receiving I-CSCF calculates the updated registration capacity for each S-CSCF using the following equation:

[0063] The updated registration capacity of S-CSCF = the capacity reported by S-CSCF - sum(x,y...)

[0064] Where x, y... are the outbound registration count values ​​of the S-CSCF reported by each I-CSCF and the outbound registration count values ​​maintained by the sending I-CSCF.

[0065] The I-CSCF load balancing algorithm uses the updated registration capacity of the S-CSCF as input. Using the updated registration capacity instead of the reported registration capacity reduces the likelihood of S-CSCF overload. Furthermore, the overall load balancing of the I-CSCF is more efficient and reduces the possibility of traffic bursts / transaction timeouts.

[0066] Figure 2 This is a message flow diagram illustrating the exchange of registration count information via the Sc-ext interface. (Reference) Figure 2 In lines 1 and 2 of the message flow diagram, I-CSCF A 1001 and I-CSCF B 1002 exchange Diameter Capability Exchange Request (CER) and Diameter Capability Exchange Response (CEA) messages to establish a Diameter connection between I-CSCF A and I-CSCF B for the Sc-ext interface. In lines 3-6 of the message flow diagram, I-CSCF A 1001 and I-CSCF B 1002 exchange Diameter Watchdog Request (DWR) and Diameter Watchdog Response (DWA) messages to set the Diameter watchdog timer for messages exchanged through the Sc-ext interface.

[0067] In line 7, I-CSCF A 1001 sends an SVR message to I-CSCF B 1002 via the Sc-ext interface, including the outbound registration count and S-CSCF name of the S-CSCFs registered with I-CSCF A 1001. I-CSCF B 1002 receives the SVR message, reads the outbound registration count and server name, calculates the updated registration capacity for each S-CSCF, and responds with a Service Association Response (SVA) message as indicated in line 8.

[0068] In line 9 of the message flow diagram, I-CSCF A 1001 sends a Core Registration Request (CRR) message to I-CSCF B 1002. The CRR message is a Diameter message used by an I-CSCF to register itself with other I-CSCFs. In line 10, I-CSCF B 1002 responds to the CRR message with a Core Registration Response (CRA) message.

[0069] In line 11, I-CSCF A 1001 sends another SVR message to I-CSCF B 1002 to update the registration count to I-CSCF B 1002. I-CSCF B 1002 receives the SVR message, calculates the updated registration capacity of the S-CSCF based on the outbound registration count, and sends an SVA message to I-CSCF A 1001 in line 12.

[0070] In line 13 of the message flow graph, I-CSCF A 1001 sends a CRR message to I-CSCF B 1002. In line 14, I-CSCF B 1002 responds to the CRR message with a CRA message.

[0071] In line 15, S-CSCF A 1001 sends another SVR message to I-CSCF B 1002 to terminate the Sc-ext connection and update the registration count to I-CSCF 1002. I-CSCF B 1002 receives the SVR message, calculates the updated registration capacity of the S-CSCF based on the outbound registration count, and sends an SVA message to I-CSCF A 1001 in line 16.

[0072] To provide a concrete example, suppose S-CSCFs (S-CSCF A, S-CSCF B, and S-CSCF C) have reported registration capacities of 10, 20, and 30 to I-CSCF A 1001 and I-CSCF B 1002, respectively. Suppose I-CSCF A 1001 has sent 2, 6, and 7 registrations to S-CSCF A / B / C, respectively, and I-CSCF B 1002 has sent 3, 4, and 14 registrations to S-CSCF A / B / C, respectively. Then, the same information is sent as XML data from one I-CSCF to the other.

[0073] A similar process is repeated at predefined periodic intervals at each I-CSCF. Typically, the number of I-CSCFs is small, so this information exchange does not have any performance impact on the system.

[0074] Table 3 below illustrates the registration counts that will be tracked by each I-CSCF and communicated to other I-CSCFs.

[0075]

[0076] Table 3: Registrations sent to I-CSCF

[0077] The following is an example of outbound registration count information sent from I-CSCF A 1001 to I-CSCF B 1002 on the Sc-ext interface, based on the examples in Table 3.

[0078]

[0079]

[0080] The following is an example of outbound registration count information that will be sent from I-CSCF B 1002 to I-CSCF A 1001 on the Sc-ext interface:

[0081]

[0082]

[0083] Upon receiving the XLM-formatted data described above, each of I-CSCF A 1001 and I-CSCF B 1002 will parse the outbound registration count information, generate a sum of outbound registration counts for each S-CSCF, and feed the total outbound registration count along with the registration capacity of the S-CSCF to the load balancing algorithm. Table 4 below illustrates the registration count and registration capacity information for this example.

[0084]

[0085] Table 4: Outbound Registration Count and Registration Capacity

[0086] Once each I-CSCF receives the outbound registration count and registration capacity, each I-CSCF will use the following equation to calculate the updated registration capacity for each S-CSCF:

[0087] Updated capacity of S-CSCF A = ​​Capacity reported by S-CSCF A - sum(2,3)

[0088] = 10 – 5 = 5

[0089] Updated capacity of S-CSCF B = Capacity reported by S-CSCF B - sum(6,4)

[0090] = 20 – 10 = 10

[0091] Updated capacity of S-CSCF C = Capacity reported by S-CSCF C - sum(7,14)

[0092] = 30 – 21 = 9

[0093] Each I-CSCF uses its updated registration capacity to perform S-CSCF selection. For example, since S-CSCF B has twice the capacity of S-CSCF A, it can be assigned a selection weight for load balancing purposes that is twice the weight assigned to S-CSCF A. Then, according to a weighted load balancing algorithm such as a weighted round-robin algorithm, the selection weight can be used to select one of the S-CSCFs for the next registration request.

[0094] Figure 3 This is a message flow diagram illustrating the distribution of registration count information between I-CSCFs and the load balancing of registrations between S-CSCFs using this registration count information. (Reference) Figure 3 In lines 1-4, I-CSCF A 1001 and I-CSCF B 1002 exchange registration count information for S-CSCFs 1021, 1022, and 1023. In lines 5 and 6, I-CSCF A 1001 and I-CSCF B 1002 calculate the updated registration capacity for S-CSCF A 1021, S-CSCF B 1022, and S-CSCF C 1023. In lines 7-12, I-CSCF A 1001 and I-CSCF B 1002 use the updated registration count information to send new SIP REGISTER messages to S-CSCF A 1021, S-CSCF B 1022, and S-CSCF C 1023 to perform S-CSCF selection.

[0095] When I-CSCFs are deployed in a cluster, it is particularly useful to distribute outbound registration count information among the I-CSCFs. Figure 4 This is a network diagram illustrating the cluster of I-CSCF nodes. Figure 4 In China, I-CSCF 1001-100 N Each I-CSCF connects to every other I-CSCF in the cluster via the Sc-ext interface to form a mesh configuration. I-CSCF 1001-100 N Each of these I-CSCFs exchanges outbound registration count information with each of the other I-CSCFs in the cluster using the SVR message described above. I-CSCF 1001-100 N Each of the S-CSCFs calculates its updated registration capacity and uses the updated registration capacity to select an S-CSCF.

[0096] Figure 5 This is a block diagram illustrating an exemplary architecture of the I-CSCF based on the topics described herein. References Figure 5 The I-CSCF 100 includes at least one processor 500 and a memory 502. The I-CSCF 100 also includes an outbound registration tracking / communication module 504, which tracks outbound registrations from the I-CSCF 100 to the S-CSCF and communicates the number of outbound registrations to other I-CSCFs via the Sc-ext interface. The I-CSCF 100 includes an updated registration capacity calculation module 506, which receives outbound registration count information from other I-CSCFs, receives registration capacity information from the S-CSCF, and calculates the updated registration capacity using the formula described above. The I-CSCF 100 also includes an S-CSCF selection module 508, which performs S-CSCF selection using the updated registration capacity. Each of modules 504, 506, and 508 can be implemented using computer-executable instructions stored in the memory 502 and executed by the processor 500.

[0097] Figure 6 This is a flowchart illustrating an exemplary process for exchanging and using outbound registration count information to perform S-CSCF selection. (Reference) Figure 6 At step 600, the process includes: receiving, at the first I-CSCF among a plurality of query CSCFs (I-CSCFs) in the I-CSCF cluster, and from each S-CSCF in the S-CSCF cluster, a value indicating the registration capacity of the S-CSCF. For example, the I-CSCF can receive from the S-CSCF and via a Diameter interface such as the Sc interface, a message carrying a value indicating the registration capacity (i.e., the number of concurrent IMS registrations that each S-CSCF can handle). In one example, the registration capacity may be carried in an SVR message.

[0098] In step 602, the process includes: receiving an outbound registration count at the first I-CSCF and from at least one other I-CSCF in the cluster of I-CSCFs, the outbound registration count indicating the number of outbound registrations that the at least one other I-CSCF has to S-CSCFs in the cluster of S-CSCFs. For example, each I-CSCF in the cluster of I-CSCFs may receive a message from other I-CSCFs in the cluster via a Diameter interface, the message indicating the number of outbound registrations that each I-CSCF has to each S-CSCF. In one example, the outbound registration count may be carried in the aforementioned outbound registration count AVP in an SVR message.

[0099] In step 604, the process further includes: calculating the updated registration capacity of the S-CSCF using the first I-CSCF and the value indicating the registration capacity of the S-CSCF and the outbound registration count. For example, the I-CSCF may sum the outbound registration counts received for each S-CSCF and subtract the sum from the value indicating the registration capacity of the S-CSCF. The resulting difference is the value indicating the updated registration capacity of each S-CSCF.

[0100] In step 606, the process includes: selecting an S-CSCF for at least one outbound registration message using a value indicating the updated registration capacity by a first I-CSCF. For example, each I-CSCF may provide the updated registration capacity value indicating the S-CSCF to a load balancing algorithm implemented by each I-CSCF. The load balancing algorithm may use the value indicating the updated registration capacity to perform S-CSCF selection. If the load balancing algorithm is a weighted round-robin algorithm, then the load balancing algorithm may use the relative value of the updated registration capacity as a weight when performing S-CSCF selection. The updated registration capacity may also be used to avoid selecting unhealthy or overloaded S-CSCFs. For example, if the value indicating the registration capacity indicates that a particular S-CSCF is overloaded, then the S-CSCF may be excluded from the S-CSCF selection for a given IMS registration request, for a predetermined time interval, or until the health status of the S-CSCF indicates that the S-CSCF is no longer overloaded.

[0101] The publicly available content of each of the following references is hereby incorporated into this paper by citation of its entirety.

[0102] References

[0103] 1. Fajardo et al., Diameter Base Protocol, IETF RFC 6733, October 2012.

[0104] 2. Rosenberg et al., Session Initiation Protocol, IETF RFC 3261, July 2002.

[0105] It should be understood that various details of the subject matter described herein may be changed without departing from the scope of the subject matter described herein. Furthermore, the foregoing description is for illustrative purposes only and not for limiting purposes, as the subject matter described herein is defined by the claims set forth below.< / servingcscf>

Claims

1. A method for exchanging outbound registration count information between Interrogation Call Session Control Functions (I-CSCF) and using the outbound registration count information for Service CSCF (S-CSCF) selection, the method comprising: At the first I-CSCF in the I-CSCF cluster and from each S-CSCF in the S-CSCF cluster, a value indicating the registered capacity of that S-CSCF is received; At the first I-CSCF and from at least one other I-CSCF in the cluster of I-CSCFs, an outbound registration count is received, which indicates the number of outbound registrations that the at least one other I-CSCF has to the S-CSCFs in the cluster of S-CSCFs. The updated registration capacity value of the S-CSCF is calculated from the first I-CSCF and using the registration capacity value of the S-CSCF and the outbound registration count; as well as The first I-CSCF uses the value indicating the updated registration capacity to select an S-CSCF for at least one outbound registration message.

2. The method of claim 1, wherein receiving a value indicating the registration capacity of the S-CSCF includes receiving a value indicating the registration capacity via a Diameter interface.

3. The method of claim 1 or 2, wherein receiving outbound registration counts includes receiving outbound registration counts via a Diameter interface.

4. The method of claim 3, wherein receiving outbound registration counts via the Diameter interface includes receiving outbound registration counts via a Diameter Service Association Request (SVR) message.

5. The method of claim 4, wherein receiving outbound registration counts via Diameter SVR messages includes: Outbound registration counts are received via outbound registration count attribute value pairs (AVPs) included in each Diameter SVR message.

6. The method of claim 5, wherein receiving the outbound registration count via the outbound registration count (AVP) comprises: For each of the S-CSCFs with active registrations, the other I-CSCF receives the S-CSCF name and the corresponding outbound registration count.

7. The method of any of the preceding claims, wherein calculating the updated registration capacity value for each S-CSCF in the S-CSCF comprises: For each S-CSCF in the S-CSCF, the outbound registration count received from the at least one other I-CSCF in the cluster and the outbound registration count of the first I-CSCF are summed to generate the total registration count of the S-CSCF, and the total registration count is subtracted from the value indicating the registration capacity of the S-CSCF.

8. The method of any of the preceding claims, wherein selecting an S-CSCF for an outbound registration message using a value indicating the updated registration capacity comprises: The updated registered capacity value is provided to the load balancing algorithm that selects the S-CSCF.

9. The method of any of the preceding claims, wherein selecting the S-CSCF using a value indicating the updated registration capacity comprises: The updated registration capacity value is used to determine whether an S-CSCF is unhealthy or more overloaded than another S-CSCF in the S-CSCF cluster, and an alternative S-CSCF is selected from the S-CSCF cluster.

10. The method as described in any of the preceding claims, comprising: The outbound registration count of the first I-CSCF is communicated from the first I-CSCF to at least one other I-CSCF in the cluster of I-CSCFs.

11. A system for exchanging outbound registration count information between Interrogation Call Session Control Functions (I-CSCF) and using the outbound registration count information for Service CSCF (S-CSCF) selection, the system comprising: The first I-CSCF in a cluster of I-CSCFs includes at least one processor and memory; The updated registration capacity calculation module, which can be executed by the at least one processor, is configured to: receive a value indicating the registration capacity of each of a plurality of S-CSCFs in the S-CSCF cluster; receive an outbound registration count from at least one other I-CSCF in the I-CSCF cluster, the outbound registration count indicating the number of outbound registrations of the at least one other I-CSCF to the S-CSCFs in the S-CSCF cluster; and calculate an updated registration capacity value indicating the S-CSCF using the value indicating the registration capacity of the S-CSCF and the outbound registration count. as well as An S-CSCF selection module, which can be executed by the at least one processor, is used to select an S-CSCF for at least one outbound registration message using a value indicating the updated registration capacity.

12. The system of claim 11, wherein the updated registration capacity calculation module is configured to receive a value indicating the registration capacity of the S-CSCF via a Diameter interface.

13. The system of claim 11 or 12, wherein the updated registration capacity calculation module is configured to receive outbound registration counts via a Diameter interface.

14. The system of claim 13, wherein the updated registration capacity calculation module is configured to receive outbound registration counts via a Diameter Service Association Request (SVR) message.

15. The system of claim 14, wherein each Diameter SVR message includes an Outbound Registration Count Attribute Value Pair (AVP) carrying an outbound registration count.

16. The system of claim 15, wherein the outbound registration count (AVP) includes the S-CSCF name and the corresponding outbound registration count.

17. The system according to any one of claims 11 to 16, wherein, When calculating the updated registration capacity value for each S-CSCF in the S-CSCF, the updated registration capacity calculation module is configured to: for each S-CSCF, sum the outbound registration count received from at least one other I-CSCF in the cluster and the outbound registration count of the first I-CSCF to generate the total registration count of the S-CSCF, and subtract the total registration count of the S-CSCF from the value indicating the registration capacity of the S-CSCF.

18. The system according to any one of claims 11 to 17, wherein, When using the updated registration capacity value to select an S-CSCF for outbound registration messages, the S-CSCF selection module is configured to provide the updated registration capacity value to the load balancing algorithm that selects the S-CSCF.

19. The system of any one of claims 11 to 18, comprising an outbound registration count tracking / communication module for communicating the outbound registration count of the first I-CSCF to the at least one other I-CSCF in the cluster of I-CSCFs.

20. A non-transitory computer-readable medium having executable instructions stored thereon, the executable instructions, when executed by a computer's processor, controlling the computer to perform steps, the steps including: At the first I-CSCF in the cluster of multiple I-CSCFs in the query call session control function (I-CSCF) cluster, and from each S-CSCF in the cluster of multiple S-CSCFs in the service CSCF (S-CSCF) cluster, a value indicating the registration capacity of that S-CSCF is received. At the first I-CSCF and from at least one other I-CSCF in the cluster of I-CSCFs, an outbound registration count is received, which indicates the number of outbound registrations that the at least one other I-CSCF has to the S-CSCFs in the cluster of S-CSCFs. The updated registration capacity value of the S-CSCF is calculated from the first I-CSCF and using the registration capacity value of the S-CSCF and the outbound registration count; as well as The first I-CSCF uses the value indicating the updated registration capacity to select an S-CSCF for at least one outbound registration message.