Hello all,<br>
<br>
I took a look at this patch and it works fine when I tested with STUN. <br>
I made some tests with a simple NAT and I hadn't any problems.<br>
I think it's a very important feature to be added on the next 0.10.x release.<br>
<br>
Regards,<br>
<br>
Birunko<br>
<br><div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">From: Kai Vehmanen &lt;<a href="mailto:kvehmanen@eca.cx" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">


kvehmanen@eca.cx</a>&gt;<br>Date: Nov 30, 2005 3:33 PM<br>Subject: [gst-devel] PATCH: sockfd property to udpsrc/dynudpsink elements<br>To: <a href="mailto:gstreamer-devel@lists.sourceforge.net" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

gstreamer-devel@lists.sourceforge.net
</a><br><br><br>Hello all,<br><br>here's a patch that adds a 'sockfd' property to the udpsrc/dynudpsink<br>elements in gst-plugins-good.<br><br>I'd like to get these into 0.10 if possible (sorry for the bad/late<br>timing). If 
0.10 is out of the question, when would be an appropriate<br>time? I assume adding new properties to elements is possible in 0.10.x<br>releases). Comments on the patch are of course also very much welcome.<br><br>Anyways, this patch is needed for two+ reasons:
<br><br>* To be able to send&amp;receive RTP+RTCP when connected to network<br>&nbsp;&nbsp; via a NAT/FW device, the same local port must be used for sending and<br>&nbsp;&nbsp; receiving (-&gt; symmetric RTP). This is an essential feature for any VoIP
<br>&nbsp;&nbsp; style client using RTP.<br><br>* The current udpsrc/dynudpsink interface is clumsy if the<br>&nbsp;&nbsp; requested port is reserved at NULL-&gt;READY state change. And especially<br>&nbsp;&nbsp; if you need to reserve paired ports on a busy system (X for RTP, and
<br>&nbsp;&nbsp; X+1 for RTCP) without race-conditions. It would be much easier to have<br>&nbsp;&nbsp; the app reserve and bind to the ports, and then pass the bound sockfds to<br>&nbsp;&nbsp; udpsrc/dynudpsink for use.<br><br>* Longer term: to integrate NAT traversal mechanisms such as STUN
<br>&nbsp;&nbsp; &lt;<a href="http://www.faqs.org/rfcs/rfc3489.html" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://www.faqs.org/rfcs/rfc3489.html</a>&gt; and UPnP-IGD to gstreamer, the<br>&nbsp;&nbsp; STUN client API has to create and bind the socket (you cannot do
<br>&nbsp;&nbsp; this inside udpsrc/dynudpsink).
<br><br>For testing, I've committed patches to the Farsight darcs repository, and<br>modified the gsmsendrecv.c test program to utilize the patched dynudpsink<br>and udpsrc (see the below message). This allows to symmetric use of both
<br>RTP and RTCP (verified to work with current gstreamer CVS). You can get<br>the needed elements with:<br><br>&nbsp;&nbsp; darcs get <a href="http://projects.collabora.co.uk/darcs/farsight/gst-plugins-farsight" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

http://projects.collabora.co.uk/darcs/farsight/gst-plugins-farsight
</a><br><br><br>---------- Forwarded message ----------<br>Date: Wed, 30 Nov 2005 20:12:04 +0200 (EET)<br>From: Kai Vehmanen &lt;<a href="mailto:kvehmanen@eca.cx" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

kvehmanen@eca.cx</a>&gt;<br>To: <a href="mailto:farsight-devel@lists.sourceforge.net" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
farsight-devel@lists.sourceforge.net</a><br>Subject: [Farsight-devel] darcs-commits; symmetric-rtp, accepting own packets<br><br>Hello,<br><br>I just committed some changes to enable symmetric RTP support:<br><br>* Added 'rtp_sockfd' and 'rtcp_sockfd' properties to rtpbin.
<br>&nbsp;&nbsp; - If not specified, rtpbin will behave as before.<br>&nbsp;&nbsp; - Requires the patches to udpsrc and dynudpsink (will<br>&nbsp;&nbsp;&nbsp;&nbsp; send to gstreamer-devel).<br><br>* Configure jrtplib to accept own packets by default.<br>&nbsp;&nbsp; - This allows to use the test apps in gst-plugins-farsight
<br>&nbsp;&nbsp;&nbsp;&nbsp; without patching jrtplib, and without getenv() hacks.<br>&nbsp;&nbsp; - If someone really wants to use multicast with rtpbin,<br>&nbsp;&nbsp;&nbsp;&nbsp; please go ahead and add a nice way to select this<br>&nbsp;&nbsp;&nbsp;&nbsp; at rtpbin creation time.<br><br>


* Modified gst-plugins-farsight/tests/gsmsendrecv.c<br>&nbsp;&nbsp; - Creates and binds sockets for RTP and RTCP, passes<br>&nbsp;&nbsp;&nbsp;&nbsp; these to rtpbin, and runs a RTP/GSM test over<br>&nbsp;&nbsp;&nbsp;&nbsp; local loopback.<br>&nbsp;&nbsp; - Tested to work with a snapshot of today's (2005-11-30)
<br>&nbsp;&nbsp;&nbsp;&nbsp; gstreamer/gst-plugins-* CVS.<br>&nbsp;&nbsp; - Thanks to the accept-own-packets change above,<br>&nbsp;&nbsp;&nbsp;&nbsp; you can actually run the test without hacking'n'patching<br>&nbsp;&nbsp;&nbsp;&nbsp; jrtplib as you had to do before.<br><br>--<br>&nbsp;&nbsp;under work: Sofia-SIP at 
<a href="http://sofia-sip.sf.net" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://sofia-sip.sf.net</a><br><br><br></blockquote></div><br><br clear="all"><br>-- <br>current-&gt;id = 0;<br>&gt;&gt; Powered by Linux