[SR-Users] VIA header question.

Olle E. Johansson oej at edvina.net
Tue Aug 4 13:51:11 CEST 2015


> On 04 Aug 2015, at 13:14, Chad <ccolumbu at hotmail.com> wrote:
> 
> Hi list,
> I need a little help, I am a business owner trying to get Kamailio up and running as a SIP load balancer.
> I hired a Kamailio consultant to help me do so, but Kamailio is not working and I am getting conflicting information.
> 
> My Kamailio consultant and my VOIP provider are telling me 2 different things and I don't know which one is right.
> 
> Kamailio sends SIP traffic to the VOIP provider with 2 VIA headers like this (in this order):
> Via: SIP/2.0/UDP 10.10.10.254;branch=z9hG4bK7291.6a0bbd2e8fd639a47d7d2de606779e47.0.
> Via: SIP/2.0/UDP 209.170.201.25:5060;received=10.10.10.102;branch=z9hG4bK742dc03d;rport=5060.
> 
> The VOIP provider says that is incorrect because they are supposed to reply back to the topmost VIA header so they reply to the 10.10.10.254 IP (which is not public) and the call ends.
> The VOIP provider says Kamailio should send the VIA headers like this instead:
> Via: SIP/2.0/UDP 209.170.201.25:5060;received=10.10.10.102;branch=z9hG4bK742dc03d;rport=5060.
> Via: SIP/2.0/UDP 10.10.10.254;branch=z9hG4bK7291.6a0bbd2e8fd639a47d7d2de606779e47.0.
> 
> My Kamailio consultant says the way we are sending it is right and that the VOIP provider is processing the call incorrectly.
> 
> I read that the SIP proxy is supposed to remove the internal header from the 1st example above based on this RFC:
> https://tools.ietf.org/html/rfc3261#section-16.7
> Item: 3. Via
> "The proxy removes the topmost Via header field value from the response.”
That applies to response forwarding.
> 
> If that applies to this situation (which I don't know if it does) then Kamailio should be removing the 10.10.10.254 VIA line and only sending 1 VIA header like this:
> Via: SIP/2.0/UDP 209.170.201.25:5060;received=10.10.10.102;branch=z9hG4bK742dc03d;rport=5060.
> 
> Which would sort of make the VOIP provider right in that the topmost VIA line would then be the external IP, but how they said to fix it (reversing the VIA lines) is wrong.
The response is sent to the topmost, leftmost VIA header value. The proxy adds it’s own address on TOP of other values when forwarding a request. That’s the address used for sending responses. 
See section 18.2.2 “Sending Responses” of RFC 3261.

What I don’t understand is how the via’s got in a different order. Kamailio does this right by default. It’s a very basic operation, but could be something related to the handling of public/private IP addresses that got wrong.

/O


More information about the sr-users mailing list