Hi
there are two separate issues here related to multipart/mixed.
one is nathelper/mediaproxy module related and the other relates to textops/filter_body function.
mediaproxy module's use_mediaproxy() function can extract application/sdp bodypart both in k 1.5 and sr.
ok, this point is clear. I'm sorry but I'm not so familiar with NAT support in kamailio and there are three modules (NATHelper, Mediaproxy and NAT_traversal, ...) that apparently do similar things. I will carrefully read these module docs.
textops/filter_body function is able to leave out all other bodyparts
except the one given as argument, but boundary string is properly extracted from Content-type param only in sr.
So if I understand well (please correct me if I'm wrong) the "plan" is:
1º) I install MediaProxy and use Kamailio MEDIAPROXY module instead of rtpproxy/NATHelper
2º) filter the app/sdp part with
if (has_body("multipart/mixed")) { if (filter_body("application/sdp") { remove_hf("Content-Type");
append_hf("Content-Type: application/sdp\r\n"); } else {
xlog("Body part application/sdp not found\n"); } }
As the multipart boundary seems to be hardcoded with "--Boundary" in Kamailio Mediaproxy module, I will make sure my client is using this one.
3º) then engage the media proxy with
if (method==INVITE && !has_totag()) {
# We can also use a specific media relay if we need to #$avp(s:media_relay) = "1.2.3.4"; engage_media_proxy(); }
4º) finally put the body part(s) that have been removed in 1º) and relay the INVITE to my next hop. I believe I can save the body part(s) in 1º) and put them back using set_body(txt, content_type).
Do you believe that this should work ?
-pascal
-- juha