my ser.cfg file is attached below.
any help/pointers for what the problem may be would be great.
the problem comes when i dial anynumber starting with '3'
i want 8001211 to be dialed and if there is failure, then 8001210 to be
dialed.
thanks,
tulika
#
# $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)
/* 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"
# ------------------ module loading ----------------------------------
# Uncomment this if you want to use SQL database
loadmodule "/usr/lib/ser/modules/mysql.so"
loadmodule "/usr/lib/ser/modules/sl.so"
loadmodule "/usr/lib/ser/modules/tm.so"
loadmodule "/usr/lib/ser/modules/rr.so"
loadmodule "/usr/lib/ser/modules/maxfwd.so"
loadmodule "/usr/lib/ser/modules/usrloc.so"
loadmodule "/usr/lib/ser/modules/registrar.so"
loadmodule "/usr/lib/ser/modules/acc.so"
# Uncomment this if you want digest authentication
# mysql.so must be loaded !
loadmodule "/usr/lib/ser/modules/auth.so"
loadmodule "/usr/lib/ser/modules/auth_db.so"
loadmodule "/usr/lib/ser/modules/exec.so"
loadmodule "/usr/lib/ser/modules/uri.so"
loadmodule "/usr/lib/ser/modules/textops.so"
loadmodule "/usr/lib/ser/modules/xlog.so"
# ----------------- setting module-specific parameters ---------------
# -- usrloc params --
modparam("usrloc", "db_mode", 2)
# -- auth params --
modparam("auth_db", "db_url",
"sql://ser:heslo@localhost/ser")
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)
modparam("acc", "log_level", 1)
modparam("acc", "db_flag", 1)
modparam("tm", "fr_inv_timer", 15)
modparam("tm", "fr_timer", 10)
# 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 # loose-route processing
if (loose_route()) {
t_relay();
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) record_route();
if (uri==myself) {
if (method=="REGISTER") {
save("location");
break;
};
if (method==INVITE) {
if (uri=~"^sip:0[0-9]*@") {
log(1, "beginning with 0\n");
rewritehost("192.168.1.201");
rewriteport("5060");
t_relay_to_udp("192.168.1.201","5065");
break;
} else if (uri=~"^sip:500@") {
log(1, "Accessing Voicemail\n");
setflag(1);
rewriteport("5065"); } else if
(uri=~"^sip:3[0-9]*@203.197.212.208") {
# call hunt numbers beginning with 3
log(1, "beginning with 3\n");
seturi("sip:8001211@192.168.1.201");
append_hf("P-hint: call hunt\r\n");
xlog("L_ERR", "time [%Tf] method
<%rm> r-uri
<%ru> <%tu>\n");
t_on_failure("1");
t_relay();
}
if (!lookup("location")) {
if (search("(P-hint): call hunt")) {
log(1, "Call Hunt number not in
location- Hangup\n");
#exec_msg("echo $SIP_OUSER >>
/root/temp; echo $SIP_USER >> /root/temp; echo $SIP_OURI >> /root/temp; echo
$SIP_RURI >> /root/temp");
# goto next number
exec_dset("/etc/ser/getnextnumber1
$SIP_OUSER; echo>/dev/null;");
xlog("L_ERR", "time [%Tf] method
<%rm> r-uri <%ru> <%tu>\n");
t_relay();
} else {
log(1, "Asterisk forwarding as user not logged
in..\n");
rewritehost("192.168.1.201");
rewriteport("5065");
t_relay_to_udp("192.168.1.201","5065");
break;
}
}
t_on_failure("1");
}
}
if (!t_relay()) {
sl_reply_error();
};
}
failure_route[1] {
log(1,"Failure 1\n");
if (search("(P-hint): call hunt")) {
log(1, "Call Hunt number failure - Hangup\n");
append_branch("sip:8001210@192.168.1.201");
t_on_failure("2");
xlog("L_ERR", "time [%Tf] method <%rm> r-uri
<%ru>
<%tu>\n");
t_relay();
} else {
log(1, "Asterisk forwarding ..\n");
revert_uri();
rewritehostport(192.168.1.201:5065");
append_branch();
t_relay();
}
}
failure_route[2] {
#
log (1, "in failure route 2\n");
}
}
}
if (!t_relay()) {
t_relay_to_udp("192.168.1.201","5065");
break;
if (method!="REGISTER") record_route();
From: "Greger V. Teigre"
<greger(a)teigre.com>
To: "Tulika Pradhan" <tulikapradhan(a)hotmail.com>om>,
<serusers(a)lists.iptel.org>
Subject: Re: [Serusers] 408 to Caller UA when CANCEL to Callee
Date: Fri, 16 Sep 2005 08:36:53 +0200
Tulika,
This is not a function of SER, but your ser.cfg file. We have just
released a new Getting Started document at
onsip.org that you may use as a
reference to identify why your ser.cfg causes a 408 to be sent.
g-)
Tulika Pradhan wrote:
hi,
i am facing the following situation.
UA1 calls a user(UA2) who does not answer. the control comes to
failure_route where i try another UA (UA3). but as UA3 rings, SER
sends 408 Request timeout to UA1 and call gets disconnected.
this is the SIP message flow.
UA1 SER UA2
UA3
INVITE---------------->
INVITE-------------->
<----------------TRYING
<----------------RINGING
<------------------RINGING
CANCEL-------------->
<---------------------408
INVITE---------------------------------------->
<---------------------487
ACK------------------->
<-----------------------OK
<-------------------------------------------TRYING
<--------------------------------------------RINGING
(but UA already has got the busy tone) and does not hear this ringing.
if 408 was not sent to UA1, then the call could have been established.
what is going wrong,
regards,
tulika
_______________________________________________
Serusers mailing list
serusers(a)lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serusers