Do you need to proxy calls to asterisk? If that is the case, you need to make sure that the NAT flag is set.
g-)

Arun Kumar wrote:
Hi,

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 :

  debug=3
  fork=no
  log_stderror=yes

  listen=192.168.2.210     # INSERT YOUR IP ADDRESS HERE
  port=5060
  children=4

  dns=no
  rev_dns=no
  fifo="/tmp/ser_fifo"
  fifo_db_url="mysql://ser:arun@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/auth.so"
loadmodule "/usr/local/lib/ser/modules/auth_db.so"
loadmodule "/usr/local/lib/ser/modules/uri.so"
loadmodule "/usr/local/lib/ser/modules/uri_db.so"
loadmodule "/usr/local/lib/ser/modules/domain.so"
loadmodule "/usr/local/lib/ser/modules/nathelper.so"
loadmodule "/usr/local/lib/ser/modules/avpops.so"
loadmodule "/usr/local/lib/ser/modules/textops.so"
loadmodule "/usr/local/lib/ser/modules/mediaproxy.so"
loadmodule "/usr/local/lib/ser/modules/permissions.so"
loadmodule "/usr/local/lib/ser/modules/acc.so"
loadmodule "/usr/local/lib/ser/modules/auth_radius.so"
loadmodule "/usr/local/lib/ser/modules/lcr.so"
loadmodule "/usr/local/lib/ser/modules/xlog.so"

  modparam("auth_db|permissions|uri_db|usrloc|domain", "db_url",  " mysql://ser:arun@localhost/ser")
  modparam("auth_db", "calculate_ha1", 1)
  modparam("auth_db", "password_column", "password")

  modparam("nathelper", "rtpproxy_disable", 1)
  modparam("nathelper", "natping_interval", 0)

  modparam("mediaproxy","natping_interval", 30)
  modparam("mediaproxy","mediaproxy_socket", "/var/run/mediaproxy.sock")
#  modparam("mediaproxy","sip_asymmetrics","/usr/local/etc/ser/sip-clients")
#  modparam("mediaproxy","rtp_asymmetrics","/usr/local/etc/ser/rtp-clients")

  modparam("usrloc", "db_mode", 2)

  modparam("registrar", "nat_flag", 6)

  modparam("rr", "enable_full_lr", 1)

  modparam("tm", "fr_inv_timer", 120)
  modparam("tm", "fr_inv_timer_avp", "inv_timeout")

  modparam("permissions", "db_mode", 1)
  modparam("permissions", "trusted_table", "trusted")

 modparam("lcr","db_url", "mysql://ser:arun@localhost/ser")
 modparam("lcr","gw_table","gw")
 modparam("lcr","gw_name_column","gw_name")
 modparam("lcr","ip_addr_column","ip_addr")
 modparam("lcr","port_column","port")
 modparam("lcr","grp_id_column","grp_id")
 modparam("lcr","lcr_table","lcr")
 modparam("lcr","prefix_column","prefix")
 modparam("lcr","from_uri_column","from_uri")
 modparam("lcr","priority_column","priority")
 modparam("lcr","contact_avp","1401")
 modparam("lcr","fr_inv_timer_avp","fr_inv_timer_avp")
 modparam("lcr","fr_inv_timer",90)
 modparam("lcr","fr_inv_timer_next",60)
# ------ Account and Radius modules--------------
modparam("acc", "db_url", " mysql://ser:arun@localhost/ser")

modparam("acc","log_level",1)
modparam("acc","log_flag",1)
modparam("acc", "db_flag", 1)

modparam("acc","radius_flag",1)
modparam("acc","service_type",15)
#modparam("acc","radius_config","/usr/local/etc/radiusclient-ng/radiusclient.conf")


  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;
    };

if (!load_gws()) {
         sl_send_reply("500", "Server Internal Error - Cannot load gateways");
         break;
      } else {
         xlog("L_INFO", "\n[SER]: - [$Tf] Method: <$rm> R-uri: <$ru> From: <$fu>To <$tu>  : Successfully Loaded Gateway List\n");
      };

    # -----------------------------------------------------------------
    # Record Route Section
    # -----------------------------------------------------------------
    if (method=="INVITE" && client_nat_test("3")) {
      # INSERT YOUR IP ADDRESS HERE
      record_route_preset("192.168.2.210:5060;nat=yes");
    } else if (method!="REGISTER") {
      record_route();
    };


    # -----------------------------------------------------------------
    # Call Tear Down Section
    # -----------------------------------------------------------------
    if (method=="BYE" || method=="CANCEL") { 
     setflag(1);
     end_media_session();
    };

    # -----------------------------------------------------------------
    # Loose Route Section
    # -----------------------------------------------------------------
    if (loose_route()) {
      if ((method=="INVITE" || method=="REFER") && !has_totag()) {
        sl_send_reply("403", "Forbidden Cant cross 1st bridge");
        break;
      };

      if (method=="INVITE") {

        if (!allow_trusted()) {

          if (!proxy_authorize("","subscriber")) {
            proxy_challenge("","0");
            break;
          } else if (!check_from()) {
            sl_send_reply("403", "Use From=ID");
            break;
          };

          consume_credentials();
        };

        if (client_nat_test("3")||search("^Route:.*;nat=yes")){
          setflag(6);
          use_media_proxy();
        };
      };

      route(1);
      break;
  };

  # -----------------------------------------------------------------
  # Call Type Processing Section
  # -----------------------------------------------------------------
  if (!is_uri_host_local()) {
    if (is_from_local() || allow_trusted()) {
        sl_send_reply("404", "I am trusted host, ");
      route(4);
      route(1);
    } else {
      sl_send_reply("403", "Forbidden, I am here");
    };
    break;
  };

  if (method=="ACK") { 
    setflag(1);
    route(1);
    break;
  } if (method=="CANCEL") { 
    setflag(1);
    route(1);
    break;
  } else if (method=="INVITE") { 
    setflag(1);
    route(3);
    break;
  } else  if (method=="REGISTER") {
    route(2);
    break;
  };

  lookup("aliases");
  if (!is_uri_host_local()) {
    route(4);
    route(1);
    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" || method=="ACK") { 
      setflag(1);
      end_media_session();
    };

    sl_reply_error();
  };

}
route[2] {

  # -----------------------------------------------------------------
  # REGISTER Message Handler
  # -----------------------------------------------------------------

  sl_send_reply("100", "Trying");

  if (!search("^Contact:[ ]*\*") && client_nat_test("7")) {
    setflag(6);
    fix_nated_register();
    force_rport();
  };

  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 (client_nat_test("3")) {
    setflag(7);
    force_rport();
    fix_nated_contact();
  };

  if (!allow_trusted()) {

    if (!proxy_authorize("","subscriber")) {
      proxy_challenge("","0");
      break;
    } else if (!check_from()) {
      sl_send_reply("403", "Use From=ID");
      break;
    };

    consume_credentials();
  };

  if (!is_uri_host_local()) {
    route(4);
    route(1);
    break;
  };

if (!next_gw()) {
        t_reply("503", "Service not available - No more gateways");
        break;
      } else {
        t_on_failure("2"); 
        t_relay();
        break;
      };

 route(4);
 route(1);
}

route[4] {

  # -----------------------------------------------------------------
  # NAT Traversal Section
  # -----------------------------------------------------------------

  if (isflagset(6) || isflagset(7)) {
    if (!isflagset(8)) {
      setflag(8);
      use_media_proxy();
    };
  };
}

#route[5] {

  # -----------------------------------------------------------------
  # PSTN Handler
  # -----------------------------------------------------------------

#  rewritehostport(" 192.168.2.202:5060"); # INSERT YOUR PSTN GATEWAY IP ADDRESS

#  avp_write("i:45", "inv_timeout");

#  route(1);
#}

onreply_route[1] {
xlog("L_INFO", "In onreply route");
  if ((isflagset(6) || isflagset(7)) &&
      (status=~"(180)|(183)|2[0-9][0-9]")) {

    if (!search("^Content-Length:[ ]*0")) {
      use_media_proxy();
    };
  };

  if (client_nat_test("1")) {
    fix_nated_contact();
  };
}

 failure_route[2] {

      if (!next_gw()) {
         t_reply("503", "Service not available - No more gateways");
         break;
      } else {
         t_on_failure("2");
         t_relay();
         break;
      }
    }


thanks
arun

_______________________________________________ Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers