Subject: Question about iTIP + VCARs

From: Andrea Campi <[email-masked]>
Date: Mon, 29 Jul 2002 20:16:40 +0200

Hi all,

I think I need some help, as some things don't make much sense to me;
I guess I'm missing something.

The CREATE command stores iTIP objects, which may or may not contain
a METHOD property; this is quite clear. So I would expect something
like:

      C: Content-Type: text/calendar
      C:
      C: BEGIN:VCALENDAR
      C: VERSION:2.0
      C: CMD;ID=creation02:CREATE
      C: TARGET:relcalz1
      C: BEGIN:VEVENT
      C: DTSTART:99990307T180000Z
      C: METHOD:REQUEST
      C: UID:abcd12345
      C: DTEND:99990307T190000Z
      C: SUMMARY:Important Meeting
      C: END:VEVENT
      C: BEGIN:VEVENT
      C: DTSTART:99990307T190000Z
      C: METHOD:REQUEST
      C: UID:abcd12346
      C: DTEND:99990307T193000Z
      C: SUMMARY:Dinner
      C: END:VEVENT
      C: END:VCALENDAR

However, the only example containing a METHOD shows the METHOD
request in the VCALENDAR. Is this the only way, the preferred way,
or it's just the same? And what happens when a VCALENDAR with a
METHOD property contains >1 component, do they all take on the
same METHOD (I guess so)? Can they override it?
Regardless of the exact semantics of this, I expect the result
to be the same; that is, the contained objects will be stored
in the target with the appropriate METHOD (and state).

So, my real question is (looking at 4.2.3 Predefined VCARs):

                BEGIN:VCAR
                CARID:REQUESTONLY
                BEGIN:VRIGHT
                GRANT:NONOWNER
                PERMISSION:WRITE
                RESTRICTION:SELECT * FROM VCALENDAR WHERE METHOD = 'REQUEST'
                END:VRIGHT
                END:VCAR

Does this make sense? What would it return? Looking at 6.1.1,
VCALENDAR is not in comp-name, so I think it's wrong.
Even if it was right, isn't the METHOD property referring to
any component found? In this case, this would violate rule 4
in 6.1.1, as the WHERE clause refers to a property of a component
which is not in the FROM.

Should this be written as:

                BEGIN:VCAR
                CARID:REQUESTONLY
                BEGIN:VRIGHT
                GRANT:NONOWNER
                PERMISSION:WRITE
                RESTRICTION:SELECT * FROM VEVENT WHERE METHOD = 'REQUEST'
                RESTRICTION:SELECT * FROM VTODO WHERE METHOD = 'REQUEST'
                RESTRICTION:SELECT * FROM VJOURNAL WHERE METHOD = 'REQUEST'
                END:VRIGHT
                END:VCAR

Bye,
	Andrea

-- 
Andrea Campi                              mailto:[email-masked]
I.NET S.p.A.                              http://www.inet.it
Direzione Tecnica - R&D			  phone: +39 02 32863 ext 1
v. Darwin, 85 - I-20019			  fax: +39 02 32863 ext 7705
Settimo Milanese (MI), Italy

---

From: Doug Royer <[email-masked]>
Date: Mon, 29 Jul 2002 14:40:08 -0600

> a METHOD property; this is quite clear. So I would expect something

The CREATE command stores iCalendar objects, some of which
are iTIP objects. iTIP objects are identifyabl as they
contain a METHOD property.

> ...

> or it's just the same?

I don't understand the question.

> And what happens when a VCALENDAR with a METHOD property
> contains > 1 component, do they all take on the same METHOD (I guess so)?

iCalendar objects are MIME objects. And all objects in the
same MIME object MUST have the same METHOD.

> Can they override it?

No.

> Regardless of the exact semantics of this,
> I expect the result to be the same; that is, the contained objects
> will be stored in the target with the appropriate METHOD (and state).

Yes.

>                 RESTRICTION:SELECT * FROM VJOURNAL WHERE METHOD = 'REQUEST'

Yes - thanks!

---

From: John Stracke <[email-masked]>
Date: Mon, 29 Jul 2002 17:44:13 -0400

>request in the VCALENDAR. Is this the only way, the preferred way,
The only way.  See the ABNF in RFC-2445, section 4.6 (and the 
"Conformance:" text in section 4.7.2).

-- 
/===========================================================\
|John Stracke      [email-masked]                  |
|Principal Engineer|http://www.centivinc.com                |
|Centiv            |My opinions are my own.                 |
|===========================================================|
|We must be devious, cunning, inventive... too bad we're us.|
\===========================================================/

---

From: Andrea Campi <[email-masked]>
Date: Tue, 30 Jul 2002 11:37:40 +0200

> contain a METHOD property.
[...]

Thanks, the answers I got helped me get a better understanding,
now it's clear.

> > will be stored in the target with the appropriate METHOD (and state).

Uhm, what I said is probably not correct - the individual objects
(VEVENT etc) are going to be store without a METHOD property, but
with some kind of "metadata" to keep the state. Right?

> >                 RESTRICTION:SELECT * FROM VJOURNAL WHERE METHOD = 'REQUEST'

Ok, so it wasn't me! ;-)

Bye,
	andrea

---

From: Doug Royer <[email-masked]>
Date: Tue, 30 Jul 2002 08:53:06 -0600

> with some kind of "metadata" to keep the state. Right?

The CS can store them any way the implementation wishes.
It is independent of the CAP protocol. Some implementations
may use the METHOD property, others may use some other metadata.