Hi List,
I have some weird multipart/mixed;boundary issues. I use kamailio 5.3.6 with rtpengine 7.x.x (same with 8.x.x).
If i try to remove a multipart/mixed and leave only the sdp with filter_body() that works except one thing.
The sender used IMHO an non RFC compliant version of rfc5621 and wrote the Content-Length Header twice (one in the header, one in the sdp). After manipulating the SDP filter_body() lets Content-Length in the sdp (i guess). And rtpengine is not happy with the sdp after that. rtpengine [rtpengine.c:2588]: rtpp_function_call(): proxy replied with error: Failed to parse SDP
Any ideas how to solve this?
Kind regards Karsten Horsmann
https://tools.ietf.org/html/rfc5621#section-3.1
route[REMOVE_MULTIPART] { if (has_body("multipart/mixed")) { if ($sel(cfg_get.remove.multipart) == 1) { if (filter_body("application/sdp")) { remove_hf("Content-Type"); append_hf("Content-Type: application/sdp\r\n"); msg_apply_changes(); xlog("L_WARN", "[$cfg(route)] Body part multipart/mixed with application/sdp found\n"); } else { xlog("L_ERROR", "[$cfg(route)] Body part multipart/mixed without application/sdp found\n"); } } else { xlog("L_INFO", "[$cfg(route)] Body part multipart/mixed found - manipulation disabled\n"); } } }
------------------- INVITE sip:+49XXXXXXXX@172.20.120.57:5060 SIP/2.0 Via: SIP/2.0/UDP 172.20.120.51:5061;branch=z9hG4bK-6589-1-0 From: sipp sip:sipp@172.20.120.51:5061;tag=6589SIPpTag001 To: sut sip:+49XXXXXXXXX@172.20.120.57:5060 Call-ID: 1-6589@172.20.120.51 CSeq: 1 INVITE Contact: sip:sipp@172.20.120.51:5061 Max-Forwards: 70 Subject: Performance Test Content-Type: multipart/mixed;boundary=sonus-content-delim Content-Length: 1185
--sonus-content-delim Content-Type: application/sdp Content-Length: 305
v=0 o=Sonus_UAC 895311 862130 IN IP4 8.8.8.8 s=SIP Media Capabilities c=IN IP4 8.8.8.8 t=0 0 m=audio 26088 RTP/AVP 8 0 18 101 a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:18 G729/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:18 annexb=no a=fmtp:101 0-15 a=sendrecv a=rtcp:26089 a=ptime:20
--sonus-content-delim Content-Type: application/pidf+xml
<?xml version="1.0" encoding="UTF-8"?><presence xmlns="urn:ietf:params:xml:ns:pidf" xmlns:gp="urn:ietf:params:xml:ns:pidf:geopriv10" xmlns:cl="urn:ietf:params:xml:ns:pidf:geopriv10:civicLoc" mlns:btd="http://btd.orange-business.com" entity=" pres:geotarget@btip.orange-business.com"><tuple id="XXXX"><status>gp:geoprivgp:location-infocl:civicAddresscl:countryDE</cl:countr cl:A1Some State</cl:A1>cl:A3Somewhere</cl:A3>cl:A4Somewhere</cl:A4>cl:A6Somestreet</cl:A6>cl:YYY1</cl:YYY>cl:PC9999</cl:PC>cl:EMERGENCYZONEXXXXXXX</cl:EMERG CYZONE></cl:civicAddress></gp:location-info>gp:usage-rules</gp:usage-rules></gp:geopriv></status></tuple></presence> --sonus-content-delim--
--------------------- INVITE sip:+49XXXXXXXX@foo SIP/2.0 Via: SIP/2.0/TCP 212.XX.XX.XX;branch=z9hG4bKc228.6b8fdf20d79998d1d355feb2dcf5ba63.0 From: sipp sip:sipp@foo;tag=6589SIPpTag001 To: sut sip:+49XXXXXXXX@foo Call-ID: 1-6589@172.20.120.51 CSeq: 1 INVITE Max-Forwards: 69 Content-Length: 347 Content-Type: application/sdp P-Asserted-Identity: sip:+49XXXXXXXX@212.XX.XX.XX Contact: sip:btpsh-60211bbe-674b-1@212.XX.XX.XX;transport=tcp
Content-Length: 305
v=0 o=Sonus_UAC 895311 862130 IN IP4 8.8.8.8 s=SIP Media Capabilities c=IN IP4 8.8.8.8 t=0 0 m=audio 26088 RTP/AVP 8 0 18 101 a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:18 G729/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:18 annexb=no a=fmtp:101 0-15 a=sendrecv a=rtcp:26089 a=ptime:20