hello,
i'm using ser 0.9.0 and acc module to log transactions, actually it
works but i need some help with two problems:
1) i would like to log acc messages to a different syslog facility, and
a different file, than general logs are logged.
-> my ser.cfg file contains:
log_facility=LOG_LOCAL0
loadmodule "/usr/local/ser/lib/ser/modules/acc.so"
# -- acc params --
# set the reporting log level
modparam("acc", "log_level", 1)
modparam("acc", "log_flag", 5)
#modparam("acc", "log_extra", "msg_body=$rb")
by setting log_level to 1, acc logs would be sent to LOG_LOCAL1
facility, is this right?
if not, what i could do to get this logs into a different file?
2) the second problem is that while the acc documentation documents
'log_extra' param:
http://www.voice-system.ro/docs/acc-headers/acc.html#AEN308
i'm getting errors the following error:
Sep 5 12:46:43 host ser: set_mod_param_regex: parameter <log_extra> not
found in module <acc>
Sep 5 12:46:43 host ser: parse error (104,19-20): Can't set module
parameter
what can be done?
thanks in advance,
topi
my /usr/local/ser/etc/ser.cfg:
#
# $Id: ser.cfg,v 1.25.2.1 2005/02/18 Exp $
#
# ----------- global configuration parameters ------------------------
debug=3 # debug level (cmd line: -dddddddddd)
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=3
fifo="/tmp/ser_fifo"
sip_warning=0
log_facility=LOG_LOCAL0
alias="192.168.123.2"
alias="ser.mynetwork.net"
# ------------------ module loading ----------------------------------
loadmodule "/usr/local/ser/lib/ser/modules/mysql.so"
loadmodule "/usr/local/ser/lib/ser/modules/sl.so"
loadmodule "/usr/local/ser/lib/ser/modules/tm.so"
loadmodule "/usr/local/ser/lib/ser/modules/rr.so"
loadmodule "/usr/local/ser/lib/ser/modules/maxfwd.so"
loadmodule "/usr/local/ser/lib/ser/modules/usrloc.so"
loadmodule "/usr/local/ser/lib/ser/modules/registrar.so"
loadmodule "/usr/local/ser/lib/ser/modules/textops.so"
# Uncomment this if you want digest authentication
# mysql.so must be loaded !
loadmodule "/usr/local/ser/lib/ser/modules/auth.so"
loadmodule "/usr/local/ser/lib/ser/modules/auth_db.so"
# accounting
loadmodule "/usr/local/ser/lib/ser/modules/acc.so"
# ----------------- setting module-specific parameters ---------------
# -- usrloc params --
modparam("usrloc", "db_mode", 0)
# -- rr params --
# add value to ;lr param to make some broken UAs happy
modparam("rr", "enable_full_lr", 1)
# -- acc params --
# set the reporting log level
modparam("acc", "log_level", 1)
# number of flag, which will be used for accounting; if a message is
# labeled with this flag, its completion status will be reported
modparam("acc", "log_flag", 5)
#modparam("acc", "failed_transactions", 1)
#modparam("acc", "log_extra", "msg_body=$rb")
#modparam("acc", "log_extra",
"ua=hdr/User-Agent;uuid=avp/i:123")
# ------------------------- 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=="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 (method == "INVITE" || method== "ACK" || method ==
"CANCEL"
|| method == "BYE") {
# accounting
setflag(5);
};
#
--------------------------------------------------------------------
# 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") {
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();
};
}