Thanks for the info.  Looks like I&#39;m dealing with two external problems then.  A device that is not doing what it should by specifying the transport, and this other server we are communicating with that regardless of if it get&#39;s a UDP request, it will first try TCP on the way out.  Ah the joy of working around incompatible devices and servers.  I guess this is why we like OpenSIPS so much, it&#39;s flexible enough to fix other people&#39;s problems ;)<br>
<br>-dg<br>
<br><br><div class="gmail_quote">On Sat, Mar 6, 2010 at 12:27 AM, Bogdan-Andrei Iancu <span dir="ltr">&lt;<a href="mailto:bogdan@voice-system.ro">bogdan@voice-system.ro</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Daniel Goepp wrote:<br>
&gt; We actually use record_route_preset not record_route, I would have<br>
&gt; presumed the logic would be the same for both though regarding this.<br>
rr_preset() is for setting your own rr header, overriding the automatic<br>
building of  the headers.  So you have to red pill - let opensips to do<br>
the job - or the blue pill - you do you yourself, but do it from A to Z<br>
<br>
&gt; I do not explicitly set double_rr, so it should be the default of on<br>
&gt; as you point out.  My work around of testing and setting manually does<br>
&gt; appear to be working now.  I also wonder about what the default<br>
&gt; protocol / priority would be to use on a call.  For example a SIP URI<br>
&gt; call where you don&#39;t know if the called party is UDP or TCP, it<br>
&gt; appears to default to UDP.<br>
if there is not protocol indication (like SIPS scheme or transport<br>
param), it is UDP - that is what RFC3261 says<br>
<div class="im">&gt; However if the endpoint I&#39;m calling from is using TCP, I would prefer<br>
&gt; to have the outbound attempt first try TCP, then go to UDP if it fails.<br>
</div>if you receive the call over TCP and the caller requests TCP for<br>
delivery, you should have the transport=TCP param in the received RURI.<br>
The presence of this param will force opensips to use the indicated<br>
transport for sending the call out.<br>
Se simple fact you receive the call over TCP does not mean anything -<br>
what is important is what protocol is required via RURI.<br>
<br>
Regards,<br>
Bogdan<br>
<div class="im">&gt; The system we are sending calls to actually just prefers TCP all the<br>
&gt; time, and then fails over to UDP if it can&#39;t complete the call.  We<br>
&gt; are still experimenting with this, but due to the large packet sizes<br>
&gt; we are seeing with video, TCP is working better for us in most situations.<br>
&gt;<br>
</div>&gt; Thanks<br>
&gt;<br>
&gt; -dg<br>
&gt;<br>
&gt;<br>
&gt; On Fri, Mar 5, 2010 at 11:50 AM, Bogdan-Andrei Iancu<br>
&gt; &lt;<a href="mailto:bogdan@voice-system.ro">bogdan@voice-system.ro</a> &lt;mailto:<a href="mailto:bogdan@voice-system.ro">bogdan@voice-system.ro</a>&gt;&gt; wrote:<br>
&gt;<br>
&gt;     Hi Daniel,<br>
&gt;<br>
&gt;     But record_route() will automatically do double routing if a proto<br>
&gt;     / ip<br>
&gt;     / port change is detected between the inbound and outbound interface.<br>
&gt;     You need to have the &quot;double_rr&quot; enabled (which is by default).<br>
&gt;<br>
&gt;     Could you check how the RR added by OpenSIPS looks like ?<br>
&gt;<br>
&gt;     Regards,<br>
&gt;     Bogdan<br>
&gt;<br>
&gt;     Daniel Goepp wrote:<br>
&gt;     &gt; Oh man...then TWO seconds after sending this, I find:<br>
&gt;     &gt;<br>
&gt;     &gt; if(proto==TCP)<br>
&gt;     &gt; {<br>
&gt;     &gt; log(&quot;the SIP message was received over TCP\n&quot;);<br>
&gt;     &gt; };<br>
&gt;     &gt;<br>
&gt;     &gt; However my other comment of perhaps this should be handled<br>
&gt;     &gt; automatically by OpenSIPS still stands :)<br>
&gt;     &gt;<br>
&gt;     &gt; Thanks<br>
&gt;     &gt;<br>
&gt;     &gt; -dg<br>
&gt;     &gt;<br>
&gt;     &gt;<br>
&gt;     &gt; On Fri, Mar 5, 2010 at 9:18 AM, Daniel Goepp &lt;<a href="mailto:dan@goepp.net">dan@goepp.net</a><br>
&gt;     &lt;mailto:<a href="mailto:dan@goepp.net">dan@goepp.net</a>&gt;<br>
&gt;     &gt; &lt;mailto:<a href="mailto:dan@goepp.net">dan@goepp.net</a> &lt;mailto:<a href="mailto:dan@goepp.net">dan@goepp.net</a>&gt;&gt;&gt; wrote:<br>
&gt;     &gt;<br>
&gt;     &gt;     We are doing some interop work with another switch, and it is<br>
&gt;     &gt;     having some trouble with TCP vs UDP.  Because of the packet size<br>
&gt;     &gt;     for these specific calls we need to do them TCP.  However the<br>
&gt;     &gt;     record-route in our 200 OK has no transport set, and<br>
&gt;     according to<br>
&gt;     &gt;     the RFC, no transport for SIP default is UDP.  This means<br>
&gt;     that all<br>
&gt;     &gt;     our signaling is TCP, until we get an ACK back from this<br>
&gt;     box, and<br>
&gt;     &gt;     it then is UDP, but too big and breaks the call.  I have<br>
&gt;     found the<br>
&gt;     &gt;     add_rr_param, so I could do a<br>
&gt;     add_rr_param(&quot;;transport=tcp&quot;), but<br>
&gt;     &gt;     I only want to do this for calls that are currently using<br>
&gt;     TCP.  I<br>
&gt;     &gt;     looked for a function to test the protocol used, but<br>
&gt;     couldn&#39;t find<br>
&gt;     &gt;     one.  Anyone know what it is?  Also, it would seem the<br>
&gt;     appropriate<br>
&gt;     &gt;     thing for OpenSIPS to do would be to automatically put the<br>
&gt;     &gt;     ;transport=xxx in the RR based on the current protocol of the<br>
&gt;     &gt;     dialog.  Thoughts on that?<br>
&gt;     &gt;<br>
&gt;     &gt;     Thanks<br>
&gt;     &gt;<br>
&gt;     &gt;     -dg<br>
&gt;     &gt;<br>
&gt;     &gt;<br>
&gt;     &gt;<br>
&gt;     ------------------------------------------------------------------------<br>
&gt;     &gt;<br>
&gt;     &gt; _______________________________________________<br>
&gt;     &gt; Users mailing list<br>
&gt;     &gt; <a href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a> &lt;mailto:<a href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a>&gt;<br>
<div class="im">&gt;     &gt; <a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
&gt;     &gt;<br>
&gt;<br>
&gt;<br>
</div>&gt;     --<br>
&gt;     Bogdan-Andrei Iancu<br>
&gt;     <a href="http://www.voice-system.ro" target="_blank">www.voice-system.ro</a> &lt;<a href="http://www.voice-system.ro" target="_blank">http://www.voice-system.ro</a>&gt;<br>
&gt;<br>
&gt;<br>
&gt;     _______________________________________________<br>
&gt;     Users mailing list<br>
&gt;     <a href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a> &lt;mailto:<a href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a>&gt;<br>
<div class="im">&gt;     <a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
&gt;<br>
&gt;<br>
</div>&gt; ------------------------------------------------------------------------<br>
<div class="im">&gt;<br>
&gt; _______________________________________________<br>
&gt; Users mailing list<br>
&gt; <a href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a><br>
&gt; <a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
&gt;<br>
<br>
<br>
</div><font color="#888888">--<br>
Bogdan-Andrei Iancu<br>
<a href="http://www.voice-system.ro" target="_blank">www.voice-system.ro</a><br>
</font><div><div></div><div class="h5"><br>
<br>
_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a><br>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
</div></div></blockquote></div><br>