AFAIK, the pjmedia_transport doesn't modify any part of the packet.<br>So perhaps some 'logic error' in the code (buffer sharing, etc).<br>And please make sure you check the "bytes_read" on on_rx_rtp/rtcp callback, because it can be < 0.<br>

<br>nanang<br><br><br><div><span class="gmail_quote">On 05/02/2008, <b class="gmail_sendername">Giuseppina Senzatela</b> <<a href="mailto:giuseppina.senzatela@eunics.it">giuseppina.senzatela@eunics.it</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi Benny, you were absolutely right! I was a little bit confused on how to proceed ..<br>I followed your suggestion and I gave a look to the pjmedia documentation, so the solution you suggested has been very simple for me to achieve.<br>
The media proxy I realized receives packets from UAs, and trasmits them properly (or it seems to be right...).<br>The problem is that when media proxy transmits the packet, it has the right header but the payload is always a zero sequence...<br>
<br>This is a tcpdump on the media proxy:<br><br>that's the schema of transmission:<br><br>UAC0 (62.94.0.199.40862) <----------> (195.62.230.219.60176) | (195.62.230.219.60178)<---------->UAC1 (62.94.0.199.40858)<br>
<br><br><br>14:21:14.804865 IP (tos 0x0, ttl  56, id 7802, offset 0, flags [none], proto: UDP (17), length: 280) 62.94.0.199.40862 > 195.62.230.219.60176: UDP, length 252<br>        0x0000:  4500 0118 1e7a 0000 3811 7a1c 3e5e 00c7  E....z..8.z.>^..<br>
        0x0010:  c33e e6db 9f9e eb10 0104 39e8 8000 01fb  .>........9.....<br>        0x0020:  00fd c020 726d 3486 7b7a 757e fe78 7dfb  ....rm4.{zu~.x}.<br>        0x0030:  7c7d fc7a 7a7e 797c 7f7d 7b7d 7e79 7679  |}.zz~y|.}{}~yvy<br>
        0x0040:  7674 7b76 757f 7a79 7a73 7879 7579 7977  vt{vu.zyzsxyuyyw<br>        0x0050:  7877                                     xw<br>14:21:14.813985 IP (tos 0x0, ttl 123, id 12412, offset 0, flags [none], proto: UDP (17), length: 200) 62.94.0.199.40858 > 195.62.230.219.60178: UDP, length 172<br>
        0x0000:  4500 00c8 307c 0000 7b11 256a 3e5e 00c7  E...0|..{.%j>^..<br>        0x0010:  c33e e6db 9f9a eb12 00b4 149f 8000 1282  .>..............<br>        0x0020:  0004 7f40 8759 9aa9 fefc fcfe fdfd 7c7d  ...@.Y........|}<br>
        0x0030:  fdfb fc7e 7c7b 7d7f fffd fe7c 7b7c 7efb  ...~|{}....|{|~.<br>        0x0040:  fc7e 7dfe fcfc fe7f fcfa 7e7e fefd 7b75  .~}.......~~..{u<br>        0x0050:  7bfe                                     {.<br>14:21:14.820626 IP (tos 0x0, ttl  64, id 0, offset 0, flags [DF], proto: UDP (17), length: 200) 195.62.230.219.60176 > 62.94.0.199.40862: UDP, length 172<br>
        0x0000:  4500 00c8 0000 4000 4011 50e6 c33e e6db  E.....@.@.P..>..<br>        0x0010:  3e5e 00c7 eb10 9f9e 00b4 52ba 8000 7a7b  >^........R...z{<br>        0x0020:  0000 4100 0054 fc0c 0000 0000 0000 0000  ..A..T..........<br>
        0x0030:  0000 0000 0000 0000 0000 0000 0000 0000  ................<br>        0x0040:  0000 0000 0000 0000 0000 0000 0000 0000  ................<br>        0x0050:  0000                                     ..<br>14:21:14.820645 IP (tos 0x0, ttl  64, id 0, offset 0, flags [DF], proto: UDP (17), length: 200) 195.62.230.219.60178 > 62.94.0.199.40858: UDP, length 172<br>
        0x0000:  4500 00c8 0000 4000 4011 50e6 c33e e6db  E.....@.@.P..>..<br>        0x0010:  3e5e 00c7 eb12 9f9a 00b4 4284 8000 78c1  >^........B...x.<br>        0x0020:  0000 4100 23f0 ea62 0000 0000 0000 0000  ..A.#..b........<br>
        0x0030:  0000 0000 0000 0000 0000 0000 0000 0000  ................<br>        0x0040:  0000 0000 0000 0000 0000 0000 0000 0000  ................<br>        0x0050:  0000                                     ..<br>14:21:14.833906 IP (tos 0x0, ttl 123, id 12418, offset 0, flags [none], proto: UDP (17), length: 200) 62.94.0.199.40858 > 195.62.230.219.60178: UDP, length 172<br>
        0x0000:  4500 00c8 3082 0000 7b11 2564 3e5e 00c7  E...0...{.%d>^..<br>        0x0010:  c33e e6db 9f9a eb12 00b4 270f 8000 1283  .>........'.....<br>        0x0020:  0004 7fe0 8759 9aa9 fb7e 7c7b 7ffa fbff  .....Y...~|{....<br>
        0x0030:  fdfc 7ffd fb7f 7dfd 7f79 7b7c fdfa 7e7b  ......}..y{|..~{<br>        0x0040:  7dfe fefe 7e7d 7e7f 7efd fb7f fefe 7a7b  }...~}~.~.....z{<br>        0x0050:  7f7e                                     .~<br>14:21:14.835270 IP (tos 0x0, ttl  56, id 7803, offset 0, flags [none], proto: UDP (17), length: 280) 62.94.0.199.40862 > 195.62.230.219.60176: UDP, length 252<br>
        0x0000:  4500 0118 1e7b 0000 3811 7a1b 3e5e 00c7  E....{..8.z.>^..<br>        0x0010:  c33e e6db 9f9e eb10 0104 cf26 8000 01fc  .>.........&....<br>        0x0020:  00fd c110 726d 3486 767b 7775 7974 7176  ....rm4.v{wuytqv<br>
        0x0030:  7470 7578 7778 7273 7a72 6f76 7575 7478  tpuxwxrszrovuutx<br>        0x0040:  7a77 7878 7477 7673 7a7b 7979 7a7b 7b75  zwxxtwvsz{yyz{{u<br>        0x0050:  7876                                     xv<br>14:21:14.840625 IP (tos 0x0, ttl  64, id 0, offset 0, flags [DF], proto: UDP (17), length: 200) 195.62.230.219.60176 > 62.94.0.199.40862: UDP, length 172<br>
        0x0000:  4500 00c8 0000 4000 4011 50e6 c33e e6db  E.....@.@.P..>..<br>        0x0010:  3e5e 00c7 eb10 9f9e 00b4 5219 8000 7a7c  >^........R...z|<br>        0x0020:  0000 41a0 0054 fc0c 0000 0000 0000 0000  ..A..T..........<br>
        0x0030:  0000 0000 0000 0000 0000 0000 0000 0000  ................<br>        0x0040:  0000 0000 0000 0000 0000 0000 0000 0000  ................<br>        0x0050:  0000                                     ..<br>14:21:14.840644 IP (tos 0x0, ttl  64, id 0, offset 0, flags [DF], proto: UDP (17), length: 200) 195.62.230.219.60178 > 62.94.0.199.40858: UDP, length 172<br>
        0x0000:  4500 00c8 0000 4000 4011 50e6 c33e e6db  E.....@.@.P..>..<br>        0x0010:  3e5e 00c7 eb12 9f9a 00b4 41e3 8000 78c2  >^........A...x.<br>        0x0020:  0000 41a0 23f0 ea62 0000 0000 0000 0000  ..A.#..b........<br>
        0x0030:  0000 0000 0000 0000 0000 0000 0000 0000  ................<br>        0x0040:  0000 0000 0000 0000 0000 0000 0000 0000  ................<br>        0x0050:  0000                                     ..<br>14:21:14.854187 IP (tos 0x0, ttl 123, id 12426, offset 0, flags [none], proto: UDP (17), length: 200) 62.94.0.199.40858 > 195.62.230.219.60178: UDP, length 172<br>
        0x0000:  4500 00c8 308a 0000 7b11 255c 3e5e 00c7  E...0...{.%\>^..<br>        0x0010:  c33e e6db 9f9a eb12 00b4 2ed4 8000 1284  .>..............<br>        0x0020:  0004 8080 8759 9aa9 7a7c f9fa ff7e fefe  .....Y..z|...~..<br>
        0x0030:  fdfa ff7b 7e7c 7c7f 7977 7ffe 7ffc fcfb  ...{~||.yw......<br>        0x0040:  7f7b 7dfd f6f9 feff fefc fc7e 7ffd feff  .{}........~....<br>        0x0050:  7f7e                                     .~<br>14:21:14.860625 IP (tos 0x0, ttl  64, id 0, offset 0, flags [DF], proto: UDP (17), length: 200) 195.62.230.219.60176 > 62.94.0.199.40862: UDP, length 172<br>
        0x0000:  4500 00c8 0000 4000 4011 50e6 c33e e6db  E.....@.@.P..>..<br>        0x0010:  3e5e 00c7 eb10 9f9e 00b4 5178 8000 7a7d  >^........Qx..z}<br>        0x0020:  0000 4240 0054 fc0c 0000 0000 0000 0000  ..B@.T..........<br>
        0x0030:  0000 0000 0000 0000 0000 0000 0000 0000  ................<br>        0x0040:  0000 0000 0000 0000 0000 0000 0000 0000  ................<br>        0x0050:  0000                                     ..<br><br>
<br><br>Do you see something strange I 'm not able to see, or have any ideas so that the payload is a zero sequence during transmission?<br>What do you think?<br><br>Bye, and.... thanks for your patience!<br>Giusy<br>
<br><br><br><br><br>In that case, I think you probably don't need to use stream at all. Stream<br>is needed if you need to work with the media at the PCM level, while in this<br>case, probably what you want is just to forward the RTP packets (without<br>
having to decode/encode etc.).<br><br>If this is the case, then the solution couldn't be simpler:<br> - create two media transports, one for each UA<br> - call pjmedia_transport_attach() to attach your RTP/RTCP RX callbacks.<br>
 - when your RTP/RTCP callback is called by one transport, call<br>pjmedia_transport_send_rtp/rtcp() to to send the packet with the other<br>transport.<br><br>You will still need  to configure worker threads in pjmedia_endpt to poll<br>
the ioqueue, or otherwise create these threads yourself and make them poll<br>the ioqueue. See pjmedia_endpt_create() documentation for the details.<br><br>What do you think?<br><br>cheers,<br> -benny<br><br><br>_______________________________________________<br>
Visit our blog: <a href="http://blog.pjsip.org">http://blog.pjsip.org</a><br><br>pjsip mailing list<br><a href="mailto:pjsip@lists.pjsip.org">pjsip@lists.pjsip.org</a><br><a href="http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org">http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org</a><br>
</blockquote></div><br>