<br>
Hi Users,<br>
<br>
I installed Openser server and Using the Nathelper with RtpProxy .<br>
<br>
The openser server and RtpProxy are located in the Same system with ip add (<a href="http://192.168.2.2" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">192.168.2.2</a>) , <br>
<br>
And Public IP address is xx.xxx.xxx.xxx., openSER sip_doamin name is xx.xxx.xxx.xxx<br>
<br>
Ours Network connect for openser System is given below <br>
<br>
<br>
modem------xx.xxx.xxx.xxx.-------------> router(firewall)
---------------------------------> server 1<br>
|________________ > server 2<br>
|<br>
|_________________>
server 3 ( openser and rtp )<br>
<br>
For Testing i'm X-lite softphones with different network of openser system ( out the NAT )<br>
<br>
When made the call from one softphone to other softphones..<br>
When caller calls to callee , when the callee is lefted up
the phone after 32 seconds the phone hungups automatically.<br>
And <span style="color: rgb(51, 51, 255);"><font size="2"><span style="font-weight: bold;"><span style="font-weight: bold;"><span style="font-weight: bold;">OpenSER is Not receive the Ack, when the invite is response and Softphones are Ringing after it lefted up .
For callee only hung up<br>
<span style="font-weight: bold;"></span><br>
And Missed Call and Ignore Calls are working Fine ...<br>
I gucess is problem in Firewall setting in Router and System FireWall.setting .<br>
Can Any one tell me How to resolve my problem ...<br>
</span></span></span></font></span>here is My openser.cfg <br>
<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>
<br>
<br>
<br clear="all"><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" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
www.hyperion-tech.com
</a><br>+91-9985077535