Hi Bogdan,
Exactly that was the problem ;-) After removing the proxy_route param
call forward on busy or no answer works. Is it possible to control the
timeout value for call forward on no answer via the CPL script? Only
changing "modparam("tm","fr_inv_timer",30)" in ser.cfg seems
to take
effect. Again, many thanks for your help.
Regards,
Oliver
Bogdan-Andrei IANCU [mailto:iancu@fokus.fraunhofer.de] wrote
Hi Oliver,
The problem is in your configuration :-). cpl-c module param
"proxy_route" doesn't refer to a route that does proxy(relying) as you
configure, but to a route to be processed before cpl-c does proxy (this
is does internally). So. basically you were trying to do twice
transaction creations and req. relaying.
so, in your case, please remove the "proxy_route" param.
bogdan
Brinker, Oliver wrote:
Hi Bogdan,
please find attached my ser configuration. I'm using the cvs head
version downloaded two days ago (22.06.04). Should be actual enough ;)
Thanks a lot.
Regards,
Oliver
#
# $Id: ser.cfg,v 1.24 2003/11/11 15:32:36 andrei Exp $
#
# simple quick-start config script
#
# ----------- global configuration parameters ------------------------
# log into /var/log/messages
debug=9 # debug level (cmd line: -dddddddddd)
fork=yes
log_stderror=no # (cmd line: -E)
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"
# Additional Alias
alias="sip.et123lab.de"
# ------------------ 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"
loadmodule "/usr/local/lib/ser/modules/textops.so"
# CPL-C module
loadmodule "/usr/local/lib/ser/modules/cpl-c.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")
# -- rr params --
# add value to ;lr param to make some broken UAs happy modparam("rr",
"enable_full_lr", 1)
# -- cpl-c params --
modparam("cpl-c","cpl_db","mysql://xxxx:xxxx@localhost/ser")
modparam("cpl-c","cpl_table","cpl")
modparam("cpl-c","cpl_dtd_file","/usr/local/etc/ser/cpl-06.dtd")
modparam("cpl-c","log_dir","/var/log/ser/cpl")
modparam("cpl-c","proxy_recurse",2)
modparam("cpl-c","proxy_route",1)
modparam("cpl-c","lookup_domain","location")
# -- timer settings --
modparam("tm","noisy_ctimer",1) # this will force timeout
modparam("tm","fr_inv_timer",30) # sets the timeout for INVITE to 30
sec (default is 120)
# ------------------------- 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 (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
if (!method=="REGISTER") record_route();
# subsequent messages withing a dialog should take the
# path determined by record-routing
if (loose_route()) {
# mark routing logic in request
append_hf("P-hint: rr-enforced\r\n");
route(1);
break;
};
if (!uri==myself) {
# mark routing logic in request
append_hf("P-hint: outbound\r\n");
route(1);
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==myself) {
if (method=="REGISTER") {
# Uncomment this if you want to use digest authentication
if (!www_authorize("sip.et123lab.de", "subscriber")) {
www_challenge("sip.et123lab.de", "0");
break;
};
# handle REGISTER messages containing a CPL script
cpl_process_register();
save("location");
break;
};
# process CPL script
log("cpl: start script processing now");
cpl_run_script("incoming","FORCE_STATEFUL");
log("cpl: script processing has been finished");
lookup("aliases");
if (!uri==myself) {
append_hf("P-hint: outbound alias\r\n");
route(1);
break;
};
# native SIP destinations are handled using our USRLOC DB
if (!lookup("location")) {
sl_send_reply("404", "Not Found");
break;
};
};
append_hf("P-hint: usrloc applied\r\n");
route(1);
}
route[1]
{
# send it out now; use stateful forwarding as it works reliably
# even for UDP2TCP
if (!t_relay()) {
sl_reply_error();
};
}
Bogdan-Andrei IANCU [mailto:iancu@fokus.fraunhofer.de] wrote
Hi Oliver,
please send me your ser.cfg - it will help me to trace the problem.
Also
be sure you are using the latest cvs head version - there were some
updates 1 or 2 weeks ago.
Regards,
Bogdan
Brinker, Oliver wrote:
Hi Bogdan,
I solved the problem with SER startup. The reason was that I download
the CVS head onto my notebook and copy it via ftp to the linux server.
After downloading CVS head directly onto the linux server, compiling
and installing it SER starts up without any error message.
But I have still the problem with call forwarding on busy or no
answer.
Inserting log information into my CPL script I can reproduce that SER
is never processing the <busy> or <noanswer> tag and the following
tags. I try out the example script from the current IETF CPL draft for
Call Forward Busy/No Answer in the following scenario:
6131 forwards calls to 613 if busy -> 6131 has an active session with
614 -> 612 calls 6131 -> 6131 is busy and SER should invite 613
After uploading the CPL script for 6131 the caller 614 cannot reach
6131 and the syslog represents the attached error message.
Can you identify any mistake I've done in my configuration? Many
thanks.
Best Regards,
Oliver