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@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:
- 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?
- 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.
- 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 ______________________________________________________