[Serusers] ser.cfg (forward to ser-sems)

dim dim_hatzi at yahoo.gr
Mon Jan 14 08:01:06 CET 2008


hi..
I have attached my "running" ser.cfg...in which i want to include something 
like :

if (uri =~ "sip:1.*@")  {
			log("Forwarding to 5070");
	                rewritehostport("localhost:5070");
                	t_relay_to_udp("localhost","5070");
                	break;
}

... in order to uris start from 1 to be forwarded to my other ser (stack for 
sems)..

Where exactly in my ser.cfg, should i put this ???

thank you very much...

dimitris
-------------- next part --------------
debug=3
fork=yes
log_stderror=no

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

dns=no
rev_dns=no
fifo="/tmp/ser_fifo"
fifo_db_url="mysql://ser:heslo@localhost/ser"

loadmodule "/root/dimitris/ser/lib/ser/modules/mysql.so"
loadmodule "/root/dimitris/ser/lib/ser/modules/sl.so"
loadmodule "/root/dimitris/ser/lib/ser/modules/tm.so"
loadmodule "/root/dimitris/ser/lib/ser/modules/rr.so"
loadmodule "/root/dimitris/ser/lib/ser/modules/maxfwd.so"
loadmodule "/root/dimitris/ser/lib/ser/modules/usrloc.so"
loadmodule "/root/dimitris/ser/lib/ser/modules/registrar.so"
loadmodule "/root/dimitris/ser/lib/ser/modules/auth.so"
loadmodule "/root/dimitris/ser/lib/ser/modules/auth_db.so"
loadmodule "/root/dimitris/ser/lib/ser/modules/uri.so"
loadmodule "/root/dimitris/ser/lib/ser/modules/uri_db.so"
loadmodule "/root/dimitris/ser/lib/ser/modules/nathelper.so"
loadmodule "/root/dimitris/ser/lib/ser/modules/textops.so"


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

modparam("nathelper", "natping_interval", 30)
modparam("nathelper", "ping_nated_only", 1)   
modparam("nathelper", "rtpproxy_sock", "unix:/var/run/rtpproxy.sock")

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

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

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



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!="REGISTER") {
    record_route();
  };

  if (method=="BYE" || method=="CANCEL") {
    unforce_rtp_proxy();
  } 

  # -----------------------------------------------------------------
  # Loose Route Section
  # -----------------------------------------------------------------
  if (loose_route()) { 

    if ((method=="INVITE" || method=="REFER") && !has_totag()) {
      sl_send_reply("403", "Forbidden");
      break;
    };

    if (method=="INVITE") {

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

      consume_credentials();

      if (nat_uac_test("19")) {
        setflag(6);
        force_rport();
        fix_nated_contact();
      };
      force_rtp_proxy("l");
    };

    route(1);
    break;
  };

  # -----------------------------------------------------------------
  # Call Type Processing Section
  # -----------------------------------------------------------------
  if (uri!=myself) {
    route(4);
    route(1);
    break;
  };

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

  lookup("aliases");
  if (uri!=myself) {
    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" && isflagset(6)) {
      unforce_rtp_proxy();
    };
    sl_reply_error();
  };
}

route[2] {

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

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

  sl_send_reply("100", "Trying");

  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 (!proxy_authorize("","subscriber")) {
    proxy_challenge("","0");
    break;
  } else if (!check_from()) {
    sl_send_reply("403", "Use From=ID");
    break;
  };

     consume_credentials();

  if (nat_uac_test("19")) {
    setflag(6);
     }

  lookup("aliases");
  if (uri!=myself) {
    route(4); 
    route(1);
    break;
  };

  if (!lookup("location")) {
    sl_send_reply("404", "User Not Found");
    break;
  };

  route(4); 
  route(1); 
}

route[4] {

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

  if (isflagset(6)) {
    force_rport();
    fix_nated_contact();
    force_rtp_proxy();
  }
}

onreply_route[1] {

  if (isflagset(6) && status=~"(180)|(183)|2[0-9][0-9]") { 
      if (!search("^Content-Length:[ ]*0")) { 
      force_rtp_proxy();
    };
  };

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


More information about the sr-users mailing list