Hi Bogdan,<br>
Goodmorning,<br>
Please forgive in My english,..........<br>
<br>
I install the openser server ( with public ip as xx.xxx.xxx.xxx.
) and the System ip ( private ip openser) is <a href="http://192.168.2.2">192.168.2.2</a> which is
located In some other place for UAs. And SIP_Domain as xx.xxx.xxx.xxx.<br>
<br>
I installed the X-lite 3.0 and testing with that only...<br>
<br>
Missed calls and Ignore calls are working fine........Here ACK is working,<br>
<br>
When the softphone Rings , and lefted up , after 32 seconds the
callee is hunging ups and Caller is still in establishing the
call ( not hung up) <br>
Problem in , After the Invite request send , then it will to send ACk to callee , to maintain the session alive ,<br>
<br>
For example :- UA1 ( caller) -------------------> UA2 (callee
) ::::::::::::::-----------> Both are
in OutSide the NAT , in other network )<br>
<span style="color: rgb(51, 102, 255);">Here Callee is Hungs up the calls automaticall,<br>
<br>
<span style="color: rgb(255, 0, 0);">IS the Problem in Router logic or in Router (Switches ) where is openser located , or where X-lite is there.<br>
Router ( switches) is stoppning the ACK , <br>
<br>
Bogdan, Help in this ,, here is my openser.cfg......<br>
<br>
<br>
<br>
<span style="color: rgb(153, 51, 0);">************************************************************************************* <br>
route{
<br>
<br>
# -----------------------------------------------------------------
<br>
# Sanity Check Section
<br>
# -----------------------------------------------------------------
<br>
if (!mf_process_maxfwd_header("10")) {
<br>
sl_send_reply("483","Too Many Hops");
<br>
exit;
<br>
};
<br>
if (msg:len >= 2048 ) {
<br>
sl_send_reply("513", "Message too big");
<br>
exit;
<br>
};
<br>
<br>
# -----------------------------------------------------------------
<br>
# NAT detection
<br>
# -----------------------------------------------------------------
<br>
route(2);
<br>
<br>
<br>
# -----------------------------------------------------------------
<br>
# Record Route Section
<br>
# -----------------------------------------------------------------
<br>
if (!method=="REGISTER")
<br>
record_route();
<br>
<br>
# -----------------------------------------------------------------
<br>
# Loose Route Section
<br>
# -----------------------------------------------------------------
<br>
if (loose_route()) {
<br>
<br>
append_hf("P-hint: rr-enforced\r\n");
<br>
if ((method=="INVITE" || method=="REFER") && !has_totag()) {
<br>
sl_send_reply("403", "Forbidden");
<br>
return;
<br>
};
<br>
<br>
if (method=="INVITE") {
<br>
<br>
if (!proxy_authorize("xx.xxx.xxx.xxx","subscriber")) {
<br>
proxy_challenge("xx.xxx.xxx.xxx","0");
<br>
return;
<br>
} else if (!check_from()) {
<br>
sl_send_reply("403", "Use From=ID");
<br>
return;
<br>
};
<br>
consume_credentials();
<br>
};
<br>
route(1);
<br>
};
<br>
<br>
<br>
# -----------------------------------------------------------------
<br>
# Call Type Processing Section
<br>
# -----------------------------------------------------------------
<br>
if (!is_uri_host_local()) {
<br>
if (is_from_local() || allow_trusted()) {
<br>
route(4);
<br>
route(1);
<br>
} else {
<br>
sl_send_reply("403", "Forbidden");
<br>
};
<br>
};
<br>
<br>
if (method=="ACK") {
<br>
route(1);
<br>
return;
<br>
} else if (method=="CANCEL") {
<br>
route(1);
<br>
return;
<br>
} else if (method=="INVITE") {
<br>
route(5);
<br>
return;
<br>
} else if (method=="REGISTER") {
<br>
route(4);
<br>
return;
<br>
};
<br>
<br>
lookup("aliases");
<br>
if (!is_uri_host_local()) {
<br>
route(4);
<br>
route(1);
<br>
return;
<br>
};
<br>
<br>
if (!lookup("location")) {
<br>
sl_send_reply("404", "User Not Found");
<br>
exit;
<br>
};
<br>
<br>
append_hf("P-hint: usrloc applied\r\n");
<br>
<br>
route(1);
<br>
}
<br>
<br>
<br>
route[1] {
<br>
if (subst_uri('/(sip:.*);nat=yes/\1/')){
<br>
setflag(6);
<br>
};
<br>
<br>
if (isflagset(5)||isflagset(6)) {
<br>
route(3);
<br>
}
<br>
<br>
if (!t_relay()) {
<br>
sl_reply_error();
<br>
};
<br>
exit;
<br>
}
<br>
<br>
route[2]{
<br>
force_rport();
<br>
if (nat_uac_test("19")) {
<br>
if (method=="REGISTER") {
<br>
fix_nated_register();
<br>
} else {
<br>
fix_nated_contact();
<br>
};
<br>
setflag(5);
<br>
};
<br>
}
<br>
<br>
route[3] {
<br>
if (is_method("BYE|CANCEL")) {
<br>
unforce_rtp_proxy();
<br>
} else if (is_method("INVITE")){
<br>
force_rtp_proxy();
<br>
t_on_failure("1");
<br>
};
<br>
if (isflagset(5))
<br>
search_append('Contact:.*sip:[^>[:cntrl:]]*', ';nat=yes');
<br>
t_on_reply("1");
<br>
}
<br>
<br>
route[4] {
<br>
<br>
if (!www_authorize("xx.xxx.xxx.xxx", "subscriber")) {
<br>
www_challenge("xx.xxx.xxx.xxx", "0");
<br>
exit;
<br>
};
<br>
<br>
if (isflagset(5)) {
<br>
setflag(6);
<br>
# if you want OPTIONS natpings uncomment next
<br>
# setflag(7);
<br>
};
<br>
<br>
save("location");
<br>
<br>
if (!lookup("location")) {
<br>
sl_send_reply("401", "Unauthorized");
<br>
};
<br>
<br>
append_hf("P-hint: usrloc applied\r\n");
<br>
<br>
}
<br>
<br>
route[5] {
<br>
<br>
# -----------------------------------------------------------------
<br>
# INVITE Message Handler
<br>
# ----------------------------------------------------------------- <br>
if (!allow_trusted()) {
<br>
<br>
if (!proxy_authorize("xx.xxx.xxx.xxx","subscriber")) {
<br>
proxy_challenge("xx.xxx.xxx.xxx","0");
<br>
return;
<br>
} else if (!check_from()) {
<br>
sl_send_reply("403", "Use From=ID");
<br>
return;
<br>
};
<br>
};
<br>
<br>
lookup("aliases");
<br>
if (!is_uri_host_local()) {
<br>
route(1);
<br>
return;
<br>
};
<br>
<br>
if (uri=~"^sip:[0-9]@") {
<br>
lookup("aliases");
<br>
lookup("location");
<br>
route(1);
<br>
return;
<br>
}; <br>
<br>
if(!lookup("location")){
<br>
sl_send_reply("404", "User Not Found");
<br>
return;
<br>
};
<br>
<br>
route(1);
<br>
}
<br>
<br>
<br>
<br>
failure_route[1] {
<br>
if (isflagset(6) || isflagset(5)) {
<br>
unforce_rtp_proxy();
<br>
}
<br>
}
<br>
<br>
onreply_route[1] {
<br>
if ((isflagset(5) || isflagset(6)) && status=~"(183)|(2[0-9][0-9])") {
<br>
force_rtp_proxy();
<br>
}
<br>
search_append('Contact:.*sip:[^>[:cntrl:]]*', ';nat=yes');
<br>
<br>
if (isflagset(6)) {
<br>
fix_nated_contact();
<br>
}
<br>
<br>
exit;
<br>
}
<br>
</span><br>
</span><br clear="all">
</span><br>-- <br>Thanks and Regards with cheers<br>Sunkara Ravi Prakash (Voip Developer)<br>Hyperion Technology<br>Kondapur, Hi-tech city,<br>Hyderabad.<br><a href="http://www.hyperion-tech.com">www.hyperion-tech.com</a>
<br>+91-9985077535