Re: [rtcweb] Quick comments on draft-roach-rtcweb-glareless-add-00

worley@ariadne.com (Dale R. Worley) Fri, 10 May 2013 20:15 UTC

Return-Path: <worley@shell01.TheWorld.com>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 969C521F918C for <rtcweb@ietfa.amsl.com>; Fri, 10 May 2013 13:15:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.696
X-Spam-Level:
X-Spam-Status: No, score=-2.696 tagged_above=-999 required=5 tests=[AWL=0.284, BAYES_00=-2.599, RCVD_IN_DNSWL_LOW=-1, RCVD_IN_SORBS_WEB=0.619]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0f5Gl5z0Wt20 for <rtcweb@ietfa.amsl.com>; Fri, 10 May 2013 13:15:11 -0700 (PDT)
Received: from TheWorld.com (pcls6.std.com [192.74.137.146]) by ietfa.amsl.com (Postfix) with ESMTP id A3D1321F8709 for <rtcweb@ietf.org>; Fri, 10 May 2013 13:15:11 -0700 (PDT)
Received: from shell.TheWorld.com (root@shell01.theworld.com [192.74.137.71]) by TheWorld.com (8.14.5/8.14.5) with ESMTP id r4AKEY99013821; Fri, 10 May 2013 16:14:36 -0400
Received: from shell01.TheWorld.com (localhost.theworld.com [127.0.0.1]) by shell.TheWorld.com (8.13.6/8.12.8) with ESMTP id r4AKEY3L4507011; Fri, 10 May 2013 16:14:34 -0400 (EDT)
Received: (from worley@localhost) by shell01.TheWorld.com (8.13.6/8.13.6/Submit) id r4AKEX6a4511811; Fri, 10 May 2013 16:14:33 -0400 (EDT)
Date: Fri, 10 May 2013 16:14:33 -0400
Message-Id: <201305102014.r4AKEX6a4511811@shell01.TheWorld.com>
From: worley@ariadne.com
Sender: worley@ariadne.com
To: Adam Roach <adam@nostrum.com>
In-reply-to: <518AC143.2010006@nostrum.com> (adam@nostrum.com)
References: <CA+9kkMDWy_Koq0Aun5A330O7OOMt9vimWPNe_uznAQdr0TSfow@mail.gmail.com> <51897B11.60004@nostrum.com> <518AB095.7010401@alum.mit.edu> <518AC143.2010006@nostrum.com>
Cc: rtcweb@ietf.org
Subject: Re: [rtcweb] Quick comments on draft-roach-rtcweb-glareless-add-00
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: Fri, 10 May 2013 20:15:17 -0000

> From: Adam Roach <adam@nostrum.com>
> 
> What I was trying to say above is that the only information you would 
> need to convey is literally one, two, or three <mediatype,ordinality> 
> pairs. You don't say what you're planning to do with them, just that you 
> need them.

It seems unlikely that the situation is that simple.  I see a number
of issues.

If the follower (= designated answerer) wants an additional, say,
audio m= line, it asks for that.  But how is it to know when it has
been given them?  The next re-INVITE to arrive from the leader (=
designated offerer) may have been spontaneously sent, and it may have
an additional audio m= line that the leader added, for entirely
different purposes.  The follower may misinterpret the use of the new
m= line as the one that it ordered, and it will get confused when a
further m= line shows up when the solicited re-INVITE arrives.  (I've
written a set of messy railroad diagrams below that show how the
follower can lose track of what the leader is doing.)

In any case, the logic in the draft assumes that the follower can
determine when the leader has sent the solicited INVITE.  (Among other
things, the follower is then allowed to send another solicitation.)

You can probably clean that up by having each solicitation contain a
sequence number or identifier, and the leader copies the identifier
into the INVITE it generates because of the solicitation.  Then the
follower can always tell what the state of the conversation is.

If the solicited INVITE fails, the leader has to send it again,
because the solicitation is still outstanding.  This could lead to bad
failure situations.

There are situations where simply having "an additional audio m= line"
is not sufficient.  I'd expect that the leader, once it sees the
follower's configuration of the m= line, might want to update its
configuration of the m= line.  (Because we are logically (though not
in protocol) *offering* the m= line in the *answer*.)  So the leader
may want to do a re-INVITE cycle to get its end of the media stream
configured.  (This isn't an error, though, and can't cause a delay;
it's just an implementation warning.)

Another complex situation is where the follower wants to split a
bundle.  If the leader is willing to bundle all m= lines, but the
follower wants to bundle 1 with 2 and 3 with 4, it's difficult for the
follower to prompt the leader to offer that bundle configuration.

Three situations that look much alike to the follower:

               Leader         Follower

                  |               |
                  |          sol  |-- send
                  |<--------------|   solicit
                  |               |
        respond --| INV           |
       w/INVITE   |-------------->|
                  |               |
                  |           200 |
                  |<--------------|
                  |               |
    spontaneous --| INV           |
         INVITE   |-------------->|
                  |               |
                  |           200 |
                  |<--------------|
                  |               |
                  |               |-- What's
                  |               |   happening?
                  |               |


                  |               |
                  |          sol  |-- send
                  |       +-------|   solicit
                  |       |       |
    spontaneous --| INV   |       |
         INVITE   |-------|------>|
                  |       |       |
                  |       |   200 |
                  |<------|-------|
                  |       |       |
                  |<------+       |
                  |               |
        respond --| INV           |
       w/INVITE   |-------------->|
                  |               |
                  |           200 |
                  |<--------------|
                  |               |
                  |               |-- What's
                  |               |   happening?
                  |               |


                  |               |
                  |          sol  |-- send
                  |       +-------|   solicit
                  |       |       |
    spontaneous --| INV   |       |
         INVITE   |-------|------>|
                  |       |       |
                  |       |   200 |
                  |<------|-------|
                  |       |       |
    spontaneous --| INV   |       |
         INVITE   |-------|------>|
                  |       |       |
                  |       |   200 |
                  |<------|-------|
                  |       |       |
                  |<------+       |-- What's	
                  |               |   happening?
        respond --| INV           |
       w/INVITE   |------>        |
        to come   |               |
                  |               |

Dale