Re: [rtcweb] Minimal SDP negotiation mechanism

Paul Kyzivat <> Mon, 19 September 2011 17:20 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 1F7DB21F8CCE for <>; Mon, 19 Sep 2011 10:20:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.528
X-Spam-Status: No, score=-2.528 tagged_above=-999 required=5 tests=[AWL=0.071, BAYES_00=-2.599]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 70AVnJLmS2cU for <>; Mon, 19 Sep 2011 10:20:40 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id B6D8121F8C88 for <>; Mon, 19 Sep 2011 10:20:38 -0700 (PDT)
Received: from ([]) by with comcast id aaFe1h0030QuhwU57hP2QY; Mon, 19 Sep 2011 17:23:02 +0000
Received: from Paul-Kyzivats-MacBook-Pro.local ([]) by with comcast id ahP01h00v0tdiYw3NhP1zE; Mon, 19 Sep 2011 17:23:02 +0000
Message-ID: <>
Date: Mon, 19 Sep 2011 13:23:05 -0400
From: Paul Kyzivat <>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:6.0.2) Gecko/20110902 Thunderbird/6.0.2
MIME-Version: 1.0
References: <>
In-Reply-To: <>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
Subject: Re: [rtcweb] Minimal SDP negotiation mechanism
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: Mon, 19 Sep 2011 17:20:41 -0000


I really appreciate your addressing the need to explicitly distinguish 
offers from answers - it is important. SIP did a really bad job of that. 
In SIP one just sends the SDP and the determination of whether it is an 
offer or answer is contextual. That was a bad decision.

On 9/19/11 12:59 PM, Harald Alvestrand wrote:
> I am looking at the WEBRTC API spec, which specifies a rudimentary
> negotiation framework: SDP objects prefixed by the string "SDP".
> It seems clear to me that this needs at least information about whether
> something is an offer or an answer, and some way to complete the
> transaction when an offer is sent and something prevents it from
> completing.
> Until we know we need more, what about the following, to be specified in
> SDP objects are sent through the API, prefixed with either of
> Alternatively, one can pass
> to reply to an SDP OFFER when something goes wrong.
> If one gets an OFFER and sends out an ANSWER, state changes.
> If OFFER gets an ANSWER back, state changes.
> In all other cases, state is as before.
> We need to handle glare - when one sends an OFFER and gets back an
> OFFER, reply with SDP ERROR, enter a "glare" state, wait a bit, and send
> out an offer again.
> Do we really have to have anything else?

Since, afaik, this is async messaging, I think you should have something 
used to identify an offer and then to refer back to it when sending the 
answer, to ensure that a received answer was indeed an answer to the 
offer you thought it was.

And that is part of the rtcweb-o/a protocol you are defining. It will 
also need some rules to prevent sending two offers without getting an 
answer first, or at least define what you do if that happens. (If one 
side sends an offer and fails to get an answer back, what should it do?)


> _______________________________________________
> rtcweb mailing list