The present invention relates to a method and system for proxying or relaying a message to an application server, in particular to a Session Initiation Protocol (SIP) application server in an Internet Protocol (IP) multimedia subsystem environment.
In order to achieve access independence and to maintain a smooth inter operation with wired terminals across the Internet, an IP multimedia system as specified e.g. in the 3GPP specification TS 23.228 has been developed to be conformant to IETF (Internet Engineering Task Force) “Internet standards”. The IP multimedia core network (IM CN) subsystem enables network operators of mobile or cellular networks to offer their subscribers multimedia services based on and build upon Internet applications, services and protocols. The intention is to develop such services by mobile network operators and other third party suppliers including those in the Internet space using the mechanisms provided by the Internet and the IM CN subsystem. The IM CN subsystem thus enables conversions of, and access to, voice, video, messaging, data and web-based technologies for a wireless user, and combine the growth of the Internet with the growth in mobile communications.
According to
Additionally, an IM Service Switching Function (SSF) 60 is provided to host CAMEL (Customized Application for Mobile network Enhanced Logic) network features, such as trigger detection points, CAMEL Serving Switching Finite State Machine, etc., and to interface to a CAMEL service environment 70 via a CAMEL Application Part (CAP). Due to the fact that the S-CSCF 20 does not provide authentication and security functionality for secure direct third party access to the IM sub-system, an Open Service Access (OSA) framework consisting of a OSA service capability server (SCS) 40 and a OSA application server 50 are arranged to provide a standardized way for third party secure access to the IM subsystem.
The AS 10 may contain a service capability interaction manager (SCIM) functionality and other application servers. The SCIM functionality is an application which performs the role of interaction management. The internal components are represented by the dotted boxes inside the AS 10.
The protocol to be used on the ISC interface is the SIP as defined in the IETF specification RFC 2543. According to SIP, callers and callees are identified by SIP addresses. When making a SIP call, a caller first locates the appropriate server and then sends a SIP request. A typical SIP operation is the invitation. Instead of directly reaching the intended callee, a SIP request may be redirected or may trigger a chain of new SIP requests by proxies. A proxy server is a network element that makes requests of other network elements on behalf of the network elements it serves. Thus, the proxy server relays requests from the network element it serves through the outside world and relays the responses to the requesters. It acts as a relay between the real server and the client.
A SIP message is either a request from a client to a server, or a response from the server to a client. Both request and response messages use the generic-message format specified in the IETF specification RFC 822 for transferring entities, i.e. the body of the message. Both types of messages consist of a start-line, one or more header fields (also known as “headers”), an empty line, i.e. a line, with nothing preceeding a carriage-return line-feet (CRLF) indicating the end of the header fields, and an optional message body. A SIP leg is defined by the “Call-ID”, “To” and “From” header information fields with associated “tag” information fields. In practice, a SIP session may consist of one or more incoming legs and/or one or more outgoing legs between the S-CSCF 20 and the AS 10. The S-CSCF 20 may exhibit a proxy server like behavior by passing messages or service requests to the AS 10 or by passing the requests out of the system. Therefore, the S-CSCF 20 may route a session to the AS 10. The AS 10 may proxy the session back to the S-CSCF 20 or may terminate it. In the latter case, it acts either as a pure User Agent Server (UAS) or as a Back-to-Back User Agent (B2BUA).
However, when the name and/or address of more then one application server is transferred from the HSS 30, the S-CSCF 20 may have to contact more than one application server in the order supplied by the HSS 30, wherein the response from the first application server may be used as an input to the second application server. Then, this operation is not possible if the AS 10 acts in an operating mode which terminates the SIP session, as no further application servers can be contacted.
It is therefore an object of the present invention to provide a method and system for proxying a message to an application server, by means of which system functions can be performed in a correct and pre-defined way.
This object is achieved by a method of proxying or relaying a message to an application server, said method comprising the steps of:
Furthermore, the above object is achieved by a system for proxying or relaying a message to an application server, said system comprising:
Additionally, the above object is achieved by a network element for proxying or relaying: a message to an application server, said network element being arranged to generate and forward towards said application server a processing information indicating at least one allowable operating mode for processing said message.
Moreover, the above object is achieved by an application server for receiving a message proxied or relayed from a network element, said application server being arranged to process said message based on a processing information received from said network element and indicating at least one allowable operating mode for said processing.
Accordingly, a way to indicate allowable or non-allowable modes to an application server or intermediate network node is provided so as to assure that the application server or intermediate network node proxies the service request or session back to the proxying network element, e.g. the S-CSCF, or to any other desired network node. Thus, the termination of a session can be restricted in cases where, the filtering leads to the result that more than one application server are to be contacted in a chain, so that the pre-established chain of application servers can be continued. Therefore, system functions can be performed in a correct and pre-defined way. Furthermore, the application server or other network node can be informed of acceptable alternative ways of handling incoming service requests, e.g. if the application server is capable of handling the same (initial) request in multiple ways it can limit the possibility of unnecessary exceptions due to a failure indication from the proxying network element by behaving according to the allowed or negotiated rules. Moreover, specific operating modes, such as the B2BUA mode can be avoided in certain scenarios.
On the other hand, the application server can inform the proxying network element, e.g. S-CSCSF, which modes it requires to perform a service to be executed for a subscriber in question.
Additionally, the cases the proxying network element has to be prepared to can be limited, and thus fewer resources are needed in the proxying network element, e.g. the S-CSCF. It has been shown, that the B2BUA case at application servers turns out to be rather complicated and resource consuming. With the present invention, being prepared for the B2BUA case can be avoided in most of the sessions. If the sessions, where B2BUA at application servers is allowed, are limited, the likelihood for failures at the proxying element (e.g. S-CSCF) is smaller. This also depends on the mechanisms for mapping the outgoing and incoming dialog.
According to an advantageous further development, the forwarding step may be performed by adding to said message a header field or a sub-field of a header field, indicating said allowable operating modes. In particular, the header field may be an extension header field.
Furthermore, the forwarding step may be performed by adding to said message a first route header pointing to said application server and a second route header pointing back to the proxying or relaying network element. In this case, the first and second route headers indicate the allowable operating modes, since the application server cannot act as a user agent server when the second route header is left at the application server after it has removed its own route header. As an additional option, a header extension field may be added to the second route header. The header extension field then indicates that the second route header is to be ignored if the application server is operated in a user agent server mode. If this header extension field is added, the application server may ignore the second route header and may thus still act as a user agent server.
As a further option, the forwarding step may be performed by adding to the message only one route header pointing to said application server. In this case, the single route header indicates the allowable operating mode, as there is no route header back to the proxying or relaying network element and the application sever thus has to act as a user agent server and cannot act as a proxy or a back-to-back user agent.
Alternatively, the processing information may be forwarded in a body or payload portion of the message. The processing information may be carried as a flag information set in the header or payload portion. Thereby, the application server can be directly informed of the allowable modes without any additional signalling requirements. According to another advantages further development, the forwarding step may be performed using a mode negotiation function. This mode negotiation function may be achieved by adding to a SIP Options message a header field indicating the allowable operating modes. Alternatively, the mode negotiation may be performed during a registration to the application server. Thus, using the negotiation feature, the support of a particular operating mode can be guaranteed.
Furthermore, a checking function may be provided for checking the possibility of said forwarding step by adding a corresponding requirement information to said service request. In particular, the requirement information may be a predetermined tag in a Proxy-Require header field of said service request. Thus, it can be made sure right from the beginning whether the application server supports the mode forwarding feature. Due to the fact that the requirement information e.g. the Proxy-Require header field, requires an error response if the specified feature is not supported, a response is guaranteed if the feature is not supported.
According to a further advantageous development, the processing information may be added to a filter information. Thereby, mode information can be signalled or downloaded e.g. as a kind of initial or subsequent filter criteria upon user registration or at application execution time.
The allowable operating modes may be at least one of a proxy server mode, a back-to-back user agent mode, a user agent server mode, and a user agent client mode.
In the following, the present invention will be described on the basis of preferred embodiments with reference to the accompanying drawings in which:
The preferred embodiments will now be described on the basis of a IMS as shown in
According to the first preferred embodiment, a header field is added to a SIP request at the S-CSCF 20 to thereby indicate allowed operating modes which may be utilized by the AS 10. In particular, a new header field is defined in the SIP request, e.g. the SIP Invite message, indicating that a user or service is being invited to participate in a session. This extension header field contains the allowed modes (e.g. proxy, UAS, B2BUA) which the AS 10 is allowed to utilize. Furthermore, the S-CSCF 20 may use this header field to indicate the modes of the AS 10, it can handle. This may be useful in a session controller implementation.
As another example, it could be defined in the S-CSCF 20 that for a message (directed to e.g. a recipient subscriber) the allowable operating modes of the AS 10 or another AS at the terminating side are limited to “proxy” meaning that it cannot be multiplied and/or copied to anyone else by the service logic executed in the AS.
In the following, examples for different header fields of the SIP request are given.
In case the AS 10 is only allowed to proxy the SIP request, the header field may look as follows:
In case the AS 10 is allowed to either proxy or terminate the incoming SIP request the header field may look as follows:
In case the AS 10 is allowed to initiate sessions, in addition to the example 2, the header field may look as follows:
In case an advanced session handling is allowed by the AS 10, the header field may look as follows:
If the AS 10 is in the UAC mode, the procedure according the present invention may as well be used by the AS 10 for indicating to the S-CSCF 20 how to treat a SIP request originated at the AS 10. E.g., the S-CSCF 20 could be forced to proxy the SIP request to another network node. Alternatively, to perform a specific service, the AS 10 might need to be able e.g. to use the UAS mode.
When the S-CSCF 20 receives a SIP request, e.g. a SIP REGISTER message (step 1), it generates a SIP OPTIONS message and inserts the Allowed-Modes header field into this message. Using the OPTIONS message, all ASs defined in the subscriber's filtering information are queried as to their capabilities. This may be performed at registration time for the whole registration or at the time a request occurs. If the AS 10 supports the Allowed-Modes feature, it may respond to this SIP request with a response message, e.g. a SIP 200 OK message, comprising a capability set with the mode needs of the AS 10. This may be performed by returning an Allow header field indicating the supported operated modes. Alternatively, the syntax could be a new payload including the mode information. The AS 10 may inform per subscriber or in general, which modes it can handle.
In the present case, the S-CSCF 20 forwards the SIP Options message with the Allowed-Modes header field to the AS 10 (step 3) which may respond with a SIP-response indicating its capabilities (step 4). Then, the S-CSCF 20 knows in advance, which modes the AS 10 supports, and may decide on the further handling of the received SIP request based on the negotiated mode (step 5).
Thus, according to the second preferred embodiment, the SIP Supported header field, i.e. “I support the modes feature as such” together with the above described Allowed-Modes extension header field (“I support the following modes”) can be used in the SIP Options message, as indicated in the following header example:
Wherein the S-CSCF 20 indicates that the AS 10 may either proxy or terminate the incoming SIP request.
The mode negotiation may always be performed as per initial request or may be performed once for all subsequent sessions including registrations, session invitation request, etc. or could even be performed per subscriber or subscription. As already mentioned, the above SIP Options message may as well be used by the AS 10 to derive the operating modes acceptable by the S-CSCF 20.
If the AS 10 does not support the above features, a default handling procedure could be defined at the S-CSCF 20 so as to be prepared for “unacceptable” scenarios. Especially, all network elements which may act as a B2BUA must implement at least one of the above features to assure proper operation. The procedure defined in
In particular, according to
The Proxy-Require header field is used to indicate proxy-sensitive features that must be supported by the proxy. Any Proxy-Require header field features that are not supported by the proxy must be negatively acknowledged by the proxy to the client if not supported. Thus, this header field can be used by clients to tell user agent servers about options that the client expects the server to support in order to properly process the request. If a server does not understand the option, it must respond by returning e.g. a status code 420 (Bad Extension) and list those options it does not understand in the unsupported header. This is to make sure that the client-server interaction will proceed without delay when all options are understood by both sides, and only slow down if options are not understood.
In the present case shown in
The filter information the SCSF 20 receives from the AS 10 defines relevant Service Points of Interest (SPIs) for a particular application. The SPIs are points in the SIP signalling that may cause the S-CSCF 20 to proxy or relay a SIP message to the AS 10 or any other server connected by the ISC interface. The subset of all possible SPIs which are relevant to a particular application are defined by means of the respective filter information.
According to
The procedure according to the third embodiment provides the advantages that it is independent from the AS registration procedure and does not increase the call setup delay at filtering time.
According to
According to a fifth preferred embodiment, the signaling or forwarding of allowable operating modes may be based on a selection of at least one route header, e.g. the SIP Route header. In SIP, the S-CSCF 20 routes the session to the AS 10. As already mentioned, the AS 10 either proxies the session back to the S-CSCF 20 or terminates it. In the latter case it acts either as a pure user, i.e. UAS, or as a B2BUA. In case the AS-10 acts as a B2BUA, it terminates a first SIP session and triggers a new second SIP session which is based on the first SIP session.
The routing problem may be solved by inserting at the S-CSCF 20 a preloaded Route header pointing to the AS 10, followed by an additional Route header pointing back to itself, i.e. the S-CSCF 20.
According to the so-called Loose Routing principle, the routing decision is then based on the topmost Route header. Thus, by pushing additional proxies to the Route header “stack”, all these proxies are visited before the final destination. This procedure is described in the IETF specification RFC2543bis-09.
In a first example, a SIP Route header field extension parameter is defined, e.g. ignore-in-UAS-mode. This extension parameter indicates to the AS 10 that the corresponding Route header can be ignored if the AS 10 acts as a UAS. In particular, the S-CSCF 20 adds the Route header field extension parameter ignore-in-UAS-mode to the Route header pointing back to itself. Then. If the AS 10 acts as in a proxy or B2BUA mode, the extension parameter can be ignored. On the other hand, if the AS 10 acts as a UAS, it knows that it can ignore the whole Route header containing this extension parameter.
According to the first example of the fifth embodiment, the message header may comprise the following fields:
If the AS 10 acts as a SIP proxy or B2BUA, it removes its own Route header entry and ignores the extension parameter before further routing. Then, the message header may look as follows:
On the other hand, if the AS 10 acts as a UAS, it removes its own Route header entry and ignores the whole other Route header entry which points back to the S-CSCF 20, because the extension parameter has been added. Thus, the AS 10 generates a response, as the remaining Route header is regarded not present. This can be expressed as follows:
According to a second example, the S-CSCF 20 may insert two Route headers but this time without any marking.
As there is a Route header left, the AS 10 cannot act as a UAS. To achieve this reaction without the risk of any undefined state of the AS 10, a corresponding definition should be set at the AS 10.
Finally, according to a third example of the fifth embodiment, the S-CSCF 20 may be arranged to insert only one Route header pointing to the AS 10, to thereby indicate to the AS 10 that it has to act as a UAS. Then, the message header only comprises the following Route header entry:
As there is no Route header back to the S-CSCF 20, the AS 10 cannot act as a SIP proxy or B2BUA, provided a corresponding definition is set at the AS 10. Thus, the AS 10 removes its own Route header entry and generates a response.
Accordingly, using the header extension parameter or settings according to the examples of the fifth preferred embodiment, it can be assured that allowable operating modes can be signaled to the AS 10, while the system functions in a correct and pre-defined way.
It is noted that the present invention is not restricted to the preferred embodiments described above. The present invention may be implemented in any proxying operation where a service request or message is proxied to an application server, to thereby indicate or negotiate allowable server operating modes. In particular, the procedures according to the preferred embodiments may be performed at any ISC or corresponding interface, e.g. also between the S-CSCF 20 and OSA SCS 40 and/or between the S-CSCF 20 and the IM-SSF 60 in
Number | Date | Country | Kind |
---|---|---|---|
PCT/EP02/00190 | Jan 2002 | WO | international |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/IB02/01083 | 4/3/2002 | WO |