- From: Justin Uberti <juberti@google.com>
- Date: Tue, 5 Jun 2012 11:46:59 -0400
- To: Eric Rescorla <ekr@rtfm.com>
- Cc: Adam Bergkvist <adam.bergkvist@ericsson.com>, "public-webrtc@w3.org" <public-webrtc@w3.org>
- Message-ID: <CAOJ7v-2DL_taz+MDG8FNtOVcdaazPO_ypvAe7LHzH0vSeWA2nQ@mail.gmail.com>
If we do this, updateRemoteDescription needs to be able to take either an IceCandidate or a SessionDescription. These types are not interchangeable; the IceCandidate needs to have an additional field to indicate which m-line it's associated with. On Tue, Jun 5, 2012 at 11:08 AM, Eric Rescorla <ekr@rtfm.com> wrote: > I'm pretty indifferent to these options, but is there any other > advantage to this > other than JS compactness? > > -Ekr > > > On Tue, Jun 5, 2012 at 6:58 AM, Adam Bergkvist > <adam.bergkvist@ericsson.com> wrote: > > Hi > > > > This suggestion uses the SdpType attribute of SessionDescription > (discussed > > in: > > http://lists.w3.org/Archives/Public/public-webrtc/2012May/0047.html) to > > include type information in the SessionDescription object. By doing so, > we > > can have a less verbose syntax where the JavaScript developer can work > with > > self-contained objects that are generated and understood by > PeerConnection. > > > > This doesn't reduce flexibility since the application can reset the type > of, > > e.g., an "answer" to an "pranswer" to make PeerConnection interpret it as > > such. > > > > Example of creating an offer: > > > > --- Current syntax: > > > > pc.createOffer(function (offer) { > > pc.setLocalDescription("offer", offer); > > sendMessage(JSON.stringify({ "type": "offer", "sdp": offer })); > > }); > > > > --- Less verbose syntax: > > > > pc.createOffer(function (offer) { > > pc.updateLocalDescription(offer); > > sendMessage(offer); > > }); > > > > Example of handling an incoming signaling message: > > > > --- Current syntax: > > > > signalingChannel.onmessage = function (evt) { > > var msg = JSON.parse(evt.data); > > switch (msg.type) { > > case "offer": > > createPeerConnection(); > > pc.setRemoteDescription(msg.type, > > new SessionDescription(msg.sdp)); > > break; > > case "answer": > > case "pranswer": > > pc.setRemoteDescription(msg.type, > > new SessionDescription(msg.sdp)); > > break; > > case "candidate": > > pc.addIceCandidate(new IceCandidate(msg.sdp)); > > break; > > } > > }; > > > > --- Less verbose syntax: > > > > signalingChannel.onmessage = function (evt) { > > if (!pc) > > createPeerConnection(); > > > > pc.updateRemoteDescription(evt.data); > > }; > > > > /Adam > > > >
Received on Tuesday, 5 June 2012 15:53:27 UTC