[Serusers] NAT Problem No Voice

Greger V. Teigre greger at teigre.com
Mon Apr 11 08:07:29 CEST 2005


I quickly reviewed the config, but couldn't see any immediate issues, the 
ACKs should go through fine. Could you supply an ngrep trace of faulty call 
setup?
g-)

Kamran Ahmad wrote:
> hello
>
> its working now using RTPProxy.
>
> (PrivateIp)UA<------->SER<--------->UA(PrivateIP)
> (PublicIp)UA<------->SER<--------->UA(PrivateIP)
> (PublicIp)UA<------->SER<--------->UA(PublicIP)
>
> the only problem i am haveing in this setup. sometimes
> with accepting ACK.
>
> Actuallying some time call is disconnected on one UA
> but on other side UA is not disconnecting this call
>
> example
>
> UAC(publicIP)-------->SER---------->UAS(privateIP)
> UAC<-------RTPProxy------>UAS(display message
> "awaiting ack" after some time it is terminating call
> And displaying message "ACK TimeOut")
>
> and if it HangUp call from UAC(publicIP)
>
> UAC----->SendingBYE------>UAS (UAS is not
> disconnecting call and saying "waiting for ACK" and
> after sometimes display message "ACK Timeout")
>
> any comments
>
> ------------------------------------------------------
> debug=3
> fork=yes
> log_stderror=no
>
> #debug=7
> #fork=no
> #log_stderror=yes
>
> dns=no
> rev_dns=no
> fifo="/tmp/ser_fifo"
> #fifo_db_url="mysql://ser:heslo@localhost/ser"
>
> #loadmodule "/usr/local/lib/ser/modules/mysql.so"
> loadmodule "/usr/local/lib/ser/modules/sl.so"
> loadmodule "/usr/local/lib/ser/modules/tm.so"
> loadmodule "/usr/local/lib/ser/modules/rr.so"
> loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
> loadmodule "/usr/local/lib/ser/modules/usrloc.so"
> loadmodule "/usr/local/lib/ser/modules/registrar.so"
> #loadmodule "/usr/local/lib/ser/modules/auth.so"
> #loadmodule
> "/usr/local/lib/ser/modules/auth_radius.so"
> #loadmodule "/usr/local/lib/ser/modules/auth_db.so"
>
> loadmodule "/usr/local/lib/ser/modules/uri.so"
> #loadmodule "/usr/local/lib/ser/modules/domain.so"
> loadmodule "/usr/local/lib/ser/modules/nathelper.so"
> loadmodule "/usr/local/lib/ser/modules/textops.so"
> #loadmodule "/usr/local/lib/ser/modules/uri_db.so"
> #loadmodule "/usr/local/lib/ser/modules/uri_radius.so"
>
> #modparam("auth_db|usrloc|uri_db", "db_url",
> "mysql://ser:heslo@localhost/ser")
> #modparam("auth_db", "calculate_ha1", 1)
> #modparam("auth_db", "password_column", "password")
>
> modparam("nathelper", "natping_interval", 30)
> modparam("nathelper", "ping_nated_only", 1)
> modparam("nathelper", "rtpproxy_sock",
> "unix:/var/run/rtpproxy.sock")
> modparam("usrloc", "db_mode", 0)
> modparam("registrar", "nat_flag", 6)
> modparam("rr", "enable_full_lr", 1)
>
> route {
>
>     #
> -----------------------------------------------------------------
>     # Sanity Check Section
>     #
> -----------------------------------------------------------------
>
>     if (!mf_process_maxfwd_header("10")) {
>             sl_send_reply("483", "Too Many Hops");
>             break;
>     };
>
>     if (msg:len > max_len) {
>             sl_send_reply("513", "Message Overflow");
>             break;
>     };
>
>     #
> -----------------------------------------------------------------
>     # Record Route Section
>     #
> -----------------------------------------------------------------
>
>     if (method!="REGISTER") {
>             record_route();
>     };
>
>     if (method=="BYE" || method=="CANCEL") {
>             unforce_rtp_proxy();
>     }
>
>     #
> -----------------------------------------------------------------
>     # Loose Route Section
>     #
> -----------------------------------------------------------------
>
>     if (loose_route()) {
>
>           if (has_totag() && method=="INVITE") {
>                   if (nat_uac_test("19")) {
>                           setflag(6);
>                           force_rport();
>                           fix_nated_contact();
>                   };
>
>                   force_rtp_proxy("l");
>           };
>           route(1);
>           break;
>    };
>    #
> -----------------------------------------------------------------
>    # Call Type Processing Section
>    #
> -----------------------------------------------------------------
>    if (uri==myself) {
>           if (method=="INVITE") {
>                   route(3);
>                   break;
>           } else if (method=="REGISTER") {
>                   route(2);
>                   break;
>           };
>
>          if (!lookup("location")) {
>                   sl_send_reply("404", "User Not
> Found");
>                   break;
>           };
>          route(1);
>    };
> }
>
>
> route[1] {
>     #
> -----------------------------------------------------------------
>     # Default Message Handler
>     #
> -----------------------------------------------------------------
>     t_on_reply("1");
>     if (!t_relay()) {
>            if (method=="INVITE" && isflagset(6)) {
>                    unforce_rtp_proxy();
>            };
>            sl_reply_error();
>     };
> }
>
> route[2] {
>     #
> -----------------------------------------------------------------
>     # REGISTER Message Handler
>     #
> ----------------------------------------------------------------
>     if (!search("^Contact: \*") &&
> nat_uac_test("19")) {
>             setflag(6);
>             fix_nated_register();
> #               fix_nated_contact();
>             force_rport();
>     };
>     sl_send_reply("100", "Trying");
>
> #     if (!www_authorize("","subscriber")) {
> #             www_challenge("","0");
> #             break;
> #     };
>
> #     if (!check_to()) {
> #             sl_send_reply("401", "Unauthorized");
> #             break;
> #     };
>
> #     consume_credentials();
>
>     if (!save("location")) {
>             sl_reply_error();
>        };
> }
>
> route[3] {
>     #
> -----------------------------------------------------------------
>     # INVITE Message Handler
>     #
> -----------------------------------------------------------------
>     if (nat_uac_test("19")) {
>             setflag(6);
>     }
>     if (!lookup("location")) {
>             sl_send_reply("404", "User Not Found");
>             break;
>     };
> #     if (!proxy_authorize("","subscriber")) {
> #             proxy_challenge("","0");
> #             break;
> #     } else if (!check_from()) {
> #       if(!check_from()) {
> #             sl_send_reply("403", "Use From=ID");
> #             break;
> #     };
>
> #     consume_credentials();
>
>     if (isflagset(6)) {
>             force_rport();
>             fix_nated_contact();
>             force_rtp_proxy();
>     };
>
>        t_on_reply("1");
>
>     if (!t_relay()) {
>
>             if(isflagset(6)) {
>                    unforce_rtp_proxy();
>             }
>
>             sl_reply_error();
>     };
> }
>
> onreply_route[1] {
>     if (isflagset(6) &&
> status=~"(180)|(183)|2[0-9][0-9]") {
>             if (!search("^Content-Length:\ 0")) {
>                    force_rtp_proxy();
>             };
>     }
>        else if (nat_uac_test("1")) {
>             fix_nated_contact();
>     };
> }
>
>
>
>
> __________________________________
> Do you Yahoo!?
> Yahoo! Small Business - Try our new resources site!
> http://smallbusiness.yahoo.com/resources/ 




More information about the sr-users mailing list