[Serusers] pc2pc problem
andayesh
andayesh at digitalclone.net
Thu May 20 14:15:21 CEST 2004
Hi,
In the case of following script in configuration file, client1's ack would
not reach the client1, but if I comment "record_route();" everything will
works fine.
if (method=="INVITE")
{
log(1, "INVITE\n");
record_route();
};
What's the problem with my config file:
#
# $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
debug=2
log_stderror=yes
*/
debug=255
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 ----------------------------------
loadmodule "/usr/local/lib/ser/modules/print.so"
loadmodule "/usr/local/lib/ser/modules/textops.so"
loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
# Uncomment this if you want to use SQL database
loadmodule "/usr/local/lib/ser/modules/mysql.so"
loadmodule "/usr/local/lib/ser/modules/auth_radius.so"
loadmodule "/usr/local/lib/ser/modules/group_radius.so"
loadmodule "/usr/local/lib/ser/modules/uri_radius.so"
loadmodule "/usr/local/lib/ser/modules/pa.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/usrloc.so"
loadmodule "/usr/local/lib/ser/modules/registrar.so"
loadmodule "/usr/local/lib/ser/modules/acc.so"
loadmodule "/usr/local/lib/ser/modules/xlog.so"
#loadmodule "/usr/local/lib/ser/modules/jabber.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 ---------------
modparam("auth_radius",
"radius_config","/usr/local/etc/radiusclient/radiusclient.conf")
modparam("registrar", "default_expires", 120)
modparam("registrar", "use_domain", 1)
# -- usrloc params --
modparam("usrloc", "use_domain", 1)
modparam("usrloc", "db_mode", 0)
# -- jabber params --
#modparam("jabber", "db_url", "sql://ser:dclone@217.11.17.36/ser")
#modparam("jabber", "jaddress", "localhost")
#modparam("jabber", "jport", 5222)
#modparam("jabber","workers",2)
#modparam("jabber","max_jobs",10)
#modparam("jabber","cache_time",200)
#modparam("jabber","delay_time",60)
#modparam("jabber","jdomain","wcpserver.digitalclone.net=*")
#modparam("jabber", "jdomain", "wcpserver.digitalclone.net=*")
#modparam("jabber","aliases","4;yahoo.wcpserver.digitalclone.net")
#modparam("jabber","aliases","4;aim.wcpserver.digitalclone.net;icq.wcpserver
.digitalclone.net;msn.wcpserver.digitalclone.net=%;yahoo.wcpserver.digitalcl
one.net;")
# -- usrloc params --
modparam("auth_db", "db_url","sql://ser:dclone@217.11.17.36/ser")
modparam("usrloc", "db_url","sql://ser:dclone@217.11.17.36/ser")
#modparam("acc", "db_url","sql://ser:dclone@217.11.17.36/ser")
#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)
# -- acc params --
modparam("acc", "log_level", 1)
# that is the flag for which we will account -- don't forget to
# set the same one :-)
#modparam("acc", "log_flag", 1 )
modparam("acc", "radius_flag", 1 )
modparam("xlog", "buf_size", 8192)
# ------------------------- request routing logic -------------------
# main routing logic
route
{
xlog("L_WARN ", "\n\n time [%Tf]\n method <%rm>\n r-uri <%ru>\n
call-id <%ci >\n cseq <%cs>\n contact header <%ct>\n From uri <%fu>\n From
tag <%ft>\n");
xlog("L_WARN ", "To uri <%tu>\n To tag <%tt>\n SIP message id
<%mi>\n IP source address <%is>\n\n");
if ( !mf_process_maxfwd_header("10") )
{
sl_send_reply("483","To Many Hops");
drop();
};
/* record-route INVITEs -- all subsequent requests must visit
us */
if (method=="INVITE")
{
log(1, "INVITE\n");
# record_route();
};
# for testing purposes, simply okay all REGISTERs
if (method=="REGISTER")
{
log(1, "Register\n");
if (t_newtran())
{
save("location");
log("REGISTER received -> reply okay\n");
};
if(search("egistration"))
{
log(1, "egistration\n");
sl_send_reply("200", "Accepted");
}
else
{
log(1, "not egisteration\n");
sl_send_reply("200", "Accepted");
};
break;
};
if (method=="SUBSCRIBE")
{
log(1, "Subscribe\n");
if (t_newtran())
{
log(1, "Registrar\n");
handle_subscription("registrar");
};
break;
};
if (method=="ACK")
{
log(1, "ACK\n");
break;
};
if (method=="BYE")
{
log(1, "BYE\n");
break;
};
if (method=="CANCEL")
{
log(1, "CANCEL\n");
break;
};
if (method=="INFO")
{
log(1, "INFO\n");
break;
};
if (method=="MESSAGE")
{
log(1, "MESSAGE\n");
break;
};
if (method=="NOTIFY")
{
log(1, "NOTIFY\n");
break;
};
if (method=="UNSUBSCRIBE")
{
log(1, "UNSubscribe\n");
break;
};
#forward international N digit requests to gateway
if(uri=~"^sip:[0-9]*@")
{
rewritehostport("217.218.68.12:5060");
log(1,">>>>>>>>>>>>international
expression match\n");
#addRecordRoute();
route(2);
break;
};
if(!lookup("location"))
{
sl_send_reply("404","Not found");
break;
};
if (!t_relay())
{
log(1, "t_relay\n");
sl_reply_error();
};
setflag(1);
}
route[2]
{
forward(uri:host, uri:port);
log(1,"route[2]:SIP-to-PSTN call routed\n");
if(!t_relay())
{
sl_reply_error();
};
}
More information about the sr-users
mailing list