# Patent

## Title
Facilitating early media in a communications system

## Abstract

A method of sending information from a Session Initiation Protocol intermediate node to a first Session Initiation Protocol terminal. The method comprises, upon receipt of a session initiation request at the Session Initiation Protocol intermediate node, establishing a first Session Initiation Protocol dialog between the Session Initiation Protocol intermediate node and the first Session Initiation Protocol terminal, sending information over said first dialog, forwarding said request from the Session Initiation Protocol intermediate node to a second, destination Session Initiation Protocol terminal, before, during, or after establishment of said first dialog, and establishing a second Session Initiation Protocol dialog, between the first and second Session Initiation Protocol terminals.

## Background
RELATED APPLICATIONS
This application is a continuation of co-pending U.S. patent application Ser. No. 11/813,733 filed Oct. 7, 2009, which is a 371 of International Application No. PCT/EP2005/050100, filed Jan. 11, 2005, the disclosures of which are fully incorporated herein by reference.


FIELD OF THE INVENTION
The present invention relates to facilitating early media in a communications system and more particularly in a communications system which utilises the Session Initiation Protocol as the session set-up and control protocol.
BACKGROUND TO THE INVENTION
As defined by IETF RFC 3261, Session Initiation Protocol (SIP) is an application-layer control (signalling) protocol for creating, modifying, and terminating sessions with one or more participants, in an IP network. These sessions include Internet telephone calls, multimedia distribution, and multimedia conferences. SIP invitations used to create sessions carry session descriptions that allow participants to agree on a set of compatible media types. SIP makes use of elements called proxy servers to help route requests to the user's current location, authenticate and authorise users for services, implement provider call-routing policies, and provide features to users. SIP also provides a registration function that allows users to upload their current locations for use by proxy servers. So-called “Application Servers” (ASs) can be provided in the call path, e.g. within the SIP proxy servers or elsewhere, in order to implement certain functions. SIP runs on top of several different transport protocols. SIP uses the Session Description Protocol (SDP) to specify the medium or media to be used for the session.
A SIP session is typically initiated by a SIP terminal sending a SIP INVITE message to some SIP address. Assuming that a called terminal wishes to accept the invitation, it responds to the calling terminal with a SIP 200 OK messages. The calling terminal responds to receipt of the 200 OK by sending an ACK message to the called terminal. Upon receipt of the 200 OK message (containing the called terminals SDP), the calling terminal can commence sending media to the called terminal. The called terminal can commence sending media upon receipt of the INVITE containing the caller's SDP.
When a calling SIP terminal, which might be referred to as User Equipment (UE) according to 3G terminology or as a User Agent Client (UAC), initiates a call, an AS receives the INVITE request within the SIP control network (this network might be an IP Multimedia Subsystem as defined by 3GPP). Before forwarding the request to its destination (nb. the AS may also choose not to forward the request, depending on the service scenario), the AS may want to play an announcement to the UAC. In order to do this it is desirable to establish an early dialog between the UAC and AS involving the exchange of SDPs, the satisfaction of certain pre-conditions, and a media channel is established. The AS signals its intent to provide early media in a 18x message (where “x” has any appropriate value), the 18x including the appropriate SDP. It is noted that the AS may send multiple 18x messages, each of which may be acknowledged by the UAC with a PRACK message, prior to the AS forwarding the 200 response message to the UAC. When the announcement has been played, the AS may forward the INVITE request to the called UE, or User Agent Server (UAS), in order to continue the session setup. The UAS will then also establish a dialog with the UAC. The signalling associated with this procedure is illustrated in FIG. 1.
The AS may choose to forward the INVITE request while still playing early media, or even before starting to play media (depending upon the service). It may choose to cease the early media when a response (provisional or final) is received from the called party, or when it detects that media is received from the called party. Specific service implementation specifications shall define when early media shall be ceased and, if needed, define which additional mechanisms are to be used to detect media.
According to this approach to handling early media, the 18x provisional response from the AS, and the final response (200 (INVITE)) from the UAS, are received by the UAC as part of the same dialog within the session. The AS must modify the To header tag parameter received in the response message from the UAS, so as to match the tag sent by the AS in the 18x provisional response. Also, since requests (incorporated into SIP messages) may be sent from the AS to the UAC, the AS may have to modify the Cseq value in requests received from the called UE, to make sure the values in the requests forwarded to the UAC are greater than the values in requests possibly sent from the AS to the UAC. The AS will also have to handle issues related to the route set etc (i.e. parameter sets included in the SIP messages). These issues can be solved by the AS acting as a Back-to-Back User Agent (B2BUA).
A further issue which must be addressed is the need to provide two remote SDP answers to the UAC; the SDP for the early media (initiated by the AS), and the SDP from the UAS. The SDP answer cannot change within the same INVITE transaction (i.e. by sending the early media SDP in an 18x message, and the UAS SDP in the 200). There are two different solutions to this problem.
1. After the 200 OK is sent, a SIP UPDATE is sent by the AS to the UAC to provide the UAS SDP. The AS must send this UPDATE, since the UAS has no knowledge of the SDF previously sent by the AS to the UAC. The UPDATE 200 response may contain a changed SDP on the part of the UAC. However, if that is the case, the UPDATE 200 response cannot be forwarded directly to the UAS, since it was the AS that initiated the UPDATE transaction. For that the AS would have to send a separate UPDATE also towards the UAS. The 200 response for that UPDATE, sent from the UAS to the AS may also contain a change in the SDP for the UAS. Once again, the 200 response cannot be forwarded directly to the UAC, and another UPDATE to the UAC is required. This initial steps in this procedure are illustrated in FIG. 2.
The complexity of this procedure, involving as it does multiple interventions by the AS, is undesirable.
2. A second solution relies upon so-called “early media” mechanisms. As defined by the SIP recommendations, “early media” refers to media (e.g., audio and video) that is exchanged before a particular session is accepted by the called user. Within a dialog, early media may occur from the moment the initial INVITE is seat until the UAS generates a final response. Early media may be unidirectional or bi-directional, and can be generated by the caller, the callee, or both. Typical examples of early media generated by the callee are ringing tones and announcements (e.g., queuing status). Early media generated by the caller typically consists of voice commands or dual tone multi-frequency (DTMF) tones to drive interactive voice response (IVR) systems. The basic SIP specification RFC3261 supports only very simple early media mechanisms. RFC3959 extends the original proposal and overcomes a number of problems which might arise when that proposal is implemented.
Use may be made of the early session disposition mechanism described in IETF RFC3959 in order to allow an AS to play an announcement as early media. In this case two separate SDPs are used, one for the early dialog and one for the dialog with the UAS, and in this case the AS offers the early media to the UAC, which the UAC can choose to accept or reject. The initial 18x message sent from the AS to the UAC contains the SDP for the early dialog, whilst the 200 response from the UAS includes the SDP for the UAC to UAS dialog. The early dialog is terminated automatically by the UAC upon receipt of the 200 response. This procedure is illustrated in FIG. 3.
Problems may arise with this approach in the event that other nodes in the network also want to send early media. In any case, the approach has the disadvantage that it requires support for RFC3959 in the user terminals.
SUMMARY OF THE INVENTION
It is an object of the present invention to overcome or at least mitigate the disadvantages of existing approaches to providing for early media from an Application Server. This is achieved by effectively simulating the forking of a SIP dialog at an Application Server, and using the simulated fork as the bearer for the early media.
According to a first aspect of the present invention there is provided a method of sending information from a Session Initiation Protocol intermediate node to a first Session Initiation Protocol terminal, the method comprising;

    
    
        upon receipt of a session initiation request at the Session Initiation Protocol intermediate node, establishing a first Session Initiation Protocol dialog between the Session Initiation Protocol intermediate node and the first Session Initiation Protocol terminal;
        sending information over said first dialog; and
        forwarding said request from the Session Initiation Protocol intermediate node to a second, destination Session Initiation Protocol terminal, before, during, or after establishment of said first dialog, and establishing a second Session Initiation Protocol dialog, between the first and second Session Initiation Protocol terminals.
    
    


The term “Session Initiation Protocol intermediate node” used here is not intended to restrict the application of the invention to any particular Session Initiation Protocol implementation. However, one example of a Session Initiation Protocol intermediate node to which the invention may be applied is a Session Initiation Protocol Application Server.
Embodiments of the present invention may be used to send so-called early media from the intermediate node to the first Session Initiation Protocol terminal. This early media may be, for example, an announcement or tone. However, the invention may alternatively, or additionally, be used to send other information from the AS to the UAC, for example charging information. This other information may be included as a payload in a Session Initiation Protocol message sent from the intermediate node to the first terminal.
Preferably, the dialogs are distinguished by different To header tag parameters in the INVITE responses. This tag is then used in the To/From header (depending on the direction of the SIP requests) in SIP messages associated the dialogs.
Preferably, the first Session Initiation Protocol dialog is established by the Session Initiation Protocol intermediate node sending to the first Session Initiation Protocol terminal a 18x series message containing as its To header tag parameter a value generated by the intermediate node. The second dialog may be established by the second terminal sending a Session Initiation Protocol 200 response to the first terminal, the response including as its To header tag parameter a value generated by the second terminal. Alternatively, the second dialog may be established by the second terminal sending a Session Initiation Protocol 18x series massage to the first terminal, the response including as its To header tag parameter a value generated by the second terminal.
According to a second aspect of the present invention there is provided a Session Initiation Protocol intermediate node arranged to send information to a first Session Initiation Protocol terminal, the intermediate node comprising:

    
    
        processing means for establishing a first Session Initiation Protocol dialog between the Session Initiation Protocol intermediate node and the first Session Initiation Protocol terminal, upon receipt of a session initiation request at the Session Initiation Protocol intermediate node;
        means for sending information over said first dialog; and
        means for forwarding said request from the Session Initiation Protocol intermediate node to a second, destination Session Initiation Protocol terminal, before, during, or after establishment of said first dialog, and for establishing a second Session Initiation Protocol dialog, between the first and second Session Initiation Protocol terminals.
    
    





BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows a general SIP signalling flow for the provision of early media by a SIP Application Server;
FIG. 2 shows a more detailed SIP signalling flow for the provision of early media by a SIP Application Server including UPDATE requests;
FIG. 3 shows a SIP signalling flow for the provision of early media by a SIP Application Server utilising the early session disposition mechanism; and
FIG. 4 shows a SIP signalling flow for the provision of early media by a SIP Application Server making use of multiple dialogs.



DETAILED DESCRIPTION OF CERTAIN EMBODIMENTS
IETF RFC3261 is the technical specification for the basic Session Initiation Protocol (SIP) mechanisms. This includes provision for so-called “forking” which enables a SIP Application Server (AS) to deliver an incoming SIP session initiation request (e.g. a SIP INVITE), initially addressed to a single SIP terminal, to two or more SIP terminals. Forking may be used for example to cause several SIP terminals (e.g. a mobile and a desk phone) to ring in response to a single session initiation request. The result of a forking procedure, assuming that two or more of the called terminals answer the request, is that multiple SIP dialogs will be established for the calling terminal. It is proposed here to provide a means for delivering early media to a calling SIP terminal from a SIP AS by effectively simulating the forking procedure at the SIP AS so as to establish multiple dialogs between the AS and the calling terminal, associated with a single SIP session.
In order to establish separate dialogs, after receipt of a SIP INVITE sent by the User Agent Client (UAC), any 18x provisional response(s) from the SIP AS, and the final response from the User Agent Server (UAS), should contain different To header tag parameters. FIG. 4 illustrates a signalling flow for this approach, where the 18x response includes the header tag “as” whilst the 200 response from the UAS includes the header tag “uas”. All subsequent messages associated with each of the dialogs include the appropriate header tag.
Using this approach, the AS does not need to modify the headers of SIP messages received from the UAS, as may be required with the single dialog approach. All UAC-to-AS communication is accommodated within a separate dialog, which does not affect the UAC-to-UAS dialog. Whilst the AS may still act as a Back-to-Back User Agent (B2BUA) for other purposes, this is not relevant to the early media scenario.
As well as avoiding the need for the SIP AS to modify the To header tag parameter in SIP messages received from the UAS, use of the multiple dialog mechanism also makes it easier for the AS to send SIP requests to the UAC, without using a “piggybacking” mechanism or inserting SIP requests into the dialog between the UAC and UAS. This is true for as long as the early dialog between the UAC and AS exists. NB. The early dialog may be terminated by the UAC upon receipt of the 200 message from the UAS or may be maintained, depending upon the actual implementation. SIP requests may contain information generated at, or supplied to, the SIP AS. By way of example, the proposed Advice of Charge service, which is intended to provide charging information to callers, may be implemented by incorporating the charging information in SIP messages, e.g. SIP NOTIFY, sent to the UAC, the messages including the AS generated To header tag. It will be appreciated that it is not necessary to actually send early media using this procedure. Rather, the 18x message(s) may be sent to establish a first dialog which is then used, for example, exclusively for the sending of information in SIP messages.
It is noted that the early media may be provided at an even earlier stage by implementing RFC3959 may also be used if there is a desire to allow the AS to offer an early session to the UAC, rather than waiting until an answer (to the offer) has been sent by the AS to the UAC. This of course requires support for RFC3959 on the part of the terminals.
It will be appreciated by the person of skill in the art that various modifications may he made to the above described embodiments without departing from the scope of the present invention.

## Claims

1. A Session Initiation Protocol intermediate node arranged to send information to a first Session Initiation Protocol terminal, the intermediate node comprising:
a micro-processor; and
a memory that stores processor-executable instructions wherein the micro-processor interfaces with the memory and executes the processor-executable instructions to perform the following operations:
upon receipt of a session initiation request at the Session Initiation Protocol intermediate node, establishing a first Session Initiation Protocol dialog between the Session Initiation Protocol intermediate node and the first Session Initiation Protocol terminal;
sending information from the Session Initiation Protocol intermediate node to the first Session Protocol terminal over said first dialog; and
establishing a second Session Initiation Protocol dialog, between the first and a second Session Initiation Protocol terminals before, during, or after establishment of said first dialog,
wherein the first and second dialogs are distinguished by different To header tag parameters in the session initiation responses.

2. The intermediate node of claim 1, wherein said intermediate node is a Session Initiation Protocol Application Server.

3. The intermediate node of claim 1, wherein said information which is sent from the Session Initiation Protocol intermediate node to the first Session Initiation Protocol terminal comprises early media generated at the intermediate node or provided to that node from an external source.

4. The intermediate node of claim 3, wherein said early media comprises an announcement or tone.

5. The intermediate node of claim 1, wherein said information is incorporated into one or more Session Initiation Protocol messages associated with the first dialog.

6. The intermediate node of claim 5, wherein said information comprises charging information.

7. The intermediate node of claim 1, wherein the same To header tag parameters are subsequently used in To and From headers in Session Initiation Protocol messages associated with the first and second dialogs.

8. The intermediate node of claim 1, wherein said first Session Initiation Protocol dialog is established by the Session Initiation Protocol intermediate node sending to the first Session Initiation Protocol terminal a 18x series message, a To header tag parameters of the 18x series message containing a value generated by the intermediate node, and said second dialog is established by the second terminal sending a Session Initiation Protocol 200 response to the first terminal, the response including as its To header tag parameter a value generated by the second terminal.