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