<div>Hi,</div>
<div> </div>
<div>I am using MediaProxy to help get over some one way audio issues, however it appears to be causing more problems than it is fixing.</div>
<div> </div>
<div>When I make a call between two registered phones there is no audio at all, but when I call a gateway audio passes correctly. </div>
<div> </div>
<div>Looking at the logs it indicates that it has RTP &amp; RTCP for one phone but only RTP for the other:</div>
<div> </div>
<div>-------------------------------------------------------------------------------------------------------------------------------------------------------------</div>
<div><em>media-relay[11366]: debug: Received new SDP offer<br>media-relay[11366]: mediaproxy.mediacontrol.StreamListenerProtocol starting on 50060<br>media-relay[11366]: mediaproxy.mediacontrol.StreamListenerProtocol starting on 50061<br>
media-relay[11366]: mediaproxy.mediacontrol.StreamListenerProtocol starting on 50062<br>media-relay[11366]: mediaproxy.mediacontrol.StreamListenerProtocol starting on 50063<br>media-relay[11366]: debug: Added new stream: (audio) <a href="http://192.168.2.200:5638">192.168.2.200:5638</a> (RTP: Unknown, RTCP: Unknown) &lt;-&gt; &lt;SERVER IP ADDRESS&gt;:50060 &lt;-&gt; &lt;SERVER IP ADDRESS&gt;:50062 &lt;-&gt; Unknown (RTP: Unknown, RTCP: Unknown)<br>
media-relay[11366]: debug: created new session NWZmMmMwMzAxNDM5YjdiYTAwMDYxYTViNTllMTczMWI.: </em><a href="mailto:10002*200@mydomain.com"><em>10002*200@mydomain.com</em></a><em> (b62884c7) --&gt; </em><a href="mailto:10001*200@mydomain.com"><em>10001*200@mydomain.com</em></a><br>
<em>media-relay[11366]: debug: Got traffic information for stream: (audio) <a href="http://192.168.2.200:5638">192.168.2.200:5638</a> (RTP: Unknown, RTCP: Unknown) &lt;-&gt; &lt;SERVER IP ADDRESS&gt;:50060 &lt;-&gt; &lt;SERVER IP ADDRESS&gt;:50062 &lt;-&gt; Unknown (RTP: &lt;Clients Router IP&gt;:57096, RTCP: Unknown)<br>
media-dispatcher[11369]: debug: Issuing &quot;update&quot; command to relay at &lt;SERVER IP ADDRESS&gt;<br>media-relay[11366]: debug: updating existing session NWZmMmMwMzAxNDM5YjdiYTAwMDYxYTViNTllMTczMWI.: </em><a href="mailto:10002*200@mydomain.com"><em>10002*200@mydomain.com</em></a><em> (b62884c7) --&gt; </em><a href="mailto:10001*200@mydomain.com"><em>10001*200@mydomain.com</em></a><br>
<em>media-relay[11366]: debug: Received updated SDP answer<br>media-relay[11366]: debug: Got initial answer from callee for stream: (audio) <a href="http://192.168.2.200:5638">192.168.2.200:5638</a> (RTP: Unknown, RTCP: Unknown) &lt;-&gt; &lt;SERVER IP ADDRESS&gt;:50060 &lt;-&gt; &lt;SERVER IP ADDRESS&gt;:50062 &lt;-&gt; <a href="http://192.168.2.10:40022">192.168.2.10:40022</a> (RTP: &lt;Clients Router IP&gt;:57096, RTCP: Unknown)<br>
media-relay[11366]: debug: Got traffic information for stream: (audio) <a href="http://192.168.2.200:5638">192.168.2.200:5638</a> (RTP: Unknown, RTCP: &lt;Clients Router IP&gt;:55671) &lt;-&gt; &lt;SERVER IP ADDRESS&gt;:50060 &lt;-&gt; &lt;SERVER IP ADDRESS&gt;:50062 &lt;-&gt; <a href="http://192.168.2.10:40022">192.168.2.10:40022</a> (RTP: &lt;Clients Router IP&gt;:57096, RTCP: Unknown)<br>
media-relay[11366]: debug: Got traffic information for stream: (audio) <a href="http://192.168.2.200:5638">192.168.2.200:5638</a> (RTP: &lt;Clients Router IP&gt;:55670, RTCP: &lt;Clients Router IP&gt;:55671) &lt;-&gt; &lt;SERVER IP ADDRESS&gt;:50060 &lt;-&gt; &lt;SERVER IP ADDRESS&gt;:50062 &lt;-&gt; <a href="http://192.168.2.10:40022">192.168.2.10:40022</a> (RTP: &lt;Clients Router IP&gt;:57096, RTCP: Unknown)<br>
media-dispatcher[11369]: debug: Issuing &quot;remove&quot; command to relay at &lt;SERVER IP ADDRESS&gt;<br>media-relay[11366]: debug: removing session NWZmMmMwMzAxNDM5YjdiYTAwMDYxYTViNTllMTczMWI.: </em><a href="mailto:10002*200@mydomain.com"><em>10002*200@mydomain.com</em></a><em> (b62884c7) --&gt; </em><a href="mailto:10001*200@mydomain.com"><em>10001*200@mydomain.com</em></a><br>
<em>media-relay[11366]: (Port 50060 Closed)<br>media-relay[11366]: (Port 50061 Closed)<br>media-relay[11366]: (Port 50062 Closed)<br>media-relay[11366]: (Port 50063 Closed)<br>media-dispatcher[11369]: debug: Got statistics: {&#39;from_tag&#39;: &#39;b62884c7&#39;, &#39;dialog_id&#39;: &#39;841:447573368&#39;, &#39;start_time&#39;: 1256818436.3299999, &#39;timed_out&#39;: False, &#39;call_id&#39;: &#39;NWZmMmMwMzAxNDM5YjdiYTAwMDYxYTViNTllMTczMWI.&#39;, &#39;to_tag&#39;: &#39;7t0mkzlie0&#39;, &#39;streams&#39;: [{&#39;status&#39;: &#39;closed&#39;, &#39;caller_codec&#39;: &#39;G711u&#39;, &#39;post_dial_delay&#39;: 1.252835989, &#39;callee_codec&#39;: &#39;1016&#39;, &#39;start_time&#39;: 0, &#39;caller_bytes&#39;: 82000, &#39;callee_bytes&#39;: 83600, &#39;caller_packets&#39;: 410, &#39;end_time&#39;: 8, &#39;callee_remote&#39;: &#39;&lt;Clients Router IP&gt;:57096&#39;, &#39;caller_remote&#39;: &#39;&lt;Clients Router IP&gt;:55670&#39;, &#39;media_type&#39;: &#39;audio&#39;, &#39;callee_local&#39;: &#39;&lt;SERVER IP ADDRESS&gt;:50062&#39;, &#39;timeout_wait&#39;: 0, &#39;caller_local&#39;: &#39;&lt;SERVER IP ADDRESS&gt;:50060&#39;, &#39;callee_packets&#39;: 418}], &#39;duration&#39;: 8, &#39;to_uri&#39;: </em><a href="mailto:&#39;10001*200@mydomain.com&#39;"><em>&#39;10001*200@mydomain.com&#39;</em></a><em>, &#39;from_uri&#39;: </em><a href="mailto:&#39;10002*200@mydomain.com&#39;"><em>&#39;10002*200@mydomain.com&#39;</em></a><em>, &#39;callee_ua&#39;: &#39;snom370/7.3.26&#39;, &#39;caller_ua&#39;: &#39;X-Lite Beta release 4.0 Beta 2 stamp 55091&#39;}</em></div>

<div>-------------------------------------------------------------------------------------------------------------------------------------------------------------</div>
<div> </div>
<div>I am using the following OpenSIP&#39;s config:</div>
<div> </div>
<div> <span lang="EN-GB"> 
<p># main routing logic</p>
<p>route{</p>
<p># initial sanity checks -- messages with</p>
<p># max_forwards==0, or excessively long requests</p>
<p>if (!mf_process_maxfwd_header(&quot;10&quot;)) {</p>
<p>sl_send_reply(&quot;483&quot;,&quot;Too Many Hops&quot;);</p>
<p>exit;</p>
<p>};</p>
<p>if (msg:len &gt;= 2048 ) {</p>
<p>sl_send_reply(&quot;513&quot;, &quot;Message too big&quot;);</p>
<p>exit;</p>
<p>};</p>
<p># !! Nathelper</p>
<p># Special handling for NATed clients; first, NAT test is</p>
<p># executed: it looks for via!=received and RFC1918 addresses</p>
<p># in Contact (may fail if line-folding is used); also,</p>
<p># the received test should, if completed, should check all</p>
<p># vias for rpesence of received</p>
<p>if (nat_uac_test(&quot;31&quot;)) </p>
<p>{</p>
<p># Allow RR-ed requests, as these may indicate that</p>
<p># a NAT-enabled proxy takes care of it; unless it is</p>
<p># a REGISTER</p>
<p>xlog(&quot;Behind a NAT\n&quot;);</p>
<p>if (is_method(&quot;REGISTER&quot;))</p>
<p>{</p>
<p>fix_nated_register();</p>
<p>}</p>
<p>fix_nated_contact();</p>
<p></p>
<p>force_rport(); # Add rport parameter to topmost Via</p>
<p>#setbflag(6); # Mark as NATed</p>
<p>};</p>
<p></p>
<p># we record-route all messages -- to make sure that</p>
<p># subsequent messages will go through our proxy; that&#39;s</p>
<p># particularly good if upstream and downstream entities</p>
<p># use different transport protocol</p>
<p>if (!is_method(&quot;REGISTER&quot;))</p>
<p>record_route();</p>
<p>if(is_method(&quot;INVITE&quot;))</p>
<p>{</p>
<p>fix_nated_sdp(&quot;1&quot;);</p>
<p>create_dialog();</p>
<p>fix_nated_sdp(&quot;8&quot;);</p>
<p>engage_media_proxy();</p>
<p>}</p>
<p></p>
<p># subsequent messages withing a dialog should take the</p>
<p># path determined by record-routing</p>
<p>if (loose_route()) {</p>
<p># mark routing logic in request</p>
<p>append_hf(&quot;P-hint: rr-enforced\r\n&quot;); </p>
<p>route(1);</p>
<p>exit;</p>
<p>};</p>
<p> </p>
<p>if (!uri==myself) {</p>
<p># mark routing logic in request</p>
<p>append_hf(&quot;P-hint: outbound\r\n&quot;); </p>
<p>route(1);</p>
<p>exit;</p>
<p>};</p>
<p># if the request is for other domain use UsrLoc</p>
<p># (in case, it does not work, use the following command</p>
<p># with proper names and addresses in it)</p>
<p>if (uri==myself) </p>
<p>{</p>
<p>if (is_method(&quot;REGISTER&quot;)) </p>
<p>{</p>
<p># Uncomment this if you want to use digest authentication</p>
<p>#if (!www_authorize(&quot;<a href="http://siphub.org">siphub.org</a>&quot;, &quot;subscriber&quot;)) {</p>
<p># www_challenge(&quot;<a href="http://siphub.org">siphub.org</a>&quot;, &quot;0&quot;);</p>
<p># return;</p>
<p>#};</p>
<p>save(&quot;location&quot;);</p>
<p>exit;</p>
<p>};</p>
<p> </p>
<p># native SIP destinations are handled using our USRLOC DB</p>
<p>if (!lookup(&quot;location&quot;)) </p>
<p>{</p>
<p># Local Device Not Found Send To Gateway</p>
<p>rewritehostport(&quot;&lt;gateway&gt;:5065&quot;);</p>
<p>}</p>
<p>};</p>
<p>append_hf(&quot;P-hint: usrloc applied\r\n&quot;); </p>
<p>route(1);</p>
<p>}</p>
<p>route[1] </p>
<p>{</p>
<p># !! Nathelper</p>
<p># if (uri=~&quot;[@:](192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)&quot; &amp;&amp; !search(&quot;^Route:&quot;))</p>
<p># {</p>
<p># sl_send_reply(&quot;479&quot;, &quot;We don&#39;t forward to private IP addresses&quot;);</p>
<p># exit;</p>
<p># };</p>
<p># NAT processing of replies; apply to all transactions (for example,</p>
<p># re-INVITEs from public to private UA are hard to identify as</p>
<p># NATed at the moment of request processing); look at replies</p>
<p>t_on_reply(&quot;1&quot;);</p>
<p># send it out now; use stateful forwarding as it works reliably</p>
<p># even for UDP2TCP</p>
<p>if (!t_relay()) {</p>
<p>sl_reply_error();</p>
<p>};</p>
<p>}</p>
<p># !! Nathelper</p>
<p>onreply_route[1] </p>
<p>{</p>
<p>if (nat_uac_test(&quot;31&quot;))</p>
<p>{</p>
<p># Allow RR-ed requests, as these may indicate that</p>
<p># a NAT-enabled proxy takes care of it; unless it is</p>
<p># a REGISTER</p>
<p>xlog(&quot;Reply Behind a NAT&quot;);</p>
<p>fix_nated_contact();</p>
<p></p>
<p>force_rport(); # Add rport parameter to topmost Via</p>
<p>#setbflag(6); # Mark as NATed</p>
<p>};</p>
<p>}</p></span></div>
<div> </div>