Hi
In the process of getting rid of our commercial B2Bua SBC and handling all clients directly via Kamailio...
We have come across some (unfortunately many we have in use) CPE which have an issue with fragmented packets or which simply do not allocate enough memory to parse or create messages of a certain size. Their SIP stack just crashes with errors like 'message to large for send buffer' and similar.
This affects messages with containing as little as 5 via and 4 record-route header and a couple of codec in the SDP.
Is there a recipe for trying to keep packets as small as possible?
I would like to avoid using the topos module as I issues with this module completely failing in certain situations.
Hello,
one really effective way is the topos module. If you can not use this, you could switch to compact sip header. This way you save some bytes per header-field. But this is something that needs to be supported from the user agent as well. You could remove not needed headers and SDP inside the Kamailio, but this will probably not help you a lot. In the end the user agents need to be fixed, probably.
Cheers,
Henning
Good morning Henning
one really effective way is the topos module. If you can not use this, you could switch to compact sip header. This way you save some bytes per header-field. But this is something that needs to be supported from the user agent as well. You could remove not needed headers and SDP inside the Kamailio, but this will probably not help you a lot. In the end the user agents need to be fixed, probably.
topos requires database but not dialog, right?
I remember I ran into issues with topos which I was unable to solve.
We have a CPE <=> Registrar(kamailio) <=> Routing Core(kamailio) <=> IC topology
Topology shall be hidden towards the CPE, not towards the core. But I didn't manage to achieve this, sometimes topology was hidden towards core causing call failure and incorrect restoring of Route/Via header. As I recall this happened in call forwarding scenarios (initiated on the registrar).
Btw, is there a way to convert all header to compact header? I'm not sure if our CPE would support them, but it's worth a try.
Is there a function returning, or PV containing the sip packet size to try to take actions like removing unnecessary header and codecs if a packet is over a certain size?
Mit freundlichen Grüssen
-Benoît Panizzon-