Internet Protocol Multimedia Subsystem (IMS) is an architectural framework defined by the 3rd Generation Partnership Project (3GPP) for delivering Internet Protocol (IP) multimedia to user equipment (UEs) of the IMS network. During a registration procedure for IMS-based services, the UE is assigned a proxy call session control function (P-CSCF) node. The P-CSCF node acts as the ingress and egress point to and from the IMS core with respect to the UE, once registered.
Although today's telecommunications networks are fairly reliable, it is possible for such an assigned P-CSCF node to become unavailable after IMS registration. If a P-CSCF node becomes unavailable, a communication session cannot be established with the UEs assigned to the unavailable P-CSCF node. For example, the UEs will not receive any calls for the duration of the unavailability or until the UEs perform registration.
The detailed description is set forth with reference to the accompanying figures, in which the left-most digit of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different figures indicates similar or identical items or features.
Existing P-CSCF restoration procedures are documented in 3GPP Technical Specification (TS) 23.380. TS 23.380 documents two known ways of performing P-CSCF restoration: (i) HSS-based P-CSCF restoration, and (ii) policy and charging rules function (PCRF)-based P-CSCF restoration. In the existing HSS-based P-CSCF restoration procedure, the serving CSCF (S-CSCF) node is configured to send a message (e.g., a Cx Server Assignment Request (SAR) message) directly to the HSS to trigger P-CSCF restoration. However, with the existing HSS-based P-CSCF restoration procedure, if the S-CSCF node happens to be overloaded (e.g., if a processing workload of the S-CSCF node is above a threshold) at a time when a P-CSCF node becomes unavailable, a user may go without service for an extended period of time because the overloaded S-CSCF node may cause a delay in the UE connecting to another P-CSCF node that is available.
Described herein are techniques, devices, and systems for using an AS to trigger HSS-based P-CSCF restoration for a UE in order to restore service to the UE via an in-service P-CSCF node. With the disclosed AS-triggered, HSS-based P-CSCF restoration procedure, an AS is configured to receive, from a S-CSCF node, an indication that a P-CSCF node assigned to a UE is unavailable, and, in response, the AS is configured to send, to a HSS, a request to initiate P-CSCF restoration for the UE. In turn, the HSS or a Unified Data Management (UDM) node is configured to send, to a control node (e.g., a mobility management entity (MME) in a 4G implementation, an access and mobility function (AMF) node or a session management function (SMF) node in a 5G implementation, etc.), an indication to perform the P-CSCF restoration for the UE. In other words, HSS-based P-CSCF restoration is triggered by the AS instead of the S-CSCF node directly contacting the HSS to trigger HSS-based P-CSCF restoration.
In an illustrative example, if a terminating UE is involved in a communication session, and a S-CSCF node that is serving the terminating UE sends, to a first P-CSCF node, a Session Initiation Protocol (SIP) message (e.g., a SIP message using the SIP INVITE method to establish the communication session), and either (i) a timeout occurs or (ii) the S-CSCF node receives an error code from the first P-CSCF node, the S-CSCF node is configured to notify the AS (e.g., a telephony AS (TAS)) by sending, to the AS, a SIP message indicating that the first P-CSCF node is unavailable. Upon receiving this SIP message from the S-CSCF, the AS is configured to send a request (e.g., a user data request (UDR) message) to the HSS requesting the HSS to initiate P-CSCF restoration for the UE. The HSS may then send an acknowledgement (e.g., a user data answer (UDA) message) back to the AS, and the HSS or the UDM may also send an indication to a control node (e.g., a MME, a AMF/SMF, etc.) to perform the P-CSCF restoration for the UE. After the control node receives this indication from the HSS/UDM, one or more procedures are carried out at least in part by the control node and the UE to cause the UE to connect to a second P-CSCF node that is available in order to restore service to the UE (and, hence, to a user of the UE).
Accordingly, the techniques, devices, and systems described herein improve the resiliency of a telecommunications network by leveraging an AS to trigger HSS-based P-CSCF restoration. The P-CSCF restoration is performed in order to move a UE from an unavailable P-CSCF node to an available P-CSCF node. In this way, service for the UE (and, hence, the user thereof) can be restored faster and/or more reliably, as compared to existing P-CSCF restoration procedures, such as the P-CSCF restoration procedures documented in TS 23.380. In general, using an AS to trigger HSS-based P-CSCF restoration facilitates the establishment of subsequent calls for a UE, thereby providing a more stable, resilient telecommunications network, which can be critical in emergency situations.
Furthermore, service can be restored in a selective manner for individual UEs that are currently registered with an unavailable P-CSCF using the techniques, devices, and systems described herein. That is, instead of overloading the network by contemporaneously initiating P-CSCF restoration for upwards of hundreds of thousands of subscribers who are assigned to an unavailable P-CSCF node, the techniques, devices, and systems described herein allow for using an AS to selectively trigger HSS-based P-CSCF restoration for individual UEs. For example, a UE may remain connected to an unavailable P-CSCF node until a S-CSCF node assigned to the UE sends a SIP message to the unavailable P-CSCF node and determines that the P-CSCF node is unavailable (e.g., based on a timeout or an error code received from the unavailable P-CSCF node). This selective triggering of HSS-based P-CSCF restoration conserves bandwidth on the network and it allows for moving users from an unavailable P-CSCF node to an available P-CSCF node in a gradual manner, on-demand. Accordingly, the techniques, devices, and systems described herein may allow one or more devices to conserve resources with respect to processing resources, memory resources, networking resources, power resources, etc., in the various ways described herein.
The techniques, devices, and systems described herein may be particularly beneficial for restoring service to terminating UEs that remain idle while registered for IMS-based services. That is, the disclosed AS-triggered, HSS-based P-CSCF restoration procedures can be carried out “behind the scenes,” unbeknownst to the user of a terminating UE to ensure that the terminating UE is connected to an in-service P-CSCF node. In other words, even when a UE is registered for IMS-based services and remains idle (e.g., if the UE is not being used while being carried in a user's pocket or purse, sitting on a countertop, etc.), the disclosed AS-triggered, HSS-based P-CSCF restoration procedures can be carried out for the idle UE so that calls can be received as soon as possible after detecting that a P-CSCF node assigned to the idle UE has become unavailable. In an illustrative example, if an originating UE is used to call or message a terminating UE, the AS that is involved in the SIP signaling to establish this communication session can trigger HSS-based P-CSCF restoration as soon as the S-CSCF node determines that the P-CSCF node assigned to the terminating UE is unavailable, thereby restoring service to the terminating UE sooner, rather than waiting for a longer period of time (sometimes as long as an hour or more) to lapse before automatically re-registering for IMS-based services. After P-CSCF restoration, the terminating UE is connected to an available P-CSCF node and is thereafter able to receive calls, messages, file transfers, etc.
Also disclosed herein are systems and devices comprising one or more processors and one or more memories, as well as non-transitory computer-readable media storing computer-executable instructions that, when executed, by one or more processors perform various acts and/or processes disclosed herein.
In general, a user can utilize a UE, such as the UE 100, to communicate with other computing devices of a telecommunications network.
The nodes 104-110 of
The IMS core can be maintained and/or operated by one or more service providers, such as one or more wireless carriers (or “operators”, “telecommunication service providers”, etc.), that provide IMS-based services to users (sometimes called “subscribers”) who are associated with UEs, such as the UE 100. For example, a service provider may offer multimedia telephony services that allow a subscribed user to call or message other users via an IMS core using his/her UE. A user can also utilize an associated UE to receive, provide, or otherwise interact with various different IMS-based services by accessing computing devices of an IMS core. In this manner, a service provider may offer any type of IMS-based service, such as, telephony services, emergency services (e.g., E911), gaming services, instant messaging services, presence services, video conferencing services, social networking and sharing services, location-based services, push-to-talk services, real-time text (RTT) services, RCS, and so on.
The UE 100 of
The UE 100 of
In the example of
Because the SIP message 112 is destined for the UE 100, the AS 108 may send (e.g., forward) the SIP message 112 to the S-CSCF node 106, and the S-CSCF node 106 may send (e.g., forward) the SIP message 112 to the first P-CSCF node 104(1) (“P-CSCF-A”), as shown in
In the example of
In another example, the S-CSCF node 106 may determine the unavailability of the first P-CSCF node 104(1) (“P-CSCF-A”) based on the occurrence of a timeout at 114. That is, the S-CSCF node 106 may send the SIP message 112 and may start a timer that is configured to run for a period of time. If the S-CSCF node 106 does not receive a response from the first P-CSCF node 104(1) (“P-CSCF-A”) prior to a lapse of the period of time, the S-CSCF node 106 may be configured to send a SIP message 116 to the AS 108, which causes the AS 108 to trigger HSS-based P-CSCF restoration.
Accordingly, in some examples, the SIP message 116 sent by the S-CSCF node 106 to the AS 108 may include a “reason 118” to indicate that the first P-CSCF node 104(1) (“P-CSCF-A”) is unavailable. In some examples, the reason 118 may include an error code received by the S-CSCF node 106 from the first P-CSCF node 104(1) (“P-CSCF-A”). In other examples, the reason 118 may include an indication of a timeout having occurred with respect to the first P-CSCF node 104(1) (“P-CSCF-A”). In some examples, a timeout having occurred with respect to the first P-CSCF node 104(1) (“P-CSCF-A”) may be indicated by an error code (e.g., 504—Server Time-out). In other examples, a label, such as “P-CSCF timeout”, may indicate that a timeout has occurred with respect to the first P-CSCF node 104(1) (“P-CSCF-A”).
In
Accordingly, in response to receiving the SIP message 116 from the S-CSCF node 106 indicating that the first P-CSCF node 104(1) (“P-CSCF-A”) is unavailable, the AS 108 may send, to the HSS 110, a UDR message 120 to trigger (or otherwise initiate) P-CSCF restoration for the UE 100. In the example of
In response to receiving the UDR message 120, the HSS 110 may send (e.g., return) to the AS 108, a UDA message 124 as an acknowledgement (e.g., to acknowledge receipt of the UDR message 120). In the example of
The indication 126 sent by the HSS 110 to the MME/SGSN 102 may cause the UE 100 to connect to a second P-CSCF node 104(2) (“P-CSCF-B”) that is available. Accordingly, service can be restored to the UE 100 by connecting to the second P-CSCF node 104(2) (“P-CSCF-B”). In some examples, the indication 126 may be sent by the HSS 110 to the MME/SGSN 102 using a S6a/S6d interface and Insert-Subscription-Data-Request (IDR)/Insert-Subscription-Data-Answer (IDA) or a Gr interface and Insert Subscriber Data (ISD) request/answer. In some examples, the MME/SGSN 102 may execute a Protocol Configuration Options (PCO)-based optional extension, if the optional extension is supported by the MME/SGSN 102. In the example of
The nodes 204-210 of
The UE 200 of
In the example of
Because the SIP message 212 is destined for the UE 200, the AS 208 may send (e.g., forward) the SIP message 212 to the S-CSCF node 206, and the S-CSCF node 206 may send (e.g., forward) the SIP message 212 to the first P-CSCF node 204(1) (“P-CSCF-A”), as shown in
In the example of
In another example, the S-CSCF node 206 may determine the unavailability of the first P-CSCF node 204(1) (“P-CSCF-A”) based on the occurrence of a timeout at 214. That is, the S-CSCF node 206 may send the SIP message 212 and may start a timer that is configured to run for a period of time. If the S-CSCF node 206 does not receive a response from the first P-CSCF node 204(1) (“P-CSCF-A”) prior to a lapse of the period of time, the S-CSCF node 206 may be configured to send a SIP message 216 to the AS 208, which causes the AS 208 to trigger HSS-based P-CSCF restoration.
Accordingly, in some examples, the SIP message 216 sent by the S-CSCF node 206 to the AS 208 may include a “reason 218” to indicate that the first P-CSCF node 204(1) (“P-CSCF-A”) is unavailable. In some examples, the reason 218 may include an error code received by the S-CSCF node 206 from the first P-CSCF node 204(1) (“P-CSCF-A”). In other examples, the reason 218 may include an indication of a timeout having occurred with respect to the first P-CSCF node 204(1) (“P-CSCF-A”). In some examples, a timeout having occurred with respect to the first P-CSCF node 204(1) (“P-CSCF-A”) may be indicated by an error code (e.g., 504—Server Time-out). In other examples, a label, such as “P-CSCF timeout”, may indicate that a timeout has occurred with respect to the first P-CSCF node 204(1) (“P-CSCF-A”).
In
Accordingly, in response to receiving the SIP message 216 from the S-CSCF node 206 indicating that the first P-CSCF node 204(1) (“P-CSCF-A”) is unavailable, the AS 208 may send, to the HSS 210, a UDR message 220 to trigger (or otherwise initiate) P-CSCF restoration for the UE 200. In the example of
In response to receiving the UDR message 220, the HSS 210 may send (e.g., return) to the AS 208, a UDA message 224 as an acknowledgement (e.g., to acknowledge receipt of the UDR message 220). In the example of
The indication 226 sent by the UDM 210 to the AMF/SMF node 202 may cause the UE 200 to connect to a second P-CSCF node 204(2) (“P-CSCF-B”) that is available. Accordingly, service can be restored to the UE 200 by connecting to the second P-CSCF node 204(2) (“P-CSCF-B”). In some examples, the indication 226 may be sent by the UDM 210 to the AMF/SMF node 202 via HTTP/HTTP2 as a Nudm_UECM_PCscfRestoration operation. In some examples, the AMF/SMF node 202 may execute a PCO-based optional extension, if the optional extension is supported by the AMF/SMF node 202. In the example of
The processes described in this disclosure may be implemented by the architectures described herein, or by other architectures. These processes are illustrated as a collection of blocks in a logical flow graph. Some of the blocks represent operations that can be implemented in hardware, software, or a combination thereof. In the context of software, the blocks represent computer-executable instructions stored on one or more computer-readable storage media that, when executed by one or more processors, perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, and the like that perform particular functions or implement particular abstract data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described blocks can be combined in any order or in parallel to implement the processes. It is understood that the following processes may be implemented on other architectures as well.
At 302, an AS 108, 208 may receive, from a S-CSCF node 106, 206, an indication that a P-CSCF node 104(1), 204(1) is unavailable. The AS 108, 208 may be a TAS, in some examples. In other examples, the AS 108, 208 may be configured to provide text messaging services, RCS, or any other suitable IMS-based service(s). In some examples, the indication received by the AS 108, 208 at block 302 may be in the form of a SIP message 116, 216 that indicates the P-CSCF node 104(1), 204(1) is unavailable. In some examples, the SIP message 116, 216 received by the AS 108, 208 may include a “reason 118, 218” to indicate that the P-CSCF node 104(1), 204(1) is unavailable. In some examples, the reason 118, 218 may include an error code that was previously received by the S-CSCF node 106, 206 from the P-CSCF node 104(1), 204(1). In other examples, the reason 118, 218 may include an indication of a timeout having occurred with respect to the P-CSCF node 104(1), 204(1). In some examples, a timeout having occurred with respect to the P-CSCF node 104(1), 204(1) may be indicated by an error code (e.g., 504—Server Time-out). In other examples, a label, such as “P-CSCF timeout”, may indicate that a timeout has occurred with respect to the P-CSCF node 104(1), 204(1).
At 304, the AS 108, 208 may send, to a HSS 110, 210, a request to initiate P-CSCF restoration for a UE 100, 200 associated with the P-CSCF node 104(1), 204(1). In some examples, the request that is sent to the HSS 110, 210 at block 304 may include a UDR message 120, 220, which may include a P-CSCF Restoration Indication 122, 222, in some examples. In a 4G implementation, the request that is sent to the HSS 110, 210 at block 304 may be sent via a Sh interface using Diameter protocol. In a 5G implementation, the request that is sent to the HSS 110, 210 at block 304 may be sent using HTTP.
At 306, the HSS 110, UDM 210 may send, to a control node, an indication 126, 226 to perform the P-CSCF restoration for the UE 100, 200. The indication 126, 226 sent to the control node at block 306 may cause the UE 100, 200 to connect to a second P-CSCF node 104(2), 204(2) that is available. In a 4G implementation, the control node may be a MME (e.g., a MME/SGSN 102). In a 5G implementation, the control node may be a AMF/SMF node 202.
At 402, an AS 108 may receive a first SIP message 112 associated with a communication session involving the UE 100. For example, if a user of an originating UE is trying to call a user of the UE 100, the first SIP message 112 received by the AS 108 at block 402 may have been transmitted using the SIP INVITE method in order to request establishment of a voice call (e.g., a VoLTE call) with the UE 100. It is to be appreciated, however, that the first SIP message 112 received by the AS 108 at block 402 may have been transmitted using any other suitable type of SIP method, such as a SIP MESSAGE method, to name one alternative example SIP method.
At 404, the AS 108 may send the first SIP message 112 to a S-CSCF node 106. At 406, the S-CSCF node 106 may send the first SIP message 112 to a first P-CSCF node 104(1).
At 408, the S-CSCF node 106 may determine, in response to sending the first SIP message 112 to the first P-CSCF node 104(1) at block 406, whether an error code has been received from the first P-CSCF node 104(1) or whether a timeout has occurred with respect to the first P-CSCF node 104(1). That is, in at least one example, the S-CSCF node 106 may receive an error code from the first P-CSCF node 104(1) in response to sending the SIP message 112 to the first P-CSCF node 104(1) at block 406. The error code, if received by the S-CSCF node 106 at block 408, may indicate that the first P-CSCF node 104(1) is unavailable. In some examples, the S-CSCF node 106 may have access to a predefined list of one or more error codes (e.g., 500—Internal Server Error, 503—Service Unavailable, etc.) associated with a P-CSCF restoration procedure. In this manner, the S-CSCF node 106 may be configured to determine, at block 408, whether an error code received from the first P-CSCF node 104(1) matches one of the error codes in the predefined list of error codes. Alternatively, in another example, the S-CSCF node 106 may start a timer that is configured to run for a period of time in response to sending the SIP message 112 to the first P-CSCF node 104(1) at block 406, and the S-CSCF node 106 may determine, at block 408, that a timeout has occurred if a response has not been received from the first P-CSCF node 104(1) prior to a lapse of the period of time. If an expected response is received from the first P-CSCF node 104(1) prior to a lapse of the period of time (i.e., no timeout), and if that response does not include an error code specific to P-CSCF restoration, the process 400 may follow the NO route from block 408 to block 410 where the communication session may continue. For example, if the SIP message 112 is transmitted using the SIP INVITE method to establish a communication session (e.g., a VoLTE call), the communication session may be established, and subsequent SIP signaling to/from the UE 100 may be routed by the available first P-CSCF node 104(1). If, on the other hand, the S-CSCF node 106 determines, in response to sending the first SIP message 112 to the first P-CSCF node 104(1) at block 406, that an error code specific to P-CSCF restoration has been received from the first P-CSCF node 104(1) or that a timeout has occurred with respect to the first P-CSCF node 104(1), the process 400 may follow the YES route from block 408 to block 412.
At 412, the S-CSCF node 106 may send, to the AS 108, a second SIP message 116 that indicates the first P-CSCF node 104(1) is unavailable. In some examples, the S-CSCF node 106 may, at sub-block 414, include a “reason 118” in the SIP message 116 to indicate that the P-CSCF node 104(1) is unavailable. In some examples, the reason 118 may include an error code that was previously received by the S-CSCF node 106 from the first P-CSCF node 104(1) at block 408. In other examples, the reason 118 may include an indication of a timeout having occurred with respect to the first P-CSCF node 104(1). In some examples, a timeout having occurred with respect to the first P-CSCF node 104(1) may be indicated by an error code (e.g., 504—Server Time-out). In other examples, a label, such as “P-CSCF timeout”, may indicate that a timeout has occurred with respect to the first P-CSCF node 104(1).
At 416, the AS 108 may receive, from the S-CSCF node 106, the second SIP message 116 indicating that the first P-CSCF node 104(1) is unavailable. In some examples, the AS 108 is configured to process the second SIP message 116 at block 416 to determine the reason 118 included in the second SIP message 116.
At 418, the AS 108 may send, to a HSS 110, a UDR message 120 to initiate P-CSCF restoration for the UE 100 associated with the P-CSCF node 104(1). In some examples, the UDR message 120 may include a P-CSCF Restoration Indication 122. In some example, the UDR message 120 that is sent to the HSS 110 at block 418 may be sent via a Sh interface using Diameter protocol.
At 420, the HSS 110 may send, to the AS 108, a UDA message 124 to acknowledge receipt of the UDR message 120. In some example, the UDA message 124 that is sent to the AS 108 at block 420 may be sent via the Sh interface using Diameter protocol.
At 422, the HSS 110 may send, to a MME (e.g., MME/SGSN 102), an indication 126 to perform the P-CSCF restoration for the UE 100. The indication 126 sent to the MME (e.g., MME/SGSN 102) at block 422 may cause the UE 100 to connect to a second P-CSCF node 104(2) that is available. In some examples, the indication 126 may be sent by the HSS 110 to the MME (e.g., MME/SGSN 102) at block 422 using a S6a/S6d interface and IDR/IDA or a Gr interface and ISD request/answer.
At 424, the AS 108 may send a SIP response 128 (e.g., an error response) to the originating side (e.g., destined for an originating UE involved in the communication session with the UE 100). The SIP response 128 sent at block 424 may be to notify an originating UE of the unavailability of the first P-CSCF node 104(1) and/or that P-CSCF restoration has been triggered for the UE 100, which may be a MT UE, in this example.
At 426, the UE 100 may connect to a second P-CSCF node 104(2) that is available. For example, based on a release 132 of the IMS PDN connection resulting from the MME (e.g., MME/SGSN 102) receiving the indication 126 from the HSS 110, the UE 100 may activate the IMS PDN connection (See 134 in
At 502, an AS 208 may receive a first SIP message 212 associated with a communication session involving the UE 200. For example, if a user of an originating UE is trying to call a user of the UE 200, the first SIP message 212 received by the AS 208 at block 502 may have been transmitted using the SIP INVITE method in order to request establishment of a voice call (e.g., a VoNR call) with the UE 200. It is to be appreciated, however, that the first SIP message 212 received by the AS 208 at block 502 may have been transmitted using any other suitable type of SIP method, such as a SIP MESSAGE method, to name one alternative example SIP method.
At 504, the AS 208 may send the first SIP message 212 to a S-CSCF node 206. At 506, the S-CSCF node 206 may send the first SIP message 212 to a first P-CSCF node 204(1).
At 508, the S-CSCF node 206 may determine, in response to sending the first SIP message 212 to the first P-CSCF node 204(1) at block 506, whether an error code has been received from the first P-CSCF node 204(1) or whether a timeout has occurred with respect to the first P-CSCF node 204(1). That is, in at least one example, the S-CSCF node 206 may receive an error code from the first P-CSCF node 204(1) in response to sending the SIP message 212 to the first P-CSCF node 204(1) at block 506. The error code, if received by the S-CSCF node 206 at block 508, may indicate that the first P-CSCF node 204(1) is unavailable. In some examples, the S-CSCF node 206 may have access to a predefined list of one or more error codes (e.g., 500—Internal Server Error, 503—Service Unavailable, etc.) associated with a P-CSCF restoration procedure. In this manner, the S-CSCF node 206 may be configured to determine, at block 508, whether an error code received from the first P-CSCF node 204(1) matches one of the error codes in the predefined list of error codes. Alternatively, in another example, the S-CSCF node 206 may start a timer that is configured to run for a period of time in response to sending the SIP message 212 to the first P-CSCF node 204(1) at block 506, and the S-CSCF node 206 may determine, at block 508, that a timeout has occurred if a response has not been received from the first P-CSCF node 204(1) prior to a lapse of the period of time. If an expected response is received from the first P-CSCF node 204(1) prior to a lapse of the period of time (i.e., no timeout), and if that response does not include an error code specific to P-CSCF restoration, the process 500 may follow the NO route from block 508 to block 510 where the communication session may continue. For example, if the SIP message 212 is transmitted using the SIP INVITE method to establish a communication session (e.g., a VoNR call), the communication session may be established, and subsequent SIP signaling to/from the UE 200 may be routed by the available first P-CSCF node 204(1). If, on the other hand, the S-CSCF node 206 determines, in response to sending the first SIP message 212 to the first P-CSCF node 204(1) at block 506, that an error code specific to P-CSCF restoration has been received from the first P-CSCF node 204(1) or that a timeout has occurred with respect to the first P-CSCF node 204(1), the process 500 may follow the YES route from block 508 to block 512.
At 512, the S-CSCF node 206 may send, to the AS 208, a second SIP message 216 that indicates the first P-CSCF node 204(1) is unavailable. In some examples, the S-CSCF node 206 may, at sub-block 514, include a “reason 218” in the SIP message 216 to indicate that the P-CSCF node 204(1) is unavailable. In some examples, the reason 218 may include an error code that was previously received by the S-CSCF node 206 from the first P-CSCF node 204(1) at block 508. In other examples, the reason 218 may include an indication of a timeout having occurred with respect to the first P-CSCF node 204(1). In some examples, a timeout having occurred with respect to the first P-CSCF node 204(1) may be indicated by an error code (e.g., 504—Server Time-out). In other examples, a label, such as “P-CSCF timeout”, may indicate that a timeout has occurred with respect to the first P-CSCF node 204(1).
At 516, the AS 208 may receive, from the S-CSCF node 206, the second SIP message 216 indicating that the first P-CSCF node 204(1) is unavailable. In some examples, the AS 208 is configured to process the second SIP message 216 at block 516 to determine the reason 218 included in the second SIP message 216.
At 518, the AS 208 may send, to a HSS 210, a UDR message 220 to initiate P-CSCF restoration for the UE 200 associated with the P-CSCF node 204(1). In some examples, the UDR message 220 may include a P-CSCF Restoration Indication 222. In some example, the UDR message 220 that is sent to the HSS 210 at block 518 may be sent via HTTP, such as HTTP/2.
At 520, the HSS 210 may send, to the AS 208, a UDA message 224 to acknowledge receipt of the UDR message 220. In some example, the UDA message 224 that is sent to the AS 208 at block 520 may be sent via HTTP, such as HTTP/2.
At 522, the UDM 210 may send, to a AMF/SMF node 202, an indication 226 to perform the P-CSCF restoration for the UE 200. The indication 226 sent to the AMF/SMF node 202 at block 522 may cause the UE 200 to connect to a second P-CSCF node 204(2) that is available. In some examples, the indication 226 may be sent by the UDM 210 to the AMF/SMF node 202 at block 522 using HTTP as a Nudm_UECM_PCscfRestoration operation.
At 524, the AS 208 may send a SIP response 228 (e.g., an error response) to the originating side (e.g., destined for an originating UE involved in the communication session with the UE 200). The SIP response 228 sent at block 524 may be to notify an originating UE of the unavailability of the first P-CSCF node 204(1) and/or that P-CSCF restoration has been triggered for the UE 200, which may be a MT UE, in this example.
At 526, the UE 200 may connect to a second P-CSCF node 204(2) that is available. For example, based on a release 232 of the IMS PDN connection resulting from the AMF/SMF 202 receiving the indication 226 from the UDM 210, the UE 200 may activate the IMS PDN connection (See 234 in
As shown, the IMS node(s) 600 may include one or more processors 602 and one or more forms of computer-readable memory 604. The IMS node(s) 600 may also include additional storage devices. Such additional storage may include removable storage 606 and/or non-removable storage 608.
The IMS node(s) 600 may further include input devices 610 (e.g., a touch screen, keypad, keyboard, mouse, pointer, microphone, etc.) and output devices 612 (e.g., a display, printer, speaker, etc.) communicatively coupled to the processor(s) 602 and the computer-readable memory 604. The IMS node(s) 600 may further include communications interface(s) 614 that allow the IMS node(s) 600 to communicate with other computing devices 616 (e.g., other nodes, a UE(s), etc.) such as via a network. The communications interface(s) 614 may facilitate transmitting and receiving wired and/or wireless signals over any suitable communications/data technology, standard, or protocol, as described herein.
In various embodiments, the computer-readable memory 604 comprises non-transitory computer-readable memory 604 that generally includes both volatile memory and non-volatile memory (e.g., random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EEPROM), Flash Memory, miniature hard drive, memory card, optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium). The computer-readable memory 604 may also be described as computer storage media and may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. Computer-readable memory 604, removable storage 606 and non-removable storage 608 are all examples of non-transitory computer-readable storage media. Computer-readable storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, compact disc read-only memory (CD-ROM), digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the IMS node(s) 600. Any such computer-readable storage media may be part of the IMS node(s) 600.
The memory 604 can include logic 618 (i.e., computer-executable instructions that, when executed, by the processor(s) 602, perform the various acts and/or processes disclosed herein) to implement an AS-triggered, HSS-based P-CSCF restoration procedure, according to various embodiments. For example, the logic 618 is configured to carry out the process 300, 400, and/or 500, as described herein. The memory 604 can further be used to store data 620, which may be used to implement an AS-triggered, HSS-based P-CSCF restoration procedure, as described herein. In one example, the data 620 may include a predefined list of one or more error codes (e.g., 500—Internal Server Error, 503—Service Unavailable, etc.) associated with a P-CSCF restoration procedure.
The environment and individual elements described herein may of course include many other logical, programmatic, and physical components, of which those shown in the accompanying figures are merely examples that are related to the discussion herein.
The various techniques described herein are assumed in the given examples to be implemented in the general context of computer-executable instructions or software, such as program modules, that are stored in computer-readable storage and executed by the processor(s) of one or more computers or other devices such as those illustrated in the figures. Generally, program modules include routines, programs, objects, components, data structures, etc., and define operating logic for performing particular tasks or implement particular abstract data types.
Other architectures may be used to implement the described functionality, and are intended to be within the scope of this disclosure. Furthermore, although specific distributions of responsibilities are defined above for purposes of discussion, the various functions and responsibilities might be distributed and divided in different ways, depending on circumstances.
Similarly, software may be stored and distributed in various ways and using different means, and the particular software storage and execution configurations described above may be varied in many different ways. Thus, software implementing the techniques described above may be distributed on various types of computer-readable media, not limited to the forms of memory that are specifically described.