<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Do you need to proxy calls to asterisk? If that is the case, you need
to make sure that the NAT flag is set.<br>
g-)<br>
<br>
Arun Kumar wrote:
<blockquote
 cite="mida70a109b0701101957k714d2682s996db572965ba5f8@mail.gmail.com"
 type="cite">Hi,<br>
  <br>
I've configured my SER to send calls to my Asterisk server when user
connects to ser and dial a number ser forwards this to my Asterisk
server and my asterisk server ask for my pin number saying "Please
enter your pin number". In this config I'm using
rewritehostport(ip:port) to forward the calls and its working fine.
But, Now I've implemented the LCR when I see ngrep calls are going to
my asterisk server but I'm not able to hear any sound from my asterisk
server saying "enter your pin number". Please help in this issue. Here
is my ser.cfg file :<br>
  <br>
&nbsp; debug=3<br>
&nbsp; fork=no<br>
&nbsp; log_stderror=yes<br>
  <br>
&nbsp; listen=<a href="http://192.168.2.210">192.168.2.210</a>&nbsp;&nbsp;&nbsp;&nbsp; # INSERT
YOUR IP ADDRESS HERE<br>
&nbsp; port=5060<br>
&nbsp; children=4<br>
  <br>
&nbsp; dns=no<br>
&nbsp; rev_dns=no
  <br>
&nbsp; fifo="/tmp/ser_fifo"<br>
&nbsp; fifo_db_url="mysql://ser:arun@localhost/ser"<br>
  <br>
loadmodule "/usr/local/lib/ser/modules/mysql.so"<br>
loadmodule "/usr/local/lib/ser/modules/sl.so"
  <br>
loadmodule "/usr/local/lib/ser/modules/tm.so"<br>
loadmodule "/usr/local/lib/ser/modules/rr.so"<br>
loadmodule "/usr/local/lib/ser/modules/maxfwd.so"<br>
loadmodule "/usr/local/lib/ser/modules/usrloc.so"
  <br>
loadmodule "/usr/local/lib/ser/modules/registrar.so"<br>
loadmodule "/usr/local/lib/ser/modules/auth.so"<br>
loadmodule "/usr/local/lib/ser/modules/auth_db.so"<br>
loadmodule "/usr/local/lib/ser/modules/uri.so"
  <br>
loadmodule "/usr/local/lib/ser/modules/uri_db.so"<br>
loadmodule "/usr/local/lib/ser/modules/domain.so"<br>
loadmodule "/usr/local/lib/ser/modules/nathelper.so"<br>
loadmodule "/usr/local/lib/ser/modules/avpops.so"
  <br>
loadmodule "/usr/local/lib/ser/modules/textops.so"<br>
loadmodule "/usr/local/lib/ser/modules/mediaproxy.so"<br>
loadmodule "/usr/local/lib/ser/modules/permissions.so"<br>
loadmodule "/usr/local/lib/ser/modules/acc.so"
  <br>
loadmodule "/usr/local/lib/ser/modules/auth_radius.so"<br>
loadmodule "/usr/local/lib/ser/modules/lcr.so"<br>
loadmodule "/usr/local/lib/ser/modules/xlog.so"<br>
  <br>
&nbsp; modparam("auth_db|permissions|uri_db|usrloc|domain", "db_url",&nbsp; "
mysql://ser:arun@localhost/ser")<br>
&nbsp; modparam("auth_db", "calculate_ha1", 1)<br>
&nbsp; modparam("auth_db", "password_column", "password")<br>
  <br>
&nbsp; modparam("nathelper", "rtpproxy_disable", 1)
  <br>
&nbsp; modparam("nathelper", "natping_interval", 0)<br>
  <br>
&nbsp; modparam("mediaproxy","natping_interval", 30)<br>
&nbsp; modparam("mediaproxy","mediaproxy_socket",
"/var/run/mediaproxy.sock")
  <br>
#&nbsp;
modparam("mediaproxy","sip_asymmetrics","/usr/local/etc/ser/sip-clients")<br>
#&nbsp;
modparam("mediaproxy","rtp_asymmetrics","/usr/local/etc/ser/rtp-clients")<br>
  <br>
&nbsp; modparam("usrloc", "db_mode", 2)<br>
  <br>
&nbsp; modparam("registrar", "nat_flag", 6)<br>
  <br>
&nbsp; modparam("rr", "enable_full_lr", 1)<br>
  <br>
&nbsp; modparam("tm", "fr_inv_timer", 120)
  <br>
&nbsp; modparam("tm", "fr_inv_timer_avp", "inv_timeout")<br>
  <br>
&nbsp; modparam("permissions", "db_mode", 1)<br>
&nbsp; modparam("permissions", "trusted_table", "trusted")
  <br>
  <br>
&nbsp;modparam("lcr","db_url", "mysql://ser:arun@localhost/ser")<br>
&nbsp;modparam("lcr","gw_table","gw")<br>
&nbsp;modparam("lcr","gw_name_column","gw_name")
  <br>
&nbsp;modparam("lcr","ip_addr_column","ip_addr")<br>
&nbsp;modparam("lcr","port_column","port")<br>
&nbsp;modparam("lcr","grp_id_column","grp_id")
  <br>
&nbsp;modparam("lcr","lcr_table","lcr")<br>
&nbsp;modparam("lcr","prefix_column","prefix")<br>
&nbsp;modparam("lcr","from_uri_column","from_uri")
  <br>
&nbsp;modparam("lcr","priority_column","priority")<br>
&nbsp;modparam("lcr","contact_avp","1401")<br>
&nbsp;modparam("lcr","fr_inv_timer_avp","fr_inv_timer_avp")
  <br>
&nbsp;modparam("lcr","fr_inv_timer",90)<br>
&nbsp;modparam("lcr","fr_inv_timer_next",60)<br>
# ------ Account and Radius modules--------------<br>
modparam("acc", "db_url", "
mysql://ser:arun@localhost/ser")<br>
  <br>
modparam("acc","log_level",1)<br>
modparam("acc","log_flag",1)<br>
modparam("acc", "db_flag", 1)<br>
  <br>
modparam("acc","radius_flag",1)
  <br>
modparam("acc","service_type",15)<br>
#modparam("acc","radius_config","/usr/local/etc/radiusclient-ng/radiusclient.conf")<br>
  <br>
  <br>
&nbsp; route {<br>
  <br>
&nbsp;&nbsp;&nbsp; # -----------------------------------------------------------------
  <br>
&nbsp;&nbsp;&nbsp; # Sanity Check Section<br>
&nbsp;&nbsp;&nbsp; # -----------------------------------------------------------------<br>
&nbsp;&nbsp;&nbsp; if (!mf_process_maxfwd_header("10")) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl_send_reply("483", "Too Many Hops");
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br>
&nbsp;&nbsp;&nbsp; };<br>
  <br>
&nbsp;&nbsp;&nbsp; if (msg:len &gt; max_len) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl_send_reply("513", "Message Overflow");<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br>
&nbsp;&nbsp;&nbsp; };<br>
  <br>
if (!load_gws()) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl_send_reply("500", "Server Internal Error - Cannot load
gateways");
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xlog("L_INFO", "\n[SER]: - [$Tf] Method: &lt;$rm&gt; R-uri:
&lt;$ru&gt; From: &lt;$fu&gt;To &lt;$tu&gt;&nbsp; : Successfully Loaded
Gateway List\n");<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };
  <br>
  <br>
&nbsp;&nbsp;&nbsp; # -----------------------------------------------------------------<br>
&nbsp;&nbsp;&nbsp; # Record Route Section<br>
&nbsp;&nbsp;&nbsp; # -----------------------------------------------------------------<br>
&nbsp;&nbsp;&nbsp; if (method=="INVITE" &amp;&amp; client_nat_test("3")) { <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # INSERT YOUR IP ADDRESS HERE<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; record_route_preset("<a href="http://192.168.2.210:5060">192.168.2.210:5060</a>;nat=yes");<br>
&nbsp;&nbsp;&nbsp; } else if (method!="REGISTER") {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; record_route();
  <br>
&nbsp;&nbsp;&nbsp; };<br>
  <br>
  <br>
&nbsp;&nbsp;&nbsp; # -----------------------------------------------------------------<br>
&nbsp;&nbsp;&nbsp; # Call Tear Down Section<br>
&nbsp;&nbsp;&nbsp; # -----------------------------------------------------------------<br>
&nbsp;&nbsp;&nbsp; if (method=="BYE" || method=="CANCEL") {&nbsp; <br>
&nbsp;&nbsp;&nbsp;&nbsp; setflag(1);<br>
&nbsp;&nbsp;&nbsp;&nbsp; end_media_session();<br>
&nbsp;&nbsp;&nbsp; };<br>
  <br>
&nbsp;&nbsp;&nbsp; # -----------------------------------------------------------------<br>
&nbsp;&nbsp;&nbsp; # Loose Route Section<br>
&nbsp;&nbsp;&nbsp; # -----------------------------------------------------------------
  <br>
&nbsp;&nbsp;&nbsp; if (loose_route()) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ((method=="INVITE" || method=="REFER") &amp;&amp;
!has_totag()) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl_send_reply("403", "Forbidden Cant cross 1st bridge");<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br>
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (method=="INVITE") {<br>
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!allow_trusted()) {<br>
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!proxy_authorize("","subscriber")) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy_challenge("","0");
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else if (!check_from()) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl_send_reply("403", "Use From=ID");<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br>
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; consume_credentials();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };
  <br>
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (client_nat_test("3")||search("^Route:.*;nat=yes")){<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setflag(6);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; use_media_proxy();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br>
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; route(1);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br>
&nbsp; };
  <br>
  <br>
&nbsp; # -----------------------------------------------------------------<br>
&nbsp; # Call Type Processing Section<br>
&nbsp; # -----------------------------------------------------------------<br>
&nbsp; if (!is_uri_host_local()) {<br>
&nbsp;&nbsp;&nbsp; if (is_from_local() || allow_trusted()) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl_send_reply("404", "I am trusted host, ");<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; route(4);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; route(1);<br>
&nbsp;&nbsp;&nbsp; } else {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl_send_reply("403", "Forbidden, I am here");
  <br>
&nbsp;&nbsp;&nbsp; };<br>
&nbsp;&nbsp;&nbsp; break;<br>
&nbsp; };<br>
  <br>
&nbsp; if (method=="ACK") {&nbsp; <br>
&nbsp;&nbsp;&nbsp; setflag(1);<br>
&nbsp;&nbsp;&nbsp; route(1);<br>
&nbsp;&nbsp;&nbsp; break;<br>
&nbsp; } if (method=="CANCEL") {&nbsp; <br>
&nbsp;&nbsp;&nbsp; setflag(1);<br>
&nbsp;&nbsp;&nbsp; route(1);<br>
&nbsp;&nbsp;&nbsp; break;<br>
&nbsp; } else if (method=="INVITE") {&nbsp; <br>
&nbsp;&nbsp;&nbsp; setflag(1);<br>
&nbsp;&nbsp;&nbsp; route(3);<br>
&nbsp;&nbsp;&nbsp; break;<br>
&nbsp; } else&nbsp; if (method=="REGISTER") {<br>
&nbsp;&nbsp;&nbsp; route(2);<br>
&nbsp;&nbsp;&nbsp; break;<br>
&nbsp; };<br>
  <br>
&nbsp; lookup("aliases");<br>
&nbsp; if (!is_uri_host_local()) {<br>
&nbsp;&nbsp;&nbsp; route(4);<br>
&nbsp;&nbsp;&nbsp; route(1);<br>
&nbsp;&nbsp;&nbsp; break;<br>
&nbsp; };<br>
  <br>
&nbsp; if (!lookup("location")) {<br>
&nbsp;&nbsp;&nbsp; sl_send_reply("404", "User Not Found");<br>
&nbsp;&nbsp;&nbsp; break;<br>
&nbsp; };<br>
  <br>
&nbsp; route(1);<br>
}<br>
  <br>
route[1] {<br>
  <br>
&nbsp; # -----------------------------------------------------------------<br>
&nbsp; # Default Message Handler<br>
&nbsp; # -----------------------------------------------------------------<br>
&nbsp; t_on_reply("1");<br>
  <br>
&nbsp; if (!t_relay()) {<br>
  <br>
&nbsp;&nbsp;&nbsp; if (method=="INVITE" || method=="ACK") {&nbsp; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setflag(1);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end_media_session();<br>
&nbsp;&nbsp;&nbsp; };<br>
  <br>
&nbsp;&nbsp;&nbsp; sl_reply_error();<br>
&nbsp; };<br>
  <br>
}<br>
route[2] {<br>
  <br>
&nbsp; # -----------------------------------------------------------------<br>
&nbsp; # REGISTER Message Handler<br>
&nbsp; # -----------------------------------------------------------------<br>
  <br>
&nbsp; sl_send_reply("100", "Trying");
  <br>
  <br>
&nbsp; if (!search("^Contact:[ ]*\*") &amp;&amp; client_nat_test("7")) {<br>
&nbsp;&nbsp;&nbsp; setflag(6);<br>
&nbsp;&nbsp;&nbsp; fix_nated_register();<br>
&nbsp;&nbsp;&nbsp; force_rport();<br>
&nbsp; };<br>
  <br>
&nbsp; if (!www_authorize("","subscriber")) {
  <br>
&nbsp;&nbsp;&nbsp; www_challenge("","0");<br>
&nbsp;&nbsp;&nbsp; break;<br>
&nbsp; };<br>
  <br>
&nbsp; if (!check_to()) {<br>
&nbsp;&nbsp;&nbsp; sl_send_reply("401", "Unauthorized");<br>
&nbsp;&nbsp;&nbsp; break;<br>
&nbsp; };<br>
  <br>
&nbsp; consume_credentials();<br>
  <br>
&nbsp; if (!save("location")) {<br>
&nbsp;&nbsp;&nbsp; sl_reply_error();<br>
&nbsp; };<br>
  <br>
}<br>
route[3] {<br>
  <br>
&nbsp; # -----------------------------------------------------------------<br>
&nbsp; # INVITE Message Handler<br>
&nbsp; # -----------------------------------------------------------------
  <br>
  <br>
&nbsp; if (client_nat_test("3")) {<br>
&nbsp;&nbsp;&nbsp; setflag(7);<br>
&nbsp;&nbsp;&nbsp; force_rport();<br>
&nbsp;&nbsp;&nbsp; fix_nated_contact();<br>
&nbsp; };<br>
  <br>
&nbsp; if (!allow_trusted()) {<br>
  <br>
&nbsp;&nbsp;&nbsp; if (!proxy_authorize("","subscriber")) {
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; proxy_challenge("","0");<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br>
&nbsp;&nbsp;&nbsp; } else if (!check_from()) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sl_send_reply("403", "Use From=ID");<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br>
&nbsp;&nbsp;&nbsp; };<br>
  <br>
&nbsp;&nbsp;&nbsp; consume_credentials();
  <br>
&nbsp; };<br>
  <br>
&nbsp; if (!is_uri_host_local()) {<br>
&nbsp;&nbsp;&nbsp; route(4);<br>
&nbsp;&nbsp;&nbsp; route(1);<br>
&nbsp;&nbsp;&nbsp; break;<br>
&nbsp; };<br>
  <br>
if (!next_gw()) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t_reply("503", "Service not available - No more gateways");<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t_on_failure("2");&nbsp; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t_relay();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; };<br>
  <br>
&nbsp;route(4);<br>
&nbsp;route(1);<br>
}<br>
  <br>
route[4] {<br>
  <br>
&nbsp; # -----------------------------------------------------------------
  <br>
&nbsp; # NAT Traversal Section<br>
&nbsp; # -----------------------------------------------------------------<br>
  <br>
&nbsp; if (isflagset(6) || isflagset(7)) {<br>
&nbsp;&nbsp;&nbsp; if (!isflagset(8)) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setflag(8);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; use_media_proxy();
  <br>
&nbsp;&nbsp;&nbsp; };<br>
&nbsp; };<br>
}<br>
  <br>
#route[5] {<br>
  <br>
&nbsp; # -----------------------------------------------------------------<br>
&nbsp; # PSTN Handler<br>
&nbsp; # -----------------------------------------------------------------<br>
  <br>
#&nbsp; rewritehostport("
  <a href="http://192.168.2.202:5060">192.168.2.202:5060</a>"); #
INSERT YOUR PSTN GATEWAY IP ADDRESS<br>
  <br>
#&nbsp; avp_write("i:45", "inv_timeout");<br>
  <br>
#&nbsp; route(1);<br>
#}<br>
  <br>
onreply_route[1] {<br>
xlog("L_INFO", "In onreply route");<br>
&nbsp; if ((isflagset(6) || isflagset(7)) &amp;&amp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (status=~"(180)|(183)|2[0-9][0-9]")) {<br>
  <br>
&nbsp;&nbsp;&nbsp; if (!search("^Content-Length:[ ]*0")) {
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; use_media_proxy();<br>
&nbsp;&nbsp;&nbsp; };<br>
&nbsp; };<br>
  <br>
&nbsp; if (client_nat_test("1")) {<br>
&nbsp;&nbsp;&nbsp; fix_nated_contact();<br>
&nbsp; };<br>
}<br>
  <br>
&nbsp;failure_route[2] {<br>
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!next_gw()) {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t_reply("503", "Service not available - No more gateways");
  <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t_on_failure("2");<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t_relay();<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; }<br>
  <br>
  <br>
thanks<br>
arun<br>
  <pre wrap="">
<hr size="4" width="90%">
_______________________________________________
Serusers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Serusers@lists.iptel.org">Serusers@lists.iptel.org</a>
<a class="moz-txt-link-freetext" href="http://lists.iptel.org/mailman/listinfo/serusers">http://lists.iptel.org/mailman/listinfo/serusers</a>
  </pre>
</blockquote>
</body>
</html>