Hi,all
I've tried to use RADIUS(freeradius-0.9.1) to account with SER(ser-0.9.3).But I can't account BYE or CANCEL messages,while I can account INVITE and ACK.
In ser.cfg I write as follows:
...
modparam("acc", "log_level", 4)
modparam("acc", "radius_flag", 2)
modparam("acc", "radius_missed_flag", 3)
...
if (method=="INVITE") {
log(1, "INVITE\n");
if (!radius_proxy_authorize("")) {
proxy_challenge("", "0");
setflag(3);
break;
};
setflag(2);
};
if (method=="BYE" || method=="CANCEL") {
log (1, "BYE or CANCEL\n");\
setflag(2);
};
...
What's wrong with it?Is there anything I miss to configure?
Please give me any hint and thanks a lot.
Where does one get commercial level, priority support for openser. We
are a voip provider looking towards basing the second revision of our
network on openser. I have been able to get most things working but
some applications like using serial forking for call hunt, a custom
cnam module, and getting some modules (avpops, and uac_redirect) to
perform as documented are beyond my experience with the software. We
do however have time constraints so I ask simply, where can I get
priority per incident support for openser as my e-mails to voice-
sistem.ro have been unanswered. Any help is greatly appreciated. Also
congratulations to the developers on the 1.0 release you are the guys
that give guys like me hope. Thank you very much for openser, I hope
I get the chance to work with you in the future.
Hi all
Yesterday, I downloaded and scanned my stable SER system (production), and it stoped responding to Subscriber requests.
The Tool is at http://vopsecurity.org/sivus-1.09.exe, remember to have JRE installed on Windows.
I deployed the configuration guideline at onsip, OpenSER 0.9.5
Anyone have tested the Security Scanner, pls. help
Brgds
Hoa
I have downloaded and untar'd SER on a hosted server. According to
install doc's I should be able to use ser start from /etc/rc.d/init.d
under Fedora but, nothing. Does anyone have a more detailed install
guide? I'm quite new to Linux, sorry. I'm not sure whether I need to
build the program either, the guide appears tobe a little vague.
Hi everybody,
Is there a reason why fix_nated_contact() only works for UDP?
My problem is that in the case of TCP and tcp-aliases only the port is
taken from the via-header. The IP-addr is taken from the source of the
packet. This leads to the fact that in case of NAT and TCP no
alias-mapping is found....
If I comment the lines in nathelper.c which exclude the use of TCP all
works fine - so what is the reason for fix_nated_contact() to be only
processed with UDP?
Any reasons for this?
regards,
Philipp
Can someone send me the structure of the auth_user table for CDRTool. I just
downloaded CDRTool-3.3.5 and followed the install instructions. When I run
"./setup_mysql.sh password localhost" I get the following error: ERROR 1146
(42S02) at line 1: Table 'cdrtool.auth_user' doesn't exist
Thanks,
Josh
I can not find a single reference to a table creation in any files. see
below:
[root@localhost CDRTool]# pwd
/var/www/CDRTool
[root@localhost CDRTool]# grep -R auth_user *
accounts_lib.phtml: $query="select * from auth_user";
accounts.phtml: $query="delete from auth_user";
accounts.phtml: $query="update auth_user set
accounts.phtml: $query="select * from auth_user";
accounts.phtml: $query="insert into auth_user
log.phtml: $query="select * from auth_user where perms like '%admin%'";
phplib/local.inc: var $database_table = "auth_user";
phplib/local.inc: $this->db->query("select * from auth_user where
phplib/local.inc: $update="update auth_user
setup/mysql/alter_tables.mysql:alter table auth_user change column
only_customer domainFilter varchar(255) not null;
setup/mysql/alter_tables.mysql:alter table auth_user change column
only_cscode codeFilter varchar(255) not null;
setup/mysql/alter_tables.mysql:alter table auth_user change column only_cli
aNumberFilter varchar(255) not null;
setup/mysql/alter_tables.mysql:alter table auth_user change column
only_after_date afterDateFilter varchar(255) not null;
setup/mysql/alter_tables.mysql:alter table auth_user drop column
only_cardservice;
setup/mysql/alter_tables.mysql:alter table auth_user drop column
only_cardclass;
setup/mysql/alter_tables.mysql:alter table auth_user change column
display_card compidFilter varchar(255) not null;
setup/mysql/alter_tables.mysql:alter table auth_user add column
serviceFilter varchar(255) not null after codeFilter;
setup/mysql/alter_tables.mysql:alter table auth_user change column
codeFilter cscodeFilter varchar(255) not null;
setup/mysql/create_data.mysql:INSERT INTO auth_user VALUES
('c14cbf141ab1b7cd009356f555b607dc','admin','admin','admin,callsearch,statis
tics,sqlquery','2099-01-02','AG
Projects','Administrator','+31208005160','support(a)1example.com','1','','',''
,'','','','','ser_radius,cisco,asterisk,ser_acc,ser_missed_calls','0','','20
10-07-11 04:48:00','xj28k');
SOAP/server_lib.php: $query="select * from auth_user
Valued Colleagues,
Can anyone tell me what is scope of the "flags" used in ser.cfg?
When I do a "setflag(3)", is it valid throughout a :
- Transaction?
- Dialogue?
- Call?
I do a "setflag(3)" when I receive an INVITE and expect the flag 3 to
be set when I receive the associated BYE. However, when I do an
"isflagset(3)" when I receive the BYE, the flag is not set?!
Can someone tell me why?!
Thanks
ramin
I have an unusual need: If a contact in the usrloc database is
unreachable for any reason, I must immediately delete it from the usrloc
database. I know how to do the deletion, but I don't know the right way
to write my configuration script.
Below is the script that I want to write. But I think it won't work,
because I think it's illegal for a failure_route block to call a route()
command. (Am I correct about that?)
Can anyone tell me what I should do instead of the following?
Thank you in advance!
Tim
==============
route {
[...irrelevant stuff omitted...]
if (method==INVITE) {
route(1);
}
}
route[1] {
if (lookup("location")) {
t_on_failure("99");
t_relay();
} else {
t_reply("404","Not Found");
}
}
failure_route[99] {
delete_location_from_usrloc(); # I will write this function.
route(1);
}
==============
I followed the instructions, still can't get calls logged by the acc.
Here is my ser.cfg. What am I doing wrong? Do I need to use db
parameters in acc module? I get "not found" when I try to use these.
------------------------------------------------------------
[root@localhost ser]# ser -E
0(11826) set_mod_param_regex: parameter <db_url> not found in module
<acc>
0(11826) parse error (82,58-59): Can't set module parameter
0(11826) set_mod_param_regex: parameter <db_missed_flag> not found in
module <acc>
0(11826) parse error (83,36-37): Can't set module parameter
0(11826) set_mod_param_regex: parameter <db_flag> not found in module
<acc>
0(11826) parse error (84,29-30): Can't set module parameter
ERROR: bad config file (3 errors)
-------------------------------------------------------------
Ser.cfg file
------------------------------------------------------------
#
# $Id: ser.cfg,v 1.25.2.1 2005/02/18 14:30:44 andrei Exp $
#
# simple quick-start config script
#
# ----------- global configuration parameters ------------------------
#debug=4 # debug level (cmd line: -dddddddddd)
#fork=yes
#log_stderror=no # (cmd line: -E)
/* Uncomment these lines to enter debugging mode
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"
fifo_mode=0666
alias="10.100.1.79"
alias="sip.ipc.com"
sip_warning=yes
listen="10.100.1.79"
# ------------------ 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"
loadmodule "/usr/local/lib/ser/modules/fork.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 "/root/usr/local/lib/ser/modules/acc.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)
modparam("acc", "log_fmt", "fimos")
modparam("acc", "log_level", 1)
modparam("acc", "log_flag", 1)
modparam("acc", "log_missed_flag", 2)
modparam("acc", "report_ack", 0)
modparam("acc", "failed_transactions", 1)
modparam("acc", "early_media", 1)
modparam("acc", "db_url", "sql://ser:heslo@localhost/ser")
modparam("acc", "db_missed_flag", 2)
modparam("acc", "db_flag", 1)
modparam("usrloc", "db_url", "mysql://ser:heslo@localhost/ser")
modparam("usrloc", "db_mode", 2)
# ------------------------- 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 >= 2048 ) {
sl_send_reply("513", "Message too big");
break;
};
if (method =="INVITE"){
log(1, "INVITE MESSAGE RECEIVED-START ACCOUNTING\n");
setflag(1);
};
if (method=="BYE" || method=="CANCEL"){
log(1, "STOP ACCOUNTING\n");
setflag(1);
}
if (uri=~"^sip:90[0-9][0-9]@") {
rewritehost("ns.sip.ipc.com");
forward(uri:host,uri:port);
break;
}
if (uri=~"^sip:95[0-9][0-9]@") {
if (method=="REGISTER") {
sl_send_reply("488", "Not Acceptable Here");
break;
}
if (!fork_dset( )) {
sl_send_reply("404", "Not Found");
}
else {
if (!t_relay( )) {
sl_reply_error( );
}
}
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("iptel.org", "subscriber")) {
# www_challenge("iptel.org", "0");
# break;
# };
save("location");
break;
};
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();
};
}
Paul