[SR-Users] Same Via Tag for INVITE and ACK on S/L loadbalancer

Serge S. Yuriev me at nevian.org
Mon Feb 10 16:46:02 CET 2020


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




More information about the sr-users mailing list