Sadly, there is no way to make Kamailio inject compact headers. That's up to the UAs.
Well, if your hands really are that tied, then maybe topos is worth exploring after all.
However, I would carefully weigh the complexity and failure modes and overall
supportability issues against short-term benefit. Consider, for example, the ways in which
`topos` makes troubleshooting that much harder, since you've now got apparently
different call legs in and out of the proxy.
I was trying to make a somewhat broader, methodological point: Kamailio is an eclectic
grab-bag of interesting technical tools, but just because Kamailio is technically capable
of something doesn't mean you should do it.
It might be worth considering the larger business impact of the solution in many cases,
rather than viewing every problem as a nail and Kamailio's dazzling, kaleidoscopic
array of SIP manipulation capabilities as a hammer. The simplest possible solution is
often not the quickest, nor the most interesting, but may make the most sense in the long
run.
If the CPE is reacting this poorly to a stack of perfectly standards-compliant Via or RR
headers, it really may be worth doing the boring, tedious and time-consuming work of
getting the vendor to fix, or replacing the CPE. Otherwise, you'll patch this hole and
doubtless find another leak in the boat soon.
-- Alex
On 26 Feb 2024, at 09:39, Benoit Panizzon
<benoit.panizzon(a)imp.ch> wrote:
Hi Alex
There are lots of strategies for reducing message
size, although the RFC-recommended (better said, mandated :-) approach is just to switch
to TCP whenever your message sizes come within 200 bytes of the MTU, if I'm not
mistaken.
Those CPE do not support TCP.
Otherwise:
1) Turn on compact (abbreviated) SIP headers;
I would love to do that. But can I somehow instruct kamailio to
translate all headers to their compact format?
2) Strip header fields you can do without. This
is dangerous territory, but clearly some headers are less important than others, like
"Date" or "Allow";
Done that, removed User-Agent and some more. Still not enough if there
are 5 or more Via and RR header.
3) Do not offer any unnecessary codecs, reducing
SDP bloat.
The message body is not the issue, this seems to be handled in a
different memory buffer. The CPE crashed with a 'memory buffer too
small' when composing the reply to an invite with 5 or more Via and RR
even with minimalistic SDP. On the other hand, I threw a huge SDP with
ICE and Crypto to that CPE and it handled it well when only one Via and
no RR was present (after being handled by topos).
Mit freundlichen Grüssen
-Benoît Panizzon-
--
I m p r o W a r e A G - Leiter Commerce Kunden
______________________________________________________
Zurlindenstrasse 29 Tel +41 61 826 93 00
CH-4133 Pratteln Fax +41 61 826 93 01
Schweiz Web
http://www.imp.ch
______________________________________________________
--
Alex Balashov
Principal Consultant
Evariste Systems LLC
Web:
https://evaristesys.com
Tel: +1-706-510-6800