<div style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial"><div>Hi, Bogdan:<br><br>I will try ngrep and tcpdump.<br><br>But I am quite sure it is mediaproxy problem, since I can print out all<br>the debug message by linphonec.<br><br>If I enable mediaproxy, the linphone doesn't print any thing since it doesn't get message from opensips.<br>Once I kill mediaproxy, the linphone gets and prints out all the communication which is correct.<br><br>George Wu <br><br></div><br><br><br><br><br><br><div></div><div id="divNeteaseMailCard"></div><br>At 2014-10-15 20:46:02, "Bogdan-Andrei Iancu" &lt;bogdan@opensips.org&gt; wrote:<br> <blockquote id="isReplyContent" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
  
    
  
  
    <div class="moz-cite-prefix"><tt>Hi George,<br>
        <br>
        Not sure if a media relay process has anything to do with the
        ability to send traffic to an UAC - do you actually see with
        ngrep/tcpdump the request (on the network level) sent by
        opensips to the UAC ?<br>
        <br>
        Regards,<br>
      </tt>
      <pre class="moz-signature" cols="72">Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
<a class="moz-txt-link-freetext" href="http://www.opensips-solutions.com">http://www.opensips-solutions.com</a></pre>
      On 15.10.2014 15:06, george wu wrote:<br>
    </div>
    <blockquote cite="mid:46185c1e.103bc.14913b36612.Coremail.aihuawu2012@163.com" type="cite">
      <div style="line-height:1.7;color:#000000;font-size:14px;font-family:Arial">
        <div>Hi, Bogdan:<br>
          <br>
          I think I have found the problem.<br>
          I am using mediaproxy. If I kill that proxy.<br>
          suddenly the uac can get the message.<br>
          So it is quite obvious that my mediaproxy setting is not
          correct.<br>
          Just I don't know how to fix it. I modify it from my old
          rtpproxy setting.<br>
          <br>
          <br>
          George<br>
        </div>
        <br>
        <div>/////////////////////<br>
          <br>
          <br>
          ####&nbsp; NAT modules<br>
          loadmodule "nathelper.so"<br>
          modparam("nathelper", "natping_interval", 10)<br>
          modparam("nathelper", "ping_nated_only", 1)<br>
          modparam("nathelper", "received_avp", "$avp(received_nh)")<br>
          <br>
          #loadmodule "rtpproxy.so"<br>
          #modparam("rtpproxy", "rtpproxy_sock", "udp:localhost:12221")
          # CUSTOMIZE ME<br>
          <br>
          loadmodule "mediaproxy.so"<br>
          modparam("mediaproxy", "mediaproxy_socket",
          "/var/run/mediaproxy/dispatcher.sock")<br>
          modparam("mediaproxy", "ice_candidate", "low-priority")<br>
          <br>
          <br>
          <br>
        </div>
        <br>
        ####### Routing Logic ########<br>
        <br>
        # main request routing logic<br>
        <br>
        route{<br>
        &nbsp;&nbsp;&nbsp; force_rport();<br>
        &nbsp;&nbsp;&nbsp; if (nat_uac_test("23")) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (is_method("REGISTER")) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; fix_nated_register();<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; setbflag(NAT);<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; fix_nated_contact();<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; setflag(NAT);<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp;&nbsp; <br>
        <br>
        &nbsp;&nbsp;&nbsp; if (!mf_process_maxfwd_header("10")) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply("483","Too Many Hops");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; }<br>
        <br>
        &nbsp;&nbsp;&nbsp; if (has_totag()) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # sequential request withing a dialog should<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # take the path determined by record-routing<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (loose_route()) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (is_method("BYE")) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; setflag(ACC_DO); # do accounting ...<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; setflag(ACC_FAILED); # ... even if the
        transaction fails<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else if (is_method("INVITE")) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # even if in most of the cases is useless, do RR
        for<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # re-INVITEs alos, as some buggy clients do
        change route set<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # during the dialog.<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; record_route();<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        <br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (check_route_param("nat=yes")) <br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; setflag(NAT);<br>
        <br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # route it out to whatever destination was set by
        loose_route()<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # in $du (destination URI).<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; route(relay);<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( is_method("ACK") ) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( t_check_trans() ) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # non loose-route, but stateful ACK; must be
        an ACK after <br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # a 487 or e.g. 404 from upstream server<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; t_relay();<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # ACK without matching transaction -&gt;<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # ignore and discard<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply("404","Not here");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; }<br>
        <br>
        &nbsp;&nbsp;&nbsp; # CANCEL processing<br>
        &nbsp;&nbsp;&nbsp; if (is_method("CANCEL"))<br>
        &nbsp;&nbsp;&nbsp; {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (t_check_trans())<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; t_relay();<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; }<br>
        <br>
        &nbsp;&nbsp;&nbsp; t_check_trans();<br>
        <br>
        &nbsp;&nbsp;&nbsp; if ( !(is_method("REGISTER")&nbsp; ) ) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (from_uri==myself)<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # if caller is not local, then called number must be
        local<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (!uri==myself) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; send_reply("403","Rely forbidden");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        <br>
        &nbsp;&nbsp;&nbsp; }<br>
        <br>
        &nbsp;&nbsp;&nbsp; # preloaded route checking<br>
        &nbsp;&nbsp;&nbsp; if (loose_route()) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; xlog("L_ERR",<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; "Attempt to route with preloaded Route's
        [$fu/$tu/$ru/$ci]");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (!is_method("ACK"))<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply("403","Preload Route denied");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; }<br>
        <br>
        &nbsp;&nbsp;&nbsp; # record routing<br>
        &nbsp;&nbsp;&nbsp; if (!is_method("REGISTER|MESSAGE"))<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; record_route();<br>
        <br>
        &nbsp;&nbsp;&nbsp; # account only INVITEs<br>
        &nbsp;&nbsp;&nbsp; if (is_method("INVITE")) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; setflag(ACC_DO); # do accounting<br>
        &nbsp;&nbsp;&nbsp; }<br>
        <br>
        &nbsp;&nbsp;&nbsp; <br>
        &nbsp;&nbsp;&nbsp; if (!uri==myself) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; append_hf("P-hint: outbound\r\n"); <br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # if you have some interdomain connections via TLS<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ## CUSTOMIZE IF NEEDED<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ##if ($rd=="tls_domain1.net"<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ## || $rd=="tls_domain2.net"<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ##) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ##&nbsp;&nbsp;&nbsp; force_send_socket(tls:127.0.0.1:5061); # CUSTOMIZE<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ##}<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; route(relay);<br>
        &nbsp;&nbsp;&nbsp; }<br>
        <br>
        &nbsp;&nbsp;&nbsp; # requests for my domain<br>
        &nbsp;&nbsp;&nbsp; <br>
        &nbsp;&nbsp;&nbsp; if (is_method("PUBLISH|SUBSCRIBE"))<br>
        &nbsp;&nbsp;&nbsp; {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply("503", "Service Unavailable");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; }<br>
        <br>
        &nbsp;&nbsp;&nbsp; if (is_method("REGISTER"))<br>
        &nbsp;&nbsp;&nbsp; {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>
        <br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ( proto==TCP || proto==TLS || 0 )
        setflag(TCP_PERSISTENT);<br>
        <br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (!save("location"))<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_reply_error();<br>
        <br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; }<br>
        <br>
        &nbsp;&nbsp;&nbsp; if ($rU==NULL) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # request with no Username in RURI<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sl_send_reply("484","Address Incomplete");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; }<br>
        <br>
        &nbsp;&nbsp;&nbsp; <br>
        <br>
        &nbsp;&nbsp;&nbsp; <br>
        <br>
        &nbsp;&nbsp;&nbsp; &nbsp;<br>
        <br>
        &nbsp;&nbsp;&nbsp; # do lookup with method filtering<br>
        &nbsp;&nbsp;&nbsp; if (!lookup("location","m")) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; t_newtran();<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; t_reply("404", "Not Found");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; } <br>
        <br>
        &nbsp;&nbsp;&nbsp; if (isbflagset(NAT)) setflag(NAT);<br>
        <br>
        &nbsp;&nbsp;&nbsp; # when routing via usrloc, log the missed calls also<br>
        &nbsp;&nbsp;&nbsp; setflag(ACC_MISSED);<br>
        &nbsp;&nbsp;&nbsp; route(relay);<br>
        }<br>
        <br>
        <br>
        route[relay] {<br>
        &nbsp;&nbsp;&nbsp; # for INVITEs enable some additional helper routes<br>
        &nbsp;&nbsp;&nbsp; if (is_method("INVITE")) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (isflagset(NAT)) {<br>
        #&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rtpproxy_offer("ro");<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; use_media_proxy();<br>
        <br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        <br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; t_on_branch("per_branch_ops");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; t_on_reply("handle_nat");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; t_on_failure("missed_call");<br>
        &nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (is_method("BYE")) {<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (isflagset(NAT)) {<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end_media_session();<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
        <br>
        <br>
        &nbsp;&nbsp;&nbsp; if (isflagset(NAT)) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; add_rr_param(";nat=yes");<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
        <br>
        &nbsp;&nbsp;&nbsp; if (!t_relay()) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; send_reply("500","Internal Error");<br>
        &nbsp;&nbsp;&nbsp; };<br>
        &nbsp;&nbsp;&nbsp; exit;<br>
        }<br>
        <br>
        <br>
        <br>
        <br>
        branch_route[per_branch_ops] {<br>
        &nbsp;&nbsp;&nbsp; xlog("new branch at $ru\n");<br>
        }<br>
        <br>
        <br>
        onreply_route[handle_nat] {<br>
        &nbsp;&nbsp;&nbsp; if (nat_uac_test("1"))<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; fix_nated_contact();<br>
        #&nbsp;&nbsp;&nbsp; if ( isflagset(NAT) )<br>
        #&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rtpproxy_answer("ro");<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (is_method("INVITE")) {<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (isflagset(NAT)) {<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; use_media_proxy();<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (is_method("BYE")) {<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (isflagset(NAT)) {<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end_media_session();<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
        <br>
        &nbsp;&nbsp;&nbsp; xlog("incoming reply\n");<br>
        }<br>
        <br>
        <br>
        failure_route[missed_call] {<br>
        &nbsp;&nbsp;&nbsp; if (t_was_cancelled()) {<br>
        &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; }<br>
        <br>
        &nbsp;&nbsp;&nbsp; # uncomment the following lines if you want to block client
        <br>
        &nbsp;&nbsp;&nbsp; # redirect based on 3xx replies.<br>
        &nbsp;&nbsp;&nbsp; ##if (t_check_status("3[0-9][0-9]")) {<br>
        &nbsp;&nbsp;&nbsp; ##t_reply("404","Not found");<br>
        &nbsp;&nbsp;&nbsp; ##&nbsp;&nbsp;&nbsp; exit;<br>
        &nbsp;&nbsp;&nbsp; ##}<br>
        <br>
        &nbsp;&nbsp;&nbsp; <br>
        }<br>
        <br>
        <br>
  

</div></blockquote><br></blockquote></div><br><br><span title="neteasefooter"><span id="netease_mail_footer"></span></span>