Try to put setflag(1) before the record_route() statement. This is just to make sure that the flag is really set for all transactions.
If you still get no records, check out ser logs and try to find some error message.
Jan.
On 29-01 02:12, Live_Wire_Net_Matt_Hess wrote:
I'm trying hard to get a handle on configuring ser but I think I need a few hints..
I thought I was doing the accounting right but the acc table never receives any information.. In my reading I thought by using setflag(x) where x was the same number as the db_flag number stateful accounting records would be automatic.. is this wrong..?
Can someone clue me in as to what I'm doing wrong as I just can't get this.
Here's my config if it helps at all:
# ----------- global configuration parameters ------------------------
debug=3 # debug level (cmd line: -dddddddddd) fork=yes
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=4 fifo="/tmp/ser_fifo" fifo_mode=0666
alias="voip.domain.com"
# ------------------ 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/maxfwd.so" loadmodule "/usr/local/ser/lib/ser/modules/rr.so" loadmodule "/usr/local/ser/lib/ser/modules/textops.so" loadmodule "/usr/local/ser/lib/ser/modules/vm.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/auth.so" loadmodule "/usr/local/ser/lib/ser/modules/auth_db.so" loadmodule "/usr/local/ser/lib/ser/modules/acc.so" loadmodule "/usr/local/ser/lib/ser/modules/group.so"
# ----------------- setting module-specific parameters ---------------
modparam("voicemail", "db_url","mysql://ser:heslo@localhost/ser") modparam("voicemail", "email_column", "email_address") modparam("voicemail", "subscriber_table", "subscriber") modparam("voicemail", "user_column", "username") modparam("usrloc", "db_mode", 2) modparam("auth_db", "calculate_ha1", yes) modparam("auth_db", "password_column", "password") modparam("rr", "enable_full_lr", 1) modparam("acc", "log_level", 1) modparam("acc", "log_flag", 1) modparam("acc", "log_missed_flag", 2) modparam("acc", "db_url", "mysql://ser:heslo@localhost/ser") modparam("acc", "db_flag", 1) modparam("acc", "db_missed_flag", 2) modparam("group", "db_url", "mysql://ser:heslo@localhost/ser") modparam("group", "table", "grp") modparam("group", "user_column", "username") modparam("group", "domain_column", "domain") modparam("group", "group_column", "grp") # If set to 1 then username@domain will be used for lookup, if # set to 0 then only username will be used. modparam("group", "use_domain", 0)
# ------------------------- 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")) { t_reply("483","Too Many Hops"); break; }; if ( msg:len > max_len ) { t_reply("513", "Message too big"); break; };
record_route(); if (loose_route()) { t_relay(); break; };
# label all transactions for accounting setflag(1);
# decide if callee has voicemail if (is_user_in("Request-URI", "voicemail")) { setflag(4); };
# decide if caller is allowed long distance if (is_user_in("From", "ld")) { setflag(5); };
# only process for our sip domain if (uri==myself) {
# authorize and save location if (method=="REGISTER") { if (!www_authorize("voip.domain.com", "subscriber")) { www_challenge("voip.domain.com", "1"); sl_send_reply("404", "Incorrect Authorization"); break; }; save("location"); break; };
# lookup and handle local users first if (lookup("location")) { t_relay(); break; } else { if ((method=="INVITE" || method=="ACK") && t_newtran() ) { # new call to offline user with voicemail flag if (isflagset(4)) { route(4); break; }; route(5); break; }; };
if (!t_relay()) { sl_reply_error(); break; };
} else { t_reply("404","UA Configuration error - Incorrect domain"); break; };
} # end main route
route[4] {
# Voicemail specific configuration - begin if(method=="ACK" || method=="INVITE" || method=="BYE" || method=="REFER"){ if(t_newtran()){ t_reply("100","Trying -- just wait a minute !"); if(method=="INVITE" || method=="REFER"){ log("**************** vm start - begin ******************\n"); if( uri =~ "conference" ){ if(!vm("/tmp/am_fifo","conference")){ log("could not contact conference server\n"); t_reply("500","could not contact conference server"); }; } else if( uri =~ "echo" ){ if(!vm("/tmp/am_fifo","echo")){ log("could not contact echo\n"); t_reply("500","could not contact echo"); }; } else { if(!vm("/tmp/am_fifo","voicemail")){ log("could not contact voicemail\n"); t_reply("500","could not contact voicemail"); }; }; log("**************** vm start - end ******************\n"); break; };
if(method=="BYE"){ log("**************** vm end/refer - begin ******************\n"); if(!vm("/tmp/am_fifo","bye")){ log("could not contact the media server\n"); t_reply("500","could not contact the media server"); }; log("**************** vm end/refer - end ********************\n"); break; }; } else { log("could not create new transaction\n"); t_reply("500","could not create new transaction"); };
}; # Voicemail specific configuration - end
}
route[5] {
# protect the pstn from having to bother with calls to our local blocks if (uri=~"^sip:555") { t_reply("404","no such user"); break; };
# dial plan routing - long distance or local lata/tandem transit if ((uri=~"^sip:1") && (isflagset(5))) { rewritehostport("172.16.0.7:5060"); t_relay(); break; };
if (uri=~"^sip:7") { rewritehostport("172.16.0.5:5060"); t_relay(); break; };
if (uri=~"^sip:3") { rewritehostport("172.16.0.5:5060"); t_relay(); break; };
t_reply("404","Not Found"); break;
}
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers