Hi Ricky,
I think you should  increase the mediaproxy natping interval to 30 and then
add use_media_proxy() line after you setflag(6). check below:---

##Detect requests in the dialog behind NAT and flag with 6
if(nat_uac_test("19") || search("^Route:.*;nat=yes")){
append_hf("P-hint: LR|fixcontact,setflag6\r\n");
fix_contact();
setbflag(6);
*USE MEDIA PROXY HERE---> use_media_proxy();
*};
route(1);
} else {
sl_send_reply("404", "Not here");
}
exit;
}

On Fri, Oct 31, 2008 at 5:21 AM, Ricky Gutierrez <[EMAIL PROTECTED]>wrote:

>
> I show you here my openser.cfg
>
> my best regards
>
> rickygm
>
> loadmodule "nathelper.so"
> loadmodule "mediaproxy.so"
>
>
> modparam("registrar", "received_avp", "$avp(i:42)")
> modparam("usrloc", "db_mode",   2)
> modparam("usrloc", "nat_bflag", 4)
>
> modparam("nathelper","rtpproxy_sock", "")
>
> modparam("nathelper","natping_interval", 0)
> modparam("nathelper","received_avp", "$avp(i:42)")
> modparam("mediaproxy","natping_interval",20)
> modparam("mediaproxy","mediaproxy_socket", "/var/run/mediaproxy.sock")
> modparam("mediaproxy", "mediaproxy_socket", "/var/run/proxydispatcher.sock")
>
> modparam("mediaproxy","sip_asymmetrics","/etc/openser/sip-clients")
> modparam("mediaproxy","rtp_asymmetrics","/ect/openser/rtp-clients")
>
>
> route{
> # initial sanity checks -- messages with
> # max_forwards==0, or excessively long requests
>               if (!mf_process_maxfwd_header("10")) {
>               sl_send_reply("483","Too Many Hops");
>                       exit;
>                               };
>               if (msg:len >= 2048 ) {
>               sl_send_reply("513", "Message too big");
>                       exit;
>                       };
> # we record-route all messages -- to make sure that
> # subsequent messages will go through our proxy; that's
> # particularly good if upstream and downstream entities
> # use different transport protocol
>               if (!is_method("REGISTER")) {
>               if(nat_uac_test("19")){
>                       record_route(";nat=yes");
>                        } else {
>                           record_route();
>                       };
>           };
>
>               if (has_totag()) {
> # subsequent messages withing a dialog should take the
> # path determined by
>  record-routing
>               if (loose_route()) {
>                       if(method=="BYE") {
>                           #Account BYE transactions
>                           setflag(2);
>               };
>               if (method=="INVITE" && (!allow_trusted())) {
>                       if (!proxy_authorize("","subscriber")) {
>                       proxy_challenge("","0");
>                               exit;
>                       } else if (!check_from()) {
>                               sl_send_reply("403", "Forbidden, use From=ID");
>                               exit;
>
>                               };
>
>                       };
>                               if(method=="BYE" || method=="CANCEL") {
>                           end_media_session();
>                               };
>
>       ##Detect requests in the dialog behind NAT and flag with 6
>                           if(nat_uac_test("19") || 
> search("^Route:.*;nat=yes")){
>                       append_hf("P-hint: LR|fixcontact,setflag6\r\n");
>                               fix_contact();
>                                       setbflag(6);
>                   };
>                               route(1);
>                               } else {
>                                sl_send_reply("404", "Not here");
>                       }
>                               exit;
>                       }
>       
>               ##Loose_route packets
>                   if
>  (loose_route()) {
>                               if(!has_totag()){
>                   sl_send_reply("403", "Initial Loose-Routing Rejected");
>                   exit;
>               };
>       
>
>         route(1);
>     };
>
>
>               #CANCEL processing
>               if (is_method("CANCEL")) {
>               if (t_check_trans()) {
>               end_media_session();
>               t_relay();
>               };
>               exit;
>               }
>                       t_check_trans();
>
> if (method=="REGISTER"){
>                       route(2);
>                       } else {
>                               route(3);
>                               };
>                       }
>
>               route[1] {
> # send it out now; use stateful forwarding as it works reliably
> # even for UDP2TCP
>                       t_on_reply("1");
>                       t_on_failure("1");
>                       if (!t_relay()) {
> ;                     if (method=="INVITE" || method=="ACK") {
> ;                      end_media_session();
> ;             };
>               
>
> #                     sl_reply_error();
>                               };
>                               exit;
>                               }
>       route[2] {
> #
> # -- Register request handler --
> #
>       if (is_uri_host_local()) {
>       if (!www_authorize("", "subscriber")) {
>
>       www_challenge("", "0");
>       exit;
>       };
>       if (!check_to()) {
>               sl_send_reply("403", "Forbidden");
>               exit;
>       };
>        sl_send_reply("100", "Trying");
>        if(!search("^Contact:[ ]*\*") && client_nat_test("7")) {
>             setbflag(6);
>             fix_nated_register();
>             force_rport();
>         };
>
>               save("location");
>                       exit;
>       } else if {
>               sl_send_reply("403", "Forbidden");
>               };
>       }
>
>       route[3] {
> #
> # -- INVITE request handler --
> #
>               if (method=="INVITE") {
>       # Account INVITE packets
>                setflag(2);
>                 # Account Missed calls
>         setflag(3);
> };
>               if (is_from_local()){
> # From an internal domain -> check the credentials and the FROM
>               if(!allow_trusted()){
>               if (!proxy_authorize("","subscriber")) {
>               proxy_challenge("","0");
>               exit;
>                       } else if (!check_from()) {
>                       sl_send_reply("403", "Forbidden, use From=ID");
>               exit;
>
>       };
>
> };
>           if (client_nat_test("3")) {
>             append_hf("P-hint: route(3)|setflag7,forcerport,fix_contact\r\n");
>             setbflag(7);
>             force_rport();
>             fix_contact();
>         };
>                       
>               if(avp_db_load("$ru/username","$avp(s:callfwd)")) {
>               avp_pushto("$ru", "$avp(s:callfwd)");
>               route(4);
>               route(1);
>               
>                       exit;
>                               }
>
> consume_credentials();
>
>               # Verify aliases
>                       lookup("aliases");
>               if (is_uri_host_local()) {
>       # -- Inbound to Inbound
>
>               route(10);
>                       } else {
> # -- Inbound to outbound
>               route(11);
>               };
>
>       } else {
> # From an external domain -> do not check credentials
> #Verify aliases, if found replace R-URI.
>                       lookup("aliases");
>                               if (is_uri_host_local()) {
>               #-- Outbound to inbound
>                       route(12);
>                               } else {
>       # -- Outbound to outbound
>                               route(13);
>                                       };
>                               };
>                       }
>       route[6] {
>
>  #
>     # -- NAT handling --
>     #
>     if (isbflagset(6) || isbflagset(7)) {
>         append_hf("P-hint: Route[6]: mediaproxy \r\n");
>         use_media_proxy();
>     };
> }
>
>               route[10] {
>               #from an internal domain -> inbound
>       #Native SIP destinations are handled using the location table
>       append_hf("P-hint: inbound->inbound \r\n");
>       if (uri=~"^sip:[EMAIL PROTECTED]") {
>       if (is_user_in("credentials", "local")){        
> #     rewritehostport("192.168.10.1:5070");
>       route(6);
>       route(4);
>       exit;
>       } else {
>               sl_send_reply("403", "No tienes permiso para llamadas locales");
>               exit;
>                       };
>                               };
>
> if (!lookup("location")) {
>               if (does_uri_exist()) {
>               revert_uri();
>               prefix("u");
>               rewritehostport("192.168.10.1:5070");
>               route(6);
>               route(1);
>               } else {
>               sl_send_reply("404", "Not Found");
>       exit;
>       };
>               sl_send_reply("404", "Not Found");
>               exit;
>               };      
>
>       
>               route(6);       
>               route(1);
>       }
>
>       route[11] {
> # from an internal domain -> outbound
> # Simply route the call outbound using DNS search
>       append_hf("P-hint: inbound->outbound \r\n");
>       route(1);
>       }
>       route[12] {
> # From an external domain -> inbound
> # Verify aliases, if found replace R-URI.
>       lookup("aliases");
>       if (!lookup("location")) {
>       sl_send_reply("404", "Not Found");
>       exit;
>       };
>       route(1);
>       }
>       route[13] {
> #From an external domain outbound
> #we are not accepting these calls
>       append_hf("P-hint: outbound->inbound \r\n");
>       sl_send_reply("403", "Forbidden");
>       exit;
>       }
>
>       
>       route[4] {
>       rewritehostport("192.168.10.1:5070");
>       route(1);
>
> }
>
> ### aqui se detecta cunado una llamada es no disponible , ocupada o falla
> failure_route[1] {
>       if (t_was_cancelled()) {
>       exit;
> };
>
>       if (t_check_status("486")) {
>       revert_uri();
>
>       prefix("b");
>       xlog("L_ERR","Stepped into the 486 ruri=<$ru>");
>       rewritehostport("192.168.10.1:5070");
>       append_branch();
>       route(1);
>       exit;
> };
>       if (t_check_status("408") || t_check_status("480")) {
>       revert_uri();
>       prefix("u");
>       xlog("L_ERR","Stepped into the 480 ruri=<$ru>");
>       rewritehostport("192.168.10.1:5070");
>       append_branch();
>       route(1);
>       exit;
> };
> }
> onreply_route[1] {
>       #
>       #-- On-replay block routing --
>       #
>       if (client_nat_test("1")) {
>           append_hf("P-hint: Onreply-route - fixcontact \r\n");
>           fix_nated_contact();
>       };
>
>       if ((isbflagset(6) || isbflagset(7)) && 
> (status=~"(180)|(183)|2[0-9][0-9]")) {
>           if (search("^Content-Type:[ ]*application/sdp")) {
>              append_hf("P-hint: onreply_route|usemediaproxy \r\n");
>              use_media_proxy();
>            };
>        };
>
>  exit;
> }
>
>
>
>
>
>
>


-- 
Luzango Mfupe
TUUNE MOBILE
Tel:0128440528/0123825710
Tshwane-RSA

"...Ships are safe in harbor, but they were never meant to stay
there......."
_______________________________________________
Users mailing list
[email protected]
http://lists.kamailio.org/cgi-bin/mailman/listinfo/users

Reply via email to