[Serusers] Too Many Hops

Matteo Piazza matteo.piazza at create-net.it
Wed Nov 2 09:47:44 CET 2005


I have Ser and asterisk on the same machine.
When i try to call with a SIP phone registred on asterisk another sip 
phone also registred on asterisk through SER I receve this error message:
Too many hops
I not understand the reason.
Someone have an idea?
Thank's

This is my ser.cfg
#
# $Id: ser.cfg,v 1.21.4.1 2003/11/10 15:35:15 andrei Exp $
#
# simple quick-start config script
#

# ----------- global configuration parameters ------------------------

debug=3         # debug level (cmd line: -dddddddddd)
fork=yes
log_stderror=no # (cmd line: -E)

listen=192.168.9.97

#alias=192.168.9.97
#alias=panoramix.create-net.it
#listen=127.0.0.1
#port=5060

check_via=no
dns=no           # (cmd. line: -r)
rev_dns=no      # (cmd. line: -R)
#port=5060
#children=4
fifo="/tmp/ser_fifo"
#fifo_db_url="mysql://ser:heslo@localhost/ser"


# ------------------ module loading ----------------------------------

# Uncomment this if you want to use SQL database
loadmodule "/usr/src/ser-0.9.4/modules/mysql/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/registrar.so"
#loadmodule "/usr/local/lib/ser/modules/textops.so"
#loadmodule "/usr/local/lib/ser/modules/nathelper.so"
# added
#loadmodule "/usr/local/lib/ser/modules/domain.so"
# Uncomment this if you want digest authentication
# mysql.so must be loaded !
#loadmodule "/usr/local/lib/ser/modules/auth.so"
#loadmodule "/usr/local/lib/ser/modules/auth_db.so"
#loadmodule "/usr/local/lib/ser/modules/uri_db.so"

# ----------------- setting module-specific parameters ---------------

# -- usrloc params --


#modparam("auth_db|uri_db|usrloc","db_url","mysql://ser:heslo@localhost/ser")
#modparam("auth_db","user_column","username")

modparam("usrloc","db_mode", 0)


# Uncomment this if you want to use SQL database
# for persistent storage and comment the previous line
#modparam("usrloc", "db_mode", 2)
#modparam("usrloc","time_interval",60)

# -- auth params --
# Uncomment if you are using auth module
#
#modparam("auth_db", "calculate_ha1", 1)
#
# If you set "calculate_ha1" parameter to yes (which true in this config),
# uncomment also the following parameter)
#
#modparam("auth_db", "password_column", "password")

# -- rr params --
# add value to ;lr param to make some broken UAs happy
modparam("rr", "enable_full_lr", 1)

# -------------------------  request routing logic -------------------

# main routing logic


route{

         # lookup("aliases");
         # initial sanity checks -- messages with
         #  max_forwards==0, or excessively long requests



          if (!mf_process_maxfwd_header("10")) {

                log("LOG: Too many hops\n");
                sl_send_reply("483","Too Many Hops");
                break;
          };
          if ( msg:len > max_len  ) {
                 sl_send_reply("513", "Message too big");
                 break;
          };

         # we record-route all messages -- to make sure that
         # subsequent messages will go through our proxy; that's
         # particularly good if upstream and downstream entities
         # use different transport protocol
         record_route();
         # loose-route processing
         if (loose_route()) {
                 t_relay();
                 break;
         };


        if (method == "INVITE") {
          if (uri =~"^sip:0[0-9]*@*"){
           log(1, "Check 1 succed Forwarding to Asterisk\n");
           rewritehostport("192.168.9.97:5061");
           t_relay();
           break;
          };
         };

      #    allow NOTIFY messages only from the Asterisk server
      #   if (method=="NOTIFY" & src_ip==192.168.9.97) {
      #    if (!t_relay()) {
      #    sl_reply_error();
      #    break;
      #    };
      #   };




         # if the request is for other domain use UsrLoc
         # (in case, it does not work, use the following command
         # with proper names and addresses in it)
         if (uri=~"create-net.it") {

           if (method=="REGISTER") {
            log(1,"registrazione da utente\n");
           # Uncomment this if you want to use digest authentication
           # if (!www_authorize("create-net.it", "subscriber")) {
           #  www_challenge("create-net.it", "0");
           #  break;
           #             };

            save("location");
            break;
           };

           # native SIP destinations are handled using our USRLOC DB
         if (!lookup("location")) {
             sl_send_reply("404", "Not Found");
             break;
             };
            };
         # forward to current uri now; use stateful forwarding; that
         # works reliably even if we forward from TCP to UDP
            if (!t_relay()) {
                 sl_reply_error();
            };




}






-- 
=======================================
  Matteo Piazza, Junior Researcher
  CREATE-NET
  Via Solteri, 38 - 38100 Trento - Italy
  email: matteo.piazza at create-net.it
  Tel: +39-0461-408400ext:308
  www.create-net.it
=======================================




More information about the sr-users mailing list