Re: [rtcweb] "20 lines" (Re: RTCWeb default signaling protocol [was RE: About defining a signaling protocol for WebRTC (or not)])

Iñaki Baz Castillo <ibc@aliax.net> Mon, 26 September 2011 08:06 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 1A53021F8B43 for <rtcweb@ietfa.amsl.com>; Mon, 26 Sep 2011 01:06:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.639
X-Spam-Level:
X-Spam-Status: No, score=-2.639 tagged_above=-999 required=5 tests=[AWL=0.038, 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 SeqcKr52enuY for <rtcweb@ietfa.amsl.com>; Mon, 26 Sep 2011 01:06:16 -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 674CF21F8B3F for <rtcweb@ietf.org>; Mon, 26 Sep 2011 01:06:16 -0700 (PDT)
Received: by vws5 with SMTP id 5so6537826vws.31 for <rtcweb@ietf.org>; Mon, 26 Sep 2011 01:08:58 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.52.69.18 with SMTP id a18mr5489437vdu.430.1317024538163; Mon, 26 Sep 2011 01:08:58 -0700 (PDT)
Received: by 10.220.94.200 with HTTP; Mon, 26 Sep 2011 01:08:58 -0700 (PDT)
In-Reply-To: <CAD5OKxtY+Ghe=B5w=7B+a=0-4YPsO8o8rF40vMx7n4mcgfOTcg@mail.gmail.com>
References: <CALiegfnOCxyTo9ffQ272+ncdu5UdgrtDT-dn10BWGTZMEjZoCg@mail.gmail.com> <2E239D6FCD033C4BAF15F386A979BF510F0C0A@sonusinmail02.sonusnet.com> <05CAC192-E462-421F-B1E5-B78DC8F60306@ag-projects.com> <2E239D6FCD033C4BAF15F386A979BF510F0C93@sonusinmail02.sonusnet.com> <16880306-5B3A-4EFD-ADE4-1201138D9182@acmepacket.com> <8584590C8D7DD141AA96D01920FC6C698C896B71@gbplmail03.genband.com> <CA+9kkMAwnnKKO5+q6ey4Z0QNxax1QF21vVtw8FNsHy_rmfenjQ@mail.gmail.com> <4E76E078.5020708@jesup.org> <8548CBBD-4E12-48F3-BC59-341FF45EF22F@acmepacket.com> <4E77495E.4000409@jesup.org> <CALiegfkTdCAeEdZbXP1Y9L6i4Anjrgf1CG6ZNj35WGoHL3p_Ew@mail.gmail.com> <4E774F92.4040405@jesup.org> <8ECCEE59-E855-4EA9-92B9-543D1585B1F0@ag-projects.com> <4E778F1F.9090105@jesup.org> <CEA0AC9E-6387-4066-95DC-0D70302E80A7@ag-projects.com> <4E77C3EC.9060801@jesup.org> <CAD5OKxtciYxaVpb7b3G9yMg1A97b9dkjkOpppZcSRzS5SAO3+A@mail.gmail.com> <DB86C19C-781C-4FD2-ADE2-D6E1C0EE1D61@ag-projects.com> <4E79A964.2050007@alvestrand.no> <0FEA137C08A9DF4781EEF745038C969430A51F6401@nambx03.corp.adobe.com> <CAD5OKxtY+Ghe=B5w=7B+a=0-4YPsO8o8rF40vMx7n4mcgfOTcg@mail.gmail.com>
Date: Mon, 26 Sep 2011 10:08:58 +0200
Message-ID: <CALiegf=+tdWPaOED3w38f0UYmfJXVL4L_JfOMaST2Q4TbCZmMQ@mail.gmail.com>
From: =?UTF-8?Q?I=C3=B1aki_Baz_Castillo?= <ibc@aliax.net>
To: Roman Shpount <roman@telurix.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Cc: "rtcweb@ietf.org" <rtcweb@ietf.org>, Jozsef Vass <jovass@adobe.com>
Subject: Re: [rtcweb] "20 lines" (Re: RTCWeb default signaling protocol [was RE: About defining a signaling protocol for WebRTC (or not)])
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: Mon, 26 Sep 2011 08:06:17 -0000

2011/9/23 Roman Shpount <roman@telurix.com>;:
> With the API we are discussing (ie have methods to generate an offer,
> process an answer or answer update to the last generated offer, process the
> last offer refusal, process an offer and generate an answer to it) it is
> very simple to build a simple point to point RTC call:
>
> First client uses the API to generate an offer.
>
> First client sends this offer (at this point it does not matter if offer is
> JSON or SDP encoded, as long as client can get this description and encode
> it into something that can be send over http), using http post to a web
> server.
>
> Web server stores this offer into some type of storage (local file, in
> memory db)
>
> Second client pulls the web server using some sort of timer for an offer
> using http GET.
>
> As soon as offer is created and stored, web server reads the offer from the
> storage and sends it to the second client.
>
> Second client uses API to process the offer and generate an answer.
>
> Second client sends the answer to the web server using http post.
>
> Web server stores answer in the storage.
>
> After sending the offer first client is pulling web server for the offer
> using some sort of timer http get.
>
> As soon as answer is created and stored, web server reads the answer from
> the storage and sends it to the first client.
>
> First client gets an answer from the web server, passes it to the API as an
> answer to the last offer.

I strongly agree.

Just take into account that the second client could reject the call
("I'm bussy"), so there would not be SDP answer. Of course carrying
that information (the call rejection) is responsability of the
signaling protocol (which also carries the SDP bodies, as it occurs in
SIP and XMPP/Jingle).


> Connection is setup!. No SIP is used.

But it could be (I mean encapsulating SIP over HTTP or WebSocket)  :)
So freedom for all.


> Application like this can be developed
> by a fifth grader as a homework project and installed on any shared hosting
> provider.

And the audio/video sessions go through the web server so the web
application logic can decide wheter to terminate an existing
audio/video session (in case an user has been banned from a room-chat,
for example).


> If you have websockets or some other javascript eventing library
> you can make this a lot more interactive.

WebSocket is for sure the way to go.



> If you do SIP on the other hand, you will end up with a the same or more
> work as a developer, will have to install a lot more software on the web
> server,

Yes. In case the browser must speak native SIP or XMPP that will be
the end of this history (because a SIP proxy/registrar or XMPP server
would be required for ***each*** website).


> will have to learn a whole bunch about new signaling protocols until
> you figure out why things do not work.

The only server side requirement would be providing a STUN/TURN server
(and TURN authentication accounts).

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