Hello
better use these function
acc_db_request("200","acc");
On 4/11/07, Tanguy Bouzéloc <tbouzeloc(a)init-sys.com> wrote:
Hello,
I've some issues with my mysql accounting, I can only log successful
calls in the acc table and I've no informations about missed calls. In
mysql accounting I've only sip 200 ok and no errors. I've not this
behavior in my syslog.
It's very important for us for evaluate the performance of our providers
and we can only do it with a database accouting.
For example, If I pass a call and I let it ring til operator timeout,
I've no trace of this call in the accounting table.
I've also another question, the lcr and gw tables have very small fixed
limits (256 for lcr and 32 for gw), since we have much more gateways and
sdas I've updated theses limits to a value which fit our needs, do you
thinks it can be a problem ?
Thanks in advance,
Tanguy Bouzéloc
Init-Sys
# ----------- global configuration parameters ------------------------
#debug=9
fork=yes
check_via=no
dns=no
rev_dns=no
port=5060
children=4
sip_warning=0
# ------------------ module loading ----------------------------------
loadmodule "/usr/lib/openser/modules/mysql.so"
loadmodule "/usr/lib/openser/modules/nathelper.so"
loadmodule "/usr/lib/openser/modules/sl.so"
loadmodule "/usr/lib/openser/modules/tm.so"
loadmodule "/usr/lib/openser/modules/rr.so"
loadmodule "/usr/lib/openser/modules/maxfwd.so"
loadmodule "/usr/lib/openser/modules/lcr.so"
loadmodule "/usr/lib/openser/modules/acc.so"
loadmodule "/usr/lib/openser/modules/xlog.so"
loadmodule "/usr/lib/openser/modules/textops.so"
loadmodule "/usr/lib/openser/modules/permissions.so"
# ----------------- setting module-specific parameters ---------------
modparam("lcr", "db_url", "mysql://???")
modparam("lcr", "db_mode", 0)
modparam("rr","enable_full_lr",1)
modparam("acc", "db_url", "mysql://???")
modparam("acc", "db_flag", 1)
modparam("acc", "db_localtime", 1)
modparam("acc", "log_level", 1)
modparam("acc", "log_flag", 1 )
modparam("permissions", "db_url", "mysql://???")
route {
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
return;
};
if (msg:len >= max_len ) {
sl_send_reply("513", "Message too big");
return;
};
if (!is_method("REGISTER")) {
record_route();
};
if (is_method("BYE") || is_method("CANCEL")) {
xlog("L_NOTICE", "End call($ci | $Ri): $fU ->
$tU");
if (is_method("BYE"))
setflag(1);
unforce_rtp_proxy();
};
if (loose_route()) {
route(1);
return;
};
if (!allow_trusted()) {
xlog("L_WARN", "Host not trusted ($fu/$si/$rP)");
sl_send_reply("403", "Forbidden");
exit;
};
if (!load_gws()) {
sl_send_reply("500", "Internal server error, unable to
load gateways");
return;
}
if (!next_gw()) {
xlog("L_ERR", "No gw found ($ru/$fu)");
sl_send_reply("503", "Service not available, no gateways
found");
return;
};
t_on_failure("2");
route(1);
}
route[1] {
setflag(1);
if (is_method("INVITE") || is_method("ACK")){
if (is_method("INVITE"))
xlog("L_NOTICE", "Incoming call($ci | $Ri): $fU
->
$tU");
if (!search("^Content-Length:[ ]*0"))
force_rtp_proxy("foc");
# if(src_ip == 217.15.85.178) {
# subst('/^From:.*<sip:(.*)@(.*)$/From: "\1"
<sip:\1/@\2');
# }
t_on_reply("1");
};
if (!t_relay()) {
sl_reply_error();
};
}
onreply_route[1] {
setflag(1);
if (status=~"[12][0-9][0-9]"){
if (!search("^Content-Length:[ ]*0"))
force_rtp_proxy("foc");
};
}
failure_route[2] {
if (t_check_status("400")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
400
Bad Request");
} else if (t_check_status("401")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
401
Unauthorized");
} else if (t_check_status("403")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
403
Forbidden");
} else if (t_check_status("404")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
404
Not Found");
} else if (t_check_status("405")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
405
Method Not Allowed");
} else if (t_check_status("406")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
406
Not Acceptable");
} else if (t_check_status("407")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
407
Proxy Authentication Required");
} else if (t_check_status("408")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
408
Request Timeout");
} else if (t_check_status("410")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
410
Gone");
} else if (t_check_status("413")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
413
Request Entity Too Large");
} else if (t_check_status("414")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
414
Request-URI Too Long");
} else if (t_check_status("415")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
415
Unsupported Media Type");
} else if (t_check_status("416")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
416
Unsupported URI Scheme");
} else if (t_check_status("420")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
420
Bad Extension");
} else if (t_check_status("421")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
421
Extension Required");
} else if (t_check_status("423")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
423
Interval Too Brief");
} else if (t_check_status("480")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
480
Temporarily Unavailable");
} else if (t_check_status("481")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
481
Call/Transaction Does Not Exist");
} else if (t_check_status("482")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
482
Loop Detected");
} else if (t_check_status("483")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
483
Too Many Hops");
} else if (t_check_status("484")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
484
Address Incomplete");
} else if (t_check_status("485")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
485
Ambiguous");
} else if (t_check_status("486")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
486
Busy Here");
} else if (t_check_status("487")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
487
Request Terminated");
} else if (t_check_status("488")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
488
Not Acceptable Here");
} else if (t_check_status("491")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
491
Request Pending");
} else if (t_check_status("493")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
493
Undecipherable");
} else if (t_check_status("500")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
500
Server Internal Error");
} else if (t_check_status("501")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
501
Not Implemented");
} else if (t_check_status("502")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
502
Bad Gateway");
} else if (t_check_status("503")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
503
Service Unavailable");
} else if (t_check_status("504")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
504
Server Time-out");
} else if (t_check_status("505")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
505
Version Not Supported");
} else if (t_check_status("513")) {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
513
Message Too Large");
} else {
xlog("L_NOTICE", "Failure call($ci | $Ri): $fU -> $tU
Unknown code");
}
setflag(1);
if (is_method("INVITE") &&
t_check_status("408|500|503")) {
if (!next_gw()) {
xlog("L_ERR", "No more gw ($ru/$fu)");
t_reply("486", "Busy");
# t_reply("503", "Service not available");
exit;
}
t_on_failure("2");
force_rtp_proxy("foc");
t_relay();
}
}
_______________________________________________
Users mailing list
Users(a)openser.org
http://openser.org/cgi-bin/mailman/listinfo/users
--
Thanks and Regards
Ravi Prakash Sunkara
ravi.sunkara(a)hyperion-tech.com
M:+91 9985077535