Subject: [Sip] Possible ABNF bug

From: Christer Holmberg <[email-masked]>
Date: Wed, 15 May 2002 22:26:52 +0300

Hi,

Bis-09 says that the "@" character is not allowed in the SIP-URI (or
SIPS-URI) if the userinfo part of the URI is empty (eg "@sip.world.com"
is not allowed).

However, the ABNF says:

SIP-URI          =  "sip:" [ userinfo "@" ] hostport  uri-parameters [
headers ]

userinfo         =  [ user / telephone-subscriber [ ":" password ]]

Now, the first line (defines SIP-URI) does indicate that userinfo,
together with @, is optional in the URI.

The second line (defines userinfo), however, indicates that user,
telephone-subscriber and password ALSO are optional for userinfo, which
to my understanding means that an empty value IS a valid value for
userinfo.

I think the correct syntax should be:

userinfo         =  ( user / telephone-subscriber [ ":" password ])

Also, does the syntax above password to be used together with user, or
only together with telephone-subscriber? IF so, then I guess the correct
syntax shall be:

userinfo         =  ( user / telephone-subscriber) [ ":" password ]

Regards,

Christer Holmberg
Ericsson Finland

_______________________________________________
Sip mailing list  https://www1.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use [email-masked] for questions on current sip
Use [email-masked] for new developments on the application of sip

---

From: Jonathan Rosenberg <[email-masked]>
Date: Thu, 16 May 2002 15:29:46 -0400

inline.

> to my understanding means that an empty value IS a valid value for

This is an error.

> userinfo         =  ( user / telephone-subscriber) [ ":" password ]

Correct. 

-Jonathan R.

-- 
Jonathan D. Rosenberg, Ph.D.            72 Eagle Rock Avenue
Chief Scientist                         First Floor
dynamicsoft                             East Hanover, NJ 07936
[email-masked]                 FAX: (973) 952-5050
http://www.jdrosen.net                  PH:  (973) 952-5000
http://www.dynamicsoft.com

---

From: Christer Holmberg <[email-masked]>
Date: Fri, 17 May 2002 11:30:52 +0300

Hi,

> > userinfo         =  ( user / telephone-subscriber) [ ":" password ]

Then, if we "continue" the syntax, it says:

user             =  *( unreserved / escaped / user-unreserved )

So, even if userinfo must contain user (or telephone-subscriber) this still
allows an empty value for user, which again allows an empty value for
userinfo...

So, I guess the correct syntax for user would be:

user             = 1*( unreserved / escaped / user-unreserved )

(If userinfo contains telephone-subscriber we don't have this problem, since
telephone-subscriber always must contain some characters).

Regards,

Christer Holmberg
Ericsson Finland

---

From: Jonathan Rosenberg <[email-masked]>
Date: Fri, 17 May 2002 11:43:06 -0400

inline.

> telephone-subscriber always must contain some characters).

Right again.

-Jonathan R.