Hi guys,
When I implemented the Path module 6 years ago, I chose to enclose the received-URI in double-quotes, like this:
Path: sip:1.2.3.4:5060;received="sip:1.2.3.5:1234;transport=tcp"
This Path value is stored in usrloc by registrar module, and is converted to a Route in a subsequent request. This worked fine so far, because there's the logic in parser/parse_param.c to handle double-quoted parameters.
Now while doing some interop tests with another platform, it turned out that double-quotes are not allowed in URI params (see https://lists.cs.columbia.edu/pipermail/sip-implementors/2008-May/019335.htm..., and in the grammar the allowed chars in the "unreserved" definition are "alphanum" and "mark", where "mark" is only "-" / "_" / "." / "!" / "~" / "*" / "'" / "(" / ")" ).
Anyways, to fully comply with RFC3261, I'd like to push a bugfix to path module to use single-quotes instead, however it also needs a change in the parser to use parse_quoted_param() also in case of single-quoted params (which hasn't been handled at all until now).
My question now is if there are any concerns on your side with handling single-quoted URI params the way we handle double-quoted ones? If we were strict, we'd actually need to remove the handling for double-quoted ones, but for backwards-compatibility I'd rather keep it there.
Comments?
Andreas
2012/6/4 Andreas Granig agranig@sipwise.com:
Now while doing some interop tests with another platform, it turned out that double-quotes are not allowed in URI params (see https://lists.cs.columbia.edu/pipermail/sip-implementors/2008-May/019335.htm..., and in the grammar the allowed chars in the "unreserved" definition are "alphanum" and "mark", where "mark" is only "-" / "_" / "." / "!" / "~" / "*" / "'" / "(" / ")" ).
Anyways, to fully comply with RFC3261, I'd like to push a bugfix to path module to use single-quotes instead, however it also needs a change in the parser to use parse_quoted_param() also in case of single-quoted params (which hasn't been handled at all until now).
My question now is if there are any concerns on your side with handling single-quoted URI params the way we handle double-quoted ones? If we were strict, we'd actually need to remove the handling for double-quoted ones, but for backwards-compatibility I'd rather keep it there.
IMHO the more friendly solution would be parse_quoted_param() to allow both single and double quoted values.
"Be liberal with receiving and strict while sending" :)
On 06/04/2012 07:29 PM, Iñaki Baz Castillo wrote:
My question now is if there are any concerns on your side with handling single-quoted URI params the way we handle double-quoted ones? If we were strict, we'd actually need to remove the handling for double-quoted ones, but for backwards-compatibility I'd rather keep it there.
IMHO the more friendly solution would be parse_quoted_param() to allow both single and double quoted values.
"Be liberal with receiving and strict while sending" :)
Ack, that's how it's now implemented. I'll push the fix tomorrow if there are no other objections.
Andreas