[OpenSIPS-Users] Accounting Problem
Bogdan-Andrei Iancu
bogdan at voice-system.ro
Thu Nov 20 19:21:14 CET 2008
Hi Dilip,
Try not to use the same flag for accounting flag and for missed_call
flag - this may lead to unpredictable behaviour .
Use different flags and see if the problem still persists.
Regards,
Bogdan
Dilip wrote:
> Hello Everybody,
> I am using freeradius+Openser for the accounting purpose.
> I explain using example.
> 1) This is working perfectly.
> A ===call to=> B
> Accounting is starting
> When A hangup the call then Accounting is stop and it makes
> the Entry in the db.
> Accounting stop message is generated and total session
> time is calculated.
> 2) This scenario is not working.
>
> A ===call to=> B
> Accounting is starting .
> When B hangup the call then Accounting is not happening and
> didnt get any msg at radius server side.
> So that the TotalSession time is becomes zero.
>
>
> For that i have attached my openser.cfg here.
>
>
>
> #openser version 1.1
> # ----------- global configuration parameters ------------------------
>
> debug=9 # debug level (cmd line: -dddddddddd
> fork=yes
> log_stderror=yes # (cmd line: -E)
> #log_facility=LOG_LOCAL5
> check_via=no # (cmd. line: -v)
> dns=no # (cmd. line: -r)
> rev_dns=no # (cmd. line: -R)
>
> #listen=0.0.0.0
> listen=udp:192.168.1.1
> port=3300
> children=8
> #fifo="/tmp/openser_fifo"
>
> #unix_sock_children=2
>
> # ------------------ module loading ----------------------------------
> mpath="/usr/local/lib/openser/modules"
>
> loadmodule "mysql.so"
> loadmodule "sl.so"
> loadmodule "tm.so"
> loadmodule "rr.so"
> loadmodule "maxfwd.so"
> loadmodule "usrloc.so"
> loadmodule "registrar.so"
> loadmodule "textops.so"
> loadmodule "xlog.so"
> loadmodule "uri.so"
> loadmodule "acc.so"
> loadmodule "auth.so"
> loadmodule "auth_radius.so"
> loadmodule "dispatcher.so"
> loadmodule "nathelper.so"
> loadmodule "enum.so"
> #loadmodule "mediaproxy.so"
> #loadmodule "uri_db.so"
> # ----------------- setting module-specific parameters ---------------
> #------------------ registrar testing---------------------------------
> modparam("registrar", "default_expires", 2250000)
>
> #------------------Dialog Module--------------------------------------
>
> # -- usrloc params --
> modparam("dispatcher", "list_file",
> "/usr/local/etc/openser/dispatcher.list")
> modparam("usrloc","db_url","mysql://openser:openserrw@localhost/openser")
> modparam("usrloc","db_mode", 3)
> modparam("usrloc", "timer_interval", 30)
> #modparam("usrloc", "expires_column", "225000")
> #modparam("usrloc", "cseq_delay", 60)
> #modparam("usrloc", "timer_interval", 30)
> #modparam("usrloc","desc_time_order", 1)
> #modparam("usrloc", "matching_mode", 1)
> #modparam("registrar", "desc_time_order", 1)
> modparam("usrloc", "desc_time_order", 0)
> #modparam("registrar", "max_contacts", 1)
>
> # -- acc params --
>
> #################################################################################
> #modparam("acc", "failed_transaction_flag", 1)
> #modparam("acc", "report_cancels", 0)
> #modparam("acc", "report_ack", 0)
> #modparam("acc", "early_media", 0)
>
> #modparam("acc", "log_level", 1)
> modparam("acc", "log_flag", 1)
> modparam("acc", "log_missed_flag", 2)
>
> modparam("acc", "service_type", 15)
> modparam("acc|auth_radius",
> "radius_config","/etc/radiusclient-ng/radiusclient.conf")
> modparam("acc", "radius_flag", 1)
> modparam("acc", "radius_missed_flag", 1)
>
> modparam("acc", "radius_extra", "
> Called-Station-Id=$tu;
> Calling-Station-Id=$fu;
> Canonical-URI=$tu;
> User-Name=$au;
> Sip-User-Realm=$ar;
> Source-IP=$si;
> Source-Port=$sp;
> From-Header=$hdr(from);
> User-Agent=$hdr(user-agent);
> Contact=$hdr(contact);
> ENUM-TLD=$avp(s:enum_tld);
> Event=$hdr(event)")
>
>
>
> # -- rr params --
> # add value to ;lr param to make some broken UAs happy
> modparam("rr", "enable_full_lr", 1)
> #modparam("nathelper", "rtpproxy_disable_tout", 1)
>
> #modparam("nathelper", "received_avp", "$avp(i:42)")
>
> # ------------------------- request routing logic -------------------
>
> # main routing logic
>
> route{
> xdbg("\n\n---- Start -----\n\n");
> 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;
> };
>
> if (!method=="REGISTER"){
> record_route();
> };
>
> xdbg("\n\n---- Before Loose route ----\n\n");
> if (loose_route()){
> xdbg("\n\n---- Loose route ----\n\n");
> xdbg("\n\n-------- Stop Accounting --------\n\n");
> setflag(1); #Stop accounting
> route(1);
> exit;
> };
>
> if ((src_ip==192.168.1.5) ) {
>
> xdbg("\n\n---- From sip proxy server urmi -----\n\n");
> route(2);
> exit;
> };
>
>
> if (method=="REGISTER"){
> xdbg("\n\n---- Register ----\n\n");
> route(3);
> exit;
> };
> if (method=="INVITE")
> {
> xdbg("\n\n---- Invite ----\n\n");
> xdbg("\n\n-------- Start Accounting --------\n\n");
>
> if (nat_uac_test("19"))
> {
> xdbg("\n\n-------- Nated --------\n\n");
> fix_nated_contact();
> force_rport();
> };
>
> xdbg("\n\n---- Invite INSIDE.............----\n\n");
>
> if (!radius_www_authorize(""))
> {
> xdbg("\n\n---- Inside RADIUS ----\n\n");
> www_challenge("", "0");
> exit;
> };
>
> acc_rad_request("Start");
>
> xdbg("\n\n---- AFTER RADIUS ----\n\n");
>
>
> };
>
> # exit;
>
>
>
> ds_select_dst("1", "0");
> forward();
> exit;
> }
>
> # generic forward
> route[1]
> {
> if (!t_relay()) {
> sl_reply_error();
> };
> }
>
> route[2]
> {
> if (lookup("location"))
> {
> route(1);
> }else{
> sl_send_reply("404", "Not Found");
> xdbg("\n\n-------- To sip proxy ---urmi --------\n\n");
> ds_select_dst("3", "0");
> forward();
>
> };
> }
>
> #Register
> route[3]
> {
> if (nat_uac_test("18"))
> {
> xdbg("\n\n-------- Nated --------\n\n");
> fix_nated_register();
> force_rport();
> };
>
> if (!radius_www_authorize(""))
> {
> xdbg("\n\n--- Inside Route 3 ----\n\n");
> www_challenge("", "0");
> exit;
> };
>
> save("location");
> }
>
> Is there anything is missing please help me.
>
>
> Regards,
> Dilip Modi
>
>
>
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
More information about the Users
mailing list