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.
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.
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.
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.
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.
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
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.
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
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.
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:
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:
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:
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.
Number | Name | Date | Kind |
---|---|---|---|
6678735 | Orton et al. | Jan 2004 | B1 |
6680943 | Gibson | Jan 2004 | B1 |
7133923 | MeLampy et al. | Nov 2006 | B2 |
7254643 | Peters et al. | Aug 2007 | B1 |
7266591 | Johnston | Sep 2007 | B1 |
7349402 | Isomäki et al. | Mar 2008 | B2 |
7412541 | Stadler et al. | Aug 2008 | B1 |
7446812 | Ando et al. | Nov 2008 | B2 |
7484240 | Faccin | Jan 2009 | B2 |
7555555 | Park et al. | Jun 2009 | B2 |
7864734 | Isomäki et al. | Jan 2011 | B2 |
7877487 | Cai | Jan 2011 | B2 |
7933261 | Kato | Apr 2011 | B2 |
7984159 | Tanizawa et al. | Jul 2011 | B2 |
7990960 | Bakker | Aug 2011 | B2 |
8028074 | Allen | Sep 2011 | B2 |
8055778 | Richardson | Nov 2011 | B2 |
8135845 | Lee et al. | Mar 2012 | B2 |
8144695 | Bakker et al. | Mar 2012 | B2 |
8230109 | Van Elburg et al. | Jul 2012 | B2 |
8271667 | Hoshino | Sep 2012 | B2 |
8401154 | Boni | Mar 2013 | B2 |
8924567 | Simoes et al. | Dec 2014 | B1 |
20030108002 | Chaney et al. | Jun 2003 | A1 |
20030179762 | Isomäki et al. | Sep 2003 | A1 |
20040037407 | Gourraud et al. | Feb 2004 | A1 |
20040132452 | Lee | Jul 2004 | A1 |
20040249951 | Grabelsky | Dec 2004 | A1 |
20050226174 | Kiss | Oct 2005 | A1 |
20060003734 | Vallinen et al. | Jan 2006 | A1 |
20060047840 | Postmus | Mar 2006 | A1 |
20060183491 | Gundu et al. | Aug 2006 | A1 |
20060239247 | Postmus | Oct 2006 | A1 |
20060253538 | Jung et al. | Nov 2006 | A1 |
20070043872 | Pattan | Feb 2007 | A1 |
20070083658 | Hanna | Apr 2007 | A1 |
20070129051 | Sung | Jun 2007 | A1 |
20070133517 | Miller | Jun 2007 | A1 |
20070213039 | Skog | Sep 2007 | A1 |
20080068995 | Skog | Mar 2008 | A1 |
20080120425 | Beyer et al. | May 2008 | A1 |
20080162637 | Adamczyk et al. | Jul 2008 | A1 |
20080171564 | Tanizawa et al. | Jul 2008 | A1 |
20080235381 | Tanizawa et al. | Sep 2008 | A1 |
20090003321 | Bian | Jan 2009 | A1 |
20090028089 | Isomäki et al. | Jan 2009 | A1 |
20090052436 | Kotera | Feb 2009 | A1 |
20090185523 | Allen et al. | Jul 2009 | A1 |
20090187919 | Maes | Jul 2009 | A1 |
20090191869 | Siegel et al. | Jul 2009 | A1 |
20090204681 | Sun | Aug 2009 | A1 |
20090225965 | Migishima | Sep 2009 | A1 |
20110119340 | Van Elburg et al. | May 2011 | A1 |
Number | Date | Country |
---|---|---|
2008080334 | Jul 2008 | WO |
Entry |
---|
International Search Report issued in corresponding International application No. PCT/EP2008/061785, date of mailing Sep. 8, 2009. |
Rosenberg, J., et al., “SIP: Session Initiation Protocol,” SIP Working Group, Jun. 1, 2002, pp. 1-269, XP015009039. |
Camarillo Ericsson A “Ad-Hoc Conferencing in the Session Initiation Protocol (SIP) draft-camarillo-sipping-adhoc-conferencing-00.txt,” IETF Standard-Working-Draft, Internet Engineering Task Force, IETF, Mar. 27, 2004, XP015011475, ISSN: 0000-0004. |
Marjou, X., “Best Current Practices for a Session Initiation Protocol (SIP) Transparent Back-To-Back User-Agent (B2BUA); draft-marjou-sipping-b2bua-01.txt,” IETF Standard-Working-Draft, Internet Engineering Task Force, IETF, Ch. No. 1, Jul. 9, 2007, XP015051976; ISSN: 0000-004. |
Communication pursuant to Article 94(3) EPC in corresponding European Patent Application No. 08 803 754.4 dated Jul. 11, 2014. |
Elias Baixas; “SEAS Module”; [downloaded from the internet at http://www.kamailio.org/docs/modules/1.2.x/seas.html on Nov. 2, 2011]; XP007917128; Jan. 1, 2006; pp. 1-36. |
Office Action in corresponding Chinese Application No. 200880131042.1 issued May 10, 2013. |
Number | Date | Country | |
---|---|---|---|
20140098716 A1 | Apr 2014 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 13062546 | US | |
Child | 14075311 | US |