00:12:30 jesup has joined #webrtc 00:13:26 adam has joined #webrtc 00:26:49 jib has joined #webrtc 00:31:58 adam has joined #webrtc 00:33:39 hta has joined #webrtc 00:37:19 tao has joined #webrtc 00:39:27 stefanh has joined #webrtc 00:39:49 elagerway has joined #webrtc 00:42:29 tcai has joined #webrtc 00:42:40 Marcus_Altman__ has joined #webrtc 00:47:14 Agenda draft http://www.w3.org/2011/04/webrtc/wiki/November_11_-_November_12_2013#Tuesday 00:48:51 fluffy has joined #webrtc 00:51:09 jib has left #webrtc 00:52:06 Marcus_Altman__ has joined #webrtc 00:52:14 Takahiro_ has joined #webrtc 00:52:38 ekr has joined #webrtc 00:52:39 dom has joined #webrtc 00:53:02 burn has joined #webrtc 00:53:37 DanS has joined #webrtc 00:53:50 http://www.w3.org/2011/04/webrtc/wiki/November_11_-_November_12_2013#Tuesday 00:54:21 jinkyu_seong has joined #webrtc 00:54:32 jesup has joined #webrtc 00:54:51 AndyF has joined #webrtc 00:55:06 jib has joined #webrtc 00:55:54 mreavy has joined #webrtc 00:56:33 juberti has joined #webrtc 00:58:35 rbarnes has joined #webrtc 00:58:58 adambe has joined #webrtc 00:59:25 kotakagi has joined #webrtc 00:59:37 stephane has joined #webrtc 00:59:55 Agenda: http://www.w3.org/2011/04/webrtc/wiki/November_11_-_November_12_2013#Tuesday 01:00:11 Zakim has joined #webrtc 01:00:17 Zakim, this is WebRTC 01:00:17 ok, dom; that matches UW_WebRTC()7:00PM 01:00:27 Zakim, who's on the call? 01:00:27 On the phone I see +1.267.934.aaaa, +46.8.50.51.aabb 01:00:30 zakim should be in the call now. 01:00:38 Chair: stefanh, hta 01:01:23 zakim, I am aaaa 01:01:23 +jib; got it 01:02:03 http://en.wikipedia.org/wiki/Condorcet_voting 01:03:13 silvia has joined #webrtc 01:03:25 silvia1 has joined #webrtc 01:03:25 christer has joined #webrtc 01:03:29 scribenick:juberti 01:03:37 DanD has joined #webrtc 01:05:40 Please do not get me started on voting methods 01:05:54 Just search for the words "condorcet cycle" 01:05:58 http://lists.w3.org/Archives/Public/public-webrtc/2013Nov/0005.html 01:06:08 yahui has joined #webrtc 01:06:16 Tony has joined #Webrtc 01:06:45 ijongcheol has joined #webrtc 01:06:53 My email message about the DataChannel stuff: http://www.w3.org/mid/5281767C.7010101@jesup.org 01:06:58 "createDataChannel(), section 5.1.2" 01:08:07 burn: invalidStateError for closed(), as for other methods 01:10:10 burn: what should limits on max retransmits be? 01:10:24 ekr: doesn't SCTP have some built-in smaller limit 01:10:57 martin: any positive number is fine 01:11:20 ekr: limit numbers can only shrink implementation limits, not increase. impl not required to do anything more. 01:12:39 action adambe: modify the maxRetransmitTime and maxRetransmits text to say that the max values do not require the implementation to go over its internal builtins 01:12:39 Created ACTION-98 - Modify the maxretransmittime and maxretransmits text to say that the max values do not require the implementation to go over its internal builtins [on Adam Bergkvist - due 2013-11-19]. 01:12:45 juberti: what should app do if it wants the defaults? 01:12:52 silvia has joined #webrtc 01:13:20 jesup: set the channel as reliable? 01:13:49 jesup: app developer does nothing 01:14:01 dom_proj has joined #webrtc 01:14:03 the default is reliable. 01:14:30 martin: can't set max retransmits and max retransmit time. 01:14:37 results in a syntaxerror, is this correct? 01:14:41 burn: yes 01:15:31 juberti: if you want unreliable, set maxretransmits to zero 01:15:37 martin_ has joined #webrtc 01:16:00 jesup: yes. and if you want something else, you can set that directly. 01:16:17 ekr: how do you tell if the sctp channel drops out? 01:16:35 ekr: how do you know sctp stack gave up on sending? 01:16:44 martin: let me check. 01:17:04 action martin to determine whether there is some value of maxRetransmits that is effectively "reliable" 01:17:05 Created ACTION-99 - Determine whether there is some value of maxretransmits that is effectively "reliable" [on Martin Thomson - due 2013-11-19]. 01:17:07 martin: 01:17:28 kodonog has joined #webrtc 01:17:49 derf: there are some max retransmit limits in SCTP 01:19:18 moving on 01:19:47 burn: if protocol attribute isn't right, throw syntaxerror and bail out. Is this detailed enough? 01:20:21 adambe: this is trying to be like websockets 01:20:48 jesup: we just updated the ietf specs to include the IANA registry for these things 01:20:58 yusuke has joined #webrtc 01:21:36 BY has joined #WebRTC 01:21:45 burn: what should happen if you set the wrong protocol? 01:22:16 jesup: nothing is being done with this value except being passed through to the other side 01:22:29 juberti: so what validation will the webrtc impl do? 01:22:39 jesup: none, really, aside from checking DOMString 01:22:48 hta: is this utf-8, or utf-16? 01:23:14 jesup: there are no requirements. 01:23:38 RFC 4960 defines limits to the number of retransmissions. This would correspond to the limits that the implementation provides on retransmission. This would produce a practical upper limit in the number of retransmissions. Two values are recommended: 5 for the path, 10 for the association. Since we have only a single path, the former (5) would apply by default. http://tools.ietf.org/html/rfc4960#section-15 01:23:39 cullen: is this utf-8, or a bag of bits? 01:24:45 jesup: foobar is an acceptable 01:24:53 value 01:25:09 I am going to recommend that this be left to implementations. If they want to be super-reliable, then they can set higher values for Path.Max.Retrans, but there is no obligation to support a specific minimum. 01:25:23 cullen: since there is no practical checking, we should just remove this text. 01:25:57 burn: if id is already taken, throw exception and bail out 01:26:56 burn: this only happens for a non-negotiated channel, or reusing an id from an already negotiated channel 01:27:14 jesup: agree 01:27:21 martin: invalid-state error? 01:27:30 http://www.w3.org/TR/dom/#error-names-0 01:27:40 robin has joined #webrtc 01:27:49 hta: invalid-state already exists; channel is in invalid state 01:29:01 hta: resource-in-use seems pretty good 01:29:08 jesup: agree 01:29:09 BTW, SyntaxError is totally inappropriate for what was described. It talks specifically about strings. 01:30:39 juberti: this means we need to revisit maxretransmittime, maxretransmits 01:31:03 martin: could be not-supported errors 01:31:32 +Jim_Barnett 01:32:13 JimBarnett has joined #webrtc 01:32:32 martin: leaving this open to editorial discussion 01:32:36 It's the chicken's way out 01:32:44 burn: tentatively not-supported 01:32:51 burn: moving on, section 5.2 01:34:04 burn: what should happen if we get a channel open request from the other side and a failure occurs? 01:34:46 jesup: i don't see any need for that 01:35:12 BTW, the quoted text doesn't read very well here. 01:36:19 "NetworkError" seems to be the right one for this case 01:36:29 jesup: dtls could go down, sctp could go down, 01:36:41 jesup: but app couldn't do much about this 01:38:07 juberti: would this trigger on ICE failure? 01:38:21 juberti: no, because ICE could be restarted by app 01:38:57 martin: that makes sense; DTLS or SCTP error would propagate upwards and result in this 01:39:05 re binaryType, the Web Sockets spec has switched to an enum for it, which we should probably do as well; in case, invalid values will raise TypeError 01:39:13 jesup: agreement on "NetworkError" for this case 01:39:22 burn: 5.2.1 - binaryType 01:39:33 jesup: should be like websockets 01:40:09 dom: websockets doesn't use strings? 01:40:26 -> http://dev.w3.org/html5/websockets/#the-websocket-interface Web Sockets Editors draft uses enum 01:40:26 not sure i got that right 01:40:33 LeiWANG has joined #webrtc 01:40:55 s/websockets doesn't use strings?/websockets now uses enum; we should do the same and get error handling for free from WebIDL/ 01:41:07 burn: websockets uses enums, checking will automatically be done for us. agreed. 01:41:31 burn: protocol attrib. 5.2.1. 01:41:48 jesup: as previously discussed. 01:41:58 jesup: i.e. no checking needed. 01:42:10 burn: send, section 5.2.2. 01:42:39 burn: send might not work if channel was created by remote peer in negotiated form. 01:42:49 GANG has joined #webrtc 01:44:21 jeromemarcon has joined #webrtc 01:44:38 jesup: to receive data on a negotiated channel, both sides need to install a negotiated channel 01:44:47 martin: not sure about that 01:44:56 martin: we'll figure it out 01:45:32 burn: if channel is still 'connecting', throw invalid state and fail 01:46:09 kotakagi_ has joined #webrtc 01:46:48 jesup: do you need to wait for onopen? 01:47:00 jesup: that's what websockets does 01:47:37 juberti: wouldn't we want to do the same 01:47:50 burn: keep the way it is then? 01:47:57 stephane_ has joined #webrtc 01:47:58 room: yes 01:48:19 burn: attempts to send when buffer is full should lead to close with error 01:48:39 jesup: that's copied from websockets 01:49:42 Zakim, who's noisy 01:49:42 I don't understand 'who's noisy', juberti 01:49:46 It's NetworkError 01:49:50 Zakim, who is noisy 01:49:50 I don't understand 'who is noisy', juberti 01:49:53 yimin has joined #webrtc 01:50:03 jeromemarco has joined #webrtc 01:50:10 Zakim, who is making noise 01:50:10 I don't understand 'who is making noise', juberti 01:50:54 martin: text needs to be revised 01:50:56 The conclusion was to remove the e.g 01:51:01 burn: can someone please summarize what 01:51:12 If the data can't be sent, NetworkError and close the channel. 01:52:07 richt has joined #webrtc 01:52:15 burn: when does error occur? 01:52:27 errors need to be reported asynchronously from send() 01:52:45 NetworkError event that is 01:53:02 martin: from onerror on datachannel 01:53:03 use "fire an error event", as is done in websockets 01:53:32 pthatcher: is there a state transition on the data channel? 01:54:06 juberti: do we get an onerror and a statechange callback 01:54:17 Zakim, who's noisy? 01:54:18 martin: let's have a look 01:54:25 Zakim, who's on the call? 01:54:25 On the phone I see jib, +46.8.50.51.aabb, Jim_Barnett 01:54:28 dom, listening for 10 seconds I could not identify any sounds 01:54:38 Zakim, mute jib 01:54:38 jib should now be muted 01:54:40 Zakim, mute JimBarnett 01:54:40 Jim_Barnett should now be muted 01:55:07 action: adambe to clarify whether RTCdatachannel close and error events are mutually exclusive or whether error + close is possible 01:55:08 Created ACTION-100 - Clarify whether rtcdatachannel close and error events are mutually exclusive or whether error + close is possible [on Adam Bergkvist - due 2013-11-19]. 01:55:29 Tony_ has joined #Webrtc 01:55:40 juberti: error type is NetworkError in onerror 01:55:47 room: agreed 01:55:56 burn: createDTMFSender, 6.1.1 01:56:29 richt_ has joined #webrtc 01:56:29 burn: if track argument isn't in RTCPeerConnection's localstreams, throw invalidMediaStreamTrackError 01:56:32 hta: that should be an invalidargumenterror exception, if there is such a thing 01:57:11 "InvalidAccessError" 01:57:16 "The object does not support the operation or argument. " 01:57:19 Tony has joined #Webrtc 01:57:30 adambe: "InvalidAccessError" 01:57:47 cullen: what about "invalidparametererror"? 01:57:53 martin: there is none 01:57:59 hta: let's add one 01:58:23 burn: let's propose this to the DOM folks. adambe to handle this. 01:58:41 burn: insert DTMF, section 6.2.2 01:59:15 burn: error for things outside of configured ranges 01:59:31 cullen: may I suggest, invalidparametererror 01:59:52 TZH has joined #webrtc 02:00:32 http://lists.w3.org/Archives/Public/public-webrtc/2013Nov/0005.html 02:01:00 juberti: what should happen if the other side doesn't support dtmf? 02:01:57 actually, that is indicated in the .canInsertDTMF property 02:02:11 -> http://dev.w3.org/2009/dap/vibration/ Vibration API truncates too long patterns 02:03:39 burn: throw notsupported 02:03:56 cullen: that seems weird - should it be invalid parameter? 02:05:14 burn: glad we are reviewing all of these. this is really iuseful 02:05:31 juberti: but our thinking seems to be evolving, so we may need to revisit our earlier choices 02:05:37 (I'm still not sure what the benefit is to throw instead of just clamping the values) 02:05:39 burn: yeah, agreed 02:05:44 For illegal values, can't we use SyntaxError here? It is a string after all 02:06:40 ywu has joined #webrtc 02:06:54 burn: back to these choices 02:06:55 zakim, unmute ji 02:06:55 'ji' is ambiguous, jib 02:07:02 zakim, unmute jib 02:07:02 jib should no longer be muted 02:07:42 jib, i think some of these values aren't strings. 02:07:58 insertDTMF() takes a string, no? 02:08:16 hta: no-dtmf-support is corner case, shouldn't result in an error 02:08:38 jib - duration isn't a string 02:08:58 taocai has joined #webrtc 02:09:29 burn: values outside allowed ranges leads to not-supported exception 02:09:59 Tony has joined #Webrtc 02:10:11 dom: what do we get by throwing an exception? 02:10:42 NotSupportedError is "The operation is not supported. " 02:11:54 action: burn to talk to dom about whether we should clamp or throw exception for invalid params to insertDTMF. 02:11:54 Created ACTION-101 - Talk to dom about whether we should clamp or throw exception for invalid params to insertdtmf. [on Daniel Burnett - due 2013-11-19]. 02:12:04 How about: sender.insertDTMF("215-x"); -> SyntaxError (in string), and sender.insertDTMF("123", -1); -> NotSupportedError ? 02:12:17 juberti: createDTMFSender fails if other side doesn't support DTMF. 02:12:28 jib, I think that sounds perfectly reasonable 02:12:45 though InvalidAccessError seems more in fitting with the descriptions 02:12:45 juberti: if that goes away in mid-call, canSendDTMF reports that value, but there is no exception thrown. 02:12:57 for the latter (-1 intertone gap) 02:12:57 NotSupportedError seems appropriate (the insertDTMF operation is not supported) 02:13:03 juberti: hta says this is a corner case. 02:14:06 TZH_ has joined #webrtc 02:15:56 juberti: forget everything i said before. 02:16:26 juberti: new agreement: createDTMFSender doesn't do any checking on remote DTMF capability. 02:16:48 juberti: insertDTMF _does_ check remote DTMF support, and that the MST is still valid, and the parameters are good. 02:16:52 where are we in the agenda? 02:16:55 GangL has joined #webrtc 02:17:02 if any are not good, throw not-supported exception. 02:18:37 juberti: so everything results in an exception, except for the edge case of remote side supports X-Y, and we send a Z. 02:18:39 silvia has joined #webrtc 02:18:55 cullen: we should say anything less than 0-9, *, # should be treated as no DTMF support 02:19:10 burn: stats model, 7.1. 02:20:00 burn: what should happen if you call getStats with an invalid selector (currently only MSTs are valid as selector) 02:20:09 hta: invalidargumentexception 02:20:43 burn: list of supported values is indicated by the enumerated type. see webidl 02:21:01 burn: delete note in the spec about other selectors 02:21:09 burn: getstats, 7.2.1 02:22:15 hta: getStats shouldn't throw if we call it after close(). 02:22:27 cullen: we should have an explicit note in the spec about this. 02:23:21 jan-ivar: should close() also be valid here? 02:23:26 ekr: yes, idempotent. 02:23:27 If we're overriding general guidance, we should always have a note, so close() should have some specific text too. 02:23:34 Tony has joined #Webrtc 02:24:32 the notion of "invalid selector" is not defined 02:24:51 it should at least be clarified here what we mean 02:25:12 ekr: prologue about invalid states is gross, we should have a general guidance and then list exceptions, instead of doing this on a method by method basis 02:25:44 burn: i prefer everything being explicit, easier for the developer 02:26:02 it's not easier for the developer 02:26:39 issue: should we refactor the generic guidance on error handling out of the spec 02:26:39 Created ISSUE-3 - Should we refactor the generic guidance on error handling out of the spec. Please complete additional details at . 02:26:46 burn: let's discuss this later 02:27:29 Travis has joined #webrtc 02:27:49 stefanh: use invalidparameter/illegalargument for getStats with invalid selector 02:27:54 hta: agreed 02:28:10 burn: RTCStats dictionary, 7.5 02:28:14 https://www.w3.org/2011/04/webrtc/track/issues/3 02:28:21 martin: The text is correct. 02:28:29 burn: What should the app do? 02:28:43 martin: It should ignore any unknown values. Just like any other dictionary. 02:29:13 if (isUnknown(stats)) { window.close(); } 02:29:32 "MUST" is not appropriate here; MUST in this spec should only apply to things relevant to User Agents, not to applications 02:29:48 while (isUnknown(stats)) { alert("not known!"); } 02:30:41 +1 02:31:39 juberti: move to skip identity discussion, since we don't have a working impl yet 02:32:08 ekr: let's not use that as an excuse to dump identity because we don't have as spec. 02:32:23 ekr: we have identity later. 02:32:35 hta: let's move on 02:33:25 frodek has joined #webrtc 02:34:16 jehoochen__ has joined #webrtc 02:37:34 yusuke has joined #webrtc 02:38:27 ijongcheol has joined #webrtc 02:39:45 yusuke_ has joined #webrtc 02:46:06 hiroki has joined #webrtc 02:49:34 Takahiro has joined #webrtc 02:54:59 rbarnes has joined #webrtc 02:55:26 trackbot has joined #webrtc 02:56:26 hiroki has joined #webrtc 03:01:43 lgombos has joined #webrtc 03:02:33 silvia has joined #webrtc 03:02:42 silvia1 has joined #webrtc 03:05:15 juberti: moving on to unannounced ssrc handling 03:05:37 hta: a=msid identifies streams/tracks consistently. 03:05:50 hta: what about non-webrtc endpoints, which don't send a=msid? 03:06:04 hta: they still expect sync/grouping 03:06:14 hta: behavior needs to be predictable 03:06:35 minami has joined #webrtc 03:07:48 predictable = media plays out when it arrives. 03:08:17 and media with a single CNAME should be synchronized (not 100% clear, see LS) 03:09:06 proposals for handling: all incoming media in one MS, each in its own MS, group in MS based on CNAME 03:10:13 cullen: what do you get if you get multiple SSRCs? 03:10:17 hta: multiple tracks. 03:11:39 hta: cname identifies sync context; exact language in 3550 is iffy 03:12:51 hta: same JS should result in same CNAME 03:13:07 hta: moving track from one stream to another when there are different CNAMEs is hard 03:13:48 martin: 2 streams - one with A and B, one with B and C - do they have same CNAMEs 03:13:55 ywu has joined #webrtc 03:14:16 martin: jonathan means they have clocks that advance at same rate 03:14:24 burn has joined #webrtc 03:14:43 cullen: lipsync existed long before LS was invented 03:14:48 For the minutes, I believe this topic of interoperability with non-WebRTC endpoints is out of scope for this group. 03:15:12 Tony has joined #Webrtc 03:15:38 I think we need to know what happens at the API level 03:16:16 juberti, what happens at the API level is that you talk to a WebRTC endpoint. The other side has to implement the APIs as described. 03:17:06 So we make msid as mandatory to use? 03:17:14 Once the scope includes non-WebRTC there is no longer any natural boundary for the scope. 03:17:50 burn: uh, it's toally news to me that interop isn't important 03:17:59 or ins cope 03:18:01 in scope 03:18:08 s/burn:/burn,/ 03:18:14 richt has joined #webrtc 03:18:25 ekr, the question burn is raising is on interop with legacy devices (rather than with other browsers) 03:18:33 Tony_ has joined #Webrtc 03:18:37 dom, yes, I understand that. I totally disagree that it's not in scope 03:18:56 hta: we don't know where to stick a new track without its CNAME. ANd we don't have CNAME in SDP always. 03:19:57 cullen: can we move a MST to another MS when RTCP arrives? 03:20:01 ekr: yuck 03:20:05 (I guess there is a question of whether there is a need for interoperable behavior in this space or it can be left to implementors to determine the best course of action) 03:20:19 dom, yes, I don't think that's acceptbale 03:20:30 hta: we need to either stuff in default group, or in its own 03:20:37 I don't want to see API changes just for non-WebRTC endpoints, because, again, there is no limit to the scope of changes that might be necessary. 03:20:58 hta: if we like what's in the document, we're finished. 03:21:00 burn, well we've already agreed to a bunch of such changes, such as for bundle-only 03:21:34 (which is one MST per MS) 03:21:42 ijongcheol has joined #webrtc 03:22:05 pthatcher: we can expose CNAME and then let app group as needed 03:22:27 ekr, that's not true. BUNDLE is not about legacy interop. It is very specifically about efficient firewall traversal which is directly relevant for WebRTC only communications 03:22:36 burn, I said "bundle only" 03:22:43 jesup: so this will be the case for a single audio and video stream? 03:22:56 Tony has joined #Webrtc 03:23:04 jesup: app developer probably won't be expecting this 03:23:23 cullen: it's not clear how you move this stuff around, the default should be a single MS 03:23:41 juberti: agree 03:24:56 juberti: do we really need an API for this? 03:24:57 Record this for posterity -- we will regret this scope creep. I will attempt to refrain from saying "I told you so" a year from now. 03:25:12 no you won't, burn 03:26:07 juberti: I think we should stuff everything into a single MS 03:26:10 richt_ has joined #webrtc 03:26:10 dom, :) 03:26:44 juberti: unless you set a=msid. 03:26:58 martin: the browser won't sync things that are totally out of sync anyway. 03:27:24 hta: suggestion is that all un-MSIDed SSRCS create tracks in a single default MSID 03:28:32 cullen: is CNAME part of stats? 03:29:22 juberti: not currently 03:29:44 hta: that is the full proposal. 03:31:38 Tony has joined #Webrtc 03:32:00 cullen: is there a real problem with adding a CNAME property> 03:33:20 frodek has joined #webrtc 03:33:32 cullen: what does a gateway need to do? 03:33:48 juberti: add 2 MSIDs: ms1 t1, and ms1 t2 or ms2 t1 03:33:57 cullen: how do you demux without the a=ssrc values? 03:34:02 AndyF has joined #webrtc 03:34:16 juberti: you're not BUNDLing, because legacy, so you can demux by 5-tuple 03:34:28 kodonog has joined #webrtc 03:34:56 adam: what happens if you get an invalid a=msid line 03:35:04 hta: then you have an illegal SDP 03:35:11 hta: what should you do with an illegal SDP? 03:36:01 hta: and there is a line needed for msid-semantic WMS. 03:36:22 juberti: will this show up on the screen? 03:36:38 or maybe hta: 03:36:48 I am now in complete control of hta's screen 03:37:28 pthatcher: should there be a default MSID? 03:37:31 martin: generate a default msid and it's all good 03:37:39 martin: no, generate one. 03:37:48 ekr: should be cryptographically random 03:37:54 juberti: and we're done. 03:38:21 yeah, 500bits of entropy 03:38:28 Leon has joined #webrtc 03:38:38 stephane has joined #webrtc 03:38:50 juberti: new topic: data channel 03:39:02 jesup: new drafts, etc, etc 03:39:20 jesup: open issue from IETF: max msg size 03:39:26 Topic: data channel 03:39:43 jesup: various proposals to set max msg size 03:40:03 jesup: would prefer to stay with something like websockets 03:40:16 jesup: where there is no specified max 03:41:20 jesup: websockets has no streaming interface. you get a blob that plops out. 03:41:52 cullen: how should file transfer stuff work then? 03:42:26 ekr: i can figure out how to chew up memory and cpu in js in other ways no problem. 03:43:00 AndyF_ has joined #webrtc 03:43:07 mchampion has joined #webrtc 03:43:13 silvia has joined #webrtc 03:43:37 dom - we reconnected to the room 03:44:03 fixed 03:44:05 jeff has joined #webrtc 03:44:41 jesup: as long as you don't run out of RAM, you should be able to send. 03:44:51 cullen: how do i write code to this. 03:45:05 jesup: get blob from user, send blob. comes out the other end as a blob. done. 03:45:15 silvia has joined #webrtc 03:45:42 q+ stefanh 03:45:45 cullen: how does this work on a 2 GB video file. 03:45:56 jesup: works if you have enough RAM. 03:46:27 wyh_ has joined #webrtc 03:47:01 chris has joined #webrtc 03:47:09 jesup: i don't recommend this except for simple cases. real apps should do chunking. 03:47:41 silvia has joined #webrtc 03:47:46 cullen: i'd like some certain minimum blob size that would work. 03:48:30 ekr: i don't care what the number is. I just want feedback. 03:48:43 silvia1 has joined #webrtc 03:49:18 jesup: firefox supports sending 2 GB chunks in websockets. 03:49:40 pthatcher: any real app is going to use chunks. for a progress bar. 03:49:54 q- 03:49:58 pthatcher, i don't disagree 03:50:14 but that doesn't mean we shouldn't have tood API semantics 03:50:38 - +46.8.50.51.aabb 03:51:47 calling 03:51:49 silvia has joined #webrtc 03:52:31 juberti: can we defer this? seems like a big hairy issue 03:52:51 we can't hear you 03:52:55 it was really bad break up 03:53:00 that sounds better 03:53:09 ekr: we agreed to defer it in IETF to here 03:53:11 I don't hear anything on Zakim 03:53:16 juberti: so this overall API seems non-ideal. i want a real streams interface 03:53:51 jesup: so you could take that to W3C and solve this for Websockets and datachannels 03:54:35 ekr: websockets is mainly a replacement for comet, so this issue isn't as critical there. 03:54:45 harald, can you dial Zakim? 03:56:07 + +46.8.50.51.aacc 03:56:45 ywu has joined #webrtc 03:56:57 juberti: if you try to send too much, you get "data channel is now dead" 03:57:26 s/juberti/ekr/ 03:57:35 though perhaps juberti feels the same way 03:58:22 yeah, lost the plot there 03:59:50 jesup: if receiving side gets a too big message, it will fire onerror with data-too-large 04:00:38 juberti: does this teardown and propagate to sender? 04:01:03 someone: no, just for the individual packet 04:02:00 jesup: app can discuss over the channel to figure out how to get back on track 04:03:08 cullen: example: any packet < 10 KB, must be delivered 04:03:25 juberti: 64 KB 04:03:32 ekr: 640kb should be enough 04:06:45 juberti: probably not reasonable to expect that any size thing can be sent 04:07:16 juberti: should have some minimum, but implementations can impose a maximum 04:07:57 jesup: we're going to be intentionally diverging from websockets. 04:09:29 we did not hear that 04:09:36 jesup: and we need some way to communicate "closed with error" back to the other side 04:09:51 issue: requiring that negotiated channels be created on the receiver before any data can be received is problematic for some use cases 04:09:51 Created ISSUE-4 - Requiring that negotiated channels be created on the receiver before any data can be received is problematic for some use cases. Please complete additional details at . 04:10:33 -Jim_Barnett 04:11:46 yusuke has joined #webrtc 04:12:15 -jib 04:12:25 ijongcheol has joined #webrtc 04:29:11 ijongcheol has joined #webrtc 04:47:48 silvia has joined #webrtc 05:03:53 kotakagi has joined #webrtc 05:07:46 jehoochen__ has joined #webrtc 05:11:06 yusuke has joined #webrtc 05:18:49 silvia1 has joined #webrtc 05:22:49 Takahiro has joined #webrtc 05:23:45 yusuke_ has joined #webrtc 05:25:17 ijongcheol has joined #webrtc 05:32:56 stefanh has joined #webrtc 05:38:00 mreavy has joined #webrtc 05:38:06 robin has joined #webrtc 05:38:44 frodek has joined #webrtc 05:40:53 juberti has joined #webrtc 05:41:31 ekr has joined #webrtc 05:42:34 dom has joined #webrtc 05:42:42 silvia has joined #webrtc 05:43:52 hta has joined #webrtc 05:44:09 dom_proj has joined #webrtc 05:44:23 silvia1 has joined #webrtc 05:45:27 +Jim_Barnett 05:46:04 kotakagi has joined #webrtc 05:47:50 adambe has joined #webrtc 05:49:14 kodonog has joined #webrtc 05:50:11 fluffy has joined #webrtc 05:50:37 jinkyu_seong has joined #webrtc 05:50:51 +jib 05:51:04 rbarnes has joined #webrtc 05:51:16 scribe fluffy me 05:51:22 scribe nic fluffy 05:51:43 Data channel discussion proposal 05:51:47 scribenick: fluffy 05:51:55 Define a min support size that works on order of 64 k 05:52:14 add a read only attribute of how much your side can receive 05:52:22 read only attribute of how much other side can read 05:52:36 rbarnes_ has joined #webrtc 05:52:40 IETF protocol would cause these attributes to be set shortly after channel got opened 05:53:12 IETF could do this with new message or piggy back on open messages 05:53:36 DanD has joined #webrtc 05:53:54 Randal and Peter T are ok with this 05:54:00 Martin seems OK with this 05:54:09 ijongcheol has joined #webrtc 05:54:38 the attributes would probably be on the DataChannel 05:55:02 would throw exception JS tries to send something larger than allowed size 05:55:10 burn has joined #webrtc 05:55:43 Moving on to SCOPE PLANNING DISCUSSION 05:56:29 chairs suggest some interim meeting (or call) to sort out what we might have in version 1 05:56:46 jeromemarcon has joined #webrtc 05:56:46 taocai has joined #webrtc 05:57:07 Justin: the scope of API is a w3c decision and don't need to much 05:57:13 yahui has joined #webrtc 05:57:40 JimBarnett has joined #webrtc 05:58:16 scribenick fluffy 05:58:36 ken has joined #webrtc 05:58:37 need a list of topics that are in 05:59:42 stephane has joined #webrtc 05:59:53 question is phone call in december or meeting in January 06:00:03 rbarnes_ has joined #webrtc 06:00:18 Marcus_Altman_ has joined #webrtc 06:01:44 dan - not sure we need a prioritization on items in order. In practice the group self selects to not do any more as people stop writing stuff 06:02:02 s/ - /:/ 06:02:19 Juntin: prefer to have a done by time x 06:02:29 s/Juntin/Justin/ 06:03:12 ???: If we don't get this right, we don't get good features. So should drive it from that 06:03:48 dom: issues is identity a current feature or next feature 06:03:49 richt has joined #webrtc 06:04:13 justin: not trying to pick on nay feature, but we should make a list of all the features that need to happen and see what needs to be done 06:04:27 … if we say that is the min we need to do, still working at a bunch of time ahead of us 06:04:37 … partial offer / answer perhaps we don't do that 06:04:47 … not picking on anything specific 06:05:11 … but if we want to finish in 2014, we are going to need to drop some stuff that we are going to really wish we had 06:05:32 ekr: not really prioritization ordering in that people vote with their feet 06:05:41 jstin: need people to make list and we can review 06:05:59 hta: chairs need to be part of it 06:07:11 hta: propose we ask list about a call on dec 11 06:07:41 AndyF_ has joined #webRTC 06:07:54 Leon has joined #webrtc 06:08:02 ???: upper side is a pox on the industry 06:08:10 chairs: will do usual to sett up time and day 06:08:17 s/???: upper side is a pox on the industry// 06:09:27 Topic: Transport Control 06:09:42 ??? wrt upper side is Adam 06:10:04 stefanh: [slide 2] 06:10:07 link to slides? 06:10:12 ... ["Background"] 06:10:32 DanD has joined #webrtc 06:10:47 -> http://www.w3.org/2011/04/webrtc/wiki/images/6/6b/MediaTrackTransmissionController.pdf Stefan's slides 06:11:01 stefanh: I'm proposing an API modelled on the DTMF handler for control 06:11:07 ... [slide 3] links to the proposal 06:11:15 jehoochen__ has joined #webrtc 06:11:31 ... [slide 4] shows a proposed addition to RTCPeerConnection with a getMediaTrackTransmissionController method 06:11:40 juberti: this is for send and receive, or only send? 06:11:45 stefanh: just "send" 06:12:13 juberti: I was hoping you could could get this back when adding a stream to a peer connection 06:12:15 kodonog has joined #webrtc 06:12:21 s/could could/could/ 06:12:24 new proposed name is doohickey 06:12:33 Tony has joined #Webrtc 06:13:16 hta: when you don't want to control this, you can just ignore it 06:13:18 stephane has joined #webrtc 06:13:34 juberti: if you make it a return value of addStream, you don't add a new API surface 06:13:45 stefanh: FWIW, I agree with justin — it seems cleaner 06:14:17 juberti: addstream gives you back the handlers for each track within the stream, or we remove addstream and switch to doing addtrack. 06:15:50 martin: you don't know which stream tracks are part of. 06:16:34 cullen: that would require that each track added has a list of contexts it is part of. 06:16:39 stefanh: this may have been said, but all the tracks will have the same syncrhonization context anyway 06:16:54 ... so they could be reassembled by the application via out of band information 06:17:07 adambe: I think streams are just complicating the transmission over the network 06:17:27 ... we have ids on the tracks, so we can always signal the composition of the streams 06:17:54 martin: I'm glad you guys have finally seen the way 06:17:59 martin: i have argued against this enough, I'm now good with it. 06:18:42 martin: when you look at the track object, it has a list of the streams it is part of. 06:19:11 randell: how do you know when you have all the tracks for the videostream? 06:20:04 burn: if you do this, you don't even need msid anymore 06:20:13 stefanh: you do need track id 06:20:17 burn: yes, but not stream ids 06:20:50 cullen: on the receiving side, you will have callbacks saying new tracks have arrived. and the sdp will still have the track/stream mapping. 06:21:39 hta: we don't have a specific proposal for such a change; I think we need to focus on the proposal on the table 06:21:56 ... martin, if you want to take an action item to provide a concrete proposal... 06:22:09 ACTION: martin to make proposal on moving away from addStream toward addTrack 06:22:09 Created ACTION-102 - Make proposal on moving away from addstream toward addtrack [on Martin Thomson - due 2013-11-19]. 06:22:26 stefanh: [slide "new API"] 06:22:39 ... describes the proposes Transmission controller interface 06:23:00 Tony_ has joined #Webrtc 06:23:04 ... it has a reference to the track, and a boolean "theNewThing" 06:23:21 constraints can have boolean values 06:23:23 juberti: any reason this is an attribute rather than a constraint (?) 06:24:15 fluffy: the question is how much we do through contraints vs specific attributes 06:24:27 juberti: I think we need to take one approach or the other 06:24:43 ... deciding constraint vs attribute should be done based on a well-defined set of criteria 06:25:32 Jim: the definition of constraints accept boolean 06:25:55 burn: you can, but keep in mind that the primary design of constraints is to allow for expressing preferences with possible fallbacks 06:26:07 hta: the New Thing is going to trigger a negotiationneeded event when we flip it. 06:26:26 juberti: realistically constraints have been used to work around WebIDL limitations of predefined names 06:26:46 jesup: one of the questions is how you get values out of these 06:26:48 randell: what about getting the values? 06:27:44 hta: please check the newest constrainable inteface - there is an interface for getting the values. 06:28:07 jib: +1 06:28:11 dan: +1 06:28:12 burn: constraints should not be used for every possible setting 06:28:19 Sorry, I overran the buffer 06:28:19 ... they are meant to express a preference 06:28:26 ekr: when I want to stop RTP, I want to stop RTP - it's not something that interacts with other constraints. 06:28:37 ekr.constrain({ mandatory: { wordRatePerSecond: 2 } }) 06:28:47 jesup: constraints should be used only when we absolutely need 06:29:04 rbarnes: Is that an upper bound or a lower bound? 06:29:10 burn: I don't have an answer off-hand given the modifications made to constraints via the Constrainable interface 06:29:17 Or is it like imageattr and he'll just ignore it? 06:29:32 jib: for a constraint, you need to have a selection between multiple choices 06:29:50 ... the only place they make sense right now is for getUserMedia 06:30:03 ... I'm probably arguing against using them in PeerConnection 06:30:12 ... we should not replace dictionaries with constraints 06:30:25 juberti: there are many examples of constraints in the spec that would not satisfy the criteria just laid out. 06:30:42 burn: we decided yesterday all the constraints usage need to be reviewed 06:30:53 ... it may be that most or all usage is not justified 06:31:16 silvia has joined #webrtc 06:31:45 juberti: if the answer is replacing constraints with dictionaries, then that may be fine. 06:32:05 DanD has joined #webrtc 06:32:22 jib: constraints are good when you want fallback (?) 06:32:56 ... when I implemented the peerconnection settings, I found that we abused the mandatory/optional model (?) 06:33:32 juberti: in your review, the transmission controller should or should not be using constraints? 06:33:32 jib: no 06:33:52 hta: let's focus on the current problem before branching in yet another discussion 06:34:51 ekr: independently of the constraints/attribute question, we need to get to the bottom of theNewThing doohey thingy 06:35:01 hta: we have agreement they should be bound to the track and @@@ 06:35:57 justin and cullen: we're proposing that there should be a similar doohickey on the receive side. 06:36:24 stefanh: [slide "Initial constraints"] 06:36:35 ... (maybe settings rather than constraints :) 06:36:40 ... proposal is: priority and bitrate 06:37:23 -> https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/ResourcePriorities/Overview.html Resource Priorities API (WebPerf WG) 06:37:46 silvia1 has joined #webrtc 06:38:16 [the Resource Priorities API has 3 levels: "normal", "lazy-load", "postpone" FWIW] 06:38:17 silvia2 has joined #webrtc 06:39:10 martin: we need at least 4 priorities. 06:39:16 silvia3 has joined #webrtc 06:39:33 cullen: we need 3 priorities, these can be combined with the data types, which the scheduler knows, giving 9. 06:40:06 martin: need to look at the line that shows which goes first. 06:40:38 juberti: scavenger, low, high, highest. Making assumptions from the media type could be dangerous. 06:41:30 stefan: bitrate. 06:41:34 stefanh: for bitrate, I was suggesting a min-max value; maybe just a maximum value makes sense, although people have expressed the desire to express a min bitrate as well 06:41:56 cullen: we need to be clear if there is a target, a max or a floor - on IP, the lowest bitrate is always zero. 06:42:15 martin: a floor means that if we get below a certain floor, we should stop sending. 06:42:37 martin: a floor on quality makes more sense than a floor on bitrate. 06:43:15 juberti: we need a cap on the whole peerconnection, not necessarily on the individual track. 06:43:51 martin: this is for use cases where the app knows something about the path. 06:44:33 randell: the app may know which videos are more important for the application. we should give it the tools to say so. 06:45:16 I just dispensed with my action from before 06:45:57 Q+ 06:45:59 juberti: example: I want to stop sending video if the result is unusable; if the bandwidth comes back, I want video to resume. 06:46:32 juberti: quality thresholds can give us some tools that the scheduler can use. 06:46:39 q+ 06:46:57 dom_proj_ has joined #webrtc 06:47:56 dand: I agree with randell the application should be in control 06:47:59 ... it should be about expressing a desire, more than making it a hardset setting 06:48:16 randell: the automated mechanism should be kept simple. COmplex stuff should be left to the application's hands. 06:48:43 q? 06:48:47 ack DanD 06:48:49 ack fluffy 06:49:10 -q 06:49:30 cullen: even if I'm on a 50 Mbit 4G connection, it's perfectly reasonable to say that I don't want to use more than 1 Mbit of that. 06:49:34 q- 06:50:55 justin: if I send hires, lores and audio, I want to drop the hires then the lores when bandwidth disappears, and claw it back when it becomes available. With thresholds in quality, not bandwidth. 06:52:04 - +46.8.50.51.aacc 06:52:09 fluffy: I think we should move away from bitrate specified as min/max 06:52:09 hta: I've heard support for a max rate for bitrate as useful 06:52:15 ... and people arguing that setting a minimum quality level would be more useful 06:53:01 ... but that needs a definition of quality 06:53:10 Zakim is silent 06:53:28 Quality? PSNR 06:54:20 try again you are breaking up badly 06:54:42 dom_proj has joined #webrtc 06:55:16 + +46.8.50.51.aadd 06:55:17 I was saying that a min bitrate in combination with knowing the codec gives an estimate of the quality 06:55:23 ... and so we need a proposal from those that think this is a good idea 06:55:23 ... and if the application need to see information, this also needs a proposal 06:55:23 stefanh: if you combine codec and bitrate, you get a pretty good indication of quality 06:55:30 ... so with a minimal bit rate you can actually get meaningful information 06:55:30 Zakim, code? 06:55:30 the conference code is 9782 (tel:+1.617.761.6200 sip:zakim@voip.w3.org), dom 06:56:54 juberti: difficulty of correlating QoS metrics - bandwidth is highly scene dependent. 06:57:47 action jesup: resend to the list an earlier proposal on how to interact with tracks. 06:57:47 Error finding 'jesup'. You can review and register nicknames at . 06:58:04 action randell: resend to the list an earlier proposal on how to interact with tracks. 06:58:04 Error finding 'randell'. You can review and register nicknames at . 06:59:49 you are sounding ok now 07:00:11 BY has joined #webrtc 07:00:24 kodonog has joined #webrtc 07:00:36 pthatcher: should you also be able to set codecs? 07:00:49 stefhak: that should be added somewhere. 07:01:01 action derf to get jesup to resend to the list an earlier proposal on how to interact with tracks 07:01:01 Created ACTION-103 - Get jesup to resend to the list an earlier proposal on how to interact with tracks [on Timothy Terriberry - due 2013-11-19]. 07:01:16 dom_proj_ has joined #webrtc 07:01:20 ekr: a number of the frobs on the doohickey will cause negotiationneeded. 07:01:25 dom_ has joined #webrtc 07:02:01 RRSAgent, pointer 07:02:01 See http://www.w3.org/2013/11/12-webrtc-irc#T07-02-01 07:03:54 adam: I want to call TheNewThing "suspend" (suspended?) 07:03:57 jehoochen_ has joined #webrtc 07:04:50 I like suspendend 07:04:52 ekr, juberti: don't like paused, perhas inactive is ok. 07:05:01 suspended, I mean 07:05:07 suspendeded 07:05:39 adam: suspended has the same direction of the sign as muted. 07:05:46 I could leave it up to the editors and move on 07:05:52 name is not that important 07:06:45 adam: at least 2 telco systems have suspend / resume that mean exactly this. 07:06:52 did we ever conclude on receiver side "TheNewThing"? 07:07:35 adam: I think we need suspended (TheNewThing) on the receive side. 07:08:58 adam: the suspended bit on one side does not affect the suspended bit on the other side. these are controllers, not statuses. 07:09:35 ekr: believe we need receiver side doohickey. 07:09:53 juberti: do we need to set resolution on receive side? 07:10:07 fluffy: we should be able to set max resolution, at least. 07:10:46 stefan: do we want all this in the sdp? 07:11:26 silvia has joined #webrtc 07:11:33 adam: the signalling is already defined for SDP. Stuff that will interoperate with us will expect to have this work. 07:12:05 Think we need to close this now 07:12:14 ken has joined #webrtc 07:13:09 Robin Raymond: I think we should not add the receive-side doohickey. It adds a lot of complexity. 07:13:53 cullen: I don't see why we want to signal this stuff (suspend for example) over a different channel than SDP. 07:14:37 pthatcher: don't see that there's the same amount at receiver as at sender. 07:15:10 Proposal: those wanting it develop a proposal for the reciever-side doohikey (including attributes) 07:15:58 pthatcher: the receive doohickey, which controls SDP, is lower priority than the send doohickey, which controls stuff that happens locally. 07:16:31 cullen: I think the priority is completely the opposite. The most important thing is that the receiver can ask to turn off. 07:16:48 stefanh: while don't people develop a proposal for the receiver side offline so that we can move on 07:16:55 s/while/why/ 07:16:59 it's going to be very hard to add doohickeys on the receive side later 07:17:19 burn: you asked if I had some rules for constraints; I've sent a number of mail on this to the list 07:17:27 ... there are a number of edge cases 07:17:36 ... I'm happy to have that conversation again once we're ready for that 07:17:44 ... I want to take the time to explain it properly 07:18:03 [coffee break] 07:18:07 RRSAgent, draft minutes 07:18:07 I have made the request to generate http://www.w3.org/2013/11/12-webrtc-minutes.html dom 07:18:42 Tony has joined #Webrtc 07:19:27 -jib 07:21:01 silvia1 has joined #webrtc 07:21:06 ijongcheol has joined #webrtc 07:23:24 Takahiro has joined #webrtc 07:29:49 maltman has joined #webrtc 07:42:58 ijongcheol has joined #webrtc 07:44:00 dom has joined #webrtc 07:45:30 rbarnes has joined #webrtc 07:47:07 richt has joined #webrtc 07:47:43 calling 07:47:47 or rather harald is calling 07:49:46 tony has joined #Webrtc 07:49:49 i will be your scribe for this session 07:49:54 what was the topic? 07:50:04 scribenick: rbarnes 07:50:40 slide: statistics in webrtc 07:50:48 slide; Main API definition 07:51:03 kotakagi has joined #webrtc 07:51:33 slide: defining new stats items 07:52:14 slide: Stats defined 07:52:50 stephane has joined #webrtc 07:52:56 slide: implementation status 07:53:30 slide: issues found in practical usage 07:54:57 slide: issue: personally identifiable info 07:56:24 ekr: the way we've been doing this is to gradually add things in 07:56:53 slide: questions to address 07:56:55 +jib 07:57:00 q+ 07:57:58 fluffy: is it required to have a document for the stat? 07:58:01 hta: expert review 07:58:36 derf: [on an earlier slide] the standard you want for volume is EBU R128 07:58:48 hta: ... which practically requires a document for the expert to review 07:59:00 ... part of the point of the expert review is to avoid duplication 07:59:22 ekr: standard should be for the stat to be (1) clear and (2) non-duplicative 07:59:36 ... don't even really need a security review, we can catch that in implementation 07:59:43 q+ 07:59:55 juberti: went to xrblock, they're defining a whole bunch of stats 08:00:15 ... they could possibly tell us a best set of stats 08:00:30 Takahiro has joined #webrtc 08:00:48 ... seems good to be able to get stats in other ways than peerconnection 08:00:57 ... don't want all the stats, just stats for X 08:01:10 ekr: would be OK with many different objects having a stats surface 08:01:32 note that the Media Source Extension doc extends the video element with stats (video related) 08:01:39 fluffy: i would view the IANA registry purely as a name conflict resolution thing 08:02:10 adam: e.g., you could have the same thing at different levels of aggregation 08:02:20 juberti: what are the main questions you would like to see answered? 08:02:23 hta: on the slide 08:02:59 fluffy: want to have the stats that are good to have, not the stats that are easy to compute 08:03:06 hta: add those that we know we need only 08:03:13 q? 08:03:16 q? 08:03:18 ack fluffy 08:03:25 q- 08:04:12 jib: how does the iana thing work? 08:04:34 hta: ietf tradition is that once the wg is finished, it goes away. so the iana exists to maintain things into the future 08:05:14 ekr: it's hard to make people implement constraints, because they can understand but ignore 08:05:46 jesup: would say all the stats are optional 08:05:54 ... would like to hear the case for things being mandatory 08:05:56 taocai has joined #webrtc 08:06:08 juberti: applications will depend on them... 08:06:23 ekr: this sounds like a good argument for not having important stuff depend on stats 08:06:49 fluffy: clearly not all of them can be MTI 08:07:15 ... but if they're optional, they might as well not exist 08:07:31 Actually, I have things not quite right for constraints: you can ignore optional and fail on mandatory 08:07:38 jesup: they're useful in debugging and collecting data, but if you don't get the data, you don't get the data 08:08:00 hta: use them for discovering trends in usage -- how long do people stay on calls, how often does it terminate b/c of an error 08:08:28 ... would be sad if there were significant holes in coverage. could probably live with it if we could discover which stats are not present (so that we could factor them out) 08:08:51 jesup: we already have that case today, because firefox doesn't have all the stats google does 08:09:31 juberti: if we're going to put certain stats in the spec, people should implement them because they've been vetted, seen as important 08:09:42 ... real-time apps are super hard to debug, need these stats to do it 08:10:04 ... if we're going to be more conservative about which we specify, we should make them mandatory 08:10:17 +1 to Justin 08:10:33 fluffy: when you look at individual stats, you'll probably get agreement from most people 08:10:47 jib_ has joined #webrtc 08:10:48 jesup: agree that we should look at which are mandatory, which are not 08:10:57 q- 08:11:03 ekr, what do you mean about constraints? optional and mandatory for constraints are regarding satisfaction of them by the browser, from the point of the JS developer -- they have nothing to do with which ones are supported by the browser 08:11:04 juberti: wouldn't bother putting it in the spec if it weren't worth implementing 08:11:27 jib_ has left #webrtc 08:11:33 ... number of stats right now is not overwhelming 08:12:03 ... 6 counters 08:12:10 jib has joined #webrtc 08:12:19 q- 08:12:41 hta: would be good to get some input from people, especially those aware of ICE 08:12:51 ekr: we currently expose the state of every ICE candidate 08:13:23 ekr means in privileged browser api only, not to content 08:14:01 fluffy: debugging something like hangouts does require automated feedback without user involvement 08:15:08 juberti: we could review what Chrome and Firefox implement, as a way of getting an idea of what to put in the document 08:15:16 ekr: justin and i could get together on that 08:15:25 action erescorl to meet with justin to review ICE stats and see which make sense in statistics 08:15:26 Created ACTION-104 - Meet with justin to review ice stats and see which make sense in statistics [on Eric Rescorla - due 2013-11-19]. 08:16:08 ekr: if the review indicates a need for more richness, we'll come back and figure that out 08:16:15 juberti: what about non-pc stats? 08:16:24 fluffy: the doohickies help with that 08:16:28 jesup: not with gUM 08:16:44 fluffy: never imagined there was utility to gUM stats 08:17:04 juberti: jitter frames, capture delay, stdev(delay) 08:17:40 ... say you want to display a meter for voice to display the energy 08:18:16 for those of you on IRC: I said $(gum).vumeter(div) 08:18:41 adam: are we going to give freq bands so they can do spectrum? 08:18:54 juberti: lots of phone apps do VUmeter, and don't do spectral 08:19:06 jesup: lots of this can be done with web audio 08:19:18 the Web Audio API enables you to do vu meter I think 08:19:27 it interfaces to MediaStreamTrack 08:19:35 by_ has joined #webrtc 08:19:59 fluffy: this falls in the category of easy things should be easy 08:20:02 we can hear 08:20:17 stefanh: web audio enables you to display audio levels 08:20:59 juberti: i think some stats will not be computable via web audio, so we'll need the interface anyway 08:22:00 jesup: if there are any stats that are computationally non-trivial to compute, there's a good argument for not making them default 08:22:30 ... do generally agree that we should have some stats available for tracks 08:22:44 rbarnes: tracks or doohickies 08:22:51 juberti: tracks for now 08:24:24 maltman_ has joined #webrtc 08:24:44 ???: no way to specify what selector you're getting. could we get stats for data streams? 08:25:10 martin_: why not just define a MIB? 08:25:17 hta: closing this topic 08:25:20 ??? is jib 08:25:37 jehoochen_ has joined #webrtc 08:25:49 juberti: what about gUM stats, any actions? 08:25:57 martin_: no, but data channels are interesting 08:26:09 hta: could you take an action to suggest some? 08:26:45 martin_: yes 08:27:11 scribenick: juberti 08:32:04 ekr: you want to me able to control the DTLS keys that are used 08:32:09 and cache them between sessions 08:32:18 wyh_ has joined #webrtc 08:32:18 need to make sure they are scoped to identity to prevent supercookies 08:32:38 temporary keys can also be generated 08:33:17 or created via WebCrypto and shoved down into the PeerConnection via a new setDtlsKey method 08:33:41 dom has joined #webrtc 08:33:57 The WebCrypto mechanism is much more flexible, allows application to choose its key length 08:34:05 richt has joined #webrtc 08:34:17 and makes the state management super obvious, since app is doing it 08:34:40 better mechanism, but not without some flaws 08:35:04 passing in the public exponent is kind of gross 08:35:47 juberti: are you arguing for this new mechanism and APIs 08:35:52 ekr: yes 08:36:10 juberti: what is the implementation status on this? 08:36:12 ekr: barnes? 08:36:27 rbarnes: spec is pretty stable. not sure about implementation status. 08:37:09 cullen: we can go talk to sleevi. 08:37:19 juberti: can this be done in 2014? 08:37:26 ekr: we could retrofit this later. 08:37:54 ekr: would be nice to know about other side's keys, for key continuity 08:38:16 expose an array of arraybuffers, in DER form, with certificates or remote side. 08:39:14 juberti: where does one get these arraybuffers? 08:39:18 ekr: next slide 08:39:26 ekr: I give you, pc.remoteCertificates 08:39:55 yusuke_ has joined #webrtc 08:39:58 list can be parsed with WebCrypto 08:40:22 no claims about the browser's opinion of the certs 08:40:48 juberti: how do we deal with chains, when we also have fingerprint? 08:43:08 jehoochen_ has joined #webrtc 08:44:17 " For DTLS, all m= sections MUST use the certificate for the identity 08:44:18 that has been specified for the PeerConnection; as a result, they 08:44:19 MUST all have the same [RFC4572]fingerprint value." 08:44:25 yusuke__ has joined #webrtc 08:46:43 kodonog has joined #webrtc 08:47:03 juberti: so the fingerprint indicates that the cert is what you think, and the chain indicates whether you trust the identity from the cert 08:47:13 ekr: yes 08:48:06 juberti: how do you handle the case where there are two DTLS connections (with their own remote certs?) 08:48:17 q? 08:48:26 ekr: can this happen? 08:48:39 juberti: yes, if talking to legacy gateway 08:48:56 ekr: hmm, maybe we need to move this to the doohickey 08:49:07 pthatcher: what about data channels, they have no doohickey (yet) 08:49:19 martin: we can add the property to the doohickey and the data channels 08:49:38 martin: and duck type if necessary 08:50:40 hta, that would be fine with me as well 08:51:30 hta: sounds good to me 08:51:50 pthatcher: could we add a parameter to indicate which DTLS do we want to get the certificates from? 08:52:27 dom_ has joined #webrtc 08:52:29 if no parameter, only works if there is one dtls connection 08:52:57 hta: each object only has one DTLSContext 08:53:47 ekr: I like this since it gives us insight into DTLS and stuff 08:53:47 s/each object/each object except for PC/ 08:53:56 action erescorl come up with a proposal for exposing a transport/DTLS doohickey for each non-PC object 08:53:56 Created ACTION-105 - Come up with a proposal for exposing a transport/dtls doohickey for each non-pc object [on Eric Rescorla - due 2013-11-19]. 08:54:00 pthatcher: and other transport stuff 08:54:30 back to ekr 08:54:42 ekr: remote identity is directly observable 08:55:12 via new pc.peerIdentity 08:56:28 here's how it works 08:57:00 onidentityresult provides a RTCIdentity corresponding to the obtained identity (from remote) 08:57:15 rename peerIdentity to remoteIdentity to match remoteDescription 08:57:21 localIdentity contains own identity 08:58:41 pthatcher: can you have multiple remote identities 08:58:48 ekr: no; JSEP says only one identity 08:59:01 ekr: way too complicated to have more than one 08:59:52 moving on 09:00:18 a MessageChannel is needed for moving identity stuff around 09:00:22 nsakai has joined #webrtc 09:00:58 yusuke_ has joined #webrtc 09:00:58 which needs a specific name. TBD, but proposing identityMessageChannel 09:02:06 hta: does each PeerConnection have its own MessageChannel? 09:02:09 ekr: yes 09:02:20 ekr: otherwise not necessarily safe 09:03:08 action ekr: generate a single monolithic description of who sends what on identity 09:03:08 Created ACTION-106 - Generate a single monolithic description of who sends what on identity [on Eric Rescorla - due 2013-11-19]. 09:03:45 ekr: noaccess and peerIdentity 09:04:20 Can't attach MediaStreams that are isolated to PeerConnections (or other undesirable sinks) 09:04:23 nsakai has left #webrtc 09:04:38 martin suggested that instead when things were nonpermitted they generated silence or blackness 09:04:43 dom_proj has joined #webrtc 09:05:03 martin suggests you can always glue things together however you want 09:05:12 q+ 09:05:34 stefanh: do streams get marked, or tracks? 09:05:41 martin: tracks 09:06:19 jesup: a few questions about black/silence 09:06:34 jesup: what info is leaked through these aforementioned black frames? 09:06:56 jesup: does this leak more than passing nothing? 09:07:10 ekr: here's the upside 09:07:27 ekr: allows JS to get a noaccess stream with no permissions/prompting 09:07:44 can be pushed into video tag, usable for hair check etc 09:08:25 martin: browser can control how much info gets let through 09:09:34 ekr: you could use this for checking all cameras 09:09:40 jmr has joined #webrtc 09:09:43 jesup: do something, camera will come on, no permission 09:10:49 ekr: hence more creepy 09:11:53 juberti: this seems hard to explain to a user 09:12:16 juberti: cam comes on, no permissions, but they we need to give permissions to start sending the video 09:12:50 someone (sorry): this could be an implementation decision 09:13:07 [so to clarify, we're trying to figure out if we can make a reasonable UI that would make the noaccess feature realistically usable, right?] 09:13:10 rbarnes: I think we want a common permissions model across apps 09:13:20 dom: well, sort of. 09:13:22 (and browsers) 09:13:22 s/(sorry)/jib/ 09:13:31 silvia has joined #webrtc 09:14:04 [I don't think we should spend ages discussing specific UI ideas directly; figuring out whether the feature is realistic sounds relevant though] 09:14:51 ekr: main thing this gives you is in-content device selection. 09:15:13 ekr: do we care about this? if not, we can do something else. 09:15:42 if we don't do this, user has no way to make an informed choice on this. 09:16:15 we could have the browser display info (thumbnail) in browser chrome 09:16:47 We can't have two prompts - too complicated - so any device selection must be done either in chrome or when user gives access to all devices. 09:17:28 FF UI asks you to pick a camera, but you can't change it later. 09:18:26 pthatcher: doorhanger could indicate the available cameras. 09:19:00 martin: example of plugin dialog in firefox 09:19:42 jesup: not so sure. so in hair check scenario, what happens? 09:19:48 jib has joined #webrtc 09:20:09 martin: protected from sampling by noaccess stuff 09:20:24 ekr: secure from design, but not necess from UX 09:21:25 dom_proj_ has joined #webrtc 09:21:28 juberti: this seems dangerous. if we make a mistake, we will be very unhappy. 09:21:50 dom_ has joined #webrtc 09:23:33 jesup: people won't expect the camera light to come on? 09:24:05 pthatcher: when user is prompted 09:24:41 pthatcher: they can get an allow/deny dialog, plus a preview button that would let the page display the video without granting access 09:25:09 jesup: can we have promotions from preview to allow? 09:25:42 -Jim_Barnett 09:25:44 juberti: i still think this is hard for users to understand 09:26:09 agree to juberti 09:26:26 action martin: drive discussion with ekr and pthatcher about permissions model (brainstorm) 09:26:26 Created ACTION-107 - Drive discussion with ekr and pthatcher about permissions model (brainstorm) [on Martin Thomson - due 2013-11-19]. 09:27:02 dom: working on setting up testing meeting 09:27:24 if you are interested, now is a good time to get involved 09:28:00 ekr: testing this stuff is kind of tricky, hard to verify audio and video, needs permissions bypass 09:28:23 dom: want to avoid duplication of effort 09:28:31 google is working on avoiding test harness 09:28:46 <-- forget what i just wrote 09:29:17 google wants to cooperate on test harness 09:29:22 google would rather not test? 09:29:37 juberti: no, just too tired to write properly 09:29:53 hta: google folks are working on incorporating w3c tests into google tests 09:30:01 not sure which harness will run where 09:30:08 but that is the purpose of the work 09:30:29 if we promise to make tests and make sure they continue working, we want them to run on our bot system 09:30:58 if we can get together and figure out how to make the same tests work on moz and chrome, that would be a Good Thing. 09:31:37 ekr: we should include NATs as part of this 09:31:52 juberti: sure. but how far do we go on this? do we test Chrome's proxy detection? 09:33:16 juberti: we have a bunch of testing facilities that make this all easier. we just want to make sure the w3c tests work in our test rig. 09:33:41 ekr: that's the only thing that makes sense. 09:33:51 cullen: sipit interop testing coming up on monday. 09:34:01 ACTION: Dom to coordinate testing questions before a dedicated meeting 09:34:01 Created ACTION-108 - Coordinate testing questions before a dedicated meeting [on Dominique Hazaël-Massieux - due 2013-11-19]. 09:34:07 ijongcheol has joined #webrtc 09:34:09 not automated, alas, but very in-depth 09:34:13 stephane_ has joined #webrtc 09:37:30 hta: we covered a lot of things over the past two days 09:38:05 and recorded a lot of new actions 09:38:21 and uncovered a lot of new issues 09:38:29 but the flow here was not what we wanted 09:38:46 the interactions in a satellite meeting was not good. 09:38:49 \list 09:40:10 there were various scheduling difficulties that led to this, but we are sorry about the experience. 09:40:11 -jib 09:40:56 stefanh: i want to apologize to everyone who traveled here 09:41:23 dom: this all works better when things are all in the same place 09:41:30 yusuke_ has joined #webrtc 09:41:52 jesup: when we did the interim meeting connecting to Stockholk, things were much better; because connectivity was much better. 09:43:53 fluffy has left #webrtc 09:44:30 we will do better next time. 09:44:44 - +46.8.50.51.aadd 09:44:46 UW_WebRTC()7:00PM has ended 09:44:46 Attendees were +1.267.934.aaaa, +46.8.50.51.aabb, jib, Jim_Barnett, +46.8.50.51.aacc, +46.8.50.51.aadd 09:52:41 ken_ has joined #webrtc 09:54:35 ken has joined #webrtc 09:56:15 silvia has joined #webrtc 09:59:17 adam has joined #webrtc 10:02:56 frodek has joined #webrtc 10:03:00 frodek has left #webrtc 10:15:45 silvia has joined #webrtc 10:21:59 ken has joined #webrtc 10:22:38 ken has joined #webrtc 10:31:04 ken_ has joined #webrtc 10:37:11 ken has joined #webrtc 10:55:46 silvia1 has joined #webrtc 11:37:43 ken has joined #webrtc 12:38:13 ken has joined #webrtc 13:32:53 chris has joined #webrtc 13:38:43 ken has joined #webrtc 14:27:18 lgombos has joined #webrtc 14:39:13 ken has joined #webrtc 15:04:38 Josh_Soref has joined #webrtc 15:08:47 ken has joined #webrtc 15:08:52 timeless has joined #webrtc 15:10:32 lgombos has joined #webrtc 15:39:29 ken_ has joined #webrtc 15:40:17 lgombos has joined #webrtc 15:55:26 ken has joined #webrtc 16:05:21 fluffy has joined #webrtc 16:21:56 mreavy has joined #webrtc 16:24:51 Zakim has left #webrtc 16:54:45 ken has joined #webrtc 17:25:16 ken has joined #webrtc 17:39:05 lgombos has joined #webrtc 17:46:56 lim has joined #webrtc 17:48:02 lim has left #webrtc 18:26:32 jesup has joined #webrtc 18:53:54 hta has joined #webrtc 19:18:40 jib has joined #webrtc 19:30:34 ken has joined #webrtc 19:33:16 adam has joined #webrtc 20:01:31 hta has joined #webrtc 20:14:45 lgombos has joined #webrtc 20:31:04 ken has joined #webrtc 20:49:32 feross has joined #webrtc 21:31:35 ken has joined #webrtc 22:15:17 lgombos_ has joined #webrtc 22:15:27 lgombos has joined #webrtc 22:25:53 lim has joined #webrtc 22:32:04 ken has joined #webrtc 23:13:18 ken has joined #webrtc 23:13:48 silvia has joined #webrtc 23:17:16 ken has joined #webrtc 23:22:23 feross has joined #webrtc 23:38:11 silvia1 has joined #webrtc