2013/4/9 Juha Heinanen jh@tutpro.com:
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@aliax.net