Re: [rtcweb] Review of draft-ietf-rtcweb-jsep-07
Justin Uberti <juberti@google.com> Wed, 23 July 2014 03:18 UTC
Return-Path: <juberti@google.com>
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 F00C91A0304 for <rtcweb@ietfa.amsl.com>; Tue, 22 Jul 2014 20:18:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.378
X-Spam-Level:
X-Spam-Status: No, score=-1.378 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, NORMAL_HTTP_TO_IP=0.001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] 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 QoHTpJss9LiR for <rtcweb@ietfa.amsl.com>; Tue, 22 Jul 2014 20:18:37 -0700 (PDT)
Received: from mail-vc0-x229.google.com (mail-vc0-x229.google.com [IPv6:2607:f8b0:400c:c03::229]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C7A9D1A02FF for <rtcweb@ietf.org>; Tue, 22 Jul 2014 20:18:36 -0700 (PDT)
Received: by mail-vc0-f169.google.com with SMTP id hu12so1073876vcb.14 for <rtcweb@ietf.org>; Tue, 22 Jul 2014 20:18:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=8VIiHODRAP0ESOMQT8l1p6/CyTDk4VLurAxpIzuSEbw=; b=KN8i1UUKzYfU/kJzBEKMv4o8vuN/ic9lb7o1dcsORT7A15RDVoVkMLCVC5RyZYAtyt 0hEJDkXFW+Amx/O9KvH5TECfJ4VUB+EVpiuyU2TS4fCJXO/G4UgXGEEh2NmNPAGwAJOo DoD1sINs85vZbW4JTuFgZ0bRxPmIMG0bChW+jG04Y+L6PyRHU0GNoo2KO5/jwsNC1SwU 0L5aNQBE0RYD+6p7xj9PFDlOxzuGsprxV7wRcT9Mf7vU61oiK2XKS+kK7zIV/eL1YraU kIuJt4nGV1hJ7a5bKZ3CRcwD0qkFvP3x+zgSI4gklQKxXk6HZotLQVvPvIcCu9jWlouS Pxkg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=8VIiHODRAP0ESOMQT8l1p6/CyTDk4VLurAxpIzuSEbw=; b=QzzPq8D1KXxqrf6W+3yCZChSTDj8O+nte5xcWXLqqQa26EUVZL84X3hul7gnXMd8V8 WpnjtxVPH6wla/gZeTpj7rTEb2vXfncmvIhZVhGx/gnmPwC7Rn5haBiPaN9lsjTFqTmv ox8lzmq4NQIUjuAyAZjUgVPiPxY+9yddUpY1QtOMsZY4oTpmQgWHX236nhppjKODvf0K 6YSOgMJuEDJz5hIkDu+RcIPqOasdZWMRjVnhhUP4+/LIe+hQO691Df4tbH7Fdw2MAwg7 6Xr1FhwBAq3RobIh53rfYNLbT6MP44kF3Aa/hob0JGOBgddPl2enfYMmboerEPce8TNk hYuw==
X-Gm-Message-State: ALoCoQmUYJFiIi8FkOlkKYPSCV29WTqstwH99NXLcywX5g5ahXyFDxhMA9F7PK435nFX3Zf3f3K4
X-Received: by 10.52.228.40 with SMTP id sf8mr17660690vdc.78.1406085515846; Tue, 22 Jul 2014 20:18:35 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.52.66.242 with HTTP; Tue, 22 Jul 2014 20:18:15 -0700 (PDT)
In-Reply-To: <53CEFA2C.8040407@nteczone.com>
References: <BA.FF.03708.B6C7CC35@epcpsbgx1.samsung.com> <CAMvTgceedwBHW-x+vYArPfh4eW3mx-2_6tMkhkjbFST9zO4KCw@mail.gmail.com> <53CEFA2C.8040407@nteczone.com>
From: Justin Uberti <juberti@google.com>
Date: Tue, 22 Jul 2014 23:18:15 -0400
Message-ID: <CAOJ7v-0nX51pgUC+h1kpr6VAnLBejoF0-DogQ=meNEHbGXKhZA@mail.gmail.com>
To: Christian Groves <Christian.Groves@nteczone.com>
Content-Type: multipart/alternative; boundary="089e011602ceb2445e04fed3cb10"
Archived-At: http://mailarchive.ietf.org/arch/msg/rtcweb/fqSPmGpU8RcQsmVAiSCDkmIP9PI
Cc: "rtcweb@ietf.org" <rtcweb@ietf.org>
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: Wed, 23 Jul 2014 03:18:40 -0000
On Tue, Jul 22, 2014 at 7:56 PM, Christian Groves < Christian.Groves@nteczone.com> wrote: > The browser would delay the establishment of media that are part of the > "a=group:clue" group until a CLUE exchange has taken place and those media > have been selected via a CLUE configure message. I'm not sure if that fits > your criteria for acting differently? > > The browser doesn't understand a=group:clue. How could it know that it needs to wait for CLUE messaging to complete? > On 21/07/2014 6:34 PM, Kevin Dempsey wrote: > >> Would the browser be expected to act differently with "a=group:clue"? If >> not, then that is really part of the signalling and not part of the >> createXxx/setXxxDescription interface. >> >> The SDP passed to setXxxDescription and the SDP sent as part of the >> signalling (if SDP is used) do not need to be identical. >> >> >> On 21 July 2014 03:35, Kiran Kumar Guduru <kiran.guduru@samsung.com >> <mailto:kiran.guduru@samsung.com>> wrote: >> >> It seems there is a small mis-understanding here. I agree there is >> a need for parsing and editing SDP by JS application for now. >> >> I am not saying that constraints will do everything. >> >> My intention is, to find the possibilities to extend the API of >> existing RTCPeerConnection and proposed RTCRTPSender/Receiver to >> add the attributes required by JS application. >> >> For now, I proposed solution for one such kind of problem, i.e., >> prioritizing codecs. >> >> setSdPAttribute (key, value) is just an example on top of my head, >> which might solve this. But we can really figure out this after >> getting the proposed API (RTCRTPSender/Receiver ) in draft. >> >> Regards, >> >> Kiran >> >> ------- *Original Message* ------- >> >> *Sender* : Paul Kyzivat<pkyzivat@alum.mit.edu >> <mailto:pkyzivat@alum.mit.edu>> >> >> *Date* : Jul 19, 2014 22:35 (GMT+09:00) >> >> *Title* : Re: [rtcweb] Review of draft-ietf-rtcweb-jsep-07 >> >> >> 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 <http://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 mailing list >> rtcweb@ietf.org <mailto:rtcweb@ietf.org> >> https://www.ietf.org/mailman/listinfo/rtcweb >> >> >> >> >> >> _______________________________________________ >> rtcweb mailing list >> rtcweb@ietf.org >> https://www.ietf.org/mailman/listinfo/rtcweb >> > > _______________________________________________ > rtcweb mailing list > rtcweb@ietf.org > https://www.ietf.org/mailman/listinfo/rtcweb >
- [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