thank you so much .. I finally made it work after I rebuild everything just to make sure my installation and compilation is clean ..
With regards to call routing, can you give me an example where we can communicate with other gatekeeper
thanks, ed
At 09:13 PM 4/26/2005, Matt Schulte wrote:
This particular config (I don't think?) won't log to a DB, additionally you need to setflag(1); somewhere in your config. We tried to set on "outbound" only originally and didn't have much luck so I set it near the top. To log to (my)sql you will additionally need to set another flag and setup similar mod params:
modparam("acc", "db_url", "mysql://ser:serro@blah.mysql.haha/dbname") # Note flag 2, you will need to setflag(1); AND setflag(2); modparam("acc", "db_flag", 2) #Note this one logs all failed calls from the invite response, I find it useful modparam("acc", "failed_transactions", 1) # In your route config use something like the following
# This is pretty much near the top, while ACC won't log reg's or INFO anyway, I just thought it'd be a little cleaner to have ... if (!method == "REGISTER" || !method == "INFO" ) { setflag(1); setflag(2); } ...
# Doing the above ensure everything gets tagged including BYE's. A good reason why your BYE's may not get # tagged is possibly because record-route could be relaying the call before the flag gets set, just a thought.. -----Original Message----- From: Edgardo O. Gonzales II [mailto:edgardo.g@pacific.net.ph] Sent: Tuesday, April 26, 2005 1:29 AM To: Kofi Obiri-Yeboah Cc: serusers@lists.iptel.org Subject: RE: [Serusers] ACC into mysql Importance: High
Thanks again for your help .. Here's my running ser.cfg Hope you can help me make my accounting work..
thanks, ed
================================================================ # ----------- global configuration parameters ------------------------
#debug=3 #fork=yes #log_stderror=no
#debug=7 #fork=no #log_stderror=yes
check_via=no dns=no rev_dns=no #port=5060 #children=4 fifo="/tmp/ser_fifo"
# ------------------ 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/auth.so" loadmodule "/usr/local/ser/lib/ser/modules/auth_db.so" loadmodule "/usr/local/ser/lib/ser/modules/acc.so"
# ----------------- setting module-specific parameters ---------------
# -- usrloc params --
modparam("usrloc", "db_mode", 1) modparam("usrloc", "db_url","mysql://ser:heslo@localhost/ser")
# -- auth params --
modparam("auth_db", "calculate_ha1", yes) modparam("auth_db", "password_column", "password")
# -- rr params --
modparam("rr", "enable_full_lr", 1)
# -- acc params --
modparam("acc", "log_level", 1) modparam("acc", "log_flag", 1) modparam("acc", "log_missed_flag", 3)
# ------------------------- request routing logic -------------------
alias=abc.com.ph
# main routing logic
route{ if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); break; }; if ( msg:len > max_len ) { sl_send_reply("513", "Message too big"); break; };
record_route(); if (loose_route()) { t_relay(); break; }; if (uri=~"abc.com.ph") { if (method=="REGISTER") { if (!www_authorize("abc.com.ph", "subscriber")) { www_challenge("abc.com.ph", "0"); break; }; save("location"); break; }; lookup("aliases"); if (!lookup("location")) { sl_send_reply("404", "Not Found"); break; }; }; if (!t_relay()) { sl_reply_error(); };
}
================================================================ At 10:55 AM 4/26/2005, Kofi Obiri-Yeboah wrote:
I am assuming your question is if the record_route() function is a parameter for accounting? If that was your question then the answer is no. Generally you invoke record_route() to ensure acl acceptance on a gateway (i.e. all calls through that gateway) -----Original Message----- From: Edgardo O. Gonzales II [ mailto:edgardo.g@pacific.net.ph] Sent: Monday, April 25, 2005 6:22 PM To: Kofi Obiri-Yeboah Cc: serusers@lists.iptel.org Subject: RE: [Serusers] ACC into mysql
Hi Kofi! got it.. thanks for immediate feedback .. however my accounting is not working. any parameters to be added to make it work.. I have the following info already on my ser.cfg modparam("acc", "log_level", 1) modparam("acc", "log_flag", 1) modparam("acc", "log_missed_flag", 3)
record_route(); -> its this a parameter for accounting thanks, ed
At 08:32 AM 4/26/2005, Kofi Obiri-Yeboah wrote:
I think the correct modparam statement should read as follows: modparam("acc", "db_url", "mysql://ser:heslo@localhost/ser")
please note that "my" is required in front of sql
and not: modparam("acc", "db_url", "sql://ser:heslo@localhost/ser")
-----Original Message----- From: serusers-bounces@iptel.org [ mailto:serusers-bounces@lists.iptel.org]On Behalf Of Edgardo O. Gonzales II Sent: Monday, April 25, 2005 5:20 PM To: serusers@lists.iptel.org Subject: Re: [Serusers] ACC into mysql
Hi all! Im also receiving this error message. Can somebody help us on how to make accounting work using mysql. thanks, ed At 06:01 AM 4/26/2005, Leon Sun wrote:
Hi, I am using 0.8.12 in Fedora 3. I tried to log account info into Mysql followed instruction from manual. I found, first, modparam("acc", "db_url", "sql://ser:heslo@localhost/ser") coudnlt work at all in ser.cfg. If I enabled in cfg file, it showed Starting ser: ERROR: bad config file (1 errors) If I disabled it, SER worked fine but I couldnt see any record in acc table. Would anyone suggest how to put call records into Mysql? Thank you.
# ----------- global configuration parameters ------------------------ #debug=3 # debug level (cmd line: -dddddddddd) #fork=yes #log_stderror=no # (cmd line: -E) /* Uncomment these lines to enter debugging mode debug=7 fork=no log_stderror=yes */ 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" # ------------------ module loading ---------------------------------- # Uncomment this if you want to use SQL database loadmodule "/usr/lib/ser/modules/mysql.so" loadmodule "/usr/lib/ser/modules/acc.so" loadmodule "/usr/lib/ser/modules/sl.so" loadmodule "/usr/lib/ser/modules/tm.so" loadmodule "/usr/lib/ser/modules/rr.so" loadmodule "/usr/lib/ser/modules/maxfwd.so" loadmodule "/usr/lib/ser/modules/usrloc.so" loadmodule "/usr/lib/ser/modules/registrar.so" # Uncomment this if you want digest authentication # mysql.so must be loaded ! loadmodule "/usr/lib/ser/modules/auth.so" loadmodule "/usr/lib/ser/modules/auth_db.so" # ----------------- setting module-specific parameters --------------- #modparam("acc", "db_url", "sql://ser:heslo@localhost/ser") # -- usrloc params -- #modparam("usrloc", "db_mode", 0) # Uncomment this if you want to use SQL database # for persistent storage and comment the previous line modparam("usrloc", "db_mode", 2) # -- 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") # -- rr params -- # add value to ;lr param to make some broken UAs happy modparam("rr", "enable_full_lr", 1) modparam("acc","log_level",1) modparam("acc","log_flag",1) # ------------------------- 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 > max_len ) { sl_send_reply("513", "Message too big"); break; }; # 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 record_route(); # loose-route processing if (loose_route()) { if (method=="BYE") { setflag(1); setflag(2); } t_relay(); break; }; #labeled all transaction for accounting setflag(1); setflag(2); if (method=="CANCEL"){ t_relay(); }; # (in case, it does not work, use the following command # with proper names and addresses in it) if (uri==myself) { # This for PSTN destination if (uri=~"^sip:1") { rewritehost("10.10.10.10"); forward(10.10.10.10,5060); break; } if (method=="REGISTER") { # Uncomment this if you want to use digest authentication if (!www_authorize("sip.mycommunications.com", "subscriber")) {
www_challenge("sip.mycommunications.com", "0"); break; }; save("location"); break; }; # native SIP destinations are handled using our USRLOC DB if (!lookup("location")) { sl_send_reply("404", "Not Found"); break; }; }; # forward to current uri now; use stateful forwarding; that # works reliably even if we forward from TCP to UDP if (!t_relay()) { sl_reply_error(); }; } _______________________________________________ Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
I have a problem just for a register sent by an UA Ser never answer specifically to this UA
Any idea?
82.146.104.8:5060 -> 82.146.123.252:5060 REGISTER sip:finalcut.be SIP/2.0..Via: SIP/2.0/UDP 192.168.1.10:5060;rport;branch=z9hG4bKCFBFD849F983424E89C236A4DECBCBF4..From : 3000 sip:3000@finalcut.be;tag=1511252229. .To: 3000 sip:3000@finalcut.be..Contact: "3000" sip:3000@192.168.1.10:5060..Call-ID: C85B8CAC95244D5498E6D657C8BFDC06@finalcut.be..CSeq: 25334 REGISTER..Expires: 1800.. Max-Forwards: 70..User-Agent: X-Lite release 1103m..Content-Length: 0....