Re: [rtcweb] SDP_PRANSWER followed by SDP_OFFER scenario in JSEP

"Ravindran, Parthasarathi" <pravindran@sonusnet.com> Wed, 02 May 2012 05:33 UTC

Return-Path: <pravindran@sonusnet.com>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 581AD21F8934 for <rtcweb@ietfa.amsl.com>; Tue, 1 May 2012 22:33:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.514
X-Spam-Level:
X-Spam-Status: No, score=-6.514 tagged_above=-999 required=5 tests=[AWL=0.084, BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id f88+ztubUMPL for <rtcweb@ietfa.amsl.com>; Tue, 1 May 2012 22:33:30 -0700 (PDT)
Received: from na3sys010aog110.obsmtp.com (na3sys010aog110.obsmtp.com [74.125.245.88]) by ietfa.amsl.com (Postfix) with ESMTP id 60C9F21F8925 for <rtcweb@ietf.org>; Tue, 1 May 2012 22:33:29 -0700 (PDT)
Received: from usma-ex-hub1.sonusnet.com ([69.147.176.212]) (using TLSv1) by na3sys010aob110.postini.com ([74.125.244.12]) with SMTP ID DSNKT6DHKLz7igVmBBhNORPbC4bZMON/lqqJ@postini.com; Tue, 01 May 2012 22:33:29 PDT
Received: from INBA-HUB01.sonusnet.com (10.70.51.86) by usma-ex-hub1.sonusnet.com (66.203.90.16) with Microsoft SMTP Server (TLS) id 14.2.247.3; Wed, 2 May 2012 01:33:33 -0400
Received: from INBA-MAIL01.sonusnet.com ([fe80::8d0f:e4f9:a74f:3daf]) by inba-hub01.sonusnet.com ([fe80::5cbc:2823:f6cc:9ce7%11]) with mapi id 14.01.0355.002; Wed, 2 May 2012 11:02:58 +0530
From: "Ravindran, Parthasarathi" <pravindran@sonusnet.com>
To: "Nataraju A.B" <nataraju.sip@gmail.com>, "Ejzak, Richard P (Richard)" <richard.ejzak@alcatel-lucent.com>, Justin Uberti <juberti@google.com>
Thread-Topic: [rtcweb] SDP_PRANSWER followed by SDP_OFFER scenario in JSEP
Thread-Index: Ac0mnx+EQrlVrvWDRey+KwUxgcHWewALSsOAABK1rwAAF0kPAAAEtTUAACaRZ4A=
Date: Wed, 02 May 2012 05:32:01 +0000
Message-ID: <387F9047F55E8C42850AD6B3A7A03C6C0E23B519@inba-mail01.sonusnet.com>
References: <387F9047F55E8C42850AD6B3A7A03C6C0E23B102@inba-mail01.sonusnet.com> <CA+rAfUMfZBHxAjR0zmwhSxftQbPK0X3sNuxu4UV6bnMvnJ_9xA@mail.gmail.com> <CAOJ7v-3K=NK6zCLr-E-aSHDKVv2hMqnUhZKroX0YoBTo6-nQ+Q@mail.gmail.com> <6F428EFD2B8C2F49A2FB1317291A76C1136029362A@USNAVSXCHMBSA1.ndc.alcatel-lucent.com> <CA+rAfUMC48ZeAdpur_B+6nRzEyNYjRFe66U-h62eAoGZVDd-pg@mail.gmail.com>
In-Reply-To: <CA+rAfUMC48ZeAdpur_B+6nRzEyNYjRFe66U-h62eAoGZVDd-pg@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.70.54.41]
Content-Type: multipart/alternative; boundary="_000_387F9047F55E8C42850AD6B3A7A03C6C0E23B519inbamail01sonus_"
MIME-Version: 1.0
Cc: "rtcweb@ietf.org" <rtcweb@ietf.org>
Subject: Re: [rtcweb] SDP_PRANSWER followed by SDP_OFFER scenario in JSEP
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rtcweb>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 02 May 2012 05:33:34 -0000

Nataraju,

RFC 6337 supports early dialog UPDATE scenario which I mentioned in this mail. The exact RFC
snippet with "Early column" explanation.


            Offer                Answer             RFC    Ini Est Early

     -------------------------------------------------------------------

     6. UPDATE Req.          2xx UPDATE Resp.     RFC 3311  N   Y    Y

   The 'Early' column indicates which patterns may be used to modify the
   established session in an early dialog.  There are two ways to
   exchange a subsequent offer/answer in an early dialog.

Here, UPDATE MUST not be used for initiating the session but it shall be used in the early dialog.
AFAIK, UPDATE With SDP is mostly useful in early-dialog as RE-INVITE with SDP is possible in the
mid-dialog ("Est")

Justin,

Richard provided some of the usecase using forked responses.  This usecase is not the corner
case and it is very normal scenario in SIP O/A. I'll add further usecase for this scenario:

One of the main usecase of UPDATE with SDP in the early dialog is remote ringback tone (RRBT)
from media server Usecase. Multiple scenario involved in this usecase:


1)      First usecase, the first offer/answer is completed between  Originating endpoint and
        media server, UPDATE with second offer is sent towards Originating endpoint to update
        SDP with terminating Endpoint.

2)      Second usecase, the first offer/answer is completed with direction attribute as

Sendonly in the answer by which early dialog is only for remote ringback tone and  not

actual session establishment.  second offer in UPDATE is updated the direction attribute

as "sendrecv".

3)      Combination of First and second usecase wherein media server answer with sendonly,

UPDATE with SDP for "sendrecv".


Common Topology:

Originating
Browser--------------Gateway---------SoftSwitch/PBX(B2BUA)-------SIP UA (Media Server/IVR)
                                                                                      |
                                                                                      -------------------SIP UA (IP phone)

RFC 6337 has lot of other corner scenario. Could you please let me know how to map the second
OFFER and in PRANSWER state of the Originating endpoint (webbrowser in JSEP).

In case JSEP O/A is based on OFFER & ANSWER states only, this scenario will not hit.

Thanks
Partha




From: rtcweb-bounces@ietf.org [mailto:rtcweb-bounces@ietf.org] On Behalf Of Nataraju A.B
Sent: Tuesday, May 01, 2012 9:42 PM
To: Ejzak, Richard P (Richard)
Cc: rtcweb@ietf.org
Subject: Re: [rtcweb] SDP_PRANSWER followed by SDP_OFFER scenario in JSEP

The original scenario mentioned by Partha is quite logical and acceptable, since there is only one O/A open all the times.

If not handled properly, this additional UPDATE (with OFFER2) during the lifetime of INVITE transaction lead to ambiguities. Hence rfc6337, don't support this as a valid O/A.

On Tue, May 1, 2012 at 7:27 PM, Ejzak, Richard P (Richard) <richard.ejzak@alcatel-lucent.com<mailto:richard.ejzak@alcatel-lucent.com>> wrote:
Hi Justin, Partha,
The call flow from Partha is a very reasonable one in the presence of SIP forking.  Let's assume that a first target responded with an SDP answer in a 183 that must be treated as a PRANSWER since other targets have not yet had a chance to respond.  Then the first target sends an UPDATE with offer2.

As far as SIP is concerned, there is no such thing as a PRANSWER.  The first target already responded with an SDP ANSWER and wants to UPDATE with a new offer.  This is perfectly legitimate and common SIP usage.  PRANSWER is a local construct that should be usable by the application to support more complex offer/answer cases like forking.

You must respond to this offer by cloning the peer connection, closing the clone with an ANSWER identical to the previous PRANSWER and then applying offer2 to the clone (or just applying the offer2 directly with the understanding that the previous transaction is closed).  The original peer connection must revert to the original OFFER state to allow for other targets to respond.

Alternately, the original peer connection can support the first target and a new clone created if there is the potential for other forked responses to the original offer.  Either way can be made to work.

This is a perfectly reasonable SIP use case that explains why we need to be able to clone the peer connection.

Richard

________________________________
From: rtcweb-bounces@ietf.org<mailto:rtcweb-bounces@ietf.org> [mailto:rtcweb-bounces@ietf.org<mailto:rtcweb-bounces@ietf.org>] On Behalf Of Justin Uberti
Sent: Monday, April 30, 2012 9:51 PM
To: Nataraju A.B
Cc: rtcweb@ietf.org<mailto:rtcweb@ietf.org>
Subject: Re: [rtcweb] SDP_PRANSWER followed by SDP_OFFER scenario in JSEP

Yes, I was under the impression that SIP enforced this requirement, although I am probably not aware of all the corner cases. Is there a real-world scenario where this flow is required?
On Mon, Apr 30, 2012 at 10:55 AM, Nataraju A.B <nataraju.sip@gmail.com<mailto:nataraju.sip@gmail.com>> wrote:
If the scenario considered is without reliable provisional responses. Then the first ANSWER must be in 200-INV and no more O/A allowed during INVITE(initial) transaction.

Basic requirement for reliable and unambiguous O/A is - At any point in time there could be only one O/A open.

Also only one O/A suggested during INVITE(initial) transaction.

For reference, rfc6337, list outs different O/A models...

<rfc6337>





            Offer                Answer             RFC    Ini Est Early

     -------------------------------------------------------------------

     1. INVITE Req.          2xx INVITE Resp.     RFC 3261  Y   Y    N

     2. 2xx INVITE Resp.     ACK Req.             RFC 3261  Y   Y    N

     3. INVITE Req.          1xx-rel INVITE Resp. RFC 3262  Y   Y    N

     4. 1xx-rel INVITE Resp. PRACK Req.           RFC 3262  Y   Y    N

     5. PRACK Req.           200 PRACK Resp.      RFC 3262  N   Y    Y

     6. UPDATE Req.          2xx UPDATE Resp.     RFC 3311  N   Y    Y



          Table 1: Summary of SIP Usage of the Offer/Answer Model
</rfc6337>

Thanks,
Nataraju A B

On Mon, Apr 30, 2012 at 12:31 PM, Ravindran, Parthasarathi <pravindran@sonusnet.com<mailto:pravindran@sonusnet.com>> wrote:
Justin/Cullen,

Could you please explain in case for an SDP_OFFER(1), the remote entity replies with SDP_PRANSWER followed by new SDP_OFFER (2) what is the expected behavior. The exact callflow is as follows:


Browser1-------------------------Browser2(SIP-JSEP gateway)
   |        SDP_OFFER(1)            |  INV with offer1
   |------------------------------->|--->
   |       SDP_PRANSWER(1)          |  183 with answer1
   |<-------------------------------|<---
   |       SDP_OFFER(2)             |   UPDATE with offer2
   |<-------------------------------|<---
   |       SDP_ANSWER(2?)           |
   |--------------------->?

The reason for this O/A callflow is due to UPDATE method (RFC 3311) mapping in Browser 2 (SIP-JSEP gateway).

Thanks
Partha

PS: For simplicity, PRACK message exchange is not chosen in SIP side.



_______________________________________________
rtcweb mailing list
rtcweb@ietf.org<mailto:rtcweb@ietf.org>
https://www.ietf.org/mailman/listinfo/rtcweb



--
Thanks,
Nataraju A.B.





--
Thanks,
Nataraju A.B.