Re: [rtcweb] API requirements

Martin Thomson <> Fri, 20 July 2012 16:39 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 0F68C21F8555 for <>; Fri, 20 Jul 2012 09:39:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -3.94
X-Spam-Status: No, score=-3.94 tagged_above=-999 required=5 tests=[AWL=-0.341, BAYES_00=-2.599, RCVD_IN_DNSWL_LOW=-1]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id Ip8FdMdmbnKP for <>; Fri, 20 Jul 2012 09:39:15 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 20D7D21F8554 for <>; Fri, 20 Jul 2012 09:39:14 -0700 (PDT)
Received: by lbbgo11 with SMTP id go11so5773227lbb.31 for <>; Fri, 20 Jul 2012 09:40:10 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=6HJ2DuriKTVQ/R7AEPD8VPUXXy/oGyLzgKNQ8cRspSw=; b=gpjlxTBwWaRc4gEL3D+16IYriKWPMMOsKiooNDyr0fUSNTv+ZF+UC33V86Ix7drhP1 s66fpv3nx1v9hJ8fH5GUqVwSY8aJekgEdF37UrD0bLahk4vnDqydtn1qTj+0PCpNiHmu 0aq9p/ha+QcXwDWZ/ytplDimbL5kXt+DQQwtlUNMWRKenooduSIMWB0zCOjthG0iHRPM oLxx1nownciS1qqA6JY6P4urGj9s6G47dnnInoy9PZPdTXHaO52zGLSD6kk+F76S7BTG USBDentaYn+/q47yb5JTCTUAFuVQh89IO78+RZqkTShaLfkg9/u7PRHjCxx3I4D3C1WW aMHg==
MIME-Version: 1.0
Received: by with SMTP id td9mr6948607lab.42.1342802410532; Fri, 20 Jul 2012 09:40:10 -0700 (PDT)
Received: by with HTTP; Fri, 20 Jul 2012 09:40:10 -0700 (PDT)
In-Reply-To: <>
References: <> <>
Date: Fri, 20 Jul 2012 09:40:10 -0700
Message-ID: <>
From: Martin Thomson <>
To: Harald Alvestrand <>
Content-Type: text/plain; charset=UTF-8
Subject: Re: [rtcweb] API requirements
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: Fri, 20 Jul 2012 16:39:16 -0000

On 19 July 2012 02:56, Harald Alvestrand <> wrote:
> I must admit to being quite confused by the actual requirements in the draft
> - I have no idea what use case they're intending to enable, and thus I have
> no idea why the authors have chosen MUST rather than SHOULD or MAY as the
> requirement levels.

The point was to describe the minimal set of information that needs to
pass between application and browser in order to accomplish the tasks
described in (draft-rtcweb-use-cases-...) using the protocols and
security mechanisms described in (-rtp-usage and -security-*).  This
aims to be more specific than Section 10 of -rtp-usage and to cover
the other features.

It's a -00 draft.  We acknowledge that the rationale is a little light
(read: not there).

>    ICE-5  The application MUST be able to add STUN attributes to the
>           STUN messages that are sent for connectivity checks.
> What application does this enable?

This would enable proprietary STUN extensions that include session
identification, authorization, bandwidth negotiation, data transfer,
and other purposes.  Primarily, this is associated with the
"connectivity check" made to a STUN server.

> What are the security implications?

I'm sure you can invent some if you think about it hard enough.  As I
understand it, the application is in complete control over the
username fragment, so this adds no greater advantage to an application
than is already present.  This is just added flexibility that will
enable greater interoperability.  As long as the browser ensures that
the STUN packet fits within the defined size limit, there are none.

>    MED-1   The application MUST be able to select the UDP flow that an
>            RTP stream uses.
>    MED-2   The application MUST be able select the UDP flow that RTCP
>            for a given RTP stream uses.
> What application does this enable, compared to mechanisms that assign RTP
> and RTCP to a given UDP flow and report the results back?

This is another interoperability requirement.  What you say is only
true if both peers perform compatible allocations.  You will note that
by moving candidates between m= lines, JSEP already offers this
capability.  Assuming of course that the browsers implement that.

>    MED-7   The application MUST be able to specify the RTP packet type
>            that is used to identify codecs in RTP streams, both inbound
>            and outbound.
> Again, what application does this enable, compared to mechanisms that assign
> a packet type and inform the application of which one was chosen?

Same reason as above.

>> In related news, Microsoft just joined the W3C Web Real-Time
>> Communications Working Group.  Once a few clerical issues are
>> addressed, new W3C proposals that address these requirements will
>> follow.
> Looking forward to seeing the proposals, and seeing your proposals for how
> they can be pursued without impacting the progress of the present
> specifications and implementations!

I'm still working on this.  Don't expect the impossible though.