[Simple] WGLC Review of draft-ietf-simple-chat-04
Ben Campbell <ben@nostrum.com> Fri, 24 April 2009 20:22 UTC
Return-Path: <ben@nostrum.com>
X-Original-To: simple@core3.amsl.com
Delivered-To: simple@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 13E7A3A68D5 for <simple@core3.amsl.com>; Fri, 24 Apr 2009 13:22:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.145
X-Spam-Level:
X-Spam-Status: No, score=-2.145 tagged_above=-999 required=5 tests=[AWL=0.455, BAYES_00=-2.599, SPF_PASS=-0.001]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CJ8ZmBVzPZmS for <simple@core3.amsl.com>; Fri, 24 Apr 2009 13:22:13 -0700 (PDT)
Received: from nostrum.com (nostrum-pt.tunnel.tserv2.fmt.ipv6.he.net [IPv6:2001:470:1f03:267::2]) by core3.amsl.com (Postfix) with ESMTP id 4CD9628C111 for <simple@ietf.org>; Fri, 24 Apr 2009 13:22:13 -0700 (PDT)
Received: from dn3-213.estacado.net (vicuna-alt.estacado.net [75.53.54.121]) (authenticated bits=0) by nostrum.com (8.14.3/8.14.3) with ESMTP id n3OKNTPR007453 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Fri, 24 Apr 2009 15:23:29 -0500 (CDT) (envelope-from ben@nostrum.com)
Message-Id: <A00E0778-6F6C-417C-995B-E1D66AC26A04@nostrum.com>
From: Ben Campbell <ben@nostrum.com>
To: Simple WG <simple@ietf.org>
Content-Type: text/plain; charset="US-ASCII"; format="flowed"; delsp="yes"
Content-Transfer-Encoding: 7bit
Mime-Version: 1.0 (Apple Message framework v930.3)
Date: Fri, 24 Apr 2009 15:23:29 -0500
X-Mailer: Apple Mail (2.930.3)
Received-SPF: pass (nostrum.com: 75.53.54.121 is authenticated by a trusted mechanism)
Cc: draft-ietf-simple-chat@tools.ietf.org
Subject: [Simple] WGLC Review of draft-ietf-simple-chat-04
X-BeenThere: simple@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: SIP for Instant Messaging and Presence Leveraging Extensions <simple.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/simple>, <mailto:simple-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/simple>
List-Post: <mailto:simple@ietf.org>
List-Help: <mailto:simple-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/simple>, <mailto:simple-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 24 Apr 2009 20:22:15 -0000
(as individual contributor) Summary: This is improving, but there are still some issues that need work. *** Major Issues: *** 1) This draft depends on the use of message/cpim envelopes to determine the final recipients of a message. The draft does not take into account that with large content, the overall message may be broken into chunks. Chunks subsequent to the initial one will not contain the CPIM headers. How does an MSRP conference switch figure out how to process a mid-message chunk? I can think of two choices off hand: a) The MSRP switch has to fully assemble each message prior to sending to final recipients. This will be a problem for large messages, and would only be remotely feasible with rather draconion message size policies. b) The MSRP switch must be "message-id stateful", so that once it processes an initial chunk, it knows to treat any future chunks with the same message-id the same way. Both of these require keeping more state than I like, but short of ditching the CPIM approach altogether, I think b) is the best we can do. Whichever route we go, this draft needs discussion and examples of switching chunked messages. 2) The draft still has inconsistencies and errors in the way it interacts with MSRP reporting complexities. I commented on this in a previous version, and the author added language in some sections, but other sections still assume a single reporting model. Also, the current language replicates a lot of normative text from RFC4975, which I think is a mistake. I think it would be better to treat status reporting abstractly, and have a separate section that talks about how this maps into MSRPs reporting models. For example, if the normative sections in this draft says things like "If condition FOO occurs, send an XXX response", it would be better to say "If condition FOO occurs, return an error code of XXX". Then in a separate section, point out that MSRP has multiple ways of reporting status (including simply not reporting it at all) , and that implementations must follow the those same mechanisms for any new error conditions described in this document. I think this would also help to reduce the dense, complex language that Mary commented on in her review. 3) The draft starts off saying that it does not address conferences including media types other than MSRP, yet it goes on to say that MSRP streams are likely to be part of mixed-media conferences. Req-2 even states this as a requirement. If we _do_ want this to cover mixed media conferences, then I will have to open old wounds around the sending of nickname reservations in MSRP rather than in the signaling channel, as I think otherwise you risk nicknames getting out of sync for the different media types. I think the best solution at this point is to simple search and destroy any text in the draft implying that this is for mixed-media conferencing. *** Minor Issues and Editorial Comments: *** -- Section 1, last paragraph: This paragraph needs some wordsmithing. It currently makes a number of otherwise unrelated assertions about the document. -- Section 2, paragraph 2: What do we mean by "tightly coupled"? Are there such things as "loosely coupled" conferences? -- Definition of Chat Room URI: Are we talking about SIP URIs or MSRP URIs? -- Definition of MSRP switch: Need to clarify that a switch is an MSRP endpoint, not a relay. -- Definition of Anonymous URI: Need reference for GRUU. Also, please expand the acronym on first mention. -- Section 3: Should the numbered requirements use RFC2119 normative language? -- Req-2: This seems to contradict previous statements that this draft does not enable mixed-media conferences. Do we not fulfill this requirement? -- Req-3: Does Req-8 contravene this requirement? -- Req-4: By "determine the recipient", do you mean a participant must be able to select the destination of a message it sends, or learn all the recipients of a received message? -- Req-9: I don't think the requirement is really that the switch can originate messages, but that the conference owner or administrator may send messages to the conference (possibly by using some automated agent.) As stated, the requirement has an architectural assumption that the switch is that agent. -- Req-10: Learn features supported by what? The switch? Other participants? Also, the "perhaps others" language adds vagueness. -- Section 4: Paragraph 1: Need more precision on whether you are talking about signaling, media, or both. I infer signaling from the UA and Focus terms, but it would be better to be explicit. -- Paragraph 1: "Each conference participant establishes an MSRP session with an MSRP switch,..." We're talking about the same switch, right? i.e. "the MSRP switch" rather than "an MSRP switch"? -- Figure 1: It would be nice to show or reference a picture showing how the MSRP switch relates to the conference focus. -- Last paragraph: Need more precision on SIP vs MSRP, i.e. sends a SIP BYE request, and disconnects the MSRP session. -- Section 5.2, paragraph 1: It's not always an "additional" message media type--we could have an MSRP only conference, right? -- Last paragraph: How can a participant not support receipt of private messages and otherwise support MSRP? What makes them different from any other MSRP message that the switch would send? -- Section 5.3: Regardless of policies on _when_ a chat-room gets deleted, what actually happens when an in-progress chatroom is deleted? -- First paragraph after bullet list: Second sentence is redundant with the bullet list. -- Paragraph 10: Do we need to think about IMDN? -- Last Paragraph: I think this is a cut/paste or other edit error, as it seems to be redundant with several previous statements. -- Section 6.2: The bulk of this section is identical to that for regular messages. Is the only difference that the private message contains a particular user in the CPIM To header, and the new error code? If so, you could just explain the difference, and say all the rest is as usual. -- Also, since the CPIM To header could contain several kinds of URLs, you need to say something more about identity matching according to the matching rules of the URL scheme. -- 2nd to last paragraph: Redundant paragraph--editing error? -- Section 7.5: Are there normative statements implied in this section? Also, 2nd sentence is a fragment. -- Section 8, 2nd paragraph: The question of whether an endpoint supports private messages makes me wonder if a generic MSRP endpoint is going to work with normal conference messages, where the CPIM To header does not match the recipient identity. -- Examples: We need an example of a multi-chunk message sent to a conference. Section 9.4: Need an example showing an error sending the private message to the final recipient. Section 9.5: This is entirely a gruu example--does it belong in this draft?
- [Simple] WGLC Review of draft-ietf-simple-chat-04 Ben Campbell