Re: [MMUSIC] [rtcweb] Translating Plan A into No Plan (Was: No Plan)

Enrico Marocco <> Wed, 05 June 2013 09:11 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 1C7D021F880F for <>; Wed, 5 Jun 2013 02:11:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -101.719
X-Spam-Status: No, score=-101.719 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HELO_EQ_IT=0.635, HOST_EQ_IT=1.245, RCVD_IN_DNSWL_LOW=-1, USER_IN_WHITELIST=-100]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id FkYqNTL4uRg5 for <>; Wed, 5 Jun 2013 02:11:25 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 3D3F621F89FF for <>; Wed, 5 Jun 2013 02:11:22 -0700 (PDT)
Received: from grfhub703rm001.griffon.local ( by ( with Microsoft SMTP Server (TLS) id; Wed, 5 Jun 2013 11:11:20 +0200
Received: from MacLab.local ( by ( with Microsoft SMTP Server (TLS) id; Wed, 5 Jun 2013 11:11:19 +0200
Message-ID: <>
Date: Wed, 5 Jun 2013 11:11:19 +0200
From: Enrico Marocco <>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:17.0) Gecko/20130509 Thunderbird/17.0.6
MIME-Version: 1.0
To: Eric Rescorla <>
References: <> <> <> <> <> <> <> <> <> <> <> <> <> <>
In-Reply-To: <>
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary="------------ms050701070304070001050205"
X-TI-Disclaimer: Disclaimer1
Cc: "Cullen Jennings \(fluffy\)" <>, MMUSIC IETF WG <>
Subject: Re: [MMUSIC] [rtcweb] Translating Plan A into No Plan (Was: No Plan)
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Multiparty Multimedia Session Control Working Group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 05 Jun 2013 09:11:38 -0000

On 6/4/13 3:13 PM, Eric Rescorla wrote:
> I would like to see a *complete* example with all the data flowing back
> and forth
> and the API calls (even if they are mocked up) that you think the sides will
> make.

Not trying to steal Emil's job, here's a rough example of how I (from a
web developer PoV) would like to be allowed to do it. Required API
extensions are in 5. and 8. (i.e. the .ssrc MST attributes).

Regular PC setup (this already well known):

Stream add:

Again, this is a *rough* example. The clear advantage (from my PoV of
course) is that, once the peer connection is established, the app does
not have to care about additional renegotiations, but in exceptional
cases (i.e. the new stream needs a new PT): no need to handle O/As
crossing on the wire, nor rollbacks.

The clear drawback is that, as it is now, it looks awfully ugly: tracks
are attached to the existing stream for transmission, but rendered on a
new stream on the receiving side. This is because the focus was on
minimizing the impact on the API. It could be probably improved with
more substantial changes, e.g. for allowing the instantiation of the
remote stream on the receiving side before the RTP packets actually
start flowing. Kind of what plan B does, but without the additional,
painful, O/A+O/A exchange.