Re: [rtcweb] Low Level Javascript API Proposal avail on the webrtc list

Iñaki Baz Castillo <ibc@aliax.net> Wed, 05 October 2011 09:37 UTC

Return-Path: <ibc@aliax.net>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1664321F8A4B for <rtcweb@ietfa.amsl.com>; Wed, 5 Oct 2011 02:37:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.634
X-Spam-Level:
X-Spam-Status: No, score=-2.634 tagged_above=-999 required=5 tests=[AWL=0.043, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id IKhqL+EJee9G for <rtcweb@ietfa.amsl.com>; Wed, 5 Oct 2011 02:37:56 -0700 (PDT)
Received: from mail-vw0-f44.google.com (mail-vw0-f44.google.com [209.85.212.44]) by ietfa.amsl.com (Postfix) with ESMTP id 6D89521F88B6 for <rtcweb@ietf.org>; Wed, 5 Oct 2011 02:37:56 -0700 (PDT)
Received: by vws5 with SMTP id 5so1412713vws.31 for <rtcweb@ietf.org>; Wed, 05 Oct 2011 02:41:03 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.52.23.4 with SMTP id i4mr2051364vdf.514.1317807663754; Wed, 05 Oct 2011 02:41:03 -0700 (PDT)
Received: by 10.220.118.143 with HTTP; Wed, 5 Oct 2011 02:41:03 -0700 (PDT)
In-Reply-To: <4E8BC2FC.2000809@skype.net>
References: <545388B3-3189-4291-BD1D-52898B888F3E@phonefromhere.com> <CALiegf=hxpaBdVL++DstTQ+9G_feFFQc81pewKJsH0rTeUYVSQ@mail.gmail.com> <4E8BC2FC.2000809@skype.net>
Date: Wed, 5 Oct 2011 11:41:03 +0200
Message-ID: <CALiegfnkjya9wRNS+jcViy9xRdJZ9J0ziG1dFw8qyY3SSUtk9w@mail.gmail.com>
From: =?UTF-8?Q?I=C3=B1aki_Baz_Castillo?= <ibc@aliax.net>
To: Matthew Kaufman <matthew.kaufman@skype.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Cc: rtcweb@ietf.org
Subject: Re: [rtcweb] Low Level Javascript API Proposal avail on the webrtc list
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rtcweb>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 05 Oct 2011 09:37:57 -0000

2011/10/5 Matthew Kaufman <matthew.kaufman@skype.net>et>:
>>  That is a very limited subset of what any VoIP protocol can
>> offer, so I don't think it's a good idea for rtcweb to assume a custom
>> protocol like that for inclusion in WebRTC JS API (as native JS code
>> within the browser).
>
> I think you're saying that the JS API should be some existing protocol
> standard like SIP and SDP here, yes?

No, I've *never* tried to mandate a specific signaling protocol,
never. I just what my choice to also be feasible, and that is SIP over
WebSocket and full intelligence in client side (in the JS
application). Others can use whatever they want.




> It is much easier to discuss if we keep "the wire protocol" and "the JS API"
> separate... and realize that just like my above Win32 example, a "low level"
> JS API could in fact be used in conjunction with *any* wire protocol (that
> you can send/receive within the browser context) plus server behavior.

That's a good approach. Please take a look to other thread in which
I've suggested a pseudo-code showing a theorical WebRTC JS API.



> This is also true of the "high level" JS API proposals... it is just more
> annoying, as you need to do things like trick them into generating an SDP
> offer, then decode it locally or send it to a server for processing, and
> then kill that and start the actual connection you wanted while lying to the
> browser about what the other end has claimed.
>
> I'd rather have the API that lets me do what I want directly.

Yes, most of the people assumes that the intelligence must be in the
web server and can only assume some easy JSON message exchange between
web client and server ("the client is stupid, the server is clever").

Ok, let me say that within next months (hopelly) we have:

- Web browsers have powerful JavaScript stack for coding client applications.
- WebSocket for building realtime and bidirectional protocols.
- RtcWeb for media sessions.

So we have *all the tools* for creating a rich multimedia client
application (as if it would be a Qt desktop application). Now, if you
prefer to leave some logic processing into the web server, that's ok,
but please let me using all the power of the client side.


Regards.


-- 
Iñaki Baz Castillo
<ibc@aliax.net>