Some udp INVITEs hit our network very close to the 1500 byte limit, and we add 2 Record-Routes before we pass the INVITE to the end user. The packet gets truncated in the SDP; "usually" it still works.
In our use case, I can't use gzip or TCP. We are already using textops to convert to short-form headers where possible; we're also stripping unnecessary headers.
So the next thing is to use RFC 3261 7.3 and 25.1 to concatenate the multiple Record-Routes into one longer line (same for Via, Contact, etc.):
Record-Route: sip:111.111.111.111;lr=on Record-Route: sip:99.99.99.99;lr=on Record-Route: sip:88.88.88.88:5060;lr Record-Route: sip:77.77.77.77;lr
becomes:
Record-Route: sip:111.111.111.111;lr=on, sip:99.99.99.99;lr=on, sip:88.88.88.88:5060;lr sip:77.77.77.77;lr
That saves about 30 bytes - one can save more if putting all the values on 1 line without the cr\lf between.
Doesn't look like there's any kamailio function in textops/x that makes this kind of thing easy; so before I start hacking away at the code...
Our downstream uses freeswitch, and is willing to verify it works for him - but from a larger interop view, is this a Bad Idea(tm)? Anyone have any experience with brand-name carrier SBC/Proxies that would choke on a header like that?
Thanks!