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

Re: [Sip] Question regarding conflicting grammar for IPV6 SIP URI andRFC 3986



Greetings,
 
Mike's interpretation looks correct.  Is this something that should be fixed?  If so, should the fix be placed within draft-ietf-sip-ipv6-abnf-fix?
 
Thanks,
Brett


From: sip-bounces at ietf.org [mailto:sip-bounces at ietf.org] On Behalf Of Szilagyi, Mike
Sent: Thursday, December 18, 2008 10:53 AM
To: SIP at ietf.org
Subject: [Sip] Question regarding conflicting grammar for IPV6 SIP URI andRFC 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