[Kamailio-Users] Kamailio ignores Via in replies?

Alex Hermann alex at speakup.nl
Thu Oct 22 11:30:07 CEST 2009


Hello,


while debugging a problem today I encountered a rather strange issue. The 
client's UA/router was messing up the Via header, with as result that all 
the IP's in the Via's were replaced by the public IP of the DSL modem.

Now the weird part: because of the mangled Via's, the expected result is 
that the reply would be routed back to the IP of the client. Instead, the 
replies were still following the "correct" return path through a series of 
OpenSER/Kamailio proxies. How is this possible?


According to rfc3261, a proxy must forward the reply to the next Via in the 
received _response_. It seems Kamailio is incorrectly keeping the Via from 
the request and sends the reply to the stored address of the Via from the 
_request_. Btw, no 'received' parameter is involved.

Can anyone with inside knowledge of Kamailio share his/her view on this 
issue? And possibly, how to fix it.

I suspect I can use check_via=1 to drop incoming replies with incorrect via, 
although the behaviour of check_via is undocumented (what does it do when 
check fails?). And why is the default value 0 (as has every example config 
on the web)?

There's also reply_to_via, but according to docs that's only for locally 
generated replies. Also, its use is beyond me, as the correct value is 
dependent on the src_ip of the request and thus can't possibly be a global 
option.


Alex.



More information about the Users mailing list