IETF
Wish
wish@jabber.ietf.org
Friday, November 12, 2021< ^ >
Room Configuration
Room Occupants

GMT+0
[14:10:59] alexamirante joins the room
[14:15:03] Lorenzo Miniero_web_261 joins the room
[14:15:03] Stephan Wenger_web_478 joins the room
[14:17:06] Kazuaki Ueda_web_341 joins the room
[14:17:54] Kazuaki Ueda_web_341 leaves the room
[14:20:11] Adam Roach_web_433 joins the room
[14:21:22] Cullen Jennings_web_816 joins the room
[14:24:20] Mike English_web_677 joins the room
[14:24:51] Ludovic Roux_web_199 joins the room
[14:25:36] Sean Turner_web_604 joins the room
[14:25:49] Harald Alvestrand_web_325 joins the room
[14:28:13] Nils Ohlmeier_web_201 joins the room
[14:28:48] Eric Rosenberg_web_313 joins the room
[14:29:31] Ted Hardie_web_410 joins the room
[14:29:39] David Baldassin_web_760 joins the room
[14:29:55] Renan Krishna_web_586 joins the room
[14:29:57] Martin Thomson_web_749 joins the room
[14:30:04] Paolo Saviano_web_865 joins the room
[14:30:05] Alessandro Toppi_web_263 joins the room
[14:30:17] Mayumi Ohsugi_web_828 joins the room
[14:30:22] Sergio Garcia Murillo_web_438 joins the room
[14:30:27] Giles Heron_web_266 joins the room
[14:30:28] David Baldassin_web_760 leaves the room
[14:30:32] David Baldassin_web_939 joins the room
[14:30:54] Phillip Hallam-Baker_web_885 joins the room
[14:30:57] Paolo Saviano_web_865 leaves the room
[14:31:17] Fatima Zarinni_web_401 joins the room
[14:31:22] Tommy Jensen_web_204 joins the room
[14:32:22] Richard Barnes_web_239 joins the room
[14:33:45] Kazuaki Ueda_web_852 joins the room
[14:33:46] Kiran Makhijani_web_702 joins the room
[14:34:06] Timothy Panton_web_123 joins the room
[14:34:29] Mark Nottingham_web_762 joins the room
[14:34:43] Fatima Zarinni_web_401 leaves the room
[14:35:45] Xavier de Foy_web_992 joins the room
[14:39:03] <Martin Thomson_web_749> you can't avoid clients having to check response codes; if you are using HTTP, then you need to deal with HTTP status codes
[14:42:20] <Martin Thomson_web_749> eye chart!
[14:43:09] <Martin Thomson_web_749> it's OK to not mandate automatic redirect following, or to mandate not following redirects, but you might find that redirects are a useful feature
[14:43:35] <Mark Nottingham_web_762> +1 - redirects are going to be operationally convenient, and possibly necessary, for some
[14:46:22] <Martin Thomson_web_749> 8838
[14:46:37] <Lorenzo Miniero_web_261> https://www.rfc-editor.org/rfc/rfc8840.html
[14:48:06] <Martin Thomson_web_749> PATCH is fine, unless you are attempting to reuse the media type defined in 8840 (if it even defines a media type)
[14:48:56] <Martin Thomson_web_749> Oh, 8840 does define a media type, so if you patch iwth application/trickle-ice-sdpfrag, that has to follow the definition of that media type in RFC 8840.
[14:50:42] <Martin Thomson_web_749> O/A doesn't match HTTP request/response
[14:51:46] <Ted Hardie_web_410> By the way, we're getting a lot of typing sounds on the side; can folks check their mute status?
[14:52:16] <Martin Thomson_web_749> I think that the typing might be Adam Roach.
[14:52:55] <Martin Thomson_web_749> Adam?
[14:53:08] <Martin Thomson_web_749> Thanks
[14:54:05] Ali Begen_web_296 joins the room
[14:54:08] <Sean Turner_web_604> Hi we closed the queue to make sure we get to other presentations ... we can take some of this to the list ;)
[14:54:28] <Adam Roach_web_433> I'm spoiled by Zoom's typing noise suppression. Sorry, folks. :)
[14:54:42] Juliusz Chroboczek_web_444 joins the room
[14:54:43] <Martin Thomson_web_749> waiting in queue is chafing a little, I have to say
[14:55:03] <Martin Thomson_web_749> Cullen is asking the right questions, I think
[14:55:08] Ali Begen_web_296 leaves the room
[14:55:12] Ali Begen_web_294 joins the room
[14:55:16] <Adam Roach_web_433> Martin: same on the queue
[14:55:33] <Timothy Panton_web_123> The problem is using fragment in Patch
[14:55:34] <Adam Roach_web_433> But it's worth noting that trickle ice is a solution requirement, not a byproduct of the architecture
[14:55:54] Ali Begen_web_294 leaves the room
[14:56:06] <Lorenzo Miniero_web_261> I guess the answer might be that it's just awkward from a semantic perspective to refer to things the "wrong way": we're definitely not saving bytes (it's not much), but a m=audio RTP/AVP 0 seems wrong
[14:56:27] Ali Begen_web_114 joins the room
[14:56:32] <Timothy Panton_web_123> For what it is worth my client doesn't send an offer until it has all the candidates.
[14:56:46] Ali Begen_web_114 leaves the room
[14:56:47] <Martin Thomson_web_749> Tim: that's entirely reasonable
[14:56:50] Ali Begen_web_937 joins the room
[14:57:15] <Lorenzo Miniero_web_261> Yeah I added an option to my WHIP client to do either too (send all candidates in SDP vs. trickle)
[14:57:32] <Juliusz Chroboczek_web_444> Timothy, it works fine if there's no TURN servers involved.  It takes ages when there's TURN in the way.
[14:58:04] <Juliusz Chroboczek_web_444> The tragedy is that TURN is required, at least if you have to deal with university networks.
[14:58:41] <Timothy Panton_web_123> TURN at both ends ? I usually find one is enough.
[14:59:18] <Lorenzo Miniero_web_261> I think Juliusz meant indeed gathering TURN on the client side, which might take longer if you need to wait for it
[14:59:29] <Juliusz Chroboczek_web_444> Yes.
[15:00:22] <Stephan Wenger_web_478> Is this an issue between syntax and semantics?
[15:01:22] <Martin Thomson_web_749> This is an issue of communication.
[15:02:24] <Lorenzo Miniero_web_261> I agree that a different definiiton would be needed, in case, and would need a different media type to avoid conflicts: would this need to happen as a new separate draft, though, or something that can happen in the whip draft?
[15:03:28] <Mike English_web_677> Lorenzo++
[15:03:40] <Cullen Jennings_web_816> +1
[15:04:12] <Juliusz Chroboczek_web_444> Right.
[15:04:16] <Martin Thomson_web_749> If you need a definition that is a session-only ice attributes update, then you can do that in the same draft.
[15:05:11] <Cullen Jennings_web_816> We can discuss somewhere else but not sure I agree with Adam when recorder has public IP
[15:05:12] <Mike English_web_677> Adam and Juluisz - what's the threshold for acceptable startup delay? How long can you reasonably wait?
[15:05:33] <Cullen Jennings_web_816> I think the arch issue we need to resolve is if the server needs a public IP address or not
[15:06:01] <Lorenzo Miniero_web_261> Some networks have firewalls that block UDP, snd not all servers do ICE-TCP, and so may need TURN-TCP to get something up and running
[15:06:04] <Martin Thomson_web_749> Juliusz: I think that you are looking for distinct media types rather than query parameters or header fields.
[15:06:11] <Mike English_web_677> Cullen++
[15:06:13] <Juliusz Chroboczek_web_444> Martin, fine with me.
[15:06:19] <Martin Thomson_web_749> one for ICE update, one for trickling
[15:06:58] Murray Kucherawy_web_495 joins the room
[15:07:12] <Juliusz Chroboczek_web_444> Sergio, agreed, that's orthogonal to the issue of out-of-order restarts.
[15:07:52] <Martin Thomson_web_749> Please do not use sequence numbers, use HTTP conditional requests.
[15:08:38] <Adam Roach_web_433> Agree with Martin that we already have etags to solve this problem
[15:08:56] <Cullen Jennings_web_816> @Lorenzo - for the case of UDP is blocked, I think having the server support TCP is really a better direction and is never going to resuplt in super fast startup
[15:10:40] <Martin Thomson_web_749> ufrags can still be used to avoid issues with concurrent updates and trickles, but etags are what you are looking for
[15:10:47] <Martin Thomson_web_749> (or if-modified-since)
[15:12:07] <Martin Thomson_web_749> Reference: https://httpwg.org/http-core/draft-ietf-httpbis-semantics-latest.html#conditional.requests
[15:12:48] <Martin Thomson_web_749> That's invalid Link header field syntax, incidentally, but it isn't a terrible idea.
[15:13:39] <Juliusz Chroboczek_web_444> Cullen, the issue I'm having is with student networks disconnected from the Internet (they go through an HTTP proxy).  The system administrators are understandably nervous about putting Galene in the DMZ, but they are potentially open to putting a TURN server in the DMZ.
[15:14:23] <Juliusz Chroboczek_web_444> I know it's an exceptional case, but it shows that there are legitimate reasons to require a TURN server.
[15:15:02] Giles Heron_web_266 leaves the room
[15:15:06] Giles Heron_web_382 joins the room
[15:15:15] <Martin Thomson_web_749> limiting OPTIONS to CORS is sensible
[15:15:54] <Martin Thomson_web_749> browsers will eat OPTIONS if you are doing CORS; I don't think your Link relations will get to the application.
[15:16:16] <Martin Thomson_web_749> you can fetch with OPTIONS directly, but that will be preflighted still
[15:16:30] <Juliusz Chroboczek_web_444> HEAD?
[15:17:28] <Martin Thomson_web_749> what are you looking to achieve?
[15:17:45] <Lorenzo Miniero_web_261> I'd be fine with a GET to the endpoint to get some info you can use too: it would be one more RTT for the setup, but only endpoints that can't use POST for that would use it anyway
[15:18:08] <Martin Thomson_web_749> If you want to ensure that you have all the TURN information BEFORE you generate an offer, then you need something.  OPTIONS does exist for that purpose.
[15:18:23] <Lorenzo Miniero_web_261> Martin: basically it's to ensure you can get a STUN/TURN server from the WHIP server before you generate your offer
[15:18:29] <Martin Thomson_web_749> Of course, if you are doing OPTIONS to get configuration for the server, then why not put the information in the body of the response?
[15:18:43] <Martin Thomson_web_749> Lorenzo: yeah, I had inferred that
[15:19:11] <Lorenzo Miniero_web_261> Body would work too, I think Link was suggested just for consistency with POST (where the body is used by the SDP)
[15:19:37] <Martin Thomson_web_749> Link is fine for this.
[15:20:12] <Cullen Jennings_web_816> @Juliusz - I get the argument that one could run the server in private networks but it ups the complexity substantially. Running the TURN server in the DMZ does not really have security advantages over having the DMZ forward a single media port from DMZ to the server. Food for thought. But my meta point is we need to decide what our deployment architectures we support are and then the answer to this will be clear.
[15:20:33] <Martin Thomson_web_749> If you are requiring authentication for this OPTIONS, then browsers will preflight that.  That means you have OPTIONS, OPTIONS, OPTIONS, POST.  Enjoy.
[15:21:10] <Sergio Garcia Murillo_web_438> browsers supports updating config with config received on the post
[15:21:24] <Sergio Garcia Murillo_web_438> so they should just do OPTIONS(CORS),POST
[15:21:28] <Martin Thomson_web_749> sergio: when you say "supports", what do you mean?
[15:21:52] <Martin Thomson_web_749> do they generate new candidates and trickle them or do you need to generate a new offer?
[15:22:02] <Sergio Garcia Murillo_web_438> they supoport
[15:22:13] <Sergio Garcia Murillo_web_438> pc = new RTCPeerconnection({})
[15:22:32] <Sergio Garcia Murillo_web_438> pc.createOffer() & pc.setLocalDescription()
[15:22:49] <Sergio Garcia Murillo_web_438> pc.setConfiguration({iceServers:{....}})
[15:22:56] <Sergio Garcia Murillo_web_438> pc.setRemoteDescription()
[15:23:11] <Sergio Garcia Murillo_web_438> without doing an ice restart that would invalidate the SDP offer
[15:23:43] Giles Heron_web_382 leaves the room
[15:23:49] <Martin Thomson_web_749> sounds reasonable, you just need to support trickle :)
[15:24:02] Kiran Makhijani_web_702 leaves the room
[15:24:59] <Juliusz Chroboczek_web_444> Cool.
[15:25:01] <Adam Roach_web_433> Martin: you're falling into the gap between spec and implementation here. you can argue that the sequence Sergio posts should work -- but then go try it in Chrome, Firefox, Edge, and Safari and let me know what happens.
[15:25:08] <Adam Roach_web_433> (Hint: it's not going to work)
[15:25:24] <Sergio Garcia Murillo_web_438> adam, I have tested it.. :)
[15:28:28] Richard Barnes_web_239 leaves the room
[15:28:37] <Martin Thomson_web_749> different URL parameters == different URLs
[15:29:04] <Mark Nottingham_web_762> Why can't links be discovered to separate resources?
[15:29:08] <Mike English_web_677> Yeah, I think obscuring a required parameter like that is asking for a different set of problems
[15:29:21] <Martin Thomson_web_749> mnot: I read this as an implementation constraint/preference
[15:29:22] <Mark Nottingham_web_762> Also violating BCP190, from the sound of it
[15:29:37] <Mark Nottingham_web_762> Ah
[15:29:38] <Martin Thomson_web_749> mnot: yeah, I think that this is easily surmountable
[15:30:02] Eric Rosenberg_web_313 leaves the room
[15:30:15] Tommy Jensen_web_204 leaves the room
[15:30:18] <Juliusz Chroboczek_web_444> Thanks a lot!
[15:30:27] <Adam Roach_web_433> Thanks to the chairs and presenters!
[15:30:33] <Lorenzo Miniero_web_261> Thanks all!
[15:30:37] <Sergio Garcia Murillo_web_438> thank you all!
[15:30:43] Ted Hardie_web_410 leaves the room
[15:30:43] David Baldassin_web_939 leaves the room
[15:30:44] Lorenzo Miniero_web_261 leaves the room
[15:30:48] Mayumi Ohsugi_web_828 leaves the room
[15:30:49] Ludovic Roux_web_199 leaves the room
[15:30:52] Renan Krishna_web_586 leaves the room
[15:31:01] Cullen Jennings_web_816 leaves the room
[15:31:02] Sean Turner_web_604 leaves the room
[15:31:03] Kazuaki Ueda_web_852 leaves the room
[15:31:09] Nils Ohlmeier_web_201 leaves the room
[15:31:13] Murray Kucherawy_web_495 leaves the room
[15:31:18] Mike English_web_677 leaves the room
[15:31:19] Timothy Panton_web_123 leaves the room
[15:31:21] Alessandro Toppi_web_263 leaves the room
[15:31:32] Stephan Wenger_web_478 leaves the room
[15:31:34] Ali Begen_web_937 leaves the room
[15:31:58] Sergio Garcia Murillo_web_438 leaves the room
[15:32:01] Adam Roach_web_433 leaves the room
[15:32:16] Harald Alvestrand_web_325 leaves the room
[15:32:17] Phillip Hallam-Baker_web_885 leaves the room
[15:32:17] Martin Thomson_web_749 leaves the room
[15:32:17] Xavier de Foy_web_992 leaves the room
[15:32:17] Mark Nottingham_web_762 leaves the room
[15:32:17] Juliusz Chroboczek_web_444 leaves the room
[15:44:29] alexamirante leaves the room