Re: [rtcweb] Proposal for a JS API for NoPlan (adding multiple sources without encoding them in SDP)

Iñaki Baz Castillo <> Tue, 18 June 2013 08:31 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id F20F321F9992 for <>; Tue, 18 Jun 2013 01:31:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.095
X-Spam-Status: No, score=-1.095 tagged_above=-999 required=5 tests=[AWL=-0.617, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, J_CHICKENPOX_111=0.6, J_CHICKENPOX_12=0.6, MIME_8BIT_HEADER=0.3, NO_RELAYS=-0.001]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id vRZYXXSWVWah for <>; Tue, 18 Jun 2013 01:31:22 -0700 (PDT)
Received: from ( [IPv6:2607:f8b0:400d:c00::22f]) by (Postfix) with ESMTP id 66E1621F8F5C for <>; Tue, 18 Jun 2013 01:31:22 -0700 (PDT)
Received: by with SMTP id i13so2013117qae.20 for <>; Tue, 18 Jun 2013 01:31:21 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding:x-gm-message-state; bh=CR1LSk65tYF7soiLGpc+oL2MiDfqEQSDo9Bn8zmhgcc=; b=PjX2FpHOOyf/3+Q8EF1sm1zIlfxOoETvfeSYZ1JhsCCZLB40z9fBNbNY/vQDUD2FV+ oC8+QymjtWH0LM0SdBJwhktcCfXg7oOllvqZ92/2AL+QzVESkNu84/MRHAtyped94Su5 0S57LnJpeGUM5pLgQ6b9BVxjdTB1XaQbqXKHE5txdOoT3DDtxLzofjp7wdcSwc39SXe/ kZy2QW7cBWWpuSip12EoyTK+5Z8fuz7HamNeuv96T6FytkWMRvsqIlxyMgzAuZNXTUAA hfM/9PfY4IWVevnY/EW35SV6Xb7K93jfe0qyQl2V14FCZX+fxVTigUu44Ml0roFoyNM7 o/FA==
X-Received: by with SMTP id u6mr8288698qcv.20.1371544281830; Tue, 18 Jun 2013 01:31:21 -0700 (PDT)
MIME-Version: 1.0
Received: by with HTTP; Tue, 18 Jun 2013 01:31:00 -0700 (PDT)
In-Reply-To: <>
References: <> <> <> <> <>
From: =?UTF-8?Q?I=C3=B1aki_Baz_Castillo?= <>
Date: Tue, 18 Jun 2013 10:31:00 +0200
Message-ID: <>
To: Peter Thatcher <>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-Gm-Message-State: ALoCoQkMM8dDoXlPz5s24D/8XY+ADE+mtGZIgnh7L2uiJUnIJbZkADH/sagoKbAVR1QAY1l1lL5X
Cc: "<>" <>
Subject: Re: [rtcweb] Proposal for a JS API for NoPlan (adding multiple sources without encoding them in SDP)
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 18 Jun 2013 08:31:23 -0000

2013/6/18 Peter Thatcher <>om>:

> That means the
> SDP is really just used as a way to tell the browser what ice ufrag, ice
> pwd, and DTLS fingerprint to use.

And do we really need SDP for that? mandatory?

> It would look something like this
> (forgive me if I got the SDP slightly wrong;  it's easy to get wrong):
> v=0

Unneeded line v.

> o=- 697639972863421376 2 IN IP4

Unneeded line o.

> s=-
> t=0 0

Unneeded lines s and t.

> m=application 1 DTLS/SCTP 5000

Why is this required at all?

> c=IN IP4

Anti-useful c line.

> a=mid:transport

What else can it be?

> a=ice-ufrag:tEP42he9r6LycvmM
> a=ice-pwd:cKJLuvHy9pas9rdezUZB9xet
> a=fingerprint:sha-256
> EC:E0:95:43:B7:01:49:8B:BC:21:CC:41:7F:10:FD:92:28:B8:F8:41:07:70:77:7D:7C:47:92:30:79:C4:95:9C

Finally we get 3 useful fields (related to ICE and encryption). And
are we going to mandate SDP O/A for this? really? I really hope NOT.

> Ignoring ICE candidates and restarts, that's all the SDP what would be
> needed for the whole PeerConnection (one for the local and one for the
> remote).

And WHY do we need to *mandate* SDP for that? Why don't we define a
IceData object, something that can be serialized in JSON to be sent to
the remote peer in any custom way? Why should we deal with blob
strings in an old-school format?

> 10 lines of SDP just to setup a transport isn't quite such an abomination,
> is it?

Yes, because we don't need those 10 lines, but just 3 string values.

> You're not forced to do SDP, except for the transports.  For defining the
> streams, you can avoid SDP altogether.  As a WebRTC JS app developer, I know
> I would find working with this API much better than working with SDP
> munging.

And what is the advantage of mandating usage of SDP for the transport
(over letting the user communicate it to the browser via API by
passing some JS object?).


Iñaki Baz Castillo