Abstract:
According to a first aspect of the present invention there is provided a method of facilitating the end-to-end transfer of a URI between a plurality of SIP entities. The method comprising generating a SIP message and including the URI to be transferred in a Contact header of the message and including in the Contact header a parameter indicating to a back-to-back user agent that this URI is not to be changed or replaced.

Description:
FIELD OF THE INVENTION 
     The present invention relates to the end-to-end transfer of an address and in particular to the transfer of Uniform Resource Identifiers (URIs) in a communication network using Session Initiation Protocol (SIP) messages. 
     BACKGROUND 
     IP Multimedia Subsystem (IMS) is the technology defined by the Third Generation Partnership Project (3G) to provide IP Multimedia services over mobile communication networks. IMS provides key features to enrich the end-user person-to-person communication experience through the use of standardised IMS Service Enablers, which facilitate new rich person-to-person (client-to-client) communication. An IMS network is able to connect to both PSTN/ISDN (Public Switched Telephone Network/Integrated Services Digital Network) as well as the Internet. 
     IMS provides a dynamic combination of voice, video, messaging, data, etc. within the same session. By growing the number of basic applications and the media which it is possible to combine, the number of services offered to the end users will grow, and the inter-personal communication experience will be enriched. This will lead to a new generation of personalised, rich multimedia communication services, including so-called “combinational IP Multimedia” services. 
     The IMS makes use of the Session Initiation Protocol (SIP) to set up and control calls or sessions between user terminals (or user terminals and application servers). The Session Initiation Protocol is a text-based protocol specified by the Internet Engineering Task Force (IETF) in RFC 3261, similar to Hypertext Transfer Protocol (HTTP) and Simple Mail Transfer Protocol (SMTP), for initiating interactive communication sessions between users. Such sessions include voice, video, chat, interactive games, and virtual reality. Extensions to SIP are also specified in several other IETF specifications. 
     SIP makes it possible for a calling party to establish a packet switched session to a called party (using so-called SIP User Agents (UA) installed in the User Equipment (UE)) even though the calling party does not know the current IP address of the called party prior to initiating the call. The Session Description Protocol (SDP), carried by SIP signalling, is used to describe and negotiate the media components of the session. Whilst SIP was created as a user-to-user protocol, IMS allows operators and service providers to control user access to services and to charge users accordingly. 
       FIG. 1  of the accompanying drawings illustrates schematically how the IMS fits into the mobile network architecture in the case of a GPRS/PS access network (IMS can of course operate over other access networks). Call/Session Control Functions (CSCFs) operate as SIP proxies within the IMS. The 3G architecture defines three types of CSCFs: the Proxy CSCF (P-CSCF) which is the first point of contact within the IMS for a SIP terminal; the Serving CSCF (S-CSCF) which provides services to the user that the user is subscribed to; and the Interrogating CSCF (I-CSCF) whose role is to identify the correct S-CSCF and to forward to that S-CSCF a request received from a SIP terminal via a P-CSCF. 
     SIP offers flexibility in how different services associated with a session may be invoked and there are services where the direct contact address of a particular user or service may need to be transferred by a second user or service to a third party. One common way of doing this is by using the URI as received in the Contact header of a SIP message. The Contact header is normally used to provide for direct communication between SIP entities such that subsequent requests will be directed to the URI within the Contact header. However, in some networks the Contact header of a SIP message may be mapped to that of, for example, a Back-to-Back User Agent (B2BUA) such as a Session Border Controller (SBC) or some Application Servers, such that the direct contact address of the user or service does not reach the recipient SIP entity. Messages intended for the user or service must then pass through the same nodes that performed the original mapping, as these nodes are required to perform inverse mapping of the address. Such inverse mapping is only possible if the message is sent within a dialog and the message follows the same path as the original message. 
     An example of a service that may require an address to be transferred to a third party is that of a conference.  FIG. 2  illustrates a simplified signalling flow of a scenario wherein a first SIP user agent (within UE-A) creates an ‘ad hoc’ conference and subsequently requests that a second SIP user agent (within UE-B) dial into that conference. The steps performed are as follows:
         R1. UE-A sends an INVITE request to a SIP server (conference server or conference factory) via an SBC and an Application Server (AS). The Request-URI of the INVITE is set to the URI of the SIP server acting as a conference factory (conf-factory-URI).   R2. The SIP server accepts the INVITE, creates a focus for the conference and sends a response to UE-A with the Contact header set to the URI of the conference focus (conf-URI) and with the addition of the “isfocus” feature tag, as defined in RFC 4579.   R3. The AS in this example acts as a B2BUA, maps the Contact header to the URI of the AS (AS-URI) also containing the “isfocus” feature tag, and forwards the response to the SBC.   R4. The SBC also acts as a B2BUA and maps the Contact header to its URI (SBC-URI), again including the “isfocus” feature tag, and forwards the response to UE-A.   R5. UE-A requests that UE-B join the conference using the REFER request. According to 3GPP TS 24.147, the Refer-To header is set to the conference URI learnt during conference establishment that, due to address mapping at the SBC, is the SBC-URI.   R6. The REFER is routed using normal SIP routing to UE-B.   R7. In attempting to join the conference, UE-B sends an INVITE request using the URI in the Refer-To header as the Request URI. As described above the Refer-To header is set to the URI of the SBC, such that the INVITE sent by UE-B is routed to the SBC and not to the conference focus.       

     The problem with existing technology is that a third party i.e. UE-B, will not be able to join the session due to mapping of the direct contact address of the user or service. 
     SUMMARY 
     It is an object of the present invention to overcome or at least mitigate the problem noted above. 
     According to a first aspect of the present invention there is provided a method of facilitating the end-to-end transfer of a URI between a plurality of SIP entities. The method comprises generating a SIP message and including the URI to be transferred in a Contact header of the message and including in the Contact header a parameter indicating to a back-to-back user agent that this URI is not to be changed or replaced. 
     According to a second aspect of the present invention there is provided a method of transferring a URI from a first SIP entity to a second SIP entity, through any number of intermediate back-to-back user agent. The method comprises, at the first SIP entity, generating a SIP message and including the URI to be transferred in a Contact header and including in the Contact header a parameter indicating to a back-to-back user agent that this URI is not to be changed or replaced, and sending the SIP message to the second SIP entity. At any intermediate back-to-back user agent, the SIP message is received from the first SIP entity. The entity identifies the presence of a parameter indicating that this address is not to be changed or replaced, within the Contact header of the SIP message. The SIP entity forwards the SIP message to the second SIP entity with its Contact header unchanged. 
     According to a third aspect of the present invention there is provided an apparatus configured to operate as a SIP entity. The apparatus comprises a processor for generating a SIP message, for including a URI to be transferred in a Contact header and for including in the Contact header a parameter indicating to a back-to-back user agent that this URI is not to be changed or replaced. The apparatus further comprises a transmitter for sending this SIP message to another SIP entity. The apparatus may comprise a SIP server and preferably a SIP conferencing server. 
     According to a fourth aspect of the present invention there is provided an apparatus configured to operate as a back-to-back user agent. The apparatus comprises a receiver for receiving a SIP message from a first SIP entity, a processor for checking a Contact header of the SIP message for a parameter indicating that the URI in the Contact header is not to be changed or replaced, and, if the parameter is present, for ensuring that a URI within the Contact header is not changed or replaced, and a transmitter for sending the SIP message to a second SIP entity. 
     According to a fifth aspect of the present invention there is provided a method of facilitating the end-to-end transfer of a URI between a plurality of SIP entities. The method comprises generating a SIP message and including the URI to be transferred in both a Contact header of the message and in a persistent header of the message, wherein a URI within the persistent header is not to be changed or replaced by a back-to-back user agent. 
     According to a sixth aspect of the present invention there is provided a method of transferring a URI from a first SIP entity to a second SIP entity, through any number of intermediate back-to-back user agents. The method comprises, at the first SIP entity, generating a SIP message and including the URI to be transferred in both a Contact header of the message and in a persistent header of the message. In this way, a URI within the persistent header is not to be changed or replaced by a back-to-back user agent. The SIP message is sent to the second SIP entity. At any intermediate back-to-back user agent, the SIP message is received from the first SIP entity, and forwarded to the second SIP entity with its persistent header unchanged. 
     According to a seventh aspect of the present invention there is provided an apparatus configured to operate as a SIP entity. The apparatus comprises a processor for generating a SIP message and including the URI to be transferred in both a Contact header of the message and in a persistent header of the message. The apparatus further comprises a transmitter for sending this message to another SIP entity. The apparatus may comprise a SIP server and preferably a SIP conferencing server. 
     According to an eighth aspect of the present invention there is provided an apparatus configured to operate as a back-to-back user agent. The apparatus comprises a receiver for receiving a SIP message from a first SIP entity, a processor for ensuring that a URI within a persistent header of the message is not changed or replaced, and a transmitter for sending the SIP message to a second SIP entity. 
     According to a ninth aspect of the present invention there is provided an apparatus configured to operate as a SIP entity. The apparatus comprises a receiver for receiving a first SIP message, a processor for checking the first SIP message for a persistent header and, if a URI is present within the persistent header, generating a second SIP message including the URI, and a transmitter for sending the second SIP message to another SIP entity. 
     According to a tenth aspect of the present invention there is provided a method of facilitating the end-to-end transfer of a URI between a plurality of SIP entities. The method comprises generating a SIP message and including the URI to be transferred in both a Contact header of the message and in the message body, wherein the message body is not to be changed or replaced by a back-to-back user agent. 
     According to an eleventh aspect of the present invention there is provided a method of transferring a URI from a first SIP entity to a second SIP entity, through any number of intermediate back-to-back user agents. The method comprises, at the first SIP entity, generating a SIP message and including the URI to be transferred in both a Contact header of the message and in the message body, wherein the message body is not to be changed or replaced by a back-to-back user agent, and sending the SIP message to the second SIP entity. At any intermediate back-to-back user agent, the SIP message is received from the first SIP entity, and forwarded to the second SIP entity with its message body unchanged. 
     According to a twelfth aspect of the present invention there is provided an apparatus configured to operate as a SIP entity. The apparatus comprises a processor for including a URI in the message body of a SIP message, and a transmitter for sending the SIP message to another SIP entity. The apparatus may comprise a SIP server and preferably a SIP conferencing server. 
     According to a thirteenth aspect of the present invention there is provided an apparatus configured to operate as a SIP entity. The apparatus comprises a receiver for receiving a first SIP message, a processor for processing the first SIP message and, if a URI is present in the message body, generating a second SIP message including the URI, and a transmitter for sending the second SIP message to another SIP entity. 
     According to a fourteenth aspect of the present invention there is provided a method of establishing a conference call between two or more SIP users. The method comprises first sending a SIP INVITE from a first of said SIP users to a SIP conferencing server. A method of transferring a URI from a first SIP entity to a second SIP entity according to one of the above aspects is employed in order to deliver a conf-URI from the SIP conferencing server to the first SIP user. A SIP REFER is sent from said first user to the or each other user, the REFER including said conf URI. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  illustrates schematically the integration of an IP Multimedia Subsystem into a 3G mobile communications system; 
         FIG. 2  illustrates an example signalling flow of a known scenario wherein a first user creates an ‘ad hoc’ conference and subsequently requests that a second user dial into that conference; 
         FIG. 3  illustrates an example signalling flow of the scenario of  FIG. 2  implementing a “nomapping” URI parameter; 
         FIG. 4  illustrates a simplified signalling flow of the scenario of  FIG. 2  implementing a “P-Unique-Address” header; 
         FIG. 5  an example signalling flow of the scenario of  FIG. 2  implementing a URI contained in the SIP message body; and 
         FIG. 6  illustrates schematically an example of a SIP architecture. 
     
    
    
     DETAILED DESCRIPTION 
     As has already been discussed, using existing technologies it is not always possible for the address of a user to be transferred end-to-end, in particular when transferring through a Back-to-back User Agent (B2BUA) such as a Session Border Controller (SBC) or some Application Servers (AS) which may invoke topology and/or identity hiding that will cause the Contact header of a Session Initiation Protocol (SIP) message to be modified. 
     In order to overcome this problem it is proposed here to introduce a new URI parameter, “nomapping”. URI parameters are added after the host:port component of a URI, separated by semi-colons (e.g. sip:conf-URI; nomapping, as shown in  FIG. 3 ), and affect a request constructed from the URI. By adding this parameter to a URI it would inform a B2BUA that this URI should not be mapped by the B2BUA. The B2BUA would then need to act like a SIP Proxy server, forwarding the SIP message and adding its address to the Record-route header instead of mapping it into the Contact header field. 
       FIG. 3  illustrates a simplified signalling flow of the scenario of  FIG. 2  implementing a “nomapping” URI parameter. The steps performed are as follows:
         S1. UE-A sends an INVITE request to a SIP server (conference factory), via an SBC and an AS. The Request-URI of the INVITE is set to the URI of the SIP server acting as a conference factory (conf-factory-URI).   S2. The SIP server accepts the INVITE, creates a focus for the conference and sends a response to UE-A with the Contact header set to the URI of the conference focus (conf-URI) and with the addition of the “nomapping” URI parameter and the “isfocus” feature tag.   S3. The AS is informed by the presence of the “nomapping” URI parameter that, although it is acting as a B2BUA, the Contact header of the response should not be mapped. The AS then acts like a SIP proxy, forwarding the response to the SBC with the Contact header unchanged and adding its address as a Record-route header.   S4. Similarly, the presence of the “nomapping” URI parameter prevents the SBC from mapping the Contact header to its URI (SBC-URI). The SBC then also acts like a SIP proxy, forwarding the response to UE-A with the Contact header unchanged and adding its address as a Record-route header.   S5. UE-A requests that UE-B join the conference using the REFER request. The Refer-To header is set to the conference URI learned during conference establishment that, due to the presence of the “nomapping” URI parameter, is the conference focus URI (conf-URI).   S6. The REFER is routed using normal SIP routing to UE-B.   S7. UE-B then attempts to join the conference, sending an INVITE request using the URI in the Refer-To header as the Request URI. As described above, the Refer-To header is set to the URI of the conference focus, such that the INVITE is correctly routed to the conference focus.       

     The URI in the Contact header can be either a SIP URI or a SIPS URI. The use of a SIPS URI allows resources to specify that they should be reached securely, and in particular that mutual TLS authentication should be employed. 
     As an alternative solution to the problem it is proposed to define a new SIP header, “P-Unique-Address”. The “P-Unique-Address” header would contain a URI that should not be mapped by a B2BUA. A SIP entity such as a SIP UA or SIP server may then use this header to ensure that its address can be transferred to the recipient of a SIP message i.e. the end-point SIP entity, without being mapped by intermediate entities, such as a B2BUA. The recipient SIP entity can check for this header and use the address give in the field value. When using a new “P-Unique-Address” SIP header, the URI in the header can be either a SIP URI or a SIPS URI. It could also be a Tel URI. 
       FIG. 4  illustrates a simplified signalling flow of the scenario of  FIG. 2  implementing a “P-Unique-Address” SIP header. The steps performed are as follows:
         T1. UE-A sends an INVITE request to a SIP server (conference factory) via an SBC and an AS. The Request-URI of the INVITE is set to the URI of the SIP server acting as a conference factory (conf-factory-URI).   T2. The SIP server accepts the INVITE, creates a focus for the conference, sends a response to UE-A with the Contact header set to the URI of the conference focus (conf-URI), and adds the “isfocus” feature tag. In addition, the conference factory adds the “P-Unique-Address” header into the response and sets it to the conference focus URI (conf-URI) with the “isfocus” feature tag.   T3. The AS, acting as a B2BUA, maps the Contact header to the URI of the AS (AS-URI) also containing the “isfocus” feature tag, and forwards the response to the SBC. The AS leaves the URI in the “P-Unique-Address” header unchanged.   T4. The SBC also acts as a B2BUA and maps the Contact header to its URI (SBC-URI), again including the “isfocus” feature tag, and forwards the response to UE-A. The SBC also leaves the URI in the “P-Unique-Address” header unchanged.   T5. UE-A requests that UE-B join the conference using the REFER request. UE-A checks for the “P-Unique-Address” header and uses the URI in the field value to set the Refer-To header to the conference focus URI (conf-URI).   T6. The REFER is routed using normal SIP routing to UE-B.   T7. UE-B then attempts to join the conference, sending an INVITE request using the URI in the Refer-To header, as the Request URI. As described above the Refer-To header is set to the URI of the conference focus, such that the INVITE is correctly routed to the conference focus.       

     As a third alternative solution to the problem, a URI may be included in the body of a SIP message. Whilst the message body carried by a SIP message is usually a session description (using Session Description Protocol (SDP)) it can carry any text-based information. Usually, all information required to route a SIP message is contained within the start line and the headers such that a proxy or B2BUA does not need to examine or change the message body. As a result, the message body is transmitted end-to-end without modification. The end recipient of the message then processes the SIP message including the body, and can determine that the body contains a URI to be used for redirection. The body may or may not be encrypted. As with the use of a new “P-Unique-Address” SIP header, when placing a URI in the body of a SIP message the URI can be either a SIP or a SIPS URI, or a Tel URI. 
     Referring again to the scenario illustrated in  FIG. 2 ,  FIG. 5  illustrates a simplified signalling flow implementing a URI contained in the SIP message body. The steps performed are as follows:
         U1. UE-A sends an INVITE request to a SIP server (conference factory) via an SBC and an AS. The Request-URI of the INVITE is set to the URI of the SIP server acting as a conference factory (conf-factory-URI).   U2. The conference factory accepts the INVITE, creates a focus for the conference and sends a response to UE-A with the Contact header set to the URI of the conference focus (conf-URI) and with the addition of the “isfocus” feature tag. In addition, the conference factory inserts the URI of the conference focus into the body of the response.   U3. The AS, acting as a B2BUA, maps the Contact header to the URI of the AS (AS-URI) also containing the “isfocus” feature tag and forwards the response to the SBC. The AS leaves the body of the message, and therefore the URI of the conference focus, unchanged.   U4. The SBC applies identity/topology hiding and maps the Contact header to its URI (SBC-URI), again including the “isfocus” feature tag, and forwards the response to UE-A. The SBC also leaves the body of the message, and therefore the URI of the conference focus, unchanged.   U5. As part of processing the response, UE-A identifies that the message body contains a URI that can be used to redirect messages towards the conference factory. When UE-A requests that UE-B join the conference using the REFER request, the Refer-To header is set to the URI found in the message body (conf-URI).   U6. The REFER is routed using normal SIP routing to UE-B.   U7. UE-B then attempts to join the conference, sending an INVITE request using the URI in the Refer-To header, as the Request URI. As described above the Refer-To header is set to the URI of the conference focus, such that the INVITE is correctly routed to the conference focus.       

     The mechanisms described above enable a URI to be transferred transparently through a network. This provides the advantage that a user can send this URI to another user, thus enabling this other user to use the service identified by the URI. Conference calls are an example of such a service, where the URI identifies a particular conference session. Another example of such a service is a gaming service where the URI identifies a particular game session. Many similar examples, where users need access to a service identified by a specific identity, are possible. 
       FIG. 6  illustrates schematically an example of a SIP architecture in which the above-described scenarios can occur. The architecture includes three SIP entities; a SIP Server  1 , a first SIP User Agent  2  and a second SIP User Agent  3 , and a Back-to-Back User Agent  4 . 
     The SIP Server  1  is suitable for facilitating a service, such as a conference server or conference factory as described above, and comprises a processor  5 , a transmitter  6  and a receiver  7 . The processor  5  is suitable for implementing any or all of the solutions described above, by:
         1. creating a SIP message including a Contact header and inserting its URI, along with the ‘nomapping’ parameter into the Contact header; or   2. creating a SIP message including a P-Unique-Address header and inserting its URI into this header; or   3. creating a SIP message and inserting its URI into the message body.       

     This SIP message is then sent to the first SIP User Agent  2  using the transmitter  6 . 
     The SIP message sent from SIP Server  1  to SIP User Agent  2  has to traverse the Back-to-Back User Agent  4 . Back-to-Back User Agent  4  is suitable for identity and/or topology hiding as described above, and comprises a receiver  8 , a processor  9  and a transmitter  10 . The receiver  8  receives the SIP message sent from SIP Server  1 . The processor  9  then processes this message as required in order to implement any or all of the solutions described above, by:
         1. checking the Contact header of a SIP message for the ‘nomapping’ parameter and if the parameter is present, processing the SIP message leaving the URI in the Contact header unchanged; or   2. processing a SIP message leaving the URI in the P-Unique-Address header unchanged; or   3. processing a SIP message leaving the URI in the message body unchanged.       

     The SIP message is then sent to the first SIP User Agent  2  using the transmitter  10 . 
     The first SIP User Agent  2  is suitable for sending the URI of a user or service to a third party as described above, and comprises a receiver  11 , a processor  12  and a transmitter  13 . The receiver  11  receives the SIP message sent from SIP Server  1 , through Back-to-Back User Agent  4 . The processor  12  then processes this message as required in order to implement any or all of the solutions described above, by:
         1. creating a second SIP message including the URI found in the Contact header; or   2. checking the SIP message for a P-Unique-Address header containing a URI and, if the P-Unique-Address header is present, creating a second SIP message including the URI; or   3. checking the body of the SIP message for a URI and, if the message body contains a URI, creating a second SIP message including the URI.       

     The second SIP message is then sent to the second SIP User Agent  3  using the transmitter  13 . 
     The second SIP User Agent  3  is suitable for establishing a session with a SIP user or service using a URI sent to it by a third party as described above, and comprises a receiver  14 , a processor  15  and a transmitter  16 . The receiver  14  receives the second SIP message, sent from the first SIP User Agent  2 . The processor  15  then processes this message as required in order to establish the session. A third SIP message is then sent to SIP Server  1  using transmitter  16 . 
     It will be appreciated by the person of skill in the art that various modifications may be made to the above described embodiments without departing from the scope of the present invention.