Hey folks, 

I've been looking into caller preferences and callee capabilities, and more 
specifically the "Priority" feature tag and how it should be 
encoded/interpreted. 

The definition according to RFC3840 says: 

Summary of the media feature indicated by this tag: The sip.priority 
feature tag indicates the call priorities the device is willing to 
handle. A value of X means that the device is willing to take 
requests with priority X and higher. This does not imply that a 
phone has to reject calls of lower priority. As always, the 
decision on handling of such calls is a matter of local policy. 

Values appropriate for use with this feature tag: An integer. Each 
integral value corresponds to one of the possible values of the 
Priority header field as specified in SIP [1]. 

At the same time, the BNF, indicates possible "data-types" as: 

feature-param = enc-feature-tag [EQUAL LDQUOT (tag-value-list 
/ string-value ) RDQUOT] 
enc-feature-tag = base-tags / other-tags 
base-tags = "audio" / "automata" / 
"class" / "duplex" / "data" / 
"control" / "mobility" / "description" / 
"events" / "priority" / "methods" / 
"schemes" / "application" / "video" / 
"language" / "type" / "isfocus" / 
"actor" / "text" / "extensions" 

tag-value-list = tag-value *("," tag-value) 
tag-value = ["!"] (token-nobang / boolean / numeric) 
token-nobang = 1*(alphanum / "-" / "." / "%" / "*" 
/ "_" / "+" / "`" / "'" / "~" ) 
boolean = "TRUE" / "FALSE" 
numeric = "#" numeric-relation number 
numeric-relation = ">=" / "<=" / "=" / (number ":") 
number = [ "+" / "-" ] 1*DIGIT ["." 0*DIGIT] 

The ambiguity I am trying to resolve, is that "values appropriate" says 
*integer*, which would at first glance tell me to use the "numeric" construct 
for tag-value. This would give me the possibility to use values such as 
;priority="#<=10" or similar for describing intervals/ranges of priority. 

But that collides with the summary description which says: "A value of X 
means....priority X and higher"...which would make the ">=;<=;=" operators 
redundant. 

At the same time, RFC3841 indicates that the matching process: 

The matching 
rules in RFC 2533 only require an implementation to know whether the 
feature tag is a numeric, token, or quoted string (booleans can be 
treated as tokens). 

Where the presence of param="#" indicates numeric. Without the "#", 
;priority="10" becomes a token, and would be compared case-insensitive. 

"Priority X and higher" indicates numeric analysis, wheras token comparison 
does not. 

So, which is it? 

How is everyone else interpreting this? 

Regards 
Taisto Qvist 
IP-Solutions.se 












_______________________________________________
Sip-implementors mailing list
Sip-implementors@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/sip-implementors

Reply via email to