[rtcweb] Proposed Plan for Usage of SDP and RTP - Lower level API minus SDP

Robin Raymond <robin@hookflash.com> Wed, 06 March 2013 23:45 UTC

Return-Path: <robin@hookflash.com>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (localhost []) by ietfa.amsl.com (Postfix) with ESMTP id 0470A21F8A79 for <rtcweb@ietfa.amsl.com>; Wed, 6 Mar 2013 15:45:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.244
X-Spam-Level: *
X-Spam-Status: No, score=1.244 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HOST_EQ_CPE=0.979, HOST_EQ_MODEMCABLE=1.368, MIME_QP_LONG_LINE=1.396, RDNS_DYNAMIC=0.1]
Received: from mail.ietf.org ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id PM4nnyT1WcFS for <rtcweb@ietfa.amsl.com>; Wed, 6 Mar 2013 15:45:23 -0800 (PST)
Received: from mail-ia0-x22f.google.com (mail-ia0-x22f.google.com [IPv6:2607:f8b0:4001:c02::22f]) by ietfa.amsl.com (Postfix) with ESMTP id 2204C21F8A6F for <rtcweb@ietf.org>; Wed, 6 Mar 2013 15:45:22 -0800 (PST)
Received: by mail-ia0-f175.google.com with SMTP id y26so124077iab.6 for <rtcweb@ietf.org>; Wed, 06 Mar 2013 15:45:22 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:user-agent:date:subject:from:to:message-id:thread-topic :mime-version:content-type:content-transfer-encoding :x-gm-message-state; bh=ZpQXyHQRQQfSd8zcsWGnehAkokCIc77RNh+4o42h+Ao=; b=Sn8XCa1jNmFg4FS1iYSnVg3UES4aSpKlG2LbpRBzx0LHj28kUA/BRRgyaJMBsygw48 zS05fc94cRdqLqmAlrM0+gyYKOptI1saW9uKZH9mWusR0Bkmd4Gnp/CusqbCMVJ68kUQ XD5Usx/kQhaeq2B5qC9BzcW+wi9PhqvS4TdIQQuST8+Dcr8Nu4UOx++oZBg9Gyhe+pKD yARQM+ADqIysNtJQHGDLgt2KaCuOsx111J8oRbfATHpSRcG81yJmnGGHspihltJ9v9l4 dg6iqW0f9k3CqyUoO1vR7S8DvOzZJzBLhbm0K3phmpEcvLXp0SMWhqDio3B19zQ8QhR/ jSBw==
X-Received: by with SMTP id ak5mr13028105igc.56.1362613522523; Wed, 06 Mar 2013 15:45:22 -0800 (PST)
Received: from [] (CPE602ad08742f7-CM602ad08742f4.cpe.net.cable.rogers.com. []) by mx.google.com with ESMTPS id xf4sm24682614igb.8.2013. (version=TLSv1 cipher=RC4-SHA bits=128/128); Wed, 06 Mar 2013 15:45:21 -0800 (PST)
User-Agent: Microsoft-MacOutlook/
Date: Wed, 06 Mar 2013 18:45:09 -0500
From: Robin Raymond <robin@hookflash.com>
To: rtcweb@ietf.org
Message-ID: <CD5D3F35.B22B%robin@hookflash.com>
Thread-Topic: Proposed Plan for Usage of SDP and RTP - Lower level API minus SDP
Mime-version: 1.0
Content-type: text/plain; charset="ISO-8859-1"
Content-transfer-encoding: quoted-printable
X-Gm-Message-State: ALoCoQnOoSYDLvwww4XDQ9ucdKyGMYDbkeqU91l3ydAJohfGIMux4809TFESQFFjPsdKiMJRA9tH
Subject: [rtcweb] Proposed Plan for Usage of SDP and RTP - Lower level API minus SDP
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, 06 Mar 2013 23:45:24 -0000

Do we need SDP "blob" format in the exchange in the first place? All media
can be done without SDP given an intelligent stream API. An API already
exists to create these streams (albeit somewhat lacking if we remove the
SDP 'blob'). This API helps "simplify" creating this blob for later
exchange. But the blob is truly not needed. Each side could in fact create
the desired streams, pass in the appropriate media information such as
codecs and ICE candidates and chose the socket pair to multiplex upon.
Yes, it's a bit more low level but it certainly can be done (and cleanly).


Nothing wrong with the draft in an SDP/SIP mindset but I'm going to take
it from a totally different non-SDP angle. I have to say, the ideas
presented are very good. I appreciate FEC, and synchronizing streams is
cool. But SDP isn¹t needed to do it. Let me as the programmer worry about
how to manage streams and the features on the streams and associations
between the streams via an API only.

Point 4, 5 and 6 in the specification all have to do with the complexities
of having to describe the intentions of mixing in SDP. So no comment
beyond ³don¹t use SDP².

As for 7.1 ­ ³this is because the sender choses the SSRC² ­ only true
because we are forced to use SDP and the assumptions is that it¹s SIP. We
could have the receiver dictate what the sender should use in advance of
any media. In our case, we establish in advance what we want from all
parties before even ³ringing² the other party. We do not have SSRC
collisions as we reversed the scenario allowing the receiver to pick the
expected SSRC. Coordinating the streams is a problem with SIP because of
how they do forking/conferencing. This specification forces this issue on
those not using SIP. If SIP has problems with streams arriving early to
their stateful offer/answer then let them worry about ³how² they intend to
match the streams at a higher SDP layer and get this draft out of the
RTCWEB track on the SIP track. To be clear, the proposal seems entirely
reasonable and intelligent for SIP/SDP. But it¹s way to SIP centric for
general use.

On that note, what I do need in the API is an ability to dictate the SSRC
when I create an RTP stream for sending (should I care to do that).

7.2 Multiple render

Again this is an issue of SIP/SDP. We can control the SSRCs to split them
out to allow multiplexing easily on the same RTP ports with multiple
parties/sources. If given the primitives to control the streams just, this
specification could be used to dictate how to negotiate issues in their

7.2.1 I¹m feeling the pain. How about just giving me an API where I can
indicate what streams are FEC associated.

7.3 Give me API to give crypto keys to RTP layer. Let me handle the
fingerprint and security myself beyond that.

8. Let's just say politely that I would not want to be the developer
assigned to programming around all this stuff.

Again, a perfect illustration why I don¹t want SDP.

Media is complicated for good reason as there are many untold use cases.
The entire IETF/W3C discussion around video constraints illustrates some
of the complexities and competing desires for just one single media type.
If we tie ourselves to SDP we are limiting ourselves big time, and some of
the cool future stuff will be horribly hampered by it.

My issues with SDP can be summarized as:

- unneeded - much too high level an API
- arcane format - legacy and problematic
- offer/answer
- incompatibilities
- lack of API contact
- doesn't truly solve goal of interoperability with legacy systems (eg.

Regret that I did not have time for feedback earlier. As you can tell, I
am not at all happy with where we sit today wrt requiring SDP. IMHO we
need a lower level API if we are going to insist on using SDP.

You can read my entire (long) rant against SDP here