Hi,

I'm trying to configure LCR with ser here is my config file. This config is sending the call to my first gateway but when My first gateway is down its not sending the calls to other gateways. Plese help me to make this working.

------------------------
  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:pass@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"


  modparam("auth_db|permissions|uri_db|usrloc|domain", "db_url",  " mysql://ser:pass@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:pass@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:pass@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;
    };

    # -----------------------------------------------------------------
    # Record Route Section
    # -----------------------------------------------------------------
    if (method=="INVITE" && client_nat_test("3")) { # setflag(1);
      # 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);
#    sl_send_reply("410", "I am sending your call, ");
    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();
  };

route(4);

if(!load_gws()){
   sl_send_reply("500", "Internal server error, unable to load gateways");
 break;
 }
 if(!next_gw()){
   sl_send_reply("503", "Service not available, no gateways found");
 break;
 };

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


#  route(1);
}

route[4] {

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

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

onreply_route[1] {

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

-------------------------------

thanks
arun