Hi,
I'm am trying to implement a SIP parser.
I have an issue here while parsing the Absolute-uri. I am
not able to resolve between "srvr" and "reg-name".
-----------------------------------------------------------------------
*) Absolute uri:
absoluteURI = scheme ":" ( hier-part / opaque-part )
scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )
hier-part = ( net-path / abs-path ) [ "?" query ]
net-path = "//" authority [ abs-path ]
abs-path = "/" path-segments
authority = srvr / reg-name
srvr = [ [ userinfo "@" ] hostport ]
reg-name = 1*( unreserved / escaped / "$" / ","
/ ";" / ":" / "@" / "&" / "=" / "+" )
userinfo = ( user / telephone-subscriber )
[ ":" password ] "@"
user = 1*( unreserved / escaped / user-unreserved )
unreserved = alphanum / mark
mark = "-" / "_" / "." / "!" / "~" / "*" / "'" / "(" / ")"
user-unreserved= "&" / "=" / "+" / "$" / "," / ";" / "?" / "/"
password = *( unreserved / escaped /
"&" / "=" / "+" / "$" / "," )
hostport = host [ ":" port ]
host = hostname / IPv4address / IPv6reference
------------------------------------------------------------------------
Here the problem is with "authority". srvr contains "@"
and reg-name can contain multiple "@" characters. How do
I resolve between the 2 non-terminals?
Example 1: [EMAIL PROTECTED]
Example 2: domainLabel.com
"srvr" can contain either "userinfo@hostport" or "hostport".
In hostport, port is optional. Both examples 1 and 2,
according to the grammar, can match with both reg-name
and srvr. How do I decide whether it belongs to reg-name
or srvr?
One possibility is:
-------------------
If token contains multiple "@"s, then it could be resolved
as reg-name. (But then, this aspect is not specified in the
grammar and it is our hack.)
Could somebody kindly help me out with this aspect?
Thanks in advance.
G. Ramesh
Research Engineer, Internet Telephony Group
=====================================================================
C-DOT (Centre for Development of Telematics)
71/1, Sneha Complex, Miller Road, Bangalore - 560052, India
email: [EMAIL PROTECTED]
Phone: +91-80-2263399, +91-80-2383951, Fax: +91-80-2263256
=====================================================================
_______________________________________________
Sip-implementors mailing list
[EMAIL PROTECTED]
http://lists.cs.columbia.edu/mailman/listinfo/sip-implementors