Subject: 3.1 System Model

From: George Babics <[email-masked]>
Date: Fri, 25 Oct 2002 15:54:08 -0400

> CAP is used by a "Calendar User Agent" (CUA) to send commands to and
 > receive responses from a "Calendar Server" (CS).

 > The CUA prepares a [MIME] encapsulated command, sends it to the CS,
 > and receives a [MIME] encapsulated response.

This is not altogether correct. BEEP is peer-to-peer and
the CS can send the GET-CAPABILITY command to the CUA.

---

From: Doug Royer <[email-masked]>
Date: Fri, 25 Oct 2002 14:40:07 -0600

> the CS can send the GET-CAPABILITY command to the CUA.

All CAP commands are MIME objects, including GET-CAPABILITY
as in:

       C: Content-Type: text/calendar
       C:
       C: BEGIN:VCALENDAR
       C: VERSION:2.0
       C: PRODID:-//someone's prodid
       C: CMD:GET-CAPABILITY
       C: END:VCALENDAR
       C: END

-- 
-
Doug Royer                       Work: (208)612-INET
[email-masked]                   Fax:  (866)594-8574
http://INET-Consulting.com       Cell: (208)520-4044
http://Royer.com/People/Doug

---

From: George Babics <[email-masked]>
Date: Fri, 25 Oct 2002 17:14:32 -0400

>       C: PRODID:-//someone's prodid

   CAP can also be used by the CS to send commands
and receive responses, as in the case of GET-CAPABILITY.
The paragraphs indicated can imply that CUA only sends
and the CS only receives.

George

---

From: Doug Royer <[email-masked]>
Date: Fri, 25 Oct 2002 16:15:56 -0600

Sorry :-)

Now I understand your point, how about adding:

     In addition the "GET-CAPABIBILITY" command can be sent
     from the CS to the CUA.

---

From: George Babics <[email-masked]>
Date: Mon, 28 Oct 2002 12:53:43 -0500

How about something like:

   CAP is used by a "Calendar User Agent" (CUA) to send commands to and
   receive responses from a "Calendar Server" (CS). In addition the
   "GET-CAPABIBILITY" command can be sent from the CS to the CUA.

   The sender prepares a [MIME] encapsulated command, sends
   it to the receiver, and receives a [MIME] encapsulated
   response.

(I changed CUA to sender and CS to receiver in the original paragraph.)

---

From: [email-masked]
Date: Tue, 29 Oct 2002 11:45:17 -0500

>        C: PRODID:-//someone's prodid

Putting on my Method Revier hat I just wanted to point out that the above 
is illegal per RFC 2445 ABNF.  The relevant ABNF is:

     icalobject = 1*("BEGIN" ":" "VCALENDAR" CRLF
                  icalbody
                  "END" ":" "VCALENDAR" CRLF)

     icalbody   = calprops component

     calprops   = 2*(

                ; 'prodid' and 'version' are both REQUIRED,
                ; but MUST NOT occur more than once

                prodid /version /

                ; 'calscale' and 'method' are optional,
                ; but MUST NOT occur more than once

                calscale        /
                method          /

                x-prop
                )

     component  = 1*(eventc / todoc / journalc / freebusyc /
                / timezonec / iana-comp / x-comp)

Those who nitpick will have noted the source of the issue: the "1*" on 
component. 

Per 2445 ABNF, there must be some container w/in the VCALENDAR object.  I 
thought that this was valid before, perhaps if a VAGENDA container was 
used but I dont keep my old paper drafts that far back.  In any case, I 
wanted to point this out...

Bruce
===========================================================================
Bruce Kahn                                INet: 
[email-masked]
Messaging & Collaboration                 Phone: 978.399.6496
IBM Software Group                         FAX: and nothing but the FAX...
Standard disclaimers apply, even where prohibited by law...

---

From: Doug Royer <[email-masked]>
Date: Tue, 29 Oct 2002 11:18:08 -0700

Are you saing my email had an error - or the draft?

[email-masked] wrote:
> Putting on my Method Revier hat I just wanted to point out that the 
> above is illegal per RFC 2445 ABNF.  The relevant ABNF is:
> 
> Per 2445 ABNF, there must be some container w/in the VCALENDAR object. 
>  I thought that this was valid before, perhaps if a VAGENDA container 
> was used but I dont keep my old paper drafts that far back.  In any 
> case, I wanted to point this out...

---

From: [email-masked]
Date: Wed, 30 Oct 2002 09:54:55 -0500

> Are you saing my email had an error - or the draft?

Both.  Your example is not in the draft(S) that Ive read and its already 
been shown as being in violation of the 2445 ABNF.  In looking at the even 
more recent -09-b-2 draft I find that it too is in error.  For example, 
from Section 3.3.1 Use of BEEP, MIME and iCalendar:

      C: MSG 1 2 . 432 62
      C: Content-Type: text/calendar
      C:
      C: BEGIN:VCALENDAR
      C: VERSION:2.0
      C: PRODID:-//someone's prodid
      C: CMD;ID=unique-per-cua-123;OPTIONS=10:GENERATE-UID
      C: END:VCALENDAR
      C: END

Both violate the ABNF for icalbody from 2445:

because there is no component present; its all 'calprops'.

Bruce

---

From: Doug Royer <[email-masked]>
Date: Thu, 31 Oct 2002 11:28:40 -0700

There are possible solutions:

	(1) We alter the ABNF for CAP to allow it.
	(2) We create a new object that will only contain
	    a CMD property.

I would go for (1) by adding the following in section "2. Additions to
iCalendar", after the 'calprops' ABNF and before the "In addition.."
paragraph:

   Also the 'component' part of the 'icalbody' ABNF as described
   in [iCAL] section 4.6 is optional when the "VCALENDAR" component
   is sending a command as shown in the following modified ABNF:

		  ; If the "VCALENDAR" component contains the "CMD"
                   ; component then the 'component' is optional:
                   ;
                   / calprops

[email-masked] wrote:
> been shown as being in violation of the 2445 ABNF.  In looking at the 
> even more recent -09-b-2 draft I find that it too is in error.  For 
> example, from Section 3.3.1 Use of BEEP, MIME and iCalendar:
> 
>       C: MSG 1 2 . 432 62
> Bruce Kahn                                INet: [email-masked]