This bug is fixed now with your patch Daniel!
Thank you, I go ahead with my testing
Cheers,
Pascal


On Mon, Jun 22, 2009 at 5:34 PM, Daniel-Constantin Mierla <miconda@gmail.com> wrote:
Can you check this patch I just committed?

http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=caef5ace2026fcb2a9dffb471e2cec6d843082f8

Basically, you simply can get the extract_body() function from nathelper/nhelpr_funcs.c and replace it in kamailio.

Let me know if works ok now.

Thanks,
Daniel


On 06/22/2009 04:22 PM, Daniel-Constantin Mierla wrote:
please send me the original and the new invite so I can see how the body is changed afterwards.

Cheers,
Daniel

On 06/22/2009 03:23 PM, Pascal Maugeri wrote:
With your patch there is a small bug when re-constructing the multipart payload:

[...]
--Genaker-boundary
Content-Type: application/sdp

v=0
[...]
a=fmtp:TBCP queuing=0; tb_priority=1; timestamp=0; tb_granted=0; poc_sess_priority=1; poc_lock=0


*a=nortpproxy:yes--Genaker-boundary*
Content-Type: application/resource-lists+xml

<?xml version="1.0" encoding="UTF-8"?>
<resource-lists xmlns="urn:ietf:params:xml:ns:resource-lists" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
[...]

--Genaker-boundary--


Observe the line "a=nortpproxy:yes--Genaker-boundary" : there are CRLFs missing. And there two CRLF before "a=nortpproxy:yes". I guess you're adding the CRLF in the incorrect order.

We're progressing ;-)

-pascal

On Mon, Jun 22, 2009 at 11:36 AM, Daniel-Constantin Mierla <miconda@gmail.com <mailto:miconda@gmail.com>> wrote:

   Hello Pascal,

   I have just committed support for multipart bodies in sip router,
   if works then I will backport to 1.5.

   http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=1f41271e1c1b879217835b8b3fdbdc2680138f25


   Can you test it? Unfortunately I cannot do it these days properly
   due to traveling. Patch should work pretty straightforward with
   1.5 though, if you want to test it directly there.

   Cheers,
   Daniel


   On 06/22/2009 11:30 AM, Pascal Maugeri wrote:

       I tried to install mediaproxy but it looks tricky to install
       (many dependencies, including kernel specific configurations) :-(
       and I would like to stick to rtpproxy for performance reason.

       Do you believe the same workaround using textops/filter_body
       can be used using rtpproxy ? I think yes as these are two
       different things as said Juha.

       Regards,
       Pascal


       On Fri, Jun 19, 2009 at 9:26 PM, Pascal Maugeri
       <pascal.maugeri@gmail.com <mailto:pascal.maugeri@gmail.com>
       <mailto:pascal.maugeri@gmail.com
       <mailto:pascal.maugeri@gmail.com>>> wrote:



          On Fri, Jun 19, 2009 at 9:13 PM, Juha Heinanen
       <jh@tutpro.com <mailto:jh@tutpro.com>
          <mailto:jh@tutpro.com <mailto:jh@tutpro.com>>> wrote:

              Pascal Maugeri writes:

               > 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");
               >     }
               > }

              you don't need to call filter_body if you use mediaproxy.

               > 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();
               > }

              i have never used engage_media_proxy() functions,
       because it
              makes some
              assumptions that are not generally true.  i use
              use_media_proxy() instead.

               > 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).

              you don't need to do anything like that if you use
              use_media_proxy()
              function, because it does not remove anything.


          Thanks Juha ! I can't wait for monday to test it :-)

          Have a nice week-end
          Pascal

                        -- juha



       ------------------------------------------------------------------------

       _______________________________________________
       Kamailio (OpenSER) - Users mailing list
       Users@lists.kamailio.org <mailto:Users@lists.kamailio.org>
       http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
       http://lists.openser-project.org/cgi-bin/mailman/listinfo/users


   --     Daniel-Constantin Mierla
   http://www.asipto.com/


------------------------------------------------------------------------

_______________________________________________
Kamailio (OpenSER) - Users mailing list
Users@lists.kamailio.org
http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
http://lists.openser-project.org/cgi-bin/mailman/listinfo/users


--
Daniel-Constantin Mierla
http://www.asipto.com/