W3C home > Mailing lists > Public > public-webrtc@w3.org > July 2013

Re: a new API proposal

From: <piranna@gmail.com>
Date: Thu, 1 Aug 2013 01:12:06 +0200
Message-ID: <CAKfGGh1dM880pOANgvPtYQUZmXXVKmbBPURgunOnYfbL7gJRwA@mail.gmail.com>
To: Roman Shpount <roman@telurix.com>
Cc: Saúl Ibarra Corretgé <saghul@gmail.com>, Luis López Fernández <luis.lopez@urjc.es>, Iñaki Baz Castillo <ibc@aliax.net>, public-webrtc <public-webrtc@w3.org>
Well, I only know WebRTC from a Javascript point of view and don't know too
much about the internal technology except what has been talked here, so I
think is obvious... :-D I know it's possible to develop partial if not
fully all my proposals in Javascript (I was doing it mentally just as a
mind game with the idea to show a prototype just when I received youe
email), only that I find fairly absurd to develop a state-less API like
mine over a stateful API like WebRTC Offee/Answer over a state-less API
like browser internals... and the same happens to don't require SDP over an
API that require them. I know it's mostly doable on Javascript, but I think
it makes more sense and would have some improved performance done at a
lower level.
El 01/08/2013 01:02, "Roman Shpount" <roman@telurix.com> escribió:

> My first and most obvious question is: Would it be sufficient if the
> described functionality were implemented as a JavaScript library? Most of
> what you describe is implementable this way even with the current
> specification, so why should anybody design a browser API specifically for
> this?
> _____________
> Roman Shpount
> On Wed, Jul 31, 2013 at 6:44 PM, piranna@gmail.com <piranna@gmail.com>wrote:
>> Due to my work I have need to read the last days the current WebRTC
>> specification. As you would know, I have been interested and focused
>> the last months only on DataChannels and I was very critic and upset
>> about how much work was needed to create a simple DataChannel between
>> two browsers (SDP, offer/answer, candidates...), but know that I have
>> read about how media streams are suposed to be used, now I can say
>> that the WebRTC is fairly overcomplicated.
>> So, I have asked myself, now that I know how it works, how I would do
>> it? And I've got some conclusions that I think would be easy to be
>> integrated and I hope you find interesting enought to be debated.
>> Please don't take in account if there are some errors and only take in
>> account the proposed concepts.
>> First of all, have on PeerConnection object an "autosignal" option.
>> When disabled, PeerConnection would require an external signaling
>> channel as is currently done, but if enabled, then an internal channel
>> is created between both peers as soon as possible and since then all
>> the signaling messages between both peers are transfered automaticaly
>> and transparent to the developer using this channel. Or explained
>> using current WebRTC concepts: if this autosignal option is enabled,
>> then the offer and the answer would return only the minimal data to
>> allow to create the connection between both peers and an internal
>> communications channel (a hidden DataChannel or just a plain socket,
>> but it doesn't matter if it's bandwidth reduced), and after that this
>> channel is used to transfer the subsequent candidates and do the
>> renegotiation between both peers: add and remove streams, change
>> resolution and quality, mute... As I said, this channel is purposed to
>> be internal and hidden, but it would be discussed to allow to use it
>> with send() / onmessage so it would not be required by the
>> applications to create dedicated DataChannels for
>> application-dependent purposes if latency or high-bandwidth are not
>> required (instant messaging, user interaction events...).
>> Second thing, having reduced so much the required data to be
>> interchanged between both peers to create the communication since all
>> the data synchronization is done using the internal signaling channel,
>> reduce it to the bare minimum. As far as I know, with this method it
>> would be only required the STUN/TURN data so it's possible to know on
>> what port is listening each peer, and this data would be given by the
>> API as just an array with an object for each NAT and proxy that it's
>> needed to be transpased with their IP/domain, port, authentication...
>> This is a fairly basic data that can be serialized and transfer in
>> several ways, being this JSON or SDP or any other.
>> Finally, also the multiconference problem showed the last days can
>> also being fixed this way, since several peers would connect to the
>> same internal signaling channel and sending and receiving messages as
>> a pool, or several signaling channels would be created, one for each
>> peer.
>> With this both things, we have fixed the problems regarding with the
>> offer/answer mechanism and removed the requeriment to use SDP while
>> still being able to generate it to be compatible with legacy systems
>> requiring it, and also we fixed the problems regarding to adding or
>> removing streams or when the quality changes, because this can be
>> notified sending messages over the internal signaling channel.
>> That's all for now, please send me any comment or suggestion you have
>> regarding this suggestions.
>> Greetings, Jesús Leganés Combarro "piranna".
>> --
>> "Si quieres viajar alrededor del mundo y ser invitado a hablar en un
>> monton de sitios diferentes, simplemente escribe un sistema operativo
>> Unix."
>> – Linus Tordvals, creador del sistema operativo Linux
Received on Wednesday, 31 July 2013 23:12:40 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:17:50 UTC