[SR-Users] Same Via Tag for INVITE and ACK on S/L loadbalancer
Henning Westerholt
hw at skalatan.de
Mon Feb 10 20:02:55 CET 2020
Hello Serge,
there was a regression introduced by b64a25874e3 in 5.2 because of a wrong refactoring. This were not noticed for some time because only a few people (still) use stateless load balancers. I noticed it as well in middle of last year during a customer project. It was fixed in 82635674517 end of July 2019, you find in the related discussion also some test results that I posted before doing the backport. So, if this is your problem, after 5.2.4 is should work again.
Cheers,
Henning
--
Henning Westerholt – https://skalatan.de/blog/
Kamailio services – https://gilawa.com
-----Original Message-----
From: sr-users <sr-users-bounces at lists.kamailio.org> On Behalf Of Serge S.Yuriev
Sent: Monday, February 10, 2020 4:46 PM
To: Kamailio (SER) - Users Mailing List <sr-users at lists.kamailio.org>
Subject: Re: [SR-Users] Same Via Tag for INVITE and ACK on S/L loadbalancer
Hello,
This stateless call flow is smooth in 5.1 branch, at least 5.1.7 but in 5.2.1 already broken IIRC.
Some time ago I wrote about this very same issue
10.02.2020, 18:39, "Daniel-Constantin Mierla" <miconda at gmail.com>:
> In such case, because the proxy is doing stateless forwarding, there
> is no transaction. I guess the solution right now is to use tm for
> relaying
> - is any concern of doing that?
>
> If someone wants to look at generating same via branch, I am fine with
> it, eventually controlled by a parameter if the code change is
> significant, to be able to switch to current mode if unexpected side
> effects pop up.
>
> One more note in this case: I expect it would be required to generate
> different tag for 200ok ACK, so it is matched as different transaction
> by next hop, not sure if there is any easy way to discover the type of
> ACK in a stateless proxy.
>
> I am not sure I remember correctly, but in some discussions I think it
> was suggested to just reuse the branch value of incoming top Via when
> doing stateless forwarding.
>
> Cheers,
> Daniel
>
> On 10.02.20 16:26, Sebastian Damm wrote:
>> We use 5.2 on the affected systems.
>>
>> On Mon, Feb 10, 2020 at 4:15 PM Serge S. Yuriev <me at nevian.org> wrote:
>>> Hi
>>>
>>> I believe you are using 5.2 or 5.3 series? This tend to work
>>> properly on 5.1 series
>>>
>>> 10.02.2020, 18:10, "Sebastian Damm" <damm at sipgate.de>:
>>>> Hi,
>>>>
>>>> actually, our only problem is handling negative replies. The ACK
>>>> belongs to the same transaction and therefore has to carry the
>>>> same
>>>> Via branch ID.
>>>>
>>>> Sebastian
>>>>
>>>> On Mon, Feb 10, 2020 at 3:50 PM Yuriy Gorlichenko <ovoshlook at gmail.com> wrote:
>>>>> ACK for successull response is a new transaction. It has to be different. May be it is better to point provider to this?
>>>>>
>>>>> On Mon, 10 Feb 2020, 14:26 Sebastian Damm, <damm at sipgate.de> wrote:
>>>>>> Hi,
>>>>>>
>>>>>> I stumbled upon an interop problem with a carrier. We have the
>>>>>> following scenario:
>>>>>>
>>>>>> Gateway --> Loadbalancer --> Carrier
>>>>>>
>>>>>> The loadbalancer generates a Via header for each request. But
>>>>>> since it
>>>>>> is stateless, the Via tag is generated for each request. As a
>>>>>> consequence, the Via tag in the ACK differs from the one in the
>>>>>> INVITE. And one carrier doesn't handle those ACKs if the Via
>>>>>> tag
>>>>>> differs.
>>>>>>
>>>>>> Is there a way to force the creation of a "deterministic" Via
>>>>>> branch
>>>>>> tag? For example, building it from a hash over call-id and
>>>>>> from-tag or
>>>>>> something like that?
--
wbr,
Serge
_______________________________________________
Kamailio (SER) - Users Mailing List
sr-users at lists.kamailio.org
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
More information about the sr-users
mailing list