Hi,
As far as I can tell from the RFC 3261 ABNF, it is permitted to put SEMI
and EQUAL in the username of a URI, but it has no semantic validity.
That is to say, this is permitted:
<sip:myval=abc;user@domain:5060>
but doesn't mean anything. 'myval=abc;user' is just one big long username:
SIP-URI = "sip:" [ userinfo ] hostport
uri-parameters [ headers ]
SIPS-URI = "sips:" [ userinfo ] hostport
uri-parameters [ headers ]
userinfo = ( user / telephone-subscriber ) [ ":" password ] "@"
user = 1*( unreserved / escaped / user-unreserved )
user-unreserved = "&" / "=" / "+" / "$" / "," / ";" / "?" / "/"
And yet, there are some specs out there which put tokens which are
semantically key=value parameters in the user part of a URI, and expect
equipment to extract their values. One spec in particular that comes to
mind is RFC 4694 ("Number Portability Parameters for the "tel" URI"),
which explicitly contemplates outcomes like this:
Contact: <sip:14045551212;npdi;rn=14045550000@domain>
... with the expectation that portability-aware equipment will harvest
the value of the 'rn' parameter, much as it would a uri-parameter or a
header parameter. In fact, as I understand it, the whole idea behind
this approach is that the essential bareword - '14045551212' - remains
the user part of the RURI, the canonical dialed destination. The other
parameters can be ignored by equipment that doesn't understand them.
So, how does that work? Is the voodoo that gives username-embedded
parameters meaning embedded somehow in the complex rules governing the
conversion of 'tel:' scheme URIs to 'sip:'? Or am I mistaken in my
assumption that parameters cannot be embedded in the user part of a URI
to begin with?
The ultimate reason for asking is that I am looking to embed a parameter
like this in a Diversion URI. I am dealing with a gateway that will try
a redirect destination, and if it fails to reach that destination, will
call me again, and send me a Diversion header anew. The Diversion header
is rebuilt and doesn't pass on any URI or header parameters I include,
but if I stick something in the username, I'll get it back. I need it
for a piece of application state. However, before I go this route, I
need to have some idea of whether there's any justification for the
expectation that my extra parameter will be ignored by equipment which
doesn't understand it. Otherwise, I'm just screwing up the diverted
phone number.
Many thanks!
-- Alex
--
Alex Balashov | Principal | Evariste Systems LLC
Tel: +1-706-510-6800 (direct) / +1-800-250-5920 (toll-free)
Web: http://www.evaristesys.com/, http://www.csrpswitch.com/
_______________________________________________
Sip-implementors mailing list
Sip-implementors@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/sip-implementors