2013/4/9 Juha Heinanen <jh(a)tutpro.com>om>:
because path-value starts with name-addr and my
interpretation is that
since there are <>s around this path header body:
Path:
<sip:192.98.102.10;transport=tcp;lr;received='sip:192.98.102.10:58156%3Btransport%3Dtcp'>
solely consists of name-addr and does not include any rr-params. sip
uri included in name-addr in turn cannot have ; and = in its param
values.
In the above Path there is NO header params but JUST URI params
(header params would be placed after the ">"). And indeed the above
usage is INCORRECT. This is what happens when parsing a Route or Path
header as the above:
Path:
<sip:192.98.102.10;transport=tcp;lr;received='sip:192.98.102.10:58156%3Btransport%3Dtcp'>
Parsing result:
- display name: null
- schema: sip
- user: null
- host: "192.98.102.10" (ipv4)
- port: null
- params: {
"transport"=>"tcp'",
"lr"=>null,
"received"=>"'sip:192.98.102.10:58156",
"transport"=> "tcp'"
}
Do you see it? the above Path is BNF valid but 100% unexpected as
there are the following URI params/values (now without double quotes):
transport : tcp
lr :
received : 'sip:192.98.102.10:58156 <-- note the initial ' !!!
transport : tcp' <-- note the final ' !!!!
So the "received" value added by Kamailio is invalid. Such a value
cannot be the value of a SIP URI parameter at all. I strongly propose
encoding it in base64 or escaping the "=" and the ";" symbols when in
a SIP URI param value as Juha suggests.
Regards.
--
Iñaki Baz Castillo
<ibc(a)aliax.net>