Re: [rtcweb] Review of draft-ietf-rtcweb-jsep-07
Paul Kyzivat <pkyzivat@alum.mit.edu> Sat, 19 July 2014 13:35 UTC
Return-Path: <pkyzivat@alum.mit.edu>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 43D3E1B280E for <rtcweb@ietfa.amsl.com>; Sat, 19 Jul 2014 06:35:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.235
X-Spam-Level:
X-Spam-Status: No, score=-1.235 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, SPF_SOFTFAIL=0.665] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CysFZ-mQi-Ud for <rtcweb@ietfa.amsl.com>; Sat, 19 Jul 2014 06:35:35 -0700 (PDT)
Received: from qmta10.westchester.pa.mail.comcast.net (qmta10.westchester.pa.mail.comcast.net [IPv6:2001:558:fe14:43:76:96:62:17]) by ietfa.amsl.com (Postfix) with ESMTP id 39E9D1B2812 for <rtcweb@ietf.org>; Sat, 19 Jul 2014 06:35:35 -0700 (PDT)
Received: from omta19.westchester.pa.mail.comcast.net ([76.96.62.98]) by qmta10.westchester.pa.mail.comcast.net with comcast id UCkC1o00427AodY5ADbark; Sat, 19 Jul 2014 13:35:34 +0000
Received: from Paul-Kyzivats-MacBook-Pro.local ([50.138.229.164]) by omta19.westchester.pa.mail.comcast.net with comcast id UDba1o00H3ZTu2S3fDbaXr; Sat, 19 Jul 2014 13:35:34 +0000
Message-ID: <53CA7426.6030602@alum.mit.edu>
Date: Sat, 19 Jul 2014 09:35:34 -0400
From: Paul Kyzivat <pkyzivat@alum.mit.edu>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:24.0) Gecko/20100101 Thunderbird/24.6.0
MIME-Version: 1.0
To: kiran.guduru@samsung.com, "rtcweb-request@ietf.org" <rtcweb-request@ietf.org>, "rtcweb@ietf.org" <rtcweb@ietf.org>
References: <58.C9.03708.ACAD9C35@epcpsbgx1.samsung.com>
In-Reply-To: <58.C9.03708.ACAD9C35@epcpsbgx1.samsung.com>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 7bit
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20140121; t=1405776934; bh=N9AKKgbqjExBxxXQv6BkscFdUlN9JvTwPRQctguryiQ=; h=Received:Received:Message-ID:Date:From:MIME-Version:To:Subject: Content-Type; b=VGPNEbV+fV74IdFGBmrAyzlU/7/pq6Z7drkWO+q51eGDcY8RN9dLTqCj6Q+XOPpis c9jTqzWJpVbrcIGgEeSb7qrEs5AieC8GkbmrZY+nrkEaTWkmBdLG2gLnX7wy8V6pvJ FdpRoZ9jmrhGT+rSW1oVdRWmNy6sIIGmzu2p4Odv/+AjwPstMYnpvocOYlTKXQyGDI w16uBquN5K6qNIJVTUNweE/02R+78bIBK15O9m62Ga3oD9c/z/HYSZR+ACOOhJpD+s EmjYBprSCWjGKROcmrbSBYyllDTKTQgRyOTvUD6SAAzPInNg4W66jg6827vO/UeG/g KtWAi75jiCCLg==
Archived-At: http://mailarchive.ietf.org/arch/msg/rtcweb/MgWn05y53VTIZmP8juGrs5PtH2o
Subject: Re: [rtcweb] Review of draft-ietf-rtcweb-jsep-07
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.15
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: Sat, 19 Jul 2014 13:35:37 -0000
Kiran, My need won't be satisfied by plausible constraints. For instance, to interwork with CLUE it will be necessary to add an "a=group:clue" and include in it those m-lines that are to be "clue controlled". And that is needed in both offer and answer processing. Thanks, Paul On 7/18/14 10:41 PM, Kiran Kumar Guduru wrote: > Dear Paul, > > My comment is only regarding the comments on section 6 of the JSEP draft. > > The sdp mangling described in section 6 may result in various error > scenarios. > > In that section, it is described like most of the parameters can be > modified thorugh constraints. > > The required modification, I found, which cannot not be done by the > constraints is "Remove or reorder of codecs (m=)" > > In order to avoid the SDP mangling at Java Script application level, I > submitted a draft for changing the codec preferences > http://tools.ietf.org/html/draft-guduru-rtcweb-codec-preferences-01. > (Please review it). > > If this proposal is acceptable to the group, I hope we can remove > section 6 from JSEP draft. > > (Expecting that we can find alternatives for adding extra attributes > like CLUE as identified by you, for example by extending the > proposed RTCRTPSender/Receiver by adding a generic setSdPAttribute (key, > value) method). > > Thanks, > > Kiran. > > > > -------Original Message-------- > Sent: Paul Kyzivat > Date: Fri, 18 Jul 2014 14:32:24 -0400 > Subject: [rtcweb] Review of draft-ietf-rtcweb-jsep-07 > > I just did my first thorough read-through of JSEP in quite some time. I > came away with a number of concerns: > > Section 1.1: > > When describing offers, modification by the application is mentioned: > > JSEP's handling of session descriptions is simple and > straightforward. Whenever an offer/answer exchange is needed, the > initiating side creates an offer by calling a createOffer() API. The > application *optionally modifies that offer*, and then uses it to set > up its local config via the setLocalDescription() API. > > but when describing answers it is not: > > When the call is accepted, the callee uses the createAnswer() API to > generate an appropriate answer, applies it using > setLocalDescription(), and sends the answer back to the initiator > over the signaling channel. When the offerer gets that answer, it > installs it using setRemoteDescription(), and initial setup is > complete. > > And Section 6 only talks about changing offers, not answers. It is > equally important to be able to modify answers. (More on this in later > comment on section 6.) > > Section 4.1.4: > > The only difference between a provisional and final answer is that > the final answer results in the freeing of any unused resources that > were allocated as a result of the offer. As such, the application > can use some discretion on whether an answer should be applied as > provisional or final, and can change the type of the session > description as needed. For example, in a serial forking scenario, an > application may receive multiple "final" answers, one from each > remote endpoint. The application could choose to accept the initial > answers as provisional answers, and only apply an answer as final > when it receives one that meets its criteria (e.g. a live user > instead of voicemail). > > Issue: in this forking case, until the final selection is made it is > unclear which one will need ICE completed. Only when a setlocal is done > on one of the answers will ICE begin to be performed. Then, if another > answer is provisionally set, won't that stop ICE for the prior one? And > won't it require new candidates? What if one of the earlier ones is > eventually chosen as final? > > And what if ICE completes for one of the candidates? Can't media start > to flow? Then what if a different candidate is set as the final answer? > > Section 4.1.4.1: > > I question the following: > > ... While it is good practice to send an immediate > response to an "offer", in order to warm up the session transport and > prevent media clipping, the preferred handling for a web application > would be to create and send an "inactive" final answer immediately > after receiving the offer. Later, when the called user actually > accepts the call, the application can create a new "sendrecv" offer > to update the previous offer/answer pair and start the media flow. > > This is very unfriendly when receiving calls that might be forked. By > immediately "answering" a call before knowing if the user will accept > it, you preempt the possibility that it will be answered on some other fork. > > For instance, if a call could come to your browser, or be sent to an > answering service, and your broswer is on but you aren't present to > accept the call, then the call will be accepted and then dropped rather > than sent to the answering machine. > > So this technique should not be used if there is any possibility that > the request could be coming from a source that might try other > possibilities. > > Section 5.2.1: > > When createOffer is called for the first time, the result is known as > the initial offer. > > By this definition, if a peer connection initially *received* an offer > and sent an answer, and then it later sends an offer then that offer > would be considered an initial offer. > > I think perhaps what is intended is: > > When createOffer is called before setLocal has been called with > an offer, the result is known as the initial offer. > > The following doesn't support the "balanced" BUNDLE policy: > > Once all m= sections have been generated, a session-level "a=group" > attribute MUST be added as specified in [RFC5888]. This attribute > MUST have semantics "BUNDLE", and MUST include the mid identifiers of > each m= section. The effect of this is that the browser offers all > m= sections as one BUNDLE group. However, whether the m= sections > are bundle-only or not depends on the BUNDLE policy. > > Section 5.2.2 says: > > o If any MediaStreamTracks have been added, and there exist recvonly > m= sections of the appropriate media type with no associated > MediaStreamTracks, or rejected m= sections of any media type, > those m= sections MUST be recycled, and a local MediaStreamTrack > associated with these recycled m= sections until all such existing > m= sections have been used. This includes any recvonly or > rejected m= sections created by the preceding paragraph. > > This fails to say anything about codec compatibility. SDP O/A requires > the answer to be a subset of the offer in terms of PT/codec > configuration. You should not use the same m-line unless there is a > desire to use the same settings for the new track as are currently in > use in the other direction. > > Section 5.3.1: > > When createAnswer is called for the first time after a remote > description has been provided, the result is known as the initial > answer. > > By this definition, if a peer connection initially sent an offer and > received an answer, and then it later receives an offer then the answer > to that first *received* offer would be considered an Initial Answer. > > I think perhaps what is intended is: > > When createAnswer is called before setLocal has been called with > an offer, the result is known as the initial answer. > > When specifying the mapping of local tracks to m-lines in a received > offer, there is again no discussion of codec compatibility. It is quite > possible that the m-line chosen by the algorithm in this section won't > have compatible codec attributes, but some other m-line will. > > Sections 5.3.2, 5.3.3, and 5.4-5.7: > > Are these empty because the content is yet to be written? > > Section 6: > > Other likely changes are addition of extra attributes and maybe other > parameters. For instance, CLUE will want to add another grouping construct. > > Thanks, > Paul > >
- [rtcweb] Review of draft-ietf-rtcweb-jsep-07 Paul Kyzivat
- Re: [rtcweb] Review of draft-ietf-rtcweb-jsep-07 Kiran Kumar Guduru
- Re: [rtcweb] Review of draft-ietf-rtcweb-jsep-07 Paul Kyzivat
- Re: [rtcweb] Review of draft-ietf-rtcweb-jsep-07 Christer Holmberg
- Re: [rtcweb] Review of draft-ietf-rtcweb-jsep-07 Kiran Kumar Guduru
- Re: [rtcweb] Review of draft-ietf-rtcweb-jsep-07 Kevin Dempsey
- Re: [rtcweb] Review of draft-ietf-rtcweb-jsep-07 Justin Uberti
- Re: [rtcweb] Review of draft-ietf-rtcweb-jsep-07 Christian Groves
- Re: [rtcweb] Review of draft-ietf-rtcweb-jsep-07 Justin Uberti
- Re: [rtcweb] Review of draft-ietf-rtcweb-jsep-07 Paul Kyzivat
- Re: [rtcweb] Review of draft-ietf-rtcweb-jsep-07 Paul Kyzivat
- Re: [rtcweb] Review of draft-ietf-rtcweb-jsep-07 Stefan HÃ¥kansson LK
- Re: [rtcweb] Review of draft-ietf-rtcweb-jsep-07 Justin Uberti
- Re: [rtcweb] Review of draft-ietf-rtcweb-jsep-07 Paul Kyzivat
- Re: [rtcweb] Review of draft-ietf-rtcweb-jsep-07 Justin Uberti
- Re: [rtcweb] Review of draft-ietf-rtcweb-jsep-07 Paul Kyzivat
- Re: [rtcweb] Review of draft-ietf-rtcweb-jsep-07 Justin Uberti
- Re: [rtcweb] Review of draft-ietf-rtcweb-jsep-07 Paul Kyzivat
- Re: [rtcweb] Review of draft-ietf-rtcweb-jsep-07 Jonathan Lennox