WO2009013585A2 - System and method for managing application server responses in ip multimedia subsystem - Google Patents

System and method for managing application server responses in ip multimedia subsystem Download PDF

Info

Publication number
WO2009013585A2
WO2009013585A2 PCT/IB2008/001864 IB2008001864W WO2009013585A2 WO 2009013585 A2 WO2009013585 A2 WO 2009013585A2 IB 2008001864 W IB2008001864 W IB 2008001864W WO 2009013585 A2 WO2009013585 A2 WO 2009013585A2
Authority
WO
WIPO (PCT)
Prior art keywords
response
handling
code
user profile
error
Prior art date
Application number
PCT/IB2008/001864
Other languages
French (fr)
Other versions
WO2009013585A3 (en
Inventor
Todd Pressley
Sean Kendall Schneyer
Original Assignee
Telefonaktiebolaget L M Ericsson (Publ)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget L M Ericsson (Publ) filed Critical Telefonaktiebolaget L M Ericsson (Publ)
Priority to CN200880107999.2A priority Critical patent/CN101803345A/en
Priority to EP08776365A priority patent/EP2174479B8/en
Publication of WO2009013585A2 publication Critical patent/WO2009013585A2/en
Publication of WO2009013585A3 publication Critical patent/WO2009013585A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4588Network directories; Name-to-address mapping containing mobile subscriber information, e.g. home subscriber server [HSS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1016IP multimedia subsystem [IMS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1063Application servers providing network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment

Definitions

  • This invention relates to Internet Protocol Multimedia Subsystem (IMS) and more particularly to enhanced response handling on IMS networks.
  • IMS Internet Protocol Multimedia Subsystem
  • the IP Multimedia Subsystem merges telephony and Internet technology by providing an all-IP based architecture for the telecommunications industry.
  • the IMS is based on the Session Initiation Protocol (SIP) and makes heavy use of the protocols defined within the Internet Engineering Task Force (IETF).
  • SIP Session Initiation Protocol
  • IETF Internet Engineering Task Force
  • the system offers a network of servers and databases that assist a user agent with the task of establishing and managing sessions. IMS uses the term sessions because the connections between users are no longer limited to voice services (ie. a phone call). Sessions may be voice, video, text, or other services connecting two or more user agents together.
  • a typical IMS architecture 10 includes the User Equipment (UE) 11 , several Call Session Control Functions (CSCF) shown collectively at 12, Home Subscriber Server (HSS) 13 and one or more Application Servers 14.
  • the UE 11 is a device that contains the Session Initiation Protocol (SIP) User Agent (UA) and is able to initiate or terminate sessions.
  • the user device may be a wireless phone, computer, personal digital assistant, web enabled phone, or any suitable communications device.
  • the CSCFs 12 are responsible for managing the sessions including security and interconnect. There are three types of CSCFs.
  • the Proxy (P) CSCF 15 sits at the edge of the network and is the entry point for the UE 11 into the IMS core.
  • the Interrogating (I) CSCF 16 serves as the entry point into the network for peering networks and also acts as the lookup function for finding the appropriate serving node for a subscriber.
  • the Serving (S) CSCF 17 is responsible for authenticating the UE 11 and managing ongoing sessions for the UE 11 including invocation of applications.
  • the S- CSCF 17 is shown featuring a processor 22 working in conjunction with a memory 23.
  • the other CSCFs will have equivalent features which are omitted for clarity.
  • the HSS 13 stores the relevant user data including authentication information and service data in at least one database 19.
  • initial Filter Criteria iFC
  • the S-CSCF 17 communicates with the HSS 13 across a Cx interface
  • the S-CSCF 17 again communicates with the HSS 13, this time to retrieve the user profile.
  • the user profile specifies the services that a user has subscribed to and which application servers are to be invoked for those services.
  • the Application Servers 14 are invoked based on the iFCs that are stored in the user profile.
  • the S-CSCF will pass signaling onto an Application Server 14 across an IMS Service Control (ISC) interface 20 if the criteria defined in the iFC are met.
  • ISC IMS Service Control
  • the Application Server 14 can now take part in the session and provide additional capabilities. This may include familiar features such as Call Forwarding or newly defined services such as Push-to-Talk over Cellular (PoC). It is possible to invoke multiple application servers as part of the same session.
  • a UE 11 To gain access to the IMS network 10, a UE 11 is required to register which authenticates the user with the network, setting up a security association. After a UE 11 has registered, it can then initiate a session. Whilst such a registration process is typical of the prior art, the registration process is not essential to the present invention. The present invention should be considered independent of the registration process, and may take into account any changes to the registration process, as defined by the 3GPP specification, as may periodically occur.
  • the iFC defines the information related to the
  • Application Server Within the Application Server definition (name-'tApplicationServer") is the Default Handling. As defined in 3GPP TS
  • an expanded range of response codes are given specific handling at the S-CSCF from interactions with Application Servers.
  • the invention also allows for greater granularity in the handling of these response codes by allowing the behavior to vary per response code, rather than using a single "default handling”.
  • the handling is defined as part of the initial Filter Criteria (iFC) stored in the user profile on the HSS.
  • an Internet Protocol Multimedia Subsystem comprising at least one Home Subscriber Server; wherein the at least one Home Subscriber Server stores at least one user profile defining at least one error code; and at least one error handling associated with said at least one error code.
  • IMS Internet Protocol Multimedia Subsystem
  • a method of managing application server responses in an Internet Protocol Multimedia Subsystem comprising receiving a user profile from a home subscriber server; sending a request to an application server; receiving a response to said request, said response identifying a response code; comparing the received response code with one or more response codes defined in said user profile; determining response handling instructions associated with a defined response code matching said received response code; and performing said response handling instructions.
  • Subsystem comprising at least one Call Session Control Function (CSCF) and at least one application server, a computer readable medium comprising instructions executable in at least one Call Session Control Function (CSCF) for receiving a response to a request to said at least one application server; processing said response to determine a response code; determining whether said response code corresponds to an error code; determining whether the error code is a defined error code; determining response handling instructions associated with said error code; and performing said response handling instructions.
  • IMS Call Session Control Function
  • Figure 1 represents an schematic drawing of an IMS network
  • Figures 2 and 3 represent flow diagrams for a UE registration on the network of Figure 1 ;
  • Figure 4 and 5 represent flow diagrams for a session initiation of the UE
  • Figure 6 represents a flow diagram for response handling
  • Figures 7 and 8 represent a call flow procedure for response handling with an extended handling range; and Figure 9 represents an electronic device for providing enhanced response handling.
  • FIG. 2 shows a UE registration with the network in accordance with the prior art and includes a successful invocation of an application server based on the iFC in the user profile.
  • Figure 3 shows the corresponding flow chart 100.
  • the UE 11 sends a REGISTER request to the P-CSCF 15 to initiate the registration process.
  • the P-CSCF 15 forwards the REGISTER request to the I-CSCF 16.
  • the I-CSCF 16 queries the HSS 13 with a User Authorization Request (UAR) to determine the S-CSCF 17 that will service this UE 11 (step 103).
  • the HSS 13 responds to the I-CSCF 16 with a User Authorization Answer (UAA) including the information needed to determine the S-CSCF 17 that will service this UE 11 (step 104).
  • UAR User Authorization Request
  • UAA User Authorization Answer
  • the S-CSCF 17 queries the HSS 13 with a Multimedia Authorization Request (MAR) to retrieve the authentication information for this UE 11 (step 106).
  • the HSS 13 responds with a Multimedia Authorization Answer (MAA) including the authentication information for this UE 11 (step 107).
  • the S-CSCF 17 sends a 401 response back to the I-CSCF 16 to reject the REGISTER request but includes authentication vectors so that the UE 11 can authenticate (step 108).
  • the I-CSCF forwards the 401 response to the P-CSCF 15, which forwards the 401 response to the UE 11 (step 110).
  • the UE 11 uses the authentication information received in the 401 to continue the registration process by sending a REGISTER request to the P-CSCF 15 (step 111).
  • the P-CSCF 15 forwards the REGISTER request to the I-CSCF 16 which queries the HSS 13 with a UAR to determine the S-CSCF 17 that will service this UE 11 (step 113).
  • the HSS 13 responds with a UAA to the I-CSCF 16 with the information needed to determine the S- CSCF 17 that will service this UE 11 (step 114).
  • the I-CSCF 16 forwards the REGISTER request to the appropriate S-CSCF 17 (step 115).
  • the S-CSCF 17 verifies the authentication information from the UE 11 and notifies the HSS 13, using a Server Assignment Request (SAR) that it will be servicing this UE 11 (step 116). At step 117, the HSS 13 acknowledges the assignment with a Serving Assignment Answer (SAA) and provides the User Profile.
  • SAR Server Assignment Request
  • SAA Serving Assignment Answer
  • the S-CSCF 17 sends a 200 OK response back to the UE via the I-CSCF 16 (step 118).
  • the I-CSCF 16 forwards the 200 OK response to the P-CSCF 15 (step 119).
  • the P- CSCF 15 forwards the 200 OK response to the UE 11 (step 120).
  • the S- CSCF 17 Based on initial Filter Criteria (iFC) for. this user retrieved from the user profile, the S- CSCF 17 initiates a 3 rd Party Registration request towards the Application Server 14 (step 121).
  • the Application Server 14 sends a 200 OK response back to the S-CSCF 17 (step 122).
  • a UE 11 After a UE 11 has registered, it can then initiate a session.
  • a session initiation is described with reference to Figure 4 and the flow chart 200 of Figure 5.
  • UE-A 11 sends an INVITE request addressed to UE-B to the P-CSCF 15 (step 201).
  • the P-CSCF 15 sends a 100 Trying back to UE-A 11 indicating that the INVITE request is being processed (step 202).
  • the P-CSCF 15 sends the INVITE request on to the S-CSCF 17 (step 203).
  • the S-CSCF 17 sends a 100 Trying back to the P-CSCF 15 indicating that the INVITE request is being processed (step 204).
  • the S-CSCF 17 sends the INVITE request to the Application Server 14 (step 205).
  • the Application Server 14 sends a 100 Trying back to the S-CSCF 17 indicating that the INVITE request is being processed (step 206).
  • the Application Server 14 sends the INVITE request back to the S-CSCF 17 (possibly making changes to the message if it is acting as a Back-to-back User Agent (B2B UA)) (step 207).
  • B2B UA Back-to-back User Agent
  • the S-CSCF 17 sends a 100 Trying back to the Application Server 14 indicating that the INVITE request is being processed (step 208).
  • the S-CSCF 17 sends the INVITE request on for terminating processing (step 209)(the details of the terminating processing, well known in the art, have been omitted for the sake of clarity).
  • the terminating side 18 sends a 100 Trying back to the S-CSCF 17 indicating that the INVITE request is being processed (step 210).
  • the terminating side 18 sends a 200 OK to the S-CSCF 17 which sends the 200 OK to the Application Server (step 212).
  • the Application Server 14 sends the 200 OK back to the S-CSCF 17 (step 213).
  • the S-CSCF 17 sends the 200 OK to the P-CSCF 15 (step 214) which sends the 200 OK to UE- A 11 (step 215).
  • the above described sequence of messages represented a success session setup with 200 OK responses.
  • the S-CSCF must decide how to proceed with the session.
  • the information needed to decide on the handling is included as part of the iFC as defined in the user profile in accordance with the "DefaultHandling" element of the "tApplicationServer” type in the schema described above.
  • the XML schema for the user profile is updated to allow storage and transport of the extra information. This information is then passed to the S- CSCF over the Cx interface (interface between S-CSCF and HSS as defined in
  • the schema is modified to define a range of response codes to assign a response handling to.
  • Regular Expressions (regex) are used to determine the response codes to assign a handling to. It will be apparent to the skilled addressee that other options are available that are within the scope of the invention and the specific examples provided below should be considered as illustrative and not restrictive.
  • the XML schema for the user profile transferred from the HSS over the Cx interface is modified.
  • the affected sections of the XML schema are reproduced herein and will be described in detail below:
  • tApplicationServerExtension This new type is used instead of "tExtension”. Defining this new type allows for enhancements to be made to the schema in a way that is backwards compatible with the prior art schema.
  • ExtendedHandlingRange This element is of type "tExtendedHandlingRange" (which is also a new type). This element is a complex type which contains the range and handling information.
  • Respons ⁇ Start This element of type "tResponseCode” defines the start of the response code range that is to be defined.
  • ResponseEnd This element of type “tResponseCode” defines the end of the response code range that is to be defined. This element is optional. If it is absent, then only a single code will be defined for handling by this instance.
  • ExtendedHandling This element defines the handling that is to be applied to any response code that falls within the range defined. This element reuses the existing "tDefaultHandling" type of the prior art so that
  • SESSION_CONTINUED and SESSIONJ ⁇ RMINATED options are also available for range based response code handling.
  • Extension element is included. This element makes use of the existing "tExtension” type and follows the convention used elsewhere in the schema.
  • the XML schema for the user profile is updated as used by the HSS over the Cx interface.
  • the affected sections of the XML schema for the user profile are as follows, details of which are described in below:
  • Extension that is used in the prior art schema. Defining this new type allows for enhancements to be made to the schema in a way that is backwards compatible with the prior art scheme.
  • ⁇ xs:complexType name "tApplicationServerExtension”>: This begins the definition of a "tApplicationServerExtension” type.
  • This type is a sequence which contains two elements. By using a sequence it is possible to allow this type to also be extensible in the future. The elements of the sequence are as follows : ExtendedHandlingRegex: This element is of type
  • ResponseRegex This element is of type "tString" and defines the regular expression to be used for matching of the response code. This manner of matching is similar to that used in other aspects of the iFC, such as "RequestURI”.
  • ExtendedHandling This element defines the handling that is to be applied to any response code that falls within the range defined. This element reuses the existing "tDefaultHandling" type of the prior art schema so that SESSION_CONTINUED and SESSIONJTERMINATED options are also available for range based response code handling. Extension: In order to make this new type extensible for future needs, the "Extension” element is included. This element makes use of the existing "tExtension” type and follows the convention used elsewhere in the schema.
  • the processor 22 of the S-CSCF 17 receives the user profile from the HSS 13 over the Cx 21 interface during the registration process, for example as shown in step 117 in Figures 2 and 3 discussed above.
  • the additional information needed by the S-CSCF to make decisions for specific response codes is included.
  • Figure 6 a shows a decision tree 600 used by the processor 22 of the S- CSCF 17 for processing response codes from the Application Server 14. This processing begins in the processor 22 after the processor 22 has forwarded a request to an Application Server 14 based on the iFC in the user profile.
  • the user profile may be received from the HSS 13 and temporarily stored in the memory 23.
  • the processor 22 would start these processing instructions after step 121 of the registration flow discussed above with reference to Figures 2 and 3, or after step 205 of the session initiation procedure discussed above with reference to Figures 4 and 5.
  • the processor 22 receives a response and processes the response code (step 602). If the response code is any integer less than 200, then the processor 22 returns to waiting for a response from the Application Server 14. If the response code is between 200 and 299 (step 606), then the processor considers that a successful response has been received and so proceeds to the success response handling (604) and then stops (step 605).
  • Response codes greater than 299 will typically indicate some form of error.
  • a sample error 607, "Application Server could not be reached" is shown. Such an error code may have a response code and an associated response handling defined in the user profile.
  • the processor 22 of the S-CSCF 17 determines if the response code is a defined error code, for example by retrieving the user profile from the memory 23 and comparing the received response code with the error codes provided in the user profile. If the "code range” method is used, then the processor 22 of the S-CSCF 17 will determine if the response code falls within one of the defined error code ranges. If the "regular expression” method is used, then the processor 22 of the S-CSCF 17 will determine if the response code matches one of the defined regular expressions. If there is a match, using either of these methods, then the S-CSCF will perform the handling (step 610) as specified in the "Extended Handling" element of the user profile, retrieved from memory 23, for that error code.
  • the processor 22 of the S-CSCF 17 will perform the default handling (step 609) as specified in the "DefaultHandling" element of the user profile.
  • step 611 After response handling, the process is complete (step 611).
  • Figure 9 shows an electronic device capable of performing the method described with reference to Figure 6.
  • the device 90 includes a processor 91 communicably coupled to a memory 92. Operating in conjunction with the memory, the processor 91 is capable of executing instructions to receive a response to a request to an application server 901 , process the response to determine a response code 902, determine whether the response code corresponds to an error code 903, determine whether the error code is a defined error code 904, determine response handling instructions associated with the error code 905; and perform the response handling instructions 906.
  • the electronic device 90 can also comprise any number of additional components such as a graphics card, a transceiver, a power supply, and the like. In addition, the device 90 may communicate through wired or wireless means.
  • the user profile has been defined in 3GPP using XML to allow for extensibility that would allow for backwards compatibility. The embodiments described herein take advantage of that extensibility and retain backwards compatibility.
  • the user profile stored on the HSS will not contain the "Extension” defined by the "tApplicationServerExtension” type. Therefore, the additional information needed by the S-CSCF to perform enhanced response code handling will not be present. However, the "DefaultHandling" element will still be present in the user profile and this can be acted upon by the S-CSCF 17. Having an S-CSCF that already supports this invention will make it easier to include the feature later when the HSS does gain support.
  • the user profile stored on the HSS 13 will contain the "Extension” defined by the "tApplicationServerExtension” type. This information will be passed to the S-CSCF 17 over the Cx interface when the user profile is transferred during the registration process. Since the S-CSCF does not recognize this information and because it was defined as an extension in the original schema, the S-CSCF will simply ignore this extra information. In this case, the S-CSCF will simply use the "DefaultHandling" element that will still be present in the user profile. Once the S-CSCF 17 is upgraded to use this additional information it will already be available within the user profile on the HSS 13.
  • the user is identified by the SIP
  • the ⁇ ApplicationServer> type defines the error handling for the Application Server AS1@homedomain.com.
  • the Default Handling is defined as follows: ⁇ DefaultHandling>1 ⁇ /DefaultHandling>. This definition corresponds to SESSION_TERMINATED. In other words, the default handling is to terminate the session if an error occurs based on this trigger.
  • the profile also defines an Extended Handling Range as follows : ⁇ ExtendedHandlingRang ⁇ >
  • the user UE-A 11 sends an INVITE request addressed to UE-B to the P-CSCF 15.
  • the P-CSCF sends a 100 Trying back to UE-A 11 indicating that the INVITE request is being processed (step 802).
  • the P-CSCF 15 sends the INVITE request on to the S-CSCF 17 (step 803) which responds with a 100 Trying back to the P-CSCF 15 (step 804) indicating that the INVITE request is being processed.
  • the S-CSCF 17 sends the INVITE request to App Server A 14a (step 805).
  • App Server A 14a sends a 486 Busy Here response back to the S-CSCF 17 indicating that it is not able to process the request because of a busy condition (step 806).
  • the processor of the S-CSCF 17 evaluates the additional checks offered by this invention (step 807).
  • a 486 response shall use SESSION_CONTINUED. Therefore, the S-CSCF 17 will continue with iFC evaluation.
  • the S-CSCF forwards the INVITE request to App Server B 14b (step 808).
  • App Server B sends a 100 Trying back to the S-CSCF 17 indicating that the INVITE request is being processed (809).
  • the App Server B 14b sends the INVITE request back to the S-CSCF 17 (possibly making changes to the message if it is acting as a Back- to-Back User Agent (B2B UA)) (step 810).
  • the S-CSCF 17 sends a 100 Trying back to the App Server B indicating that the INVITE request is being processed (step 811).
  • the S-CSCF 17 sends the INVITE request on for terminating processing (the details of the terminating processing have been omitted for simplicity sake).
  • the terminating side sends a 100 Trying back to the S-CSCF 17 indicating that the INVITE request is being processed (step 813).
  • the terminating side sends a 200 OK to the S-CSCF 17 which then sends the 200 OK to App Server B 14b (step 815).
  • App Server B sends the INVITE request back to the S-CSCF 17 (possibly making changes to the message if it is acting as a Back- to-Back User Agent (B2B
  • Step 807 of the call flow the S-CSCF uses the ⁇ ExtendedHandlingRange> additions to provide specific handling for the 486 Busy Here response. Without this enhancement, the S-CSCF would have used the ⁇ DefaultHandling> procedures instead and would have been forced to terminate the session.
  • these capabilities may be performed in the current manner or in a distributed manner and on, or via, any device able to provide and/or receive information.
  • various modules or blocks may be repositioned without departing from the scope of the current invention.
  • a greater or lesser number of modules and connections can be utilized with the present invention in order to accomplish the present invention, to provide additional known features to the present invention, and/or to make the present invention more efficient.
  • the information sent between various modules can be sent between the modules via at least one of a data network, the Internet, an Internet Protocol network, a wireless source, and a wired source and via a plurality of protocols.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Communication Control (AREA)
  • Telephonic Communication Services (AREA)

Abstract

In an Internet Protocol Multimedia Subsystem (IMS), a user profile is provided with an extended schema that provides one or more error code definitions and associated error handling instructions. Response codes received in response to requests to an application server are processed to determine if a matching response code is defined in the user profile. If a match is found, the associated response handling instructions are performed. If no match is found, a default response handling is performed.

Description

SYSTEM AND METHOD FOR MANAGING APPLICATION SERVER RESPONSES IN IP MULTIMEDIA SUBSYSTEM
TECHNICAL FIELD This invention relates to Internet Protocol Multimedia Subsystem (IMS) and more particularly to enhanced response handling on IMS networks.
BACKGROUND
The IP Multimedia Subsystem (IMS), as defined by 3GPP, merges telephony and Internet technology by providing an all-IP based architecture for the telecommunications industry. The IMS is based on the Session Initiation Protocol (SIP) and makes heavy use of the protocols defined within the Internet Engineering Task Force (IETF). The system offers a network of servers and databases that assist a user agent with the task of establishing and managing sessions. IMS uses the term sessions because the connections between users are no longer limited to voice services (ie. a phone call). Sessions may be voice, video, text, or other services connecting two or more user agents together.
As shown in Figure 1 , a typical IMS architecture 10 includes the User Equipment (UE) 11 , several Call Session Control Functions (CSCF) shown collectively at 12, Home Subscriber Server (HSS) 13 and one or more Application Servers 14. The UE 11 is a device that contains the Session Initiation Protocol (SIP) User Agent (UA) and is able to initiate or terminate sessions. For example, the user device may be a wireless phone, computer, personal digital assistant, web enabled phone, or any suitable communications device.
The CSCFs 12 are responsible for managing the sessions including security and interconnect. There are three types of CSCFs. The Proxy (P) CSCF 15 sits at the edge of the network and is the entry point for the UE 11 into the IMS core. The Interrogating (I) CSCF 16 serves as the entry point into the network for peering networks and also acts as the lookup function for finding the appropriate serving node for a subscriber. The Serving (S) CSCF 17 is responsible for authenticating the UE 11 and managing ongoing sessions for the UE 11 including invocation of applications. By way of example, the S- CSCF 17 is shown featuring a processor 22 working in conjunction with a memory 23. The other CSCFs will have equivalent features which are omitted for clarity.
The HSS 13 stores the relevant user data including authentication information and service data in at least one database 19. As part of the user profile, initial Filter Criteria (iFC) are defined to indicate which application servers are to be invoked based on information in the signaling plane. The S-CSCF 17 communicates with the HSS 13 across a Cx interface
21 in order to retrieve the UE authentication information. After the user has been authenticated, the S-CSCF 17 again communicates with the HSS 13, this time to retrieve the user profile. The user profile specifies the services that a user has subscribed to and which application servers are to be invoked for those services.
The Application Servers 14 are invoked based on the iFCs that are stored in the user profile. The S-CSCF will pass signaling onto an Application Server 14 across an IMS Service Control (ISC) interface 20 if the criteria defined in the iFC are met. Once invoked, the Application Server 14 can now take part in the session and provide additional capabilities. This may include familiar features such as Call Forwarding or newly defined services such as Push-to-Talk over Cellular (PoC). It is possible to invoke multiple application servers as part of the same session.
To gain access to the IMS network 10, a UE 11 is required to register which authenticates the user with the network, setting up a security association. After a UE 11 has registered, it can then initiate a session. Whilst such a registration process is typical of the prior art, the registration process is not essential to the present invention. The present invention should be considered independent of the registration process, and may take into account any changes to the registration process, as defined by the 3GPP specification, as may periodically occur.
The current schema defined by 3GPP TS 29.228 (Version 7.6.0) is partly replicated as follows :
<xs:complexType name="tlnitialFilterCriteria"> <xs:sequence>
<xs:element name="Priority" type="tPriority"/> <xs:element name="TriggerPoint" type="tTrigger" minOccurs="07> <xs:element name="ApplicationServer" type="tApplicationServer"/> <xs:element name="ProfilePartlndicator" type="tProfilePartlndicator" minOccurs="07>
<xs:element name="Extension" type="tExtension" minOccurs="07> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence> </xs:complexType>
<xs:complexType name="tApplicationServer"> <xs:sequence>
<xs:element name="ServerName" type="tSIP_URL7> <xs:element name="DefaultHandling" type="tDefaultHandling" minOccurs="07>
<xs:element name="Servicelnfo" type="tServicelnfo" minOccurs="07>
<xs:element name="Extension" type="tExtension" minOccurs="07> <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence> </xs:compIexType>
As part of the user profile, the iFC defines the information related to the
Application Server. Within the Application Server definition (name-'tApplicationServer") is the Default Handling. As defined in 3GPP TS
29.228 (Version 7.6.0), the default handling only applies to a 408 (Request Timeout) response or a 5xx response from the Application Server. Other error codes are not handled. Additionally, the prior art only allows a default handling to be defined for all of these error responses, it does not provide for different handling per error response.
SUMMARY
It is an object of the present invention to provide a system, method and computer readable medium that handles additional response codes and allows the flexibility to determine the handling on a per response basis. In some embodiments, an expanded range of response codes are given specific handling at the S-CSCF from interactions with Application Servers. The invention also allows for greater granularity in the handling of these response codes by allowing the behavior to vary per response code, rather than using a single "default handling". The handling is defined as part of the initial Filter Criteria (iFC) stored in the user profile on the HSS.
In one embodiment, there is provided an Internet Protocol Multimedia Subsystem (IMS) comprising at least one Home Subscriber Server; wherein the at least one Home Subscriber Server stores at least one user profile defining at least one error code; and at least one error handling associated with said at least one error code.
In one embodiment, there is provided a method of managing application server responses in an Internet Protocol Multimedia Subsystem, the method comprising receiving a user profile from a home subscriber server; sending a request to an application server; receiving a response to said request, said response identifying a response code; comparing the received response code with one or more response codes defined in said user profile; determining response handling instructions associated with a defined response code matching said received response code; and performing said response handling instructions. In one embodiment, there is provided in an Internet Protocol Multimedia
Subsystem (IMS) comprising at least one Call Session Control Function (CSCF) and at least one application server, a computer readable medium comprising instructions executable in at least one Call Session Control Function (CSCF) for receiving a response to a request to said at least one application server; processing said response to determine a response code; determining whether said response code corresponds to an error code; determining whether the error code is a defined error code; determining response handling instructions associated with said error code; and performing said response handling instructions.
BRIEF DESCRIPTION OF THE DRAWINGS The invention will now be described by way of example only with reference to preferred embodiments and to the accompanying drawings in which :
Figure 1 represents an schematic drawing of an IMS network;
Figures 2 and 3 represent flow diagrams for a UE registration on the network of Figure 1 ;
Figure 4 and 5 represent flow diagrams for a session initiation of the UE;
Figure 6 represents a flow diagram for response handling;
Figures 7 and 8 represent a call flow procedure for response handling with an extended handling range; and Figure 9 represents an electronic device for providing enhanced response handling.
DETAILED DESCRIPTION
Figure 2 shows a UE registration with the network in accordance with the prior art and includes a successful invocation of an application server based on the iFC in the user profile. Figure 3 shows the corresponding flow chart 100. At step 101 , the UE 11 sends a REGISTER request to the P-CSCF 15 to initiate the registration process. At step 102, the P-CSCF 15 forwards the REGISTER request to the I-CSCF 16. The I-CSCF 16 queries the HSS 13 with a User Authorization Request (UAR) to determine the S-CSCF 17 that will service this UE 11 (step 103). The HSS 13 responds to the I-CSCF 16 with a User Authorization Answer (UAA) including the information needed to determine the S-CSCF 17 that will service this UE 11 (step 104). The I-CSCF
16 forwards the REGISTER request to the appropriate S-CSCF 17 (step 105). The S-CSCF (17) queries the HSS 13 with a Multimedia Authorization Request (MAR) to retrieve the authentication information for this UE 11 (step 106). The HSS 13 responds with a Multimedia Authorization Answer (MAA) including the authentication information for this UE 11 (step 107). The S-CSCF 17 sends a 401 response back to the I-CSCF 16 to reject the REGISTER request but includes authentication vectors so that the UE 11 can authenticate (step 108). At step 109, the I-CSCF forwards the 401 response to the P-CSCF 15, which forwards the 401 response to the UE 11 (step 110).
The UE 11 uses the authentication information received in the 401 to continue the registration process by sending a REGISTER request to the P-CSCF 15 (step 111). At step 112, the P-CSCF 15 forwards the REGISTER request to the I-CSCF 16 which queries the HSS 13 with a UAR to determine the S-CSCF 17 that will service this UE 11 (step 113). The HSS 13 responds with a UAA to the I-CSCF 16 with the information needed to determine the S- CSCF 17 that will service this UE 11 (step 114). The I-CSCF 16 forwards the REGISTER request to the appropriate S-CSCF 17 (step 115). The S-CSCF 17 verifies the authentication information from the UE 11 and notifies the HSS 13, using a Server Assignment Request (SAR) that it will be servicing this UE 11 (step 116). At step 117, the HSS 13 acknowledges the assignment with a Serving Assignment Answer (SAA) and provides the User Profile. The S-CSCF
17 sends a 200 OK response back to the UE via the I-CSCF 16 (step 118). The I-CSCF 16 forwards the 200 OK response to the P-CSCF 15 (step 119). The P- CSCF 15 forwards the 200 OK response to the UE 11 (step 120). Based on initial Filter Criteria (iFC) for. this user retrieved from the user profile, the S- CSCF 17 initiates a 3rd Party Registration request towards the Application Server 14 (step 121). The Application Server 14 sends a 200 OK response back to the S-CSCF 17 (step 122). After a UE 11 has registered, it can then initiate a session. A session initiation is described with reference to Figure 4 and the flow chart 200 of Figure 5. UE-A 11 sends an INVITE request addressed to UE-B to the P-CSCF 15 (step 201). In response, the P-CSCF 15 sends a 100 Trying back to UE-A 11 indicating that the INVITE request is being processed (step 202). The P-CSCF 15 sends the INVITE request on to the S-CSCF 17 (step 203). The S-CSCF 17 sends a 100 Trying back to the P-CSCF 15 indicating that the INVITE request is being processed (step 204). Based on the iFC for UE-A, the S-CSCF 17 sends the INVITE request to the Application Server 14 (step 205). The Application Server 14 sends a 100 Trying back to the S-CSCF 17 indicating that the INVITE request is being processed (step 206). The Application Server 14 sends the INVITE request back to the S-CSCF 17 (possibly making changes to the message if it is acting as a Back-to-back User Agent (B2B UA)) (step 207). The S-CSCF 17 sends a 100 Trying back to the Application Server 14 indicating that the INVITE request is being processed (step 208). The S-CSCF 17 sends the INVITE request on for terminating processing (step 209)(the details of the terminating processing, well known in the art, have been omitted for the sake of clarity). The terminating side 18 sends a 100 Trying back to the S-CSCF 17 indicating that the INVITE request is being processed (step 210). At step 211 , the terminating side 18 sends a 200 OK to the S-CSCF 17 which sends the 200 OK to the Application Server (step 212). The Application Server 14 sends the 200 OK back to the S-CSCF 17 (step 213). The S-CSCF 17 sends the 200 OK to the P-CSCF 15 (step 214) which sends the 200 OK to UE- A 11 (step 215).
The above described sequence of messages represented a success session setup with 200 OK responses. In the case of responses other than 200 OK, the S-CSCF must decide how to proceed with the session. The information needed to decide on the handling is included as part of the iFC as defined in the user profile in accordance with the "DefaultHandling" element of the "tApplicationServer" type in the schema described above.
In an embodiment of the present invention, changes are made to the HSS and S-CSCF to facilitate enhanced handling of responses from
Application Servers which are triggered as part of the iFC. HSS Enhancements
To support the more granular handling of responses from Application
Servers, the XML schema for the user profile is updated to allow storage and transport of the extra information. This information is then passed to the S- CSCF over the Cx interface (interface between S-CSCF and HSS as defined in
3GPP).
As can been seen from the schema discussed above, there is an "Extension" element within the "tApplicationServer" type. By using this extension, additional elements can be introduced that allow additional response handling to be defined.
In one embodiment, the schema is modified to define a range of response codes to assign a response handling to. In an alternative embodiment, Regular Expressions (regex) are used to determine the response codes to assign a handling to. It will be apparent to the skilled addressee that other options are available that are within the scope of the invention and the specific examples provided below should be considered as illustrative and not restrictive.
Code Range Solution With this solution, a range of response codes is defined along with the handling for that range. There can be multiple instances of the element(s) containing the range definitions, which is what allows for the granular control of different response codes in different ways.
In accordance with an embodiment of the invention, the XML schema for the user profile transferred from the HSS over the Cx interface is modified. The affected sections of the XML schema are reproduced herein and will be described in detail below:
<xs:complexType name="tApplicationServer"> <xs:sequence>
<xs:element name="ServerName" type="tSIP_URL7> <xs:element name="DefaultHandling" type="tDefaultHandling" minOccurs="07> <xs:element name="Servicelnfo" type="tServicelnfo" minOccurs="07> <xs:element name="Extension" type="tApplicationServerExtension" minOccurs="0"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence> </xs:complexType>
<xs:complexType name="tApplicationServerExtension"> <xs:sequence>
<xs:element name="ExtendedHandlingRange" type="tExtendedHandlingRange" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="Extension" type="tExtension" minOccurs="0'7>
</xs:sequence> </xs:complexType>
<xs:complexType name="tExtendedHandlingRange"> <xs:sequence>
<xs:element name="ResponseStart" type="tResponseCode'7> <xs:element name="ResponseEnd" type="tResponseCode" minOccurs="0'7>
<xs:element name="ExtendedHandling" type="tDefaultHandling"/> <xs: element name="Extension" type="tExtension" minOccurs="0"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxθccurs="unbounded'7>
</xs:sequence> </xs:complexType>
<xs:simpleType name="tResponseCode"> <xs: restriction base="xs:int"> <xs:minlnclusive value="300"/> <xs:maxlnclusive value="999'7> </xs:restriction> </xs:simpleType>
tApplicationServerExtension: This new type is used instead of "tExtension". Defining this new type allows for enhancements to be made to the schema in a way that is backwards compatible with the prior art schema.
<xs:complexType name="tApplicationServerExtension">: begins the definition of a new "tApplicationServerExtension" type. This type is a sequence which contains two elements. By using a sequence it is possible to allow this type to also be extensible in the future:
ExtendedHandlingRange: This element is of type "tExtendedHandlingRange" (which is also a new type). This element is a complex type which contains the range and handling information.
Extension: This element is added to allow the type to be extensible in the future. (This is inline with existing conventions used within the XML schema).
<xs:complexType name="tExtendedHandIingRange">: This begins the definition of a new "tExtendedHandlingRange" type. This type is a sequence used to define the range of response codes and the proper handling. The significant elements of the sequence are defined here:
ResponsβStart: This element of type "tResponseCode" defines the start of the response code range that is to be defined. ResponseEnd: This element of type "tResponseCode" defines the end of the response code range that is to be defined. This element is optional. If it is absent, then only a single code will be defined for handling by this instance.
ExtendedHandling: This element defines the handling that is to be applied to any response code that falls within the range defined. This element reuses the existing "tDefaultHandling" type of the prior art so that
SESSION_CONTINUED and SESSIONJΕRMINATED options are also available for range based response code handling.
Extension: In order to make this new type extensible for future needs, -li¬
the "Extension" element is included. This element makes use of the existing "tExtension" type and follows the convention used elsewhere in the schema.
<xs:simpleType name="tResponseCode">: This begins the definition of the new "tResponseCode" type. This type is defined as a simpleType based on an "int" and restricts the values to be between 300 and 999 inclusive. This type is used for defining the response codes to be used in the range.
The "ResponseEnd" must be greater than or equal to the "ResponseStart" element. If they are equal to each other then only the single response code will be defined for this range. No two instances of ExtendedHandlingRange (within the same
ApplicationServer) are allowed to have overlaps in their range. This would cause an ambiguity in how to handle the response code if the handling were different in the two instances. This restriction can be overcome with the use of priorities for the ranges, in a similar manner to how iFC priorities are handled.
Regular Expressions Solution
With this solution a regular expression string is used to define the matching response codes. There can be multiple instances of the element(s) defining the regular expression, which is what allows for the granular control of different response codes in different ways.
As previously mentioned, the XML schema for the user profile is updated as used by the HSS over the Cx interface. The affected sections of the XML schema for the user profile are as follows, details of which are described in below:
<xs:complexType name="tApplicationServer"> <xs:sequence>
<xs:element name="ServerName" type="tSIP_URL"/> <xs:element name="DefaultHandling" type="tDefaultHandling" minOccurs="0'7>
<xs:element name="Servicelnfo" type="tServicelnfo" minOccurs="0"/> <xs:element name="Extension" type="tApplicationServerExtension" minOccurs="07>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence> </xs:complexType>
<xs:complexType name="tApplicationServerExtension"> <xs:sequence>
<xs:element name="ExtendedHandlingRegex" type="tExtendedHandlingRegex" minOccurs="0" maxOccurs="'unbounded"/>
<xs:element name="Extension" type="tExtension" minOccurs="0"/>
</xs:sequence> </xs:complexType>
<xs:complexType name="tExtendedHandlingRegex"> <xs:sequence>
<xs:element name="ResponseRegex" type="tString" minOccurs="1"/>
<xs:element name="ExtendedHandling" type="tDefaultHandling'7> <xs:element name="Extension" type="tExtension" minOccurs="0"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence> </xs:complexType>
tApplicationServerExtension: This new type is used instead of
".Extension" that is used in the prior art schema. Defining this new type allows for enhancements to be made to the schema in a way that is backwards compatible with the prior art scheme. <xs:complexType name="tApplicationServerExtension">: This begins the definition of a "tApplicationServerExtension" type. This type is a sequence which contains two elements. By using a sequence it is possible to allow this type to also be extensible in the future. The elements of the sequence are as follows : ExtendedHandlingRegex: This element is of type
"tExtendedHandlingRegex" (which is also a new type). This element is a complex type which contains the regular expression and handling information.
Extension: This element is added to allow the "tApplicationServerExtension" type to be extensible in the future, inline with existing conventions used within the XML schema.
<xs:complexType name="tExtendedHandlingRegex">: This begins the definition of the new "tExtendedHandlingRegex" type. This type is a sequence used to define the regular expression used for response code matching and the proper handling. The significant elements of the sequence are defined here:
ResponseRegex: This element is of type "tString" and defines the regular expression to be used for matching of the response code. This manner of matching is similar to that used in other aspects of the iFC, such as "RequestURI". ExtendedHandling: This element defines the handling that is to be applied to any response code that falls within the range defined. This element reuses the existing "tDefaultHandling" type of the prior art schema so that SESSION_CONTINUED and SESSIONJTERMINATED options are also available for range based response code handling. Extension: In order to make this new type extensible for future needs, the "Extension" element is included. This element makes use of the existing "tExtension" type and follows the convention used elsewhere in the schema.
For the Regular Expressions solution, no two "ResponseRegex" expressions should cause a match of the same response code. This would cause an ambiguity in how to handle the response code if the handling were different in the two instances. This restriction may be overcome with the use of priorities for the expressions, in a similar manner to how iFC priorities are handled.
S-CSCF Enhancements
Changes to the processing instructions performed by the processor 22 required to the S-CSCF 17 are the same, on a logical level, regardless of which solution is chosen for modifying the XML Schema for the user profile used on the Cx interface.
The processor 22 of the S-CSCF 17 receives the user profile from the HSS 13 over the Cx 21 interface during the registration process, for example as shown in step 117 in Figures 2 and 3 discussed above. In accordance with the modified schema, the additional information needed by the S-CSCF to make decisions for specific response codes is included.
Figure 6 a shows a decision tree 600 used by the processor 22 of the S- CSCF 17 for processing response codes from the Application Server 14. This processing begins in the processor 22 after the processor 22 has forwarded a request to an Application Server 14 based on the iFC in the user profile. The user profile may be received from the HSS 13 and temporarily stored in the memory 23. The processor 22 would start these processing instructions after step 121 of the registration flow discussed above with reference to Figures 2 and 3, or after step 205 of the session initiation procedure discussed above with reference to Figures 4 and 5.
At step 601 , the processor 22 of the S-CSCF 17, having sent a request to the Application Server 14, waits for a response from the Application server. The processor 22 receives a response and processes the response code (step 602). If the response code is any integer less than 200, then the processor 22 returns to waiting for a response from the Application Server 14. If the response code is between 200 and 299 (step 606), then the processor considers that a successful response has been received and so proceeds to the success response handling (604) and then stops (step 605). Response codes greater than 299 will typically indicate some form of error. A sample error 607, "Application Server could not be reached" is shown. Such an error code may have a response code and an associated response handling defined in the user profile.
At step 608, the processor 22 of the S-CSCF 17 determines if the response code is a defined error code, for example by retrieving the user profile from the memory 23 and comparing the received response code with the error codes provided in the user profile. If the "code range" method is used, then the processor 22 of the S-CSCF 17 will determine if the response code falls within one of the defined error code ranges. If the "regular expression" method is used, then the processor 22 of the S-CSCF 17 will determine if the response code matches one of the defined regular expressions. If there is a match, using either of these methods, then the S-CSCF will perform the handling (step 610) as specified in the "Extended Handling" element of the user profile, retrieved from memory 23, for that error code.
If there is no match, then the processor 22 of the S-CSCF 17 will perform the default handling (step 609) as specified in the "DefaultHandling" element of the user profile.
After response handling, the process is complete (step 611).
Figure 9 shows an electronic device capable of performing the method described with reference to Figure 6. The device 90 includes a processor 91 communicably coupled to a memory 92. Operating in conjunction with the memory, the processor 91 is capable of executing instructions to receive a response to a request to an application server 901 , process the response to determine a response code 902, determine whether the response code corresponds to an error code 903, determine whether the error code is a defined error code 904, determine response handling instructions associated with the error code 905; and perform the response handling instructions 906.
The electronic device 90 can also comprise any number of additional components such as a graphics card, a transceiver, a power supply, and the like. In addition, the device 90 may communicate through wired or wireless means. The user profile has been defined in 3GPP using XML to allow for extensibility that would allow for backwards compatibility. The embodiments described herein take advantage of that extensibility and retain backwards compatibility.
In the case where the S-CSCF 17 supports enhanced response handling as described herein but the HSS does not, the user profile stored on the HSS will not contain the "Extension" defined by the "tApplicationServerExtension" type. Therefore, the additional information needed by the S-CSCF to perform enhanced response code handling will not be present. However, the "DefaultHandling" element will still be present in the user profile and this can be acted upon by the S-CSCF 17. Having an S-CSCF that already supports this invention will make it easier to include the feature later when the HSS does gain support.
In the case where the HSS 13 supports the extended user profile but the S-CSCF 17 does not yet have support, the user profile stored on the HSS 13 will contain the "Extension" defined by the "tApplicationServerExtension" type. This information will be passed to the S-CSCF 17 over the Cx interface when the user profile is transferred during the registration process. Since the S-CSCF does not recognize this information and because it was defined as an extension in the original schema, the S-CSCF will simply ignore this extra information. In this case, the S-CSCF will simply use the "DefaultHandling" element that will still be present in the user profile. Once the S-CSCF 17 is upgraded to use this additional information it will already be available within the user profile on the HSS 13.
The above described embodiments provide two examples for extending the user profile. Whilst other embodiments are possible, the most desirable embodiment will be dependent on the type of implementation to be deployed. For example, Regular Expressions are often considered expensive to implement. However, there will already be support for regular expressions on the platform due to other elements within the schema using them. Defining a range will allow for simple integer comparisons to be made. However, this solution may require a much larger number of combinations to be defined (and thus stored and transferred) to determine the handling for all of the relevant response codes.
A specific working example of an embodiment of the invention will now be described with Reference to Figure 7, the flow diagram 800 of Figure 8, and to the following user profile XML document. The example is based on the code range solution described above. The relevant parts of the user profile are as follows : <?xml version="1.0" encoding="UTF-8"?>
<IMSSubscription xmlns:xsi="http://www. w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="CxDataType_range.xsd"> <PrivatelD>IMPI1@homedomain.com</PrivatelD> <ServiceProfile> <Publicldentity>
<Barringlndication>1</Barringlndication> <ldentity> sip: I MPU 1@homedomain.com </ldentity> </Publicldentity> <lnitialFilterCriteria> <Priority>0</Priority>
<TriggerPoint>
<ConditionTypeCNF>1</ConditionTypeCNF> <SPT>
<ConditionNegated>0</ConditionNegated> <Group>0</Group>
<Method>INVITE</Method> </SPT>
</TriggerPoint> <ApplicationServer>
<ServerName>sip:AS1@homedomain.com</ServerName>
<DefaultHandling>1</DefaultHandling> <Extension>
<ExtendedHandlingRange> <ResponseStart>486</ResponseStart>
<ExtendedHandling>O</ExtendedHandling> </ExtendedHandlingRange> <Extension>
</ApplicationServer> </lnitialFilterCriteria> <lnitialFilterCriteria>
<Priority>1 </Priority> <TriggerPoint>
<ConditionTypeCNF>K/ConditionTypeCNF> <SPT> <ConditionNegated>0</ConditionNegated>
<Group>0</Group> <Method>INVITE</Method> </SPT>
</TriggerPoint> <ApplicationServer>
<ServerName>sip:AS2@homedomain.com</ServerName>
<DefaultHandling>K/DefaultHandling> </ApplicationServer> </InitialFilterCriteria>
</ServiceProfile> </IMSSubscription>
In this example, the user is identified by the SIP
IMPI1@homedomain.com. The <ApplicationServer> type defines the error handling for the Application Server AS1@homedomain.com. Within this type definition, the Default Handling is defined as follows: <DefaultHandling>1</DefaultHandling>. This definition corresponds to SESSION_TERMINATED. In other words, the default handling is to terminate the session if an error occurs based on this trigger. However, the profile also defines an Extended Handling Range as follows : <ExtendedHandlingRangθ>
<ResponseStart>486</ResponseStart> <ExtendedHandling>O</ExtendedHandling> </ExtendedHandlingRange> That is, the example adds specific handling for the 486 Busy Here SIP error code. The handling is set to SESSION_CONTINUED (<ExtendedHandling>O</ExtendedHandling>) which means that if a 486 error code is received then the filter matching should continue for the remaining filter criteria as if no error had occurred. With reference now to Figures 7 and 8, there will be described a call flow based on the example user profile in which the user identity UE-A corresponds to the identity IMPM and IMPU1 in the XML Document above, Application Server A corresponds to AS1@homedomain.com and Application Server B corresponds to AS2@homedomain.com. In this call flow, a failure occurs at the 1st application server, triggering the additional rules provided by the enhanced user profile.
At step 801, the user UE-A 11 sends an INVITE request addressed to UE-B to the P-CSCF 15. The P-CSCF sends a 100 Trying back to UE-A 11 indicating that the INVITE request is being processed (step 802). The P-CSCF 15 sends the INVITE request on to the S-CSCF 17 (step 803) which responds with a 100 Trying back to the P-CSCF 15 (step 804) indicating that the INVITE request is being processed. Based on the iFC for UE-A, the S-CSCF 17 sends the INVITE request to App Server A 14a (step 805). App Server A 14a sends a 486 Busy Here response back to the S-CSCF 17 indicating that it is not able to process the request because of a busy condition (step 806). Upon receipt of this error message, the processor of the S-CSCF 17 evaluates the additional checks offered by this invention (step 807). According to the <ExtendedHandlingRange> definition for this Application Server, a 486 response shall use SESSION_CONTINUED. Therefore, the S-CSCF 17 will continue with iFC evaluation. Based on this evaluation, the S-CSCF forwards the INVITE request to App Server B 14b (step 808). App Server B sends a 100 Trying back to the S-CSCF 17 indicating that the INVITE request is being processed (809). The App Server B 14b sends the INVITE request back to the S-CSCF 17 (possibly making changes to the message if it is acting as a Back- to-Back User Agent (B2B UA)) (step 810). The S-CSCF 17 sends a 100 Trying back to the App Server B indicating that the INVITE request is being processed (step 811). At step 812, the S-CSCF 17 sends the INVITE request on for terminating processing (the details of the terminating processing have been omitted for simplicity sake). The terminating side sends a 100 Trying back to the S-CSCF 17 indicating that the INVITE request is being processed (step 813). At step 814, the terminating side sends a 200 OK to the S-CSCF 17 which then sends the 200 OK to App Server B 14b (step 815). App Server B
14b sends the 200 OK back to the S-CSCF 17 (step 816), which forwards the
200 OK to the P-CSCF 15 (step 817) and thence on to the UE-A 11 (step 818).
The preceding example provides a use case in accordance with an embodiment of the invention. In Step 807 of the call flow, the S-CSCF uses the <ExtendedHandlingRange> additions to provide specific handling for the 486 Busy Here response. Without this enhancement, the S-CSCF would have used the <DefaultHandling> procedures instead and would have been forced to terminate the session.
The embodiments described herein have advantage over prior art systems in that the operators implementing an IMS system gain additional flexibility in how they handle responses from application servers. This added flexibility allows them to treat distinct response codes differently and thus allows them to better handle responses from an end-user perspective depending on the nature of the response. Although embodiments of the present invention have been illustrated in the accompanied drawings and described in the foregoing description, it will be understood that the invention is not limited to the embodiments disclosed, but is capable of numerous rearrangements, modifications, and substitutions without departing from the spirit of the invention as set forth and defined by the following claims. For example, the capabilities of the invention can be performed fully and/or partially by one or more of the blocks, modules, processors or memories. Also, these capabilities may be performed in the current manner or in a distributed manner and on, or via, any device able to provide and/or receive information. Further, although depicted in a particular manner, various modules or blocks may be repositioned without departing from the scope of the current invention. Still further, although depicted in a particular manner, a greater or lesser number of modules and connections can be utilized with the present invention in order to accomplish the present invention, to provide additional known features to the present invention, and/or to make the present invention more efficient. Also, the information sent between various modules can be sent between the modules via at least one of a data network, the Internet, an Internet Protocol network, a wireless source, and a wired source and via a plurality of protocols.

Claims

1. An Internet Protocol Multimedia Subsystem (IMS) comprising :- at least one Home Subscriber Server; wherein said at least one Home Subscriber Server stores at least one user profile defining :- at least one error code; and at least one error handling associated with said at least one error code.
2. The Internet Protocol Multimedia Subsystem according to claim 1 wherein said user profile further defines a default error handling.
3. The Internet Protocol Multimedia Subsystem according to claim 1 wherein said user profile defines one or more ranges of error codes and an error handling associated with each of said one or more ranges.
4. The Internet Protocol Multimedia Subsystem according to claim 1 wherein said user profile defines one or more regular expressions, each regular expression defining an error handling and at least one error code associated with said error handling.
5. The Internet Protocol Multimedia Subsystem according to claim 1 wherein said at least one error code and said at least one error handling are defined in an extended tApplicationServer type of a user profile schema.
6. The Internet Protocol Multimedia Subsystem according to claim 1 further comprising at least one application server and at least one Call Session Control Function, wherein said at least one Call Session Control Function retrieves said user profile from said Home Subscriber Server; wherein said at least one Call Session Control Function receives a response to a request to said at least one application server; wherein said Call Session Control Function processes said response to determine a response code; wherein said Call Session Control Function determines if said response code is an error code;
5 wherein if said error code matches an error code defined in said user profile, the Call Session Control Function performs the error handling associated with said matching error code.
7. The Internet Protocol Multimedia Subsystem according to claim 60 wherein if said error code does not match an error code defined in said user profile, the Call Session Control Function performs a default error handling.
8. A method of managing application server responses in an internet protocol multimedia subsystem, the method comprising : 5 receiving a user profile from a home subscriber server; sending a request to an application server; receiving a response to said request, said response identifying a response code; comparing the received response code with one or more response o codes defined in said user profile; determining response handling instructions associated with a defined response code matching said received response code; and performing said response handling instructions. 5
9. The method according to claim 8 further comprising receiving an application request from a user, determining an identity of the user from the application request, and receiving the user profile dependent on the identity of the user.
0 10. The method according to claim 8 further comprising determining default handling instructions if said received response code does not match a response code defined in said user profile.
11. The method according to claim 8 further comprising defining at least one response code, defining at least one response handling, and associating said at least one response handling with said at least one response code.
12. The method according to claim 11 further comprising defining at least one plurality of response codes and associating said plurality of response codes with said at least one response handling.
13. The method according to claim 12 wherein said at least one plurality of response codes is a range of response codes.
14. The method according to claim 12 wherein said definition includes at least one regular expression, each regular expression defining a response handling and at least one response code associated with said response handling.
15. The method according to claim 11 further comprising storing at least one response code and at least one associated response handling in at least one user profile.
16. The method according to claim 15 further wherein the at least one response code and the associated response handling are stored in an extended tApplicationServer type of a user profile schema.
17. In an Internet Protocol Multimedia Subsystem (IMS) comprising at least one Call Session Control Function (CSCF) and at least one application server, a computer readable medium comprising instructions executable in the at least one Call Session Control Function (CSCF) for :- receiving a response to a request to said at least one application server; processing said response to determine a response code; determining whether said response code corresponds to an error code; determining whether the error code is a defined error code; determining response handling instructions associated with said error code; and performing said response handling instructions.
18. The computer readable medium according to claim 17 further comprising instructions for retrieving a user profile from a memory and processing said user profile to determine whether said response code is a defined error code.
19. The computer readable medium according to claim 18 further comprising instructions for processing said user profile to determine response handling instructions for said error code.
20. The computer readable medium according to claim 18 further comprising instructions for determining that said response code is undefined, retrieving a default response handling from said user profile and performing said default response handling.
PCT/IB2008/001864 2007-07-20 2008-07-16 System and method for managing application server responses in ip multimedia subsystem WO2009013585A2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN200880107999.2A CN101803345A (en) 2007-07-20 2008-07-16 System and method for managing application server responses in IP multimedia subsystem
EP08776365A EP2174479B8 (en) 2007-07-20 2008-07-16 System and method for managing application server responses in ip multimedia subsystem

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/780,639 US20090024870A1 (en) 2007-07-20 2007-07-20 System and method for managing application server responses in ip multimedia subsystem
US11/780,639 2007-07-20

Publications (2)

Publication Number Publication Date
WO2009013585A2 true WO2009013585A2 (en) 2009-01-29
WO2009013585A3 WO2009013585A3 (en) 2009-08-06

Family

ID=40265831

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2008/001864 WO2009013585A2 (en) 2007-07-20 2008-07-16 System and method for managing application server responses in ip multimedia subsystem

Country Status (4)

Country Link
US (1) US20090024870A1 (en)
EP (1) EP2174479B8 (en)
CN (1) CN101803345A (en)
WO (1) WO2009013585A2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012076065A1 (en) * 2010-12-10 2012-06-14 Telefonaktiebolaget Lm Ericsson (Publ) Traffic routing across and between networks
US20150032791A1 (en) * 2012-02-24 2015-01-29 Telefonaktiebolaget L M Ericsson (publ) a corporation Method and application for controlling application server invocation in an ims
US9769646B2 (en) * 2015-02-26 2017-09-19 T-Mobile Usa, Inc. Realm translation in an IMS network

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050213606A1 (en) 2004-03-25 2005-09-29 Jiun-Yao Huang Method of triggering application service using response filter criteria and IP multimedia subsystem using the same
US20070005712A1 (en) 2005-06-29 2007-01-04 Nokia Corporation Service error handling in a communications network

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6334193B1 (en) * 1997-05-29 2001-12-25 Oracle Corporation Method and apparatus for implementing user-definable error handling processes
US7281166B1 (en) * 2003-05-29 2007-10-09 Sun Microsystems, Inc. User-customizable input error handling
DE102004046611A1 (en) * 2004-09-25 2006-03-30 Robert Bosch Gmbh Method for processing a computer program on a computer system
US7380171B2 (en) * 2004-12-06 2008-05-27 Microsoft Corporation Controlling software failure data reporting and responses
US7308610B2 (en) * 2004-12-10 2007-12-11 Intel Corporation Method and apparatus for handling errors in a processing system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050213606A1 (en) 2004-03-25 2005-09-29 Jiun-Yao Huang Method of triggering application service using response filter criteria and IP multimedia subsystem using the same
US20070005712A1 (en) 2005-06-29 2007-01-04 Nokia Corporation Service error handling in a communications network

Also Published As

Publication number Publication date
EP2174479B1 (en) 2012-06-20
EP2174479A2 (en) 2010-04-14
WO2009013585A3 (en) 2009-08-06
CN101803345A (en) 2010-08-11
EP2174479B8 (en) 2012-07-25
US20090024870A1 (en) 2009-01-22

Similar Documents

Publication Publication Date Title
JP5282095B2 (en) Establishing a multimedia communication session
US7870262B2 (en) Method and element for service control
RU2390970C2 (en) Registration of users in communication system
RU2426275C2 (en) Method, system and network element for processing service rendering after network element data become forbidden, or network element denial
US9479600B2 (en) Methods and apparatuses for initiating provisioning of subscriber data in a HSS of an IP multimedia subsystem network
US8918518B2 (en) Access session controller, IP multimedia subsystem and registration and session method thereof
US20080104696A1 (en) Method of processing registration message according to initial filter criteria in ims network
JP2008543135A (en) Call forwarding in IP Multimedia Subsystem (IMS)
CN102948124B (en) Method and apparatus for handling public identities in an internet protocol multimedia subsystem network
KR20150058534A (en) Transmitting authentication information
CN1753363A (en) Method of selecting right identification mode at network side
JP6328775B2 (en) Security against access to IP Multimedia Subsystem (IMS) in Web Real Time Communications (WebRTC)
EP1880556B1 (en) Method and element for service control
US20130019012A1 (en) IMS Guest Registration for Non-IMS Users
US8732321B2 (en) Control entity and method for setting up a session in a communications network, subscriber database and communications network
EP2174479B1 (en) System and method for managing application server responses in ip multimedia subsystem
US8837463B2 (en) IP multimedia subsystem (IMS) and method for routing an HTTP message via an IMS
US9019954B2 (en) Methods and apparatuses for handling public identities in an internet protocol multimedia subsystem network
US9148453B1 (en) Dynamic determination of initial filter criteria
CN106790055B (en) Registration method and device of IMS (IP multimedia subsystem)
CN101325731A (en) Method for distributing service call conversation control function, system and ascription user server
US20150319254A1 (en) Default initial filter criteria
CA2802660A1 (en) Methods and apparatuses for handling public identities in an internet protocol multimedia subsystem network
CN101296505A (en) Method and system for implementing emergency callback, user server and call control device

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200880107999.2

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08776365

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2008776365

Country of ref document: EP