Thanks first of all Bogdan,
But what is relevence of the acc table in database. it seems much like raw
CDR record.
My problem is it is not getting updated at all. bit sip-trace table is
getting the SIP messages recorded..
Even if I would populate acc table online is like an achivement for me.
but how to do it from configuration.
Thanks again,
Madhusudan
Bogdan-Andrei Iancu <bogdan(a)voice-system.ro>
10/19/2006 01:18 AM
To
Madhusudan.Jarhad(a)lntinfotech.com
cc
users(a)openser.org
Subject
Re: [Users] How to configure acc modue
Hi,
the acc module does not generate CDRs, but start / stop events you can
use for generating CDRs
do you get the logs? be sure to set in the scrip the configured acc
flags!!
regards,
bogdan
Madhusudan.Jarhad(a)lntinfotech.com wrote:
Dear All,
Here is very basic question from me.
I have installed openser 1.1.0. I want to record the CDR / Accounts of
calles and messages being processed. I have acc module in my
opense.cfg and parameter setting is as follows
# ----------------- SETTING MODULE-SPECIFIC PARAMETERS ---------------
## - - - - - - - - - - XLOG PARAMETERS - - - - - - - - - - - - - - -
modparam("xlog", "force_color", 0)
# - - - - - - - - - USRLOC PARAMS - - - - - - - - - - - - - - - - - -
#modparam("usrloc", "db_mode", 1)
# Uncomment this if you want to use SQL database
# for persistent storage and comment the previous line
modparam("usrloc", "db_mode", 2)
modparam("usrloc", "db_url",
"mysql://openser:openserrw@localhost/openser")
# - - - - - - 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")
#modparam("alias_db", "user_column", "username")
modparam("auth_db", "password_column", "password")
## - - - - - AUTH RADIUS - - - - -
#modparam("auth_radius", "radius_config",
"/usr/local/etc/radiusclient-ng/radiusclient.conf")
#modparam("auth_radius", "service_type", 15)
## - - - - - RR MODULE PARAMETERS - - - - -
# add value to ;lr param to make some broken UAs happy
modparam("rr", "enable_full_lr", 1)
modparam("rr", "append_fromtag", 1)
modparam("rr", "enable_double_rr", 1)
modparam("rr", "add_username", 1)
## - - - - - ACCOUNTING PARAMETERS - - - - - - - -
modparam("acc", "detect_direction", 1)
modparam("acc", "failed_transaction_flag", 1)
modparam("acc", "report_cancels",1)
modparam("acc", "report_ack", 1)
modparam("acc", "early_media", 1)
modparam("acc", "detect_direction", 1)
modparam("acc", "report_cancels", 1)
modparam("acc", "log_level", 1)
modparam("acc", "log_flag", 1)
modparam("acc", "log_missed_flag", 1)
#modparam("acc", "log_extra",
"ua=$hdr(User-Agent);uuid=$avp(i:123)")
modparam("acc", "service_type", 15) # user 16 to set to Radius
modparam("acc", "db_flag", 2)
modparam("acc", "db_missed_flag", 3)
modparam("acc", "db_url",
"mysql://openser:openserrw@localhost/openser")
modparam("acc", "db_table_acc", "acc")
modparam("acc", "db_table_missed_calls", "missed_calls")
modparam("acc", "db_missed_flag", 3)
modparam("acc", "acc_sip_method_column", "sip_method")
modparam("acc", "acc_from_uri_column", "from_uri")
modparam("acc", "acc_fromtag_column", "fromtag")
modparam("acc", "acc_to_uri_column", "to_uri")
modparam("acc", "acc_totag_column", "totag")
#modparam("acc", "acc_cseqno_column", "cseq_no")
modparam("acc", "acc_sip_callid_column", "sip_callid")
modparam("acc", "acc_time_column", "time")
# for mysql-based accouting, use the names of the columns
# for RADIUS-based accouting, use the names of the RADIUS AVPs
#modparam("acc",
"multi_leg_info","RAD_LEG_SRC=$avp(src);RAD_LEG_SRC=$avp(dst)")
#modparam("acc",
"multi_leg_info","leg_src=$avp(src);leg_dst=$avp(dst)")
#modparam("avpops", "avp_aliases", "uuid=I:50")
modparam("acc", "radius_config",
"/usr/local/etc/radiusclient-ng/radiusclient.conf")
#modparam("acc", "radius_config",
"/etc/openser/radius/client.conf")
#modparam("acc", "radius_flag", 2)
#modparam("acc", "diameter_missed_flag", 3)
#modparam("acc", "radius_extra", "Sip-RPid=$avp(s:rpid)
Source-IP=$si; Source-Port=$sp"
# Canonical-URI=$avp($can_uri); \
#
Billing-Party=$avp($billing_party); \
#
Divert-Reason=$avp(s:divert_reason); \
#
X-RTP-Stat=$avp(s:rtp_statistics); \
# From-Header=$hdr(from); \
# User-Agent=$hdr(user-agent); \
# Contact=$hdr(contact); \
# Event=$hdr(event)")
## - - - - - - JABBER SERVER CONFIGURATION - - - - - - - - -
modparam("jabber", "jdomain", "jabber.sipserver.com=*")
modparam("jabber", "db_url",
"mysql://openser:openserrw@localhost/openser")
modparam("jabber", "jdomain",
"sipx.vshodc.lntinfotech.com")
## - - - - - - - - - - - SIPTRACE MODULES PARAMETERS - - - - - - - - -
modparam("siptrace", "trace_flag", 0)
modparam("siptrace", "db_url",
"mysql://openser:openserrw@localhost/openser")
modparam("siptrace", "trace_on", 1)
modparam("siptrace", "table", "sip_trace")
modparam("siptrace", "duplicate_uri",
"sip:172.17.85.51:5888")
# ------------------------- request routing logic -------------------
# main routing logic
route{
## ADDED BY MADHUSUDAN
# avp_write("caller_id", $avp(name); #"$uuid");
# avp_printf("i:20", "$avp($uuid): $fu");
# xdbg("$Cbgi:20$Cxx [$avp(i:20)] $Cbrcseq$Cxx=[$hdr(cseq)]\n");
# setflag(1); /* set for accounting (the same value as in log_flag!)*/
# t_relay(); /* enter stateful mode now */
##
sip_trace();
# xlog("L_ERR", "time [$Tf] method <$rm> r-uri <$ru> 2nd
via
<$hdr(via[1])>\n");
# setflag(1); /* set for accounting (the same value as in
log_flag!)*/
# t_relay(); /* enter stateful mode now */
# if (t_newtran()) {
# log("UAS logic");
# t_reply("999","hello");
# } else sl_reply_error();
################
if (t_local_replied("all")) {
log ("no reply received\n");
}
# 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");
exit;
};
if (msg:len >= 2048 ) {
sl_send_reply("513", "Message too big");
exit;
};
# 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);
};
if (!uri==myself) {
# mark routing logic in request
append_hf("P-hint: outbound\r\n");
# if you have some interdomain connections via TLS
#if(uri=~"(a)tls_domain1.net") {
# t_relay("tls:domain1.net");
# exit;
#} else if(uri=~"(a)tls_domain2.net") {
# t_relay("tls:domain2.net");
# exit;
#}
route(1);
};
# 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("openser.org",
"subscriber")) {
# www_challenge("openser.org", "0");
# exit;
#};
save("location");
exit;
};
lookup("aliases");
if (!uri==myself) {
append_hf("P-hint: outbound alias\r\n");
route(1);
};
# native SIP destinations are handled using our USRLOC
DB
if (!lookup("location")) {
sl_send_reply("404", "Not Found");
exit;
};
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();
};
exit;
}
onreply_route[1] {
if (t_check_status("1[0-9][0-9]")) {
setflag(1);
log("provisional reply received\n");
if (t_check_status("183"))
drop;
}
if (t_was_cancelled()) {
log("transaction was cancelled by UAC\n");
}
}
###################################################################
My need is to get the CDRs for events and volume like MESSAGES and
download/file transfer respectively.
Please help
______________________________________________________________________
------------------------------------------------------------------------
_______________________________________________
Users mailing list
Users(a)openser.org
http://openser.org/cgi-bin/mailman/listinfo/users
______________________________________________________________________
______________________________________________________________________