Hi,
I am just trying the new ser version from CVS, and I get a too many hops error message when a client tries to register. Any idea? I am running ser on Linux. I have tried both kphone 3.1 and spic 2.?? as user agents. I am sure I must have missed something in my configuration file. I attach the current ser.cfg. thanks,
Stephan
Hi,
On Wednesday 07 May 2003 15:11, srm@cs.stir.ac.uk wrote:
I am just trying the new ser version from CVS, and I get a too many hops error message when a client tries to register. Any idea? I am running ser on Linux. I have tried both kphone 3.1 and spic 2.?? as user agents. I am sure I must have missed something in my configuration file. I attach the current ser.cfg. thanks,
i think your if (uri=="d254196.cs.stir.ac.uk") in line 92 is not correct because you probably will not receive any request with such an uri. At least their should be a leading 'sip:' in front of the hostname. So every request went down to the t_relay and voila their you have a nice loop which end with '483 Too many hops'.
Regards Nils Ohlmeier
Stephan,
line if (uri=="d254196.cs.stir.ac.uk") is wrong.
Operator == means exact match, but your Request-URI will contain more than d254196.cs.stir.ac.uk.
You can use regular expression matching (operator ~=) or better use uri==myself (in this case uncomment line containing alias=...).
Jan.
On 07-05 14:11, srm@cs.stir.ac.uk wrote:
Hi,
I am just trying the new ser version from CVS, and I get a too many hops error message when a client tries to register. Any idea? I am running ser on Linux. I have tried both kphone 3.1 and spic 2.?? as user agents. I am sure I must have missed something in my configuration file. I attach the current ser.cfg. thanks,
Stephan
debug=3 # debug level (cmd line: -dddddddddd) fork=yes log_stderror=yes # (cmd line: -E)
/* Uncomment these lines to enter debugging mode debug=7 fork=no log_stderror=yes */
check_via=no # (cmd. line: -v) dns=no # (cmd. line: -r) rev_dns=no # (cmd. line: -R) port=5060 children=4 fifo="/tmp/ser_fifo" #alias="d254196.cs.stir.ac.uk"
# ------------------ module loading ----------------------------------
# Uncomment this if you want to use SQL database 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"
# 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"
# ----------------- setting module-specific parameters ---------------
# -- usrloc params --
#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)
# -- auth params -- # Uncomment if you are using auth module # modparam("auth_db", "calculate_ha1", yes) # # If you set "calculate_ha1" parameter to yes (which true in this config), # uncomment also the following parameter) # modparam("auth_db", "password_column", "password")
# ------------------------- request routing logic -------------------
# main routing logic
route{
# initial sanity checks -- messages with # max_forwards==0, or excessively long requests if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); break; }; if (len_gt( 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 loose_route();
# 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=="d254196.cs.stir.ac.uk") {
if (method=="REGISTER") {
# Uncomment this if you want to use digest authentication if (!www_authorize("d254196.cs.stir.ac.uk", "subscriber")) { www_challenge("d254196.cs.stir.ac.uk", "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(); };
}