[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Sip] Question regarding conflicting grammar for IPV6 SIP URI and RFC 3986



RFC 3986 defines the following grammar for a URI:

 

   URI           = scheme ":" hier-part [ "?" query ] [ "#" fragment ]

 

   hier-part     = "//" authority path-abempty

                 / path-absolute

                 / path-rootless

                 / path-empty

 

A SIP URI falls into the ‘path-rootless’ rule:

 

   path-rootless = segment-nz *( "/" segment )

 

   segment-nz    = 1*pchar

 

   pchar         = unreserved / pct-encoded / sub-delims / ":" / "@"

 

   pct-encoded   = "%" HEXDIG HEXDIG
 
   unreserved    = ALPHA / DIGIT / "-" / "." / "_" / "~"

 

   sub-delims    = "!" / "$" / "&" / "'" / "(" / ")"
                 / "*" / "+" / "," / ";" / "="

 

path-rootless does not allow “[“ or “]” characters, so the SIP-URI grammar for IPV6 violates RFC 3986 grammar.

 

SIP-URI          =  "sip:" [ userinfo ] hostport

                    uri-parameters [ headers ]

 

hostport         =  host [ ":" port ]

host             =  hostname / IPv4address / IPv6reference

hostname         =  *( domainlabel "." ) toplabel [ "." ]

domainlabel      =  alphanum

                    / alphanum *( alphanum / "-" ) alphanum

toplabel         =  ALPHA / ALPHA *( alphanum / "-" ) alphanum

IPv4address    =  1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT "." 1*3DIGIT

IPv6reference  =  "[" IPv6address "]"  <-- *** violates RFC 3986 ***

IPv6address    =  hexpart [ ":" IPv4address ]

hexpart        =  hexseq / hexseq "::" [ hexseq ] / "::" [ hexseq ]

hexseq         =  hex4 *( ":" hex4)

hex4           =  1*4HEXDIG

port           =  1*DIGIT

 

 

These, though valid SIP URIs are not valid URIs:

 

    <sip:[2001:db8::10]>

    <sip:caller at [2001:db8::1]>

 

Has this already been addressed?

 

Regards,

Mike

_______________________________________________
Sip mailing list  https://www.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use sip-implementors at cs.columbia.edu for questions on current sip
Use sipping at ietf.org for new developments on the application of sip