Subject: 9.3 GET-CAPABILITY - CAP-VERSION

From: [email-masked]
Date: Wed, 30 Oct 2002 11:07:56 -0500

In trying to get a better handle on the GET-CAPABILITY command and 
defaulting, etc. I suddenly had a couple questions that I cannot find 
answers to in the 09-b-2 draft (I bet Doug already addressed it in the 
09-c or 09-b-3a version though...). 

The current description of CAP-VERSION is:

      CAP-VERSION       1     Version of CAP. MUST include at least "1.0" 
for
                              this version of CAP. Like the "VERSION" 
property,
                              it may have a range. Uses the exact same
                              syntax as the "VERSION" property value. The
                              default is "1.0".

Question 1:
If CAP-VERSION can have a range (ie: CAP-VERSION:1.0;2.0) then what are 
the default values to be used by the CS when it supports multiple versions 
of CAP?  The 1.0?  2.0?  Some mix (assuming they are not mutually 
exclusive)?

Question 2:
Just what should a CUA or CS do when they detect a CAP-VERSION value that 
is above/below what they can deal with?  For example, my CUA is 
CAP-VERSION:1.0 and my CS is CAP-VERSION:2.0;2.0 then what should happen 
when they try to work together?  We never expressly codify what should 
happen in this case.

Question 3:
(Assumption: We finally realize that blind assumption about default values 
for unknown clients is bad and correct this in the draft so that both 
sides MUST support GET-CAPABILITY)
What good are defaults if both sides are mandated to send back a response 
to GET-CAPABLITY?

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: Wed, 30 Oct 2002 09:49:10 -0700

[email-masked] wrote:
>       CAP-VERSION       1     Version of CAP. MUST include at least 
> "1.0" for
> the default values to be used by the CS when it supports multiple 
> versions of CAP?  The 1.0?  2.0?  Some mix (assuming they are not 
> mutually exclusive)?

  The default value as specified in the draft is "1.0". If an
  implementation supported several version, then it would not
  be the default, it would be 1.0;2.0

> Question 2:
> Just what should a CUA or CS do when they detect a CAP-VERSION value 
> that is above/below what they can deal with?  For example, my CUA is 

  It says '[It] must include at lest "1.0"..."

  So do you think it is valid to send only "2.0;2.0"?

> Question 3:
> (Assumption: We finally realize that blind assumption about default 
> values for unknown clients is bad and correct this in the draft so that 
> both sides MUST support GET-CAPABILITY)
> What good are defaults if both sides are mandated to send back a 
> response to GET-CAPABLITY?

   Your logic is failing :-) There has been no such agreement.

> Bruce Kahn                                INet: [email-masked]

-- 
-
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: Andrea Campi <[email-masked]>
Date: Wed, 30 Oct 2002 18:17:46 +0100

On Wednesday, October 30, 2002, at 05:07 PM, 
[email-masked] wrote:
> values for unknown clients is bad and correct this in the draft so 
> that both sides MUST support GET-CAPABILITY)

You know, that's exactly what I was thinking when I got your email...
I strongly agree - defaults should go away.

Bye,
	Andrea

---

From: "Graham Gilmore" <[email-masked]>
Date: Wed, 30 Oct 2002 12:40:55 -0500

----- Original Message -----
From: "Doug Royer" <[email-masked]>
To: <[email-masked]>
Sent: Wednesday, October 30, 2002 11:49 AM
Subject: Re: 9.3 GET-CAPABILITY - CAP-VERSION

>   be the default, it would be 1.0;2.0

    But what about the defaults for the other capabilities?  If an
implementation supports multiple versions of CAP, which defaults for the
non-VERSION capabilities should be "the" default?  (Actually, if a CUA can
say "not implemented" and expect the CS to know that that means version 1.0,
then the defaults MUST forever remain the 1.0 defaults, even in future
versions of the spec; otherwise such CUAs risk being broken.)

>   So do you think it is valid to send only "2.0;2.0"?

    So even if some future version of CAP fixes some hypothetical
fundamental flaw in the 1.0 version, and the new version is incompatible
with 1.0, CSes and CUAs implementing the new version must ALSO implement the
incompatible 1.0 version?

>    Your logic is failing :-) There has been no such agreement.

    Given the arguments provided against allowing a "not-implemented"
response (Andrea summed it up nicely by noting that such a CUA would forever
be restricted to CAP 1.0, and as noted above it also fixes in stone forever
the default values for the 1.0 capabilities), is there still a reason to
have that option?

    If both sides MUST support GET-CAPABILITY (i.e. eliminating the
possibility of the CUA returning a not-implemented error), then defaults
don't seem to be necessary because "When sending a reply to a
"GET-CAPABILITY" command, all of these MUST BE supplied".

    Graham

---

From: Doug Royer <[email-masked]>
Date: Wed, 30 Oct 2002 11:29:44 -0700

Graham Gilmore wrote:
>     But what about the defaults for the other capabilities?

Are some missing default values?

> If an implementation supports multiple versions of CAP, which defaults for the
> non-VERSION capabilities should be "the" default?

The ones in the spec.

> (Actually, if a CUA can say "not implemented" and expect the CS to know
 > that that means version 1.0, then the defaults MUST forever remain
 > the 1.0 defaults, even in future versions of the spec; otherwise
 > such CUAs risk being broken.)

Yes.

> incompatible 1.0 version?

Let me restate what I think you asked:

	"If we decide to break from 1.0, will 2.0 mandate
          that all existing 1.0 implementations break?"

I do not get your point.

> "GET-CAPABILITY" command, all of these MUST BE supplied".

I argued FOR CUA's MUST reply == don't ask me :-)

---

From: "Graham Gilmore" <[email-masked]>
Date: Wed, 30 Oct 2002 15:09:27 -0500

[Bruce wrote]
> >>>response to GET-CAPABLITY?
[Doug wrote]
> >>   Your logic is failing :-) There has been no such agreement.
[I wrote]

> > "GET-CAPABILITY" command, all of these MUST BE supplied".
[Doug wrote]
> I argued FOR CUA's MUST reply == don't ask me :-)

    So you agree, and Bruce agrees, and Andrea agrees, I agree, everyone who
has expressed an opinion on the subject agrees... that sounds an awful lot
like agreement.  Agreed? :)

    To sum up what I think everyone seems to be agreeing to:  We should
change section 9.3 of the spec (http://inet-consulting.com/cap-09-2.txt)
from this:

"A CUA MUST send a "GET-CAPABILITY" command to a CS after the initial
   connection.  The "GET-CAPABILITY" command MUST BE implemented by all
   CSs.

   The CS MUST send a "GET-CAPABILITY" command to a CUA after the
   initial connection.  The CUA MUST recogonize the "GET-CAPABILITY"
   command and MAY return a not implemented reply meaning that the CUA
   supports only the default capababilities."

    to this:

"A CUA MUST send a "GET-CAPABILITY" command to a CS after the initial
   connection.  The "GET-CAPABILITY" command MUST BE implemented by all
   CSs.

   The CS MUST send a "GET-CAPABILITY" command to a CUA after the
   initial connection.  The "GET-CAPABILITY" command MUST BE implemented by
all
   CUAs."

    Or perhaps some even better phrasing thereof.

    Furthermore, I would PROPOSE that, given that (a) the above change is
*agreed* to (any objections?  anyone?), and that (b) the aforementioned spec
also reads (again in section 9.3):

     "When sending a reply to a "GET-CAPABILITY" command, all of these MUST
BE supplied."

    We can therefore remove references to "default" values for capabilities
within the GET-CAPABILITIES reply, since they must all be supplied in any
case and there would be no occasion where a CS or CUA would need to use the
defaults.
Comments?

    Graham

---

From: Doug Royer <[email-masked]>
Date: Wed, 30 Oct 2002 14:42:10 -0700

> has expressed an opinion on the subject agrees...

No - not everyone agreed - please re-read the archives. I changed
it to what it is now after that debate.

It would be great to get rid of the default values and go back
to minimumims.