hello
hello can any one tell me what could be the problem with my config. I am having problem in PublicIP to PrivateIP call through SER.
this is the case 1: PublicIP-------->SER(publicIP)-------->PrivateIP PublicIP------>RTPProxy----->PrivateIP(Here i am not getting ack and after 30 seconds my session is closed an my SJPhone on privateIP is saying ACK timeOUT)
2: UA(privateIP)--------->SER(publicIP)------>UA(privateIP)(both UA on behind same NAT) UA<-----------------RTPProxy-------------->UA(Here UAS is not getting ack and after 30 seconds session is closed an my SJPhone on privateIP is saying ACK timeOUT)
when ever there is Call to PrivateIP there is the problem. UAS on PrivateIP is waiting for Ack and after 30 sec session is droped. in this 30 seconds both UAC and UAS can listen.
PublicIP(UAC)------------>PrivateIP(UAS)(ACKProblem) PrivateIP(UAC)----------->PrivateIP(UAS)(ACKProblem) PublicIP(UAC)------------>PublicIP(UAS)working PrivateIP(UAS)----------->PublicIP(UAS)working
i am using RTPProxy. should i use MediaProxy or stun server.
ser.cfg debug=3 fork=yes log_stderror=no
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/xlog.so"
#radius configuration loadmodule "/usr/local/lib/ser/modules/auth.so" #loadmodule "/usr/local/lib/ser/modules/auth_radius.so" #loadmodule "/usr/local/lib/ser/modules/acc.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("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");
#radius config
#end of radius config
# 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)) {
# if (uri=~"^sip:9[0-9]*@.*") { # prefix, strip prefix & shunt our call to the local access PSTN gateway # strip(1); # xlog("L_DBG","prefix 9 detected... entering route 3"); # route(3); #PSTN gateway # break; # } force_rport(); # xlog("L_DBG","going for fixnated and forcertp %fu"); log("hello"); 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/
At the moment your reply route looks like this:
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(); }; }
Try putting an additional fix_nated_contact()in it. Like the following:
onreply_route[1] { if (isflagset(6) && status=~"(180)|(183)|2[0-9][0-9]") { fix_nated_contact(); if (!search("^Content-Length:\ 0")) { force_rtp_proxy(); }; } else if (nat_uac_test("1")) { fix_nated_contact(); }; }
BR, Vivienne
Kamran Ahmad p_kami@yahoo.com wrote: hello
hello can any one tell me what could be the problem with my config. I am having problem in PublicIP to PrivateIP call through SER.
this is the case 1: PublicIP-------->SER(publicIP)-------->PrivateIP PublicIP------>RTPProxy----->PrivateIP(Here i am not getting ack and after 30 seconds my session is closed an my SJPhone on privateIP is saying ACK timeOUT)
2: UA(privateIP)--------->SER(publicIP)------>UA(privateIP)(both UA on behind same NAT) UA<-----------------RTPProxy-------------->UA(Here UAS is not getting ack and after 30 seconds session is closed an my SJPhone on privateIP is saying ACK timeOUT)
when ever there is Call to PrivateIP there is the problem. UAS on PrivateIP is waiting for Ack and after 30 sec session is droped. in this 30 seconds both UAC and UAS can listen.
PublicIP(UAC)------------>PrivateIP(UAS)(ACKProblem) PrivateIP(UAC)----------->PrivateIP(UAS)(ACKProblem) PublicIP(UAC)------------>PublicIP(UAS)working PrivateIP(UAS)----------->PublicIP(UAS)working
i am using RTPProxy. should i use MediaProxy or stun server.
ser.cfg debug=3 fork=yes log_stderror=no
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/xlog.so"
#radius configuration loadmodule "/usr/local/lib/ser/modules/auth.so" #loadmodule "/usr/local/lib/ser/modules/auth_radius.so" #loadmodule "/usr/local/lib/ser/modules/acc.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("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");
#radius config
#end of radius config
# 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)) {
# if (uri=~"^sip:9[0-9]*@.*") { # prefix, strip prefix & shunt our call to the local access PSTN gateway # strip(1); # xlog("L_DBG","prefix 9 detected... entering route 3"); # route(3); #PSTN gateway # break; # } force_rport(); # xlog("L_DBG","going for fixnated and forcertp %fu"); log("hello"); 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/
_______________________________________________ Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Send instant messages to your online friends http://uk.messenger.yahoo.com