Hi, Accept header allows parameters in a confusing way:

-----------------------
Accept         =  "Accept" HCOLON
                   [ accept-range *(COMMA accept-range) ]
accept-range   =  media-range *(SEMI accept-param)
media-range    =  ( "*/*"
                  / ( m-type SLASH "*" )
                  / ( m-type SLASH m-subtype )
                  ) *( SEMI m-parameter )
accept-param   =  ("q" EQUAL qvalue) / generic-param
qvalue         =  ( "0" [ "." 0*3DIGIT ] )
                  / ( "1" [ "." 0*3("0") ] )
generic-param  =  token [ EQUAL gen-value ]
gen-value      =  token / host / quoted-string

m-parameter      =  m-attribute EQUAL m-value
m-attribute      =  token
m-value          =  token / quoted-string
--------------------------

Take the following example:

  Accept: application/sdp;q=0.5;paramX=qwe

Accorsing to the BNF syntax it's not possible to know if "q=0.5" 
and "paramX=qwe" are 'accept-param' or 'm-parameter' (they could be both with 
no way to differentiate between them).


I've found exactly the same bug already reported in RFC 3261 ERRATA section:
  http://www.rfc-editor.org/errata_search.php?rfc=3261
(the second bug).

How to handle it? This is clearly a bug in the SIP BNF syntax for which I 
don't know a fix, is there a draft or something fixing it?

Thanks.



-- 
Iñaki Baz Castillo

_______________________________________________
Sip-implementors mailing list
[email protected]
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors

Reply via email to