IRC log of webrtc on 2011-07-23

Timestamps are in UTC.

17:32:20 [RRSAgent]
RRSAgent has joined #webrtc
17:32:20 [RRSAgent]
logging to
17:32:26 [francois]
RRSAgent, make logs world
17:32:48 [francois]
Meeting: Web Real-Time Communications Working Group - Quebec City F2F
17:33:17 [francois]
Chair: Harald_Alvestrand, Stefan_Hakansson
17:33:21 [francois]
17:33:40 [francois]
Regrets: Rich_Tibbett
17:36:11 [francois]
RRSAgent, draft minutes
17:36:11 [RRSAgent]
I have made the request to generate francois
17:42:03 [burn]
burn has joined #webrtc
17:43:54 [cullenfluffyjenni]
cullenfluffyjenni has joined #webrtc
17:45:15 [francois]
francois has left #webrtc
17:45:17 [francois]
francois has joined #webrtc
17:51:20 [francois]
Present+ Stefan_Hakansson
17:51:30 [francois]
Present+ Harald_Alvestrand
17:51:40 [francois]
Present+ Dan_Burnett
17:51:44 [francois]
Present+ Francois_Daoust
17:51:51 [francois]
Present+ Cullen_Jennings
17:53:39 [stefanh]
stefanh has joined #webrtc
18:01:03 [anant]
anant has joined #webrtc
18:01:25 [Cary]
Cary has joined #webrtc
18:01:58 [francois]
scribe: francois
18:03:06 [stefanh]
stefanh has joined #webrtc
18:03:22 [francois]
hta: [introduction]. W3C meeting hosted by IETF. W3C rules.
18:03:39 [jesup]
jesup has joined #webrtc
18:03:47 [francois]
... No polycon for the conference today.
18:04:17 [Dan]
Dan has joined #webrtc
18:04:36 [francois]
... Looking for scribes.
18:04:46 [francois]
[francois and Cullen step up]
18:04:48 [tedhardie]
tedhardie has joined #webrtc
18:06:09 [francois]
Topic: RTCWeb Architecture
18:06:20 [francois]
hta: slides on Web RTC architecture.
18:06:56 [francois]
... Going to present goals, architecture layers, security. I won't touch upon details.
18:07:29 [francois]
... Goal is enable realtime Communication between browsers. Real Time means you can wave at someone and he can wave back. 100ms timescale.
18:07:42 [francois]
... Media is audio/video but people also want to send other stuff to.
18:07:53 [francois]
... Important to drive the design by use cases
18:08:39 [francois]
... We have to go for general functions to enable innovations. Use cases are least amount of things possible.
18:09:23 [francois]
... Basic concept: somehow Javascript, with the help of the server, can establish a connection to the other browser.
18:09:49 [francois]
... Media flows through the shortest possible path for latency and because it makes life simpler.
18:10:38 [francois]
... Different architecture layers. Apart from the browser, any other box must be assumed to be able to be controlled by an enemy.
18:10:50 [DanD]
DanD has joined #webrtc
18:10:52 [francois]
... That is a security context that is slightly different from in other areas.
18:11:01 [francois]
... In IETF, we're mostly concerned by attacks on the network.
18:11:09 [francois]
... Here, we have to take into account all components.
18:11:19 [magnus]
magnus has joined #webrtc
18:11:48 [francois]
... Data transport means you have to establish some data path. More or less agreed to use ICE.
18:12:27 [francois]
... UDP is the obvious transport given the constraints (we need to be able to backup to TCP though). Congestion management is necessary.
18:13:09 [alissa]
alissa has joined #webrtc
18:13:09 [francois]
... I'll skip rapidly through IETF issues as they will be addressed on Tuesday and Thursday. Focus on API here.
18:13:50 [francois]
... There will be data framing, securing, we must negotiate data formants and we need some baseline that everyone implements for the negotiation to always succeed.
18:14:11 [francois]
... We have use cases for setting up connections that require SIP and others that don't require SIP.
18:14:57 [francois]
... User interfaces include privacy considerations. The user has to know that he has allowed the use of camera and microphone and must be able to revoke that access at any time.
18:15:19 [francois]
... In scope for W3C, not so much for IETF.
18:16:11 [francois]
hta: Talking about API, it shouldn't take too many lines of JavaScript to setup a connection and tear down a call. Multiple streams, pictures that jump up, etc. should be possible.
18:16:25 [francois]
... There are things that are on the wire but are truly relevant for the user.
18:16:44 [francois]
... In some cases, security demands that they are hidden to the user interface.
18:17:20 [francois]
... Interoperability requires that it all gets specified.
18:17:54 [francois]
... If you precise control precisely, it ages badly, e.g. "I want that precise codec".
18:18:36 [francois]
... Of course, we have to have interoperability. If you give the same script to two browsers, it should work. Not exactly the same resources because different capabilities are possible, but it should work.
18:18:57 [francois]
... When data is passed through this API, format has to be specified.
18:19:10 [francois]
... In some cases, we have blobs that get passed.
18:19:38 [francois]
... These blobs will be parsed by different browsers though, so they need to know how to parse them.
18:20:17 [francois]
... Summary slide: Having an overview is a means to ensure that we can talk about different parts of the system and we feel confident that we have all the pieces covered.
18:20:37 [francois]
... Questions/Comments/Disagreements?
18:21:25 [francois]
Cullen: that seems consistent with what I'm think I'm hearing.
18:22:28 [francois]
??Wallace: you said precise control age badly. I'd like to say "higher quality than x/y/z", right.
18:23:09 [francois]
... Problem is that the notion of "higher quality" depends on codecs and profiles.
18:23:45 [francois]
... I fear it falls into a rathole designing a new way of describing codecs and qualities
18:24:35 [francois]
Matthew_Koffman: I think legacy interoperability is missing from your slides.
18:24:48 [francois]
??2: what do you mean with legacy interoperability
18:25:32 [burn]
18:25:51 [francois]
Matthew_Koffman: I can show you existing devices that do RTP but not SRTP. If you want to non secure devices, you need to relax the bullet presented that unencrypted data do no need to be carried.
18:26:40 [francois]
hta: one of the things that someone mentioned is that we need to talk to gateways.
18:27:27 [francois]
??3(Google): is this the right place to discuss that? Shouldn't this be handled by RTCWEB group on Tuesday/Thursday.
18:27:45 [francois]
Matthew_Koffman: I believe it has API implications.
18:28:01 [francois]
... It's overview, the overview should talk about legacy system.
18:28:10 [cullenfluffyjenni]
Scribe: Cullen Jennings
18:28:12 [francois]
hta: I'll consider including that for Tuesday/Thursday as well.
18:28:23 [cullenfluffyjenni]
ScribeNick: cullenfluffyjenni
18:29:01 [cullenfluffyjenni]
Francois: Asked question about architecture and if we need to resolve it in this WG
18:29:45 [francois]
Scribe: francois
18:29:49 [cullenfluffyjenni]
hta: IF we discover that W3C perspective results in things need to change, we should take that change to IETF
18:29:55 [francois]
s/Scribe: francois//
18:30:07 [francois]
scribe: francois
18:30:24 [cullenfluffyjenni]
Topic: Use Cases
18:30:42 [cullenfluffyjenni]
Stefan: presenting use case
18:31:31 [cullenfluffyjenni]
… simple use case is two web browsers communicating. One of the brwosers is behind a NAT. One link has packet loss
18:31:53 [cullenfluffyjenni]
… works with different browsers and os
18:31:57 [francois]
18:32:10 [cullenfluffyjenni]
.. video windows are resizable
18:32:19 [francois]
RRSAgent, draft minutes
18:32:19 [RRSAgent]
I have made the request to generate francois
18:32:35 [cullenfluffyjenni]
Can move from ethernet to wifi to cellular and the session should survive
18:32:52 [cullenfluffyjenni]
… Can move from ethernet to wifi to cellular and the session should survive
18:33:01 [francois]
i/Topic: Use Cases/[quick raise of hands reveals that most of the room follows both IETF and W3C mailing-lists]
18:33:06 [cullenfluffyjenni]
… Moving to second use case between two service providers
18:33:44 [cullenfluffyjenni]
… case where you must handle two cameras sending video from one browser
18:34:21 [cullenfluffyjenni]
Roni: asked question about streaming
18:34:50 [francois]
i/Topic: Use Cases/ScribeNick: cullentfluffyjenni
18:34:53 [francois]
RRSAgent, draft minutes
18:34:53 [RRSAgent]
I have made the request to generate francois
18:34:56 [cullenfluffyjenni]
Stefan: it is not streaming of the game, it is just the two camera's being sent to couach
18:35:16 [cullenfluffyjenni]
… use case with a mess of video stream
18:35:37 [francois]
i/Stefan: presenting use case/ScribeNick: cullenfluffyjenni
18:35:38 [cullenfluffyjenni]
Colin: Questiona about if there was NATs in this case
18:35:39 [francois]
RRSAgent, draft minutes
18:35:39 [RRSAgent]
I have made the request to generate francois
18:35:49 [cullenfluffyjenni]
Stefan: yes, there are nats
18:36:25 [cullenfluffyjenni]
John: Is there an assumption that the video is the same or is different between peers
18:36:44 [cullenfluffyjenni]
Stefan: each peer sends same video to all other peers
18:36:55 [cullenfluffyjenni]
… use case with multip party on line game
18:37:09 [cullenfluffyjenni]
18:37:53 [cullenfluffyjenni]
… Use case with telco interop with PSTN
18:38:08 [cullenfluffyjenni]
… need to be able to place and receive calls to PSTN
18:38:16 [francois]
s/Questiona /Question /
18:38:27 [cullenfluffyjenni]
… not clear how much gateway functionality would be needed
18:38:49 [cullenfluffyjenni]
… IN the case of call FedEx, this adds being able to navigate IVR
18:39:19 [cullenfluffyjenni]
Dan: brought up IVR interaction can be voice rec too
18:39:50 [cullenfluffyjenni]
hta: need to tease out the requirements from this use case
18:40:45 [cullenfluffyjenni]
Dan: does not care about telephone use case but if we are going to do it, we should do it right
18:41:04 [cullenfluffyjenni]
Colin: are there other scenarios for legacy end points
18:41:17 [cullenfluffyjenni]
Stefan: these are the only two case right
18:41:45 [cullenfluffyjenni]
Roni: brought up need to deal with call center cases
18:42:00 [cullenfluffyjenni]
Christer: goal is not to limit to PSTN, it is to connect to SIP
18:42:24 [cullenfluffyjenni]
Colin: very differnt to GW soemthing that uses same media formats vs differnt media formats
18:42:38 [cullenfluffyjenni]
Roni: ALso different in terms of security
18:43:26 [cullenfluffyjenni]
Roni: do we need to knwo it is secure end to end
18:43:59 [cullenfluffyjenni]
hta: In his google role: worried that we are worring too much concern about interoperabilyt
18:44:23 [cullenfluffyjenni]
… telco network is only one concer
18:45:09 [francois]
cullen: the Fedex use case. It's not only DMTF. There's the initial prompt. PSTN is not easy. Many attempts to interop with that have failed with Fedex.
18:45:31 [Venkatesh]
I agree with that comment about worrying too much about PSTN.
18:45:32 [francois]
... We're very interested with the legacy use case.
18:45:45 [francois]
... 2.5 billion user out there without Internet connections.
18:46:18 [cullenfluffyjenni]
ekr: There is interop with PSTN, legacy SIP devices, partially standard devices like webex
18:46:39 [Venkatesh]
the very same argument was used when other initiatives started and complicated the heck out of the specifications with very little benefits IMO.
18:46:52 [cullenfluffyjenni]
stefan: Use case video conference server
18:47:14 [cullenfluffyjenni]
… doing simulcast where clients send high and low res video
18:47:41 [cullenfluffyjenni]
… central server siwtches the active speaker high res video to all others plus sends a copy of all low res streams
18:48:20 [cullenfluffyjenni]
Dan: Q, we are talking about a display with many people, plus when speaking each person gets bigger
18:48:59 [cullenfluffyjenni]
stefan: does not need to get bigger immediately, can be hysteresis on staying on room
18:49:04 [Dan]
trying to identify the Dan's
18:49:30 [Dan]
yep - Dan in Cullen's notes it's not the Dan (Romascanu) in the IRC :-)
18:50:26 [cullenfluffyjenni]
The dan in my notes was Dan Burnett - how do I indicate that ?
18:50:44 [cullenfluffyjenni]
stefan: the server decides which one to display
18:50:58 [Dan]
just call me DanR if I speak
18:51:15 [cullenfluffyjenni]
colin: very differnt requirements if users get to decide what streams get display instead of server
18:52:30 [cullenfluffyjenni]
stefan: This use case is inside an organization and introduces a firewall. People outside the firewall should be able to participate
18:52:41 [cullenfluffyjenni]
Topic: Derived API requirments
18:53:22 [cullenfluffyjenni]
hta: these requirements are only going to be discussed here not in IETF
18:53:56 [cullenfluffyjenni]
Dan: Is A1 asking permission or asking them which one to use ?
18:54:22 [cullenfluffyjenni]
Ekr: this is a fundemental invariant that the browser that needs to do this
18:54:44 [cullenfluffyjenni]
Dan: in W3C we should use the term User Agent not Browser
18:55:35 [cullenfluffyjenni]
ekr: The web application needs to be able to request use of the device. The user agent needs to get consent to allow that
18:57:33 [cullenfluffyjenni]
ekr: two way to do device selection. 1) application finds the devices and asks user which one wants to use 2) application asks for audio device and UA has way to select one
18:58:02 [cullenfluffyjenni]
Matthew: useful to be able to preflight the permissions and find out if they would be OK or not
18:58:22 [cullenfluffyjenni]
hta: getting close to end of time for this
18:58:55 [cullenfluffyjenni]
francois: do we have some willing to review requirements
18:59:50 [cullenfluffyjenni]
ACTION: Dan to send comments reviewing requirements to list
18:59:50 [trackbot]
Sorry, amibiguous username (more than one match) - Dan
18:59:50 [trackbot]
Try using a different identifier, such as family name or username (eg. ddruta, dburnett, dromasca)
19:00:08 [cullenfluffyjenni]
ACTION: DanB to send comments reviewing requirements to list
19:00:09 [trackbot]
Created ACTION-5 - to send comments reviewing requirements to list [on Daniel Burnett - due 2011-07-30].
19:00:31 [cullenfluffyjenni]
Alissa: where are the requirements going to live
19:00:45 [cullenfluffyjenni]
hta: open issue - like to hear comments on this at end
19:01:08 [cullenfluffyjenni]
stefan: moving on Security consideration slide
19:01:23 [francois]
ISSUE: where are requirements going to live?
19:01:24 [trackbot]
Created ISSUE-2 - Where are requirements going to live? ; please complete additional details at .
19:01:27 [cullenfluffyjenni]
ACTION: hta query authors on A15 on what context means
19:01:27 [trackbot]
Sorry, couldn't find user - hta
19:02:26 [cullenfluffyjenni]
John: what about recording of media. Record what is spoken on mic or received at far end ?
19:02:52 [cullenfluffyjenni]
… recording local or recording on a device across the network
19:02:55 [francois]
ACTION: hta query authors on A15 on what context means
19:02:55 [trackbot]
Sorry, couldn't find user - hta
19:03:05 [cullenfluffyjenni]
… are people interest in this type of use case ?
19:03:15 [francois]
ACTION: harald to query authors on A15 on what context means
19:03:15 [trackbot]
Created ACTION-6 - Query authors on A15 on what context means [on Harald Alvestrand - due 2011-07-30].
19:03:32 [cullenfluffyjenni]
ACTION: John Ellwell - propose use case on recording
19:03:32 [trackbot]
Sorry, couldn't find user - John
19:04:08 [dromasca]
dromasca has joined #webrtc
19:04:19 [cullenfluffyjenni]
stefan: asking question about adding other use case
19:04:30 [francois]
[Note there is no way to action someone who is not a participant in the WG using Tracker]
19:04:42 [cullenfluffyjenni]
hta: do we want lots of use cases that differ or a use case that encompasses lots of aspects
19:05:02 [cullenfluffyjenni]
… what style do people want
19:05:21 [francois]
cullen: slight preference that encompasses lots of aspects instead of having tens of use cases.
19:05:30 [francois]
hta: I seem to be outnumbered.
19:05:33 [cullenfluffyjenni]
stefan: me too
19:06:04 [cullenfluffyjenni]
francois: do we need a use case with screen casting between peers, like VNC?
19:07:08 [francois]
s/me too/same as Cullen/
19:07:20 [cullenfluffyjenni]
roni: There are uses cases in other WG in IETF. For example CLUE and the semantic label.
19:07:44 [cullenfluffyjenni]
Action: Roni Eveans - find some of the use cases and send to group
19:07:44 [trackbot]
Sorry, couldn't find user - Roni
19:09:26 [cullenfluffyjenni]
(?Att): We need to look at them from the user perspective. End to end user experience is important thing. There are some use cases that are driven by actors:" in our case users, user agents, servers. We need to think that way about this work. Discovery of capabilities and matching two browsers together should be a big one. The timelines of browser development will mandate that we need this.
19:09:58 [cullenfluffyjenni]
hta: over time - want to move on
19:10:07 [francois]
19:10:42 [cullenfluffyjenni]
Christer: goal is to come up with use cases that derive new requirements
19:11:38 [cullenfluffyjenni]
Tim: like to include music use case
19:11:48 [cullenfluffyjenni]
Cullen: in favour of it
19:12:22 [cullenfluffyjenni]
hta: on E911, drop for now
19:12:34 [cullenfluffyjenni]
Topic: Implementation Experience
19:13:24 [cullenfluffyjenni]
hta: presenting in his google role on their implementations in chrome
19:13:36 [burn]
I am Dan_Burnett
19:13:57 [cullenfluffyjenni]
… goal, going for production quality code in chrome for everyone
19:14:10 [cullenfluffyjenni]
… used to provide concrete feedback to the API and protcols
19:14:25 [cullenfluffyjenni]
… they know the version they are shipping in the first version will not be what is in second version
19:14:36 [cullenfluffyjenni]
… they have released key components at
19:14:50 [cullenfluffyjenni]
… working on integrating into chroming
19:15:25 [cullenfluffyjenni]
… add a webrtc C++ api that wraps the GIPs code
19:16:37 [cullenfluffyjenni]
… webkit had a "quite rigorous" review process. Specs are very unstable.
19:17:07 [cullenfluffyjenni]
… roling out changes to libjingle, webkit and more more I missed
19:17:41 [cullenfluffyjenni]
… Got to a working demo with audio and video in brwoser
19:17:45 [cullenfluffyjenni]
… going to work real soon now
19:17:50 [cullenfluffyjenni]
ekr: what does that mean
19:18:07 [cullenfluffyjenni]
hta: can't comments on relases dats - matter of months before it is in production chromium
19:18:44 [cullenfluffyjenni]
hta: prefixing everything with webrtc to allow for changes to stable system later
19:19:24 [francois]
cullen: after you get with a version in the production code. Is the intention to remain backwards compatible with the API you'll have shipped?
19:19:45 [francois]
hta: we'll argue more strongly against cosmetic changes, yes. We're open for more important changes.
19:19:58 [cullenfluffyjenni]
ekr: will it woll out as command line switch , then no switch
19:20:09 [cullenfluffyjenni]
hta: yes, expect to see stage with switch
19:20:13 [francois]
i/cullen: after you/scribe: francois/
19:20:25 [francois]
i/ekr: will it woll/scribe: cullenfluffyjenni
19:20:35 [cullenfluffyjenni]
Topic: Implementation from Mozilla
19:20:40 [francois]
s/will it woll/will it roll/
19:21:48 [cullenfluffyjenni]
Tim: mostly been focusing on infrastructure work
19:21:57 [cullenfluffyjenni]
… for example, speeding up camera pipline
19:22:08 [cullenfluffyjenni]
… doing a new low latency audio backend
19:22:26 [cullenfluffyjenni]
… likely to land in firefox 8 or 9
19:22:43 [cullenfluffyjenni]
… doing Media Stream API for splittling , mixing, syncronization
19:23:01 [cullenfluffyjenni]
… allows for the more complex use cases and innovation
19:23:46 [cullenfluffyjenni]
… Plans: using GIPS code from google. First target is firefox addon. Want to do this as it is rapidly evolving.
19:24:01 [cullenfluffyjenni]
… Makes it easier to rapidly intereate
19:24:23 [cullenfluffyjenni]
Takeget is something production ready in Q1 2012 (just a rough estimate, not a commitment)
19:25:09 [cullenfluffyjenni]
… whole bunch of user experience questions, call interupt, multi domain conferencing
19:25:31 [cullenfluffyjenni]
… been discussing doing SIP directly in browser
19:25:44 [cullenfluffyjenni]
… feel this gives you easeier way to tie to other devices
19:25:44 [jesup_cell]
jesup_cell has joined #webrtc
19:25:55 [francois]
19:26:52 [francois]
Topic: Implementation from Cisco
19:26:55 [cullenfluffyjenni]
Topic: Cary brand presenting Cisco implementation
19:27:10 [francois]
s/Topic: Implementation from Cisco//
19:27:12 [cullenfluffyjenni]
cary: started to see can we get two browsers to call each other using sip
19:27:42 [cullenfluffyjenni]
… have implemented this in Chromium and Mozilla
19:28:07 [cullenfluffyjenni]
… can do browser to browser voice and video calls betwene browsers and between browsers and video phones
19:28:16 [cullenfluffyjenni]
… using GIPS
19:29:00 [cullenfluffyjenni]
… put Cisco SIP stack chromium by implementing a render host API and also need to touch the webkit glue
19:29:56 [cullenfluffyjenni]
…Did Firefox extension focusing on putting the video and voice
19:30:22 [cullenfluffyjenni]
… plan to contribute code to open source projects "soon"
19:31:08 [cullenfluffyjenni]
Topic: Ericsson Implemetation
19:31:28 [cullenfluffyjenni]
stefan: working on top of webkitGTK+
19:32:23 [cullenfluffyjenni]
… goal is to learn about the API and how it works, learn about flexibility of API, learn it can be implemented with reasonable effort
19:32:43 [cullenfluffyjenni]
… have send feedback to editor of spec to add things like label
19:33:05 [cullenfluffyjenni]
… there are a bunch of blog posts (URL in slides)
19:33:33 [cullenfluffyjenni]
… can demo offline if you want and there is a youtube video of this
19:33:48 [cullenfluffyjenni]
magnus: How many of you have looked at security issues
19:34:08 [cullenfluffyjenni]
hta: chrome has touch security review process and this is going throught it
19:34:18 [cullenfluffyjenni]
tim: have touch security review process
19:34:54 [burn]
cullen: security, what's that?
19:36:00 [francois]
Topic: API Design Questions
19:36:26 [francois]
scribe: francois
19:36:58 [francois]
cullen: trying to come up with questions and answers that people in the room may have as things they want to do.
19:37:35 [francois]
... Looking for feedback on whether we should this or that. Consensus on things that don't need to be done.
19:38:11 [francois]
TedHardie: thinking about whether some of the interfaces between the browsers and the OS need to be taken into account
19:38:40 [francois]
cullen: Right. Today, I'm going to stay high level, but we'll need to go into much more details later on.
19:39:24 [francois]
... Design principles: same stuff as said earlier. A simple app does not need to know a lot about underlying things.
19:39:45 [francois]
... Looking at use cases that enable things.
19:40:06 [francois]
... Starting with connecting to media: connecting to devices, cameras, microphones.
19:40:25 [francois]
... Do we have an API to enumerate what the various cameras are on a device?
19:40:40 [francois]
... Example of laptop with different cameras.
19:40:46 [francois]
... I'd like some feedback.
19:41:18 [francois]
hta: one thing that is fairly common is "switching to headset".
19:41:49 [francois]
ekr: also common that the system picks up the wrong camera. The feature that is imperative is that the user gets the choice.
19:41:49 [anant]
switching to headset is taken care of the OS though (in the most common cases)
19:42:16 [francois]
... whether it's a web app or a chrome issue is still tbd.
19:42:45 [jesup]
tablets: front/rear, etc. May be able to group with user giving permission to use hte camera
19:43:10 [francois]
TedHardie: two cases. One is when you want to set a default. Second is when you want to switch or mix.
19:43:55 [francois]
... For the enumeration, I do think that the JavaScript needs to be able to query that information from the browser, but not for naming.
19:44:42 [francois]
cullen: an API to find out the current list of media devices and some notifications mechanism to tell us what modifications there are to that.
19:45:06 [francois]
DanDruta: that ties with the consent problem.
19:45:33 [jesup]
Right: camera/mic plugin/removal. Consent needed for a new device to be used
19:45:55 [francois]
TedHardie: I disagree. The need for consent needs to be on a per call basis.
19:46:11 [gape]
gape has joined #webrtc
19:46:20 [francois]
DanDruta: I may not want to give permission to an app to see my face, but may be ok for it to see my room.
19:46:25 [jesup]
Though a user could (at their option) pre-give consent for a specific device/app combo
19:47:09 [francois]
Tim: the ability to enumerate the different cameras may raise a security concern as it gives the ability to fingerprint the browser more easily.
19:48:02 [francois]
MatthewKoffman: when you install Skype on a tablet, for instance, you typically enable the app to access cameras.
19:48:13 [jesup]
Related issue: naming of cameras - "standard" names vs user input names vs generic names (camera_1, etc)
19:48:39 [francois]
cullen: the permission problem is increadibly complex.
19:48:57 [francois]
... I don't think we have enough to nail down the many ways we may need to access the camera yet.
19:49:22 [jesup]
Is the solution to the permission problem part of our spec, or something for each implementation to decide on?
19:49:31 [francois]
alissa: thinking about the use case where you may want to use the camera to take still pictures but not to stream video
19:49:46 [francois]
stefan: coordination with DAP. We'll handle streams, they will handle still pictures.
19:50:21 [burn]
actually, I think Alissa's concern was that this API might be used to record but not stream
19:50:33 [francois]
cullen: you should be able to add new cameras/microphones and switch to that at any time.
19:50:48 [alissa]
yeah, capture or record, but not stream
19:51:11 [burn]
right, capture. and then presumably do evil.
19:51:35 [francois]
cullen: the currently proposed API does not give you much in terms of ICE process.
19:51:55 [francois]
... The one issue that I want to ask is how do we want to pass credentials?
19:52:19 [francois]
... Does the JavaScript see the password?
19:52:44 [francois]
hta: good question on what the model is. Whether it's on the user, browser, or server.
19:53:58 [francois]
cullen: [examples of different TURN servers configurations found in the wild]
19:54:24 [francois]
MatthewKoffman: do we need to have calling use cases that involve enterprises?
19:54:29 [francois]
cullen: there's one.
19:54:56 [francois]
ACTION: cullen to send a server-provider TURN use case and user-provider TURN use case
19:54:56 [trackbot]
Created ACTION-7 - Send a server-provider TURN use case and user-provider TURN use case [on Cullen Jennings - due 2011-07-30].
19:55:35 [francois]
cullen: other things we could possibly want to be notified about such as:
19:56:09 [francois]
... can't gather address from one of servers, fail to connect to TURN server, other side disconnects.
19:56:14 [francois]
... etc.
19:56:51 [francois]
... Each time you get a better path to the other side, knowing about that would help debugging things a lot.
19:57:19 [francois]
TedHardie: why would we want that other than for debugging?
19:58:23 [burn]
Another point Matthew made a moment ago that Cullen wanted captured: may want to know when my (the user's) address changed.
19:58:52 [francois]
... If you chose 2 instead of 3 or 4, do you want this to be passed back to the JavaScript?
19:59:28 [francois]
MatthewKoffman: yes, you need that for several purpose
19:59:46 [francois]
cullen: to tell people to switch to another NAT, because the current one is evil.
20:00:30 [francois]
hta: I can imagine that people will say that not passing the address back to JavaScript is actually a security feature.
20:00:48 [gape]
20:00:50 [francois]
MatthewKoffman: I can explain why it's a fake security issue.
20:01:15 [jesup]
The remote address is trivially available on the wire since data is going peer-to-peer
20:01:29 [derf]
Not to the JS.
20:01:42 [jesup]
20:01:54 [francois]
[discussion on aggressive/fast/low mode]
20:02:18 [francois]
Colin: sometimes you want not to use the best possible connectivity, but maybe something below.
20:02:39 [francois]
Christer: not so much an error, rather a choice when you call the API.
20:02:53 [tedhardie]
I'm concerned that the API not force the JS application; after all, some of these applications are simply going to say "sorry, video/audio not available" to the user, where this is an add-on to the basic application (the poker site video use case)
20:03:18 [tedhardie]
Sorry, missed the text "to deal with this level of detail"
20:04:52 [francois]
ekr: connectivity check, you're going to want to know whether the connection is direct or through the relay, etc.
20:05:19 [francois]
MatthewKoffman: that's the sort of information you know to be able to say: "your NAT is fine, it's John's NAT that's crappy".
20:05:57 [francois]
[calling for a 15mn break. Discussion to continue afterwards]
20:14:07 [gape]
gape has joined #webrtc
20:17:05 [francois]
20:17:11 [francois]
RRSAgent, draft minutes
20:17:11 [RRSAgent]
I have made the request to generate francois
20:28:57 [Gape]
Gape has joined #webrtc
20:32:07 [francois]
Present+ Gonzalo_Camarillo
20:32:16 [francois]
Present+ Ted_Hardie
20:32:24 [francois]
Present+ Emile_Stephan
20:32:45 [burn]
Scribe: Dan_Burnett
20:32:50 [francois]
Present+ Roni_Even
20:32:52 [burn]
ScribeNick: burn
20:33:17 [francois]
Present+ Andrew_Hutton
20:33:26 [burn]
Topic: ICE
20:33:53 [burn]
Topic: Signaling
20:33:56 [francois]
Present+ Leon_Portran
20:33:57 [Cary]
Cary has joined #webrtc
20:34:10 [francois]
Present+ Alan_Johnston
20:34:11 [burn]
Cullen: for non-ICE signaling, when do you send messages?
20:34:21 [francois]
Present+ Ross_Finlayson
20:34:37 [burn]
... need to add all media codecs before end of javascript (all at same time). when function call returns, signaling is sent
20:35:14 [burn]
... Other option is "open" we proposed.
20:36:06 [burn]
... either add explicit startsignaling, or queue up everything and add at once which means implicit signaling
20:36:22 [burn]
Matthew: do it the way everything else does, whatever that is.
20:36:32 [burn]
... I think browsers do it implicit way.
20:36:36 [francois]
Present+ Ram_Ravinaranath
20:36:36 [tedhardie]
tedhardie has joined #webrtc
20:36:41 [tlr]
tlr has joined #webrtc
20:36:44 [burn]
... because every time control is returned it re-renders
20:36:45 [francois]
Present+ John_Elwell
20:36:56 [burn]
Christer: who is doing negotiation?
20:37:20 [tlr]
Present+ ThomasRoessler
20:37:28 [burn]
Cullen: not javascript that does signaling
20:38:07 [burn]
EKR: you express opinions to PeerConnection about what you would like, and invisible to JS this happens in the background as necessary
20:38:21 [burn]
Cullen: some negotiation will happen, done by the browser
20:38:21 [carybran]
carybran has joined #webrtc
20:39:03 [burn]
DanDruta: this is early vs. late binding. either give pref in advance or control directly.
20:39:22 [francois]
Present+ Alissa_Cooper
20:39:32 [francois]
Present+ Timothy_Terriberry
20:40:16 [burn]
Cullen: one way as you get permission and access to media streams, you gather up and then put all in the PeerConnection object at once. alternatively, could add to PeerConnection one at a time as you get them but don't start sending media on any until you say go.
20:40:31 [burn]
(missed Matthew comment)
20:40:53 [burn]
EKR: they are really equivalent
20:41:01 [francois]
Present+ Dan_Romascanu, Jon_Peterson, Bert_Wijien, Nar_Gadiraju, Xavier_Marjou, Christer_Holmberg, Miguel_Garcia, Magnus_Westerlund, Colin_Perkins, Salvatore_Loreto
20:41:11 [burn]
Stefan: should be able to add and remove during session. confusing if you have to do startsession.
20:41:28 [francois]
Present+ Dan_Druta, Bert_Greevenbosch, Matthew_Koffman, Eric_Rescorla, Cary_Bran
20:41:38 [burn]
EKR: JS VM must not start until control has returned from all JS.
20:41:46 [burn]
Cullen: this is not true of all JS.
20:42:03 [burn]
Cullen: sounds like leaning towards implicit.
20:42:16 [burn]
Matthew: yes, but treat everything as an add.
20:42:32 [burn]
Roni: and need delete as well
20:42:41 [burn]
Cullen: negotiation is implicit
20:43:48 [burn]
Cullen: most of the APIs were leaning towards SIP-style SDP offer/answer, thought there was consensus there.
20:44:10 [burn]
... three models: SIP, Jingle, or raw SDP in offer/answer wrapper.
20:44:48 [burn]
... another variant is an advertise/propose model that I had sent in.
20:45:11 [burn]
ACTION: Matthew to send some text around SDP
20:45:11 [trackbot]
Sorry, couldn't find user - Matthew
20:46:01 [burn]
Colin: all payload formats use offer/answer semantics, so keeping that would be helpful.
20:46:31 [burn]
Matthew: Need to be able to determine what kinds of coders/decoders you have.
20:46:52 [burn]
hta: have never seen a use case where you need to know which coder/decoder you're using.
20:47:40 [burn]
Matthew: matters for audio recording. same as determining whether you can do real-time media. if API allows recording of video, need to be able to know how to encode it, resolution, etc.
20:47:49 [burn]
... maybe other groups might do this, but it needs to be done.
20:48:13 [burn]
... want to be able to choose from JS which encoding, etc. to use.
20:49:10 [burn]
(missed comment from Harald on why this is necessary).
20:49:39 [burn]
hta: JS coder needs to just say "I want to communicate" but not necessarily how.
20:50:29 [burn]
Matthew: what if browser is a terminal for PBX. want browser to act more like Skinny phone than SIP phone.
20:51:20 [burn]
Cullen: replace skinny with MGCP for this discussion. you need to know things about device. can't nogotiate SDP without knowing additional info.
20:52:09 [burn]
Roni: there are many parameters, not all are codec-specific. Some params you need to have anyway.
20:53:15 [burn]
Ted: maybe middle ground is advertise/offer/answer. First send what's available, then offer/answer from then on. You get an informed O/A and can still use O/A.
20:53:46 [burn]
... gateway should not need to have fundamental semantic shifts. Adv/O/A leaves you with the same semantics as SDP. Should discuss over beer.
20:54:06 [burn]
Stefan: we need this data to negotiate, but is it part of this API?
20:55:14 [burn]
JonPeterson: O/A always had the notion of counter-proposal. SDP can describe sessions well but not negotiate. So you can describe a complete session and allow a counter-proposal for something better.
20:55:28 [burn]
Ted: makes gateways too complex.
20:55:48 [burn]
Jon: if offer or answer described full session, yes, but it doesn't.
20:55:51 [tlr]
tlr has joined #webrtc
20:57:02 [burn]
hta: no matter how we do this, we will see JS parsing these negotiation blocks. If we want to support our use cases, this will need to be gatewayed eventually anyway.
20:57:30 [burn]
Matthew: it's a horrible hack to use PeerConnection to ask for capabilities and parse it in JS, when the API could just support it.
20:57:40 [burn]
Cullen: let's see a proposal and then discuss.
20:57:48 [burn]
Cullen: already decided to add video mid-call.
20:58:37 [burn]
... do we need to know when other side is sending?
20:58:52 [burn]
... nice to know in the UI that connection is being set up and when it's done.
20:59:10 [burn]
... media in different directions may connect at different times, nice to have notification.
20:59:45 [burn]
Roni: when you receive the media you know you're getting it. when you send you don't know.
21:00:07 [burn]
Cullen: right. should there be an API that says that both sides are receiving?
21:00:41 [burn]
... Will reword this question to be clearer.
21:00:58 [burn]
... Now let's talk about tracks.
21:01:23 [burn]
... whatwg API example up on screen
21:02:01 [burn]
Cullen: which kind of media goes in different tracks. when are they in one track, when are they separate.
21:02:10 [burn]
... I like for them all to be separate.
21:02:40 [burn]
Matthew: don't like. many encoders can combine stereo channels into one codec on one track
21:02:53 [burn]
Cullen: I like your metaphor, which is based on the codec.
21:03:08 [burn]
JohnElwell: when is it a track, and when is it a media stream?
21:03:34 [burn]
Stefan: stream contains 1 or more tracks. keeping them within one stream helps you with synchronization.
21:03:51 [burn]
hta: one PeerConnection can be connected to mulitple streams, each with mulitple tracks.
21:04:06 [francois]
21:04:36 [burn]
Cullen: working definition is that if different pieces of media are in same codec, they are to be in same track. if multiple tracks need to be synchronized together, they are in the same media stream.
21:04:47 [burn]
Magnus: has to do with mapping to RTP sessions
21:05:07 [burn]
... sync cannot be across sessions.
21:05:22 [burn]
hta: i thought media stream mapped to cname, but not sure.
21:05:57 [burn]
Roni: track and media stream are both logical entitties from a w3c perspective. but we need to know how to map to IETF level
21:06:09 [burn]
Cullen: want Magnus to work all of this out
21:06:30 [burn]
... (joking, mostly)
21:06:40 [burn]
... Need mapping to AVT, for sure.
21:06:54 [burn]
(general agreement)
21:07:44 [burn]
Roni: As long as we talk about logical entities, we don't need to talk RTP or SDP
21:09:16 [burn]
Cullen: things in one media stream will map to one RTP c-name. This is how you signal that they are synchronized (rendered together).
21:09:57 [burn]
... and a track will have a one-to-one correlation with an SSRC in the simple case.
21:11:34 [burn]
Cullen: receiving video, bit rate is being adjusted, should we know the other side is doing this? when the media we're receiving changes in some way, do we want to be notified?
21:11:38 [burn]
Roni: why would we?
21:11:47 [burn]
s/notified/notified in JS/
21:11:56 [burn]
Cullen: may want to change my screen resolution
21:12:24 [burn]
... for bit rate, if all my streams just dropped their bit rate I may in the JS decide to close some of my streams.
21:12:45 [burn]
(general agreement that this is useful info)
21:13:16 [burn]
Christer: if quality is decreasing, for example, could remove video to improve audio.
21:14:15 [burn]
DarylMalis??: good to collect and make use of this. My concern is that this info in practice is often used only to decrease quality of the end result but never improve.
21:14:25 [burn]
Tim: bitrate is a terrible proxy for quality
21:14:35 [burn]
... maybe everyone stopped moving or talking
21:14:46 [burn]
... exposing quality info is very codec-spceific
21:15:03 [burn]
Magnus: this is really about providing congestion info, right?
21:15:13 [burn]
hta: this is difficult to do in real time.
21:15:37 [burn]
... we can get info on sender's changes.
21:16:18 [burn]
Cullen: trying to keep this simple. eg either sender changed resolution or reduced cap on bandwidth.
21:16:28 [burn]
Tim: difficult to detect cap on bandwidth
21:17:16 [burn]
Daryl: with clients using adaptive bitrates, they will lower the rate when nothing's happening and then increase back up when there is motion/sound.
21:18:02 [burn]
EKR: what we need is a way for the sender to say to the receiver "I'm having to back off here"
21:18:26 [burn]
Cullen: summary is we like this but it's hard and we don't really know how to do it properly (like packet loss concealment)
21:18:59 [burn]
... presuming going to legacy devices via gateways. Do we have enough signaling info?
21:19:18 [burn]
Matthew: out of scope.
21:19:40 [burn]
Cullen: no, for example receiving early media.
21:19:53 [burn]
Matthew: need SDP for early media.
21:20:04 [burn]
Cullen: changing from one-way to two-way media.
21:20:23 [burn]
EKR: where is the call state machine.
21:20:42 [burn]
Cullen: all current proposals have it in PeerConnection object.
21:21:15 [burn]
Matthew: this kind of signaling has to happen over the JS channel. It would otherwise prevent many great use cases.
21:21:38 [burn]
Daryl: instead of this just being about ringing, can we generalize to early media?
21:21:46 [burn]
hta: impacts FedEx use case.
21:22:39 [burn]
Matthew: no such thing as early media, just media. There are no signaling implications. what would a skinny phone do calling fedex? if it didn't work, is the problem in the phone or elsewhere?
21:22:50 [francois]
scribe: francois
21:23:26 [francois]
Cullen: other question. You'll want some general option to reject an incoming call based on who's calling.
21:23:59 [francois]
Matthew: also, how's B notified when A calls B if B does not run his browser?
21:24:03 [francois]
hta: out of scope
21:24:23 [francois]
Matthew: we should have use cases that show that this is needed.
21:24:44 [francois]
Cullen: sounds like "how do I receive calls when my phone is off"?
21:24:48 [francois]
Matthew: no.
21:25:07 [francois]
stefan: notifications in scope of the Web notifications WG. We'll follow their conclusions.
21:25:35 [tlr]
tlr has joined #webrtc
21:26:12 [francois]
Christer: if your browser is not running, you're probably not registered to your SIP provider, so the client will never be able to figure out someone called in the first place.
21:26:51 [francois]
TedHardie: basically, you need some architecture that allows people to receive notifications when things run in the background.
21:26:58 [francois]
... It's not an API issue.
21:27:06 [francois]
Matthew: right, it's a use case issue.
21:27:12 [francois]
TedHardie: I will send a use case.
21:28:02 [francois]
hta: rejecting a call should be a matter of not creating a PeerConnection object.
21:29:28 [francois]
cullen: question is do you start your ICE before or after? This is going to make a timing question. My prediction is that ICE processing will be started before.
21:30:07 [francois]
Matthew: an evil Web site gets your address.
21:30:16 [francois]
cullen: I can't force browsers to go to an evil browser.
21:31:00 [francois]
Matthew: a Web site that does not want to reveal that information must be able to go through the state machine and make the process happen later.
21:31:46 [francois]
... It must be able for a Web site that wishes to protect users privacy to send JavaScript that has ICE processing happen after.
21:33:34 [francois]
[ekr made a comment on presence which I missed]
21:34:24 [francois]
[discussion on "Msg blob" bad naming]
21:35:45 [francois]
cullen: moving to msg blog issues. We need more or less the SDP message. We need to have crypto context set up. It means we need the identity.
21:36:03 [francois]
... We probably need some unique identifier for peer connections.
21:36:17 [francois]
... Those are the minimum amounts of things I can think of.
21:36:52 [francois]
ekr: Who's the target of these information? The JavaScript, the Peer connection?
21:37:10 [francois]
cullen: in the simple case, it's going to be relayed. Same thing up, same thing down.
21:37:44 [francois]
... There will sure be cases when things get manipulated (JavaScript or server)
21:39:42 [francois]
ekr: what information is carried here?
21:40:28 [francois]
Matthew: if you have SIP in the browser, you need to get this right.
21:41:00 [francois]
hta: media negotiation machine needs to be in the browser. The call state machine is not.
21:41:22 [francois]
cullen: looking forward to someone splitting media state machine from call state machine that is SIP-mappable.
21:41:54 [francois]
ekr: re. same message up and message down, do we have consensus there?
21:42:23 [francois]
stefan: there should be as it should be possible to get encryption from endpoint to endpoint.
21:43:38 [francois]
cullen: is it possible, in the simplest case to have the server do nothing but relay the message from one side to the other? Do we have consensus on that?
21:43:50 [francois]
... That's what all proposals have.
21:44:24 [francois]
... There's always a "you need to send this chunk of data to the other side", but none of the spec says that the server needs to make any update.
21:44:56 [francois]
Christer: well, at the end of the day, the other side needs to understand what comes in. If you convert between protocols, you may need to adjust the message.
21:45:29 [francois]
Cullen: let me rephrase the question. Should the format that comes from one side be potentially identical to the one that goes to the other side?
21:45:39 [francois]
[no pushback heard]
21:46:07 [francois]
Cullen: final question is the size of the blobs.
21:46:18 [francois]
hta/stefan: no limit. Limit is for datagram.
21:46:35 [francois]
Cullen: ok, so these blobs can be large enough.
21:47:20 [francois]
Cullen: moving on to media issue.
21:47:55 [francois]
... Question about hints you give when setting up cameras.
21:48:29 [francois]
... What I'm proposing here are size, spacial vs temporal quality are important (spoken voice, or non-spoken voice). Clearly needs to evolve over time.
21:48:38 [francois]
... Some people proposed we'd have none of these things.
21:49:13 [francois]
Roni: Let's assume that we're using SDP. Are you suggesting that we have a separate set of hints that are not part of SDP?
21:49:28 [francois]
Cullen: this is even on the which codec should I use.
21:49:39 [francois]
Roni: I assume you can negotiate everything with SDP.
21:49:48 [francois]
Cullen: The Web browser can. But the JavaScript?
21:50:06 [francois]
Matthew: everything can be manipulated through JavaScript before it goes out.
21:50:38 [francois]
Cullen: there's one range of opinions is that JavaScript ought to be able to construct the SDP offer. The other range is that it ought to be able to do nothing.
21:51:02 [francois]
hta: no one objected to the idea that screen size should be communicated
21:51:22 [francois]
cullen: also rough consensus earlier on on voice/music.
21:52:28 [francois]
Matthew: server can strip out any SDP offer/answer as it wishes before transmitting it.
21:52:43 [francois]
hta: yes, but it can only subset things. It cannot ask for more offers.
21:53:46 [francois]
Roni: if the Web server does not know how the codecs were chosen in the first place, how is the Web server to make the right choice?
21:54:19 [francois]
Cullen: if you don't have the info that there's hardware acceleration for one codec, right, indeed.
21:54:31 [francois]
... Propose to stop here in the interest of tie.
21:54:50 [francois]
Tim: one other point. The audio vs. voip has a lot of implications that do not show in SDP.
21:55:10 [francois]
... Processing that have no bearing whatsoever on what codec you choose.
21:55:30 [francois]
... Filtering SDP will never tell the browser to turn off the AAC(?)
21:55:56 [derf]
francois: AGC, AEC, etc.
21:56:17 [francois]
s/AAC(?)/AGC, AEC, etc./
21:56:34 [francois]
Topic: Administrativia
21:56:58 [francois]
hta: first, an easy one. Next meeting is going to be during TPAC 2011, in Santa Clara, USA, first week of November.
21:57:14 [francois]
... We'll call out for a next teleconference through some Doodle poll.
21:57:39 [burn]
we could also use a w3c teleconference schedule poll . . .
21:57:41 [francois]
... The interesting question here is how do we get to document our output in a way that is effective, acknowledged, implemented and deployed?
21:58:27 [francois]
... What we do at the moment is discuss changes we need to bring to the WHATWG spec.
21:58:57 [francois]
cullen: we'd have more useful feedback in the group if the group publishes a spec in a W3C space.
21:59:30 [francois]
Christer: we have one document regarding the requirements.
21:59:44 [francois]
burn: Common to do both. Requirements doc and spec.
22:00:49 [francois]
francois: explaining W3C process. FPWG triggers call for patent exclusions. Needs to be in W3C space.
22:01:22 [francois]
DanBurnett: one way is to take a starting point. Other way is to redo from scratch.
22:01:40 [francois]
Cullen: from my point of view, critical thing is to have a document.
22:02:20 [francois]
Alissa: being able to explicitly state where there is no consensus in a document.
22:02:30 [francois]
DanBurnett: I agree.
22:02:47 [francois]
Cullen: how many do we have to choose from?
22:03:18 [francois]
... Only one proposal on the table from actual members of the working group.
22:03:56 [francois]
hta: I suggest that the chairs continue the discussion and figure out how to solve this.
22:04:07 [francois]
hta: Any other business?
22:04:33 [francois]
... Thanks all for showing up!
22:04:39 [francois]
[meeting adjourned]
22:04:42 [francois]
RRSAgent, draft minutes
22:04:42 [RRSAgent]
I have made the request to generate francois
22:09:10 [francois]
RRSAgent, bye
22:09:10 [RRSAgent]
I see 9 open action items saved in :
22:09:10 [RRSAgent]
ACTION: Dan to send comments reviewing requirements to list [1]
22:09:10 [RRSAgent]
recorded in
22:09:10 [RRSAgent]
ACTION: DanB to send comments reviewing requirements to list [2]
22:09:10 [RRSAgent]
recorded in
22:09:10 [RRSAgent]
ACTION: hta query authors on A15 on what context means [3]
22:09:10 [RRSAgent]
recorded in
22:09:10 [RRSAgent]
ACTION: hta query authors on A15 on what context means [4]
22:09:10 [RRSAgent]
recorded in
22:09:10 [RRSAgent]
ACTION: harald to query authors on A15 on what context means [5]
22:09:10 [RRSAgent]
recorded in
22:09:10 [RRSAgent]
ACTION: John Ellwell - propose use case on recording [6]
22:09:10 [RRSAgent]
recorded in
22:09:10 [RRSAgent]
ACTION: Roni Eveans - find some of the use cases and send to group [7]
22:09:10 [RRSAgent]
recorded in
22:09:10 [RRSAgent]
ACTION: cullen to send a server-provider TURN use case and user-provider TURN use case [8]
22:09:10 [RRSAgent]
recorded in
22:09:10 [RRSAgent]
ACTION: Matthew to send some text around SDP [9]
22:09:10 [RRSAgent]
recorded in