[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