Sure, it’s a workaround. It probably could be fixed in the ts_append(..) function, or in one of the functions that its uses (like from tm).
Cheers,
Henning
From: Ihor Olkhovskyi <igorolhovskiy@gmail.com>
Sent: Freitag, 4. Oktober 2024 10:26
To: Henning Westerholt <hw@gilawa.com>; Kamailio (SER) - Users Mailing List <sr-users@lists.kamailio.org>
Subject: Re: [SR-Users] t_append_branches() and "dead" tcp connections
Henning ,
Yes, I did. But as I've said, in a really small number of cases it does not help. As a drawback, too frequent TCP keepalives making Android not close the app and it does not help either.
At the end, it's a workaround, not a "proper solution", I think.
Le 04/10/2024 à 10:14, Henning Westerholt a écrit :
Hello,
already tried to use short TCP keepalive intervals on a network level? This way the dead connections should be detected and removed.
Cheers,
Henning
From: Ihor Olkhovskyi <igorolhovskiy@gmail.com>
Sent: Freitag, 4. Oktober 2024 10:09
To: Henning Westerholt <hw@gilawa.com>; Kamailio (SER) - Users Mailing List <sr-users@lists.kamailio.org>
Subject: Re: [SR-Users] t_append_branches() and "dead" tcp connections
Henning,
That's what I did for the moment, but sometimes, especially with Android endpoints, I'm getting a situation where there is a "dead" TCP connection, cause some devices not really taking care about closing them properly. And on TCP timeout expiry time the device is literally unreachable.
Le 04/10/2024 à 09:52, Henning Westerholt a écrit :
Hello Ihor,
what just about setting handle_lost_tcp to 1 to remove dead TCP connection and to prevent this error?
Cheers,
Henning
From: Ihor Olkhovskyi via sr-users <sr-users@lists.kamailio.org>
Sent: Donnerstag, 3. Oktober 2024 21:04
To: Kamailio (SER) - Users Mailing List <sr-users@lists.kamailio.org>
Cc: Ihor Olkhovskyi <igorolhovskiy@gmail.com>
Subject: [SR-Users] t_append_branches() and "dead" tcp connections
Hello,
Recently encountered an issue with tsilo (that is using t_append_branches), but not sure found a root cause.
So, I have a call, but aparently there are some "dead" TCP connections in a "location" table
modparam("usrloc", "handle_lost_tcp", 0)
On call initialtion, INVITE's are sent to "last seen" location, but aparently there is no answer and I assume it's in a state "trying to establish TCP connection"
Obviously, there is no "100 Trying" answer on any outgoing INVITE.
Than, a REGISTER comes from a contact, that is supposed to be called.
Usual
ts_append("location", "$tu");
is called, but in the logs I see
[REGISTER] tm [t_append_branches.c:208]: t_append_branches(): failure to add branches (-1)
If there is an active TCP connection, branches are added as expected. I'm getting this only in a case of trying to establish a call to a "dead" TCP connection.
What am I missing here or it sounds like a bug?
--
Best regards,
Ihor (Igor)