- From: Peter Thatcher <pthatcher@google.com>
- Date: Mon, 05 Mar 2018 22:47:48 +0000
- To: Lennart Grahl <lennart.grahl@gmail.com>
- Cc: WebRTC WG <public-webrtc@w3.org>, Cullen Jennings <fluffy@iii.ca>, Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com>
- Message-ID: <CAJrXDUE9+XehEX-F0cxx6snr9fm_=a_J+rgndE5offkaO5VYqQ@mail.gmail.com>
Here's what I present at a WebRTC virtual interim: https://docs.google.com/presentation/d/1o-o5jZBLw3Py1OuenzWDkxDG6NigSmLHvGw5KemKWLw/edit#slide=id.g2f8f4acff1_1_136 And here's copy-and-paste version of the important bits: interface SliceTransport { IceNetworkRoute addNetworkRoute(PacketTransport transport); void selectNetworkRoute(IceNetworkRoute networkRoute); void removeNetworkRoute(IceNetworkRoute networkRoute); } interface IceNetworkRoute { Promise sendCheck(...); eventhandler oncheckreceived; } interface UdpTransport : PacketTransport { readonly attribute IpPort localAddress; readonly attribute IpPort remoteAddress; void close(); } interface UdpPort { readonly attribute IpPort localAddress; UdpTransport connect(IpPort remoteAddress); void close(); eventhandler onnewremoteaddress; } interface NetworkManager { Promise<sequence<NetworkInfo>> EnumerateNetworks(); Promise<UdpPort> OpenUdpPort(IPAddress localIp); attribute eventhandler onnetworkschanged; } interface NetworkInfo { readonly attribute sequence<IPAddress> ips; readonly attribute NetworkAdapterType type; } interface StunClient { Promise<IpPort> sendBindingRequest(PacketTransport transport, ...); } interface TurnClient { Promise<TurnAllocation> sendAllocationRequest(PacketTransport transport, ...); } interface TurnAllocation { readonly attribute IpPort serverAddress; TurnTransport connect(IpPort remoteAddress); void close(); eventhandler onnewremoteaddress; } interface TurnTransport : PacketTransport { readonly attribute IpPort serverAddress; readonly attribute IpPort remoteAddress; void close(); } On Mon, Mar 5, 2018 at 2:40 PM Lennart Grahl <lennart.grahl@gmail.com> wrote: > On 05.03.2018 23:20, Cullen Jennings wrote: > >> On Mar 5, 2018, at 2:57 PM, Lennart Grahl <lennart.grahl@gmail.com> > wrote: > >> > >>> > >>> Let's define a low level modular api (that is what most devs want > >>> anyway) that could be reused in different scenarios (ICE+DTLS+ICE or > >>> quick) easily. > >> > >> Isn't that what ORTC does provide? > > > > So ORTC does a good job of what it does, which is get rid of the syntax > of SDP and provide a programmatic interface to an RTP media stack that is > roughly capable of what can be done with SDP Offer/Answer. As a result, > most of ORTC 1:1 maps to the semantics or SDP. > > > > Take something simple like ptime and maxptime in ORTC. To real > understand what these are and how they fit into RTP, what they do in an > offer/answer, etc, you will be reading SDP documents. The approach in > new-media is to ask if we could get rid of tons of the baggage that has > accumulated in RTP, solve a bunch of the features that are too hard to do > in existing RTP/ICE, and simplify the RTP in a huge way that allowed us to > move to something with far simpler semantics that SDP. > > Fair enough. Having read Peter's and Sergio's answers as well, it seems > using ORTC as a starting point is a good idea and extending it with more > fine granular control or entirely new "building blocks" (objects). > > Peter, can you send me a link to the SLICE spec/slides? > (https://w3c.github.io/webrtc-ice does look way too high level to me) > > Cheers > Lennart >
Received on Monday, 5 March 2018 22:48:26 UTC