Subject: Accept-Contact Header

From: [email-masked]
Date: Mon, 21 Feb 2000 18:10:32 +0530

hi All,

The document SIP Caller Preferences and Callee Capabilities -
draft-ietf-sipcallerprefs-00.txt
gives the grammer for Accept-Contact Header as

Accept-Contact   =  "Accept-Contact" ":" 1# rule
   rule             =  ( name-addr | addr-spec )
                       [ *( ";" (cp-params | extension-param | q-param) ) ]
   q-param          =  "q" "=" qvalue
   extension-param  =  extension-name "=" extension-value
   extension-name   =  token
   extension-value  =  token | quoted-string

and the example given is

Accept-Contact: sip:[email-masked] ;q=0,
     ;media="!video" ;q=0.1,
     ;mobility="fixed"  ;q=0.6,
     ;mobility="!fixed" ;q=0.4

According to my understanding, in this example each of the comma  separated
values is a separate Accept Contact rule,
And the parameters of a paticular accept contact rule are separated by ";"
semicolon.
Here each of the q-params are followed by a comma and then a semi-colon .

I cannot understand whether to consider this as
1) a single accept contact rule with all the entries following
sip:[email-masked] as parameters in which case I dont see a need for a
comma and semi-colon as separaters between parameters.

2) 4 rules where-in the 2nd 3rd and 4th do not have a nameaddr|addrspec
entry which is also an error, becos the rule mandates the presence of
nameaddr|addr-spec.

Can someone explain this to me.

Regards,
Preethy

---

From: Jonathan Rosenberg <[email-masked]>
Date: Mon, 21 Feb 2000 11:00:52 -0500

Thanks for pointing this out. The bnf appears to be wrong, as it
mandates a valid name-addr or addr-spec. The document clearly discusses
the capability of not specifying one. I will fix in the next version
(due out before the draft deadline). The BNF should be:

Accept-Contact = "Accept-Contact" ":" 1#rule
rule   =  (name-addr | addr-spec | "*")
....

So, we'll use the * for anything, aligning with current Contact usage.

-Jonathan R.

-- 
Jonathan D. Rosenberg                       200 Executive Drive
Chief Scientist                             Suite 120 
dynamicsoft                                 West Orange, NJ 07052
[email-masked]                     FAX:   (732) 741-4778
http://www.cs.columbia.edu/~jdrosen         PHONE: (732) 741-7244
http://www.dynamicsoft.com

---

From: Anders Byttner <[email-masked]>
Date: Mon, 21 Feb 2000 16:39:20 +0000

Just wanted to point out another error in this draft:

The proposed matching algorithm is not correct. Consider for example if
we have a contact entry that is language="en,ge" and the rule is
language="en,nl". Certainly we want this to be a match, since both
parties speak one common language. But the rule is clearly not a subset
of the entry . In the draft there is an example, which is not accurate
following the above algorithm:

;duplex="full,half"
matches the contact entry
;duplex="full"

As we see the rule set is clearly not a subset of the entry set (rather
a superset) and according to the proposed algorithm there should not be
a match. But we want it to be a match (as stated in the example, and in
the text above). The algorithm may instead be changed to the following:

- The parameter name is first checked. If it is not defined in the
contact entry, the   parameter is ignored.
- Parameter values are treated as sets, so the intersection of the rule
set and the entry set   for this parameter is checked.
- If the intersection is non-empty and the rule set is not negated we
have a match.
- If the intersection is empty and the rule set is negated we also have
a match.

regards
//Anders 

-- 
--------------------------------------------------------------------------
Anders Byttner 				Email:    <[email-masked]>
Hewlett-Packard Laboratories		Cellular: +44-(0)7901-805 479
Internet Communication 			Work:     +44-(0)117-312 96 03

Filton Road, Stoke Grifford
Bristol
BS34 8QZ
United Kingdom

---

From: Jonathan Rosenberg <[email-masked]>
Date: Wed, 23 Feb 2000 00:58:15 -0500

Thanks for catching this. Its been fixed.

-Jonathan R.