[Serusers] ACC into mysql

Iqbal iqbal at gigo.co.uk
Wed Apr 27 23:42:33 CEST 2005


Hi

I presume u are referring to help when u said "I really need it so
badly" :-), if not google, if so, I'll try

 if (uri=~"test.com") {
                 if (method=="REGISTER") {
                        setflag(1);
                        setflag(2);

                         if (!www_authorize("test.com",
"subscriber")) {
                                 www_challenge("test.com", "0");
                                 break;
                         };

                         save("location");
                         break;
                 };

                 lookup("aliases");

                 if (!lookup("location")) {
                         sl_send_reply("404", "Not Found");
                         break;
                 };
         };
         if (!t_relay()) {
                 sl_reply_error();
         };

}

Now this is saying if method=REGISTER, setflag, now as far I know this
means that only if method=REGISTER then log....but what to log, acc
doesnt log REGISTER.

You need to setflag outside the if method=REGISTER loop, like you can
have a statement like

if (method=="INVITE") {

                        setflag(1);     # enable accounting for INVITE
messages
                };

of course you will miss BYE recrods, however change the above, if it
works then getting the rest should be okay

Iqbal


On 4/27/2005, "Edgardo O. Gonzales II" <edgardo.g at pacific.net.ph> wrote:

>
>Hi Again!
>
>Please help .. I really need it so badly ..
>
>thanks,
>ed
>
>
>Hi!
>
>my accounting is still not working though im not receiving any error
>message during my startup.
>Its nto logging my transaction on my db.
>
>Can you please check my ser.cfg file below .. Please put your comments ..
>
>thanks,
>ed
>
>======================
>
>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)
>modparam("acc", "db_url", "mysql://ser:heslo@localhost/ser")
>modparam("acc", "db_flag", 2)
>modparam("acc", "failed_transactions", 1)
>
>
># -------------------------  request routing logic -------------------
>
>alias=test.com
>
># 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=~"test.com") {
>                 if (method=="REGISTER") {
>                        setflag(1);
>                        setflag(2);
>
>                         if (!www_authorize("test.com", "subscriber")) {
>                                 www_challenge("test.com", "0");
>                                 break;
>                         };
>
>                         save("location");
>                         break;
>                 };
>
>                 lookup("aliases");
>
>                 if (!lookup("location")) {
>                         sl_send_reply("404", "Not Found");
>                         break;
>                 };
>         };
>         if (!t_relay()) {
>                 sl_reply_error();
>         };
>
>}
>
>
>
>======================================
>
>At 02:47 PM 4/26/2005, Barry Murphy wrote:
>>Mine works, just I dont get the BYE into mysql, even though I see it in ngrep.
>>
>>Secondly if i call my PBX (Asterisk) via ser and the asterisk hangs up
>>after giving the time, the call doesnt end on SER it remains connected.
>>
>>Stupid stupid thing :(
>>
>>Barry
>>
>>----- Original Message -----
>>From: <mailto:edgardo.g at pacific.net.ph>Edgardo O. Gonzales II
>>To: <mailto:kofi at radiocomplex.com>Kofi Obiri-Yeboah
>>Cc: <mailto:serusers at lists.iptel.org>serusers at lists.iptel.org
>>Sent: Tuesday, April 26, 2005 6:29 PM
>>Subject: RE: [Serusers] ACC into mysql
>>
>>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 at pacific.net.ph]
>>>Sent: Monday, April 25, 2005 6:22 PM
>>>To: Kofi Obiri-Yeboah
>>>Cc: serusers at 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 at iptel.org [ mailto:serusers-bounces at lists.iptel.org]On
>>>>Behalf Of Edgardo O. Gonzales II
>>>>Sent: Monday, April 25, 2005 5:20 PM
>>>>To: serusers at 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 at lists.iptel.org
>>>>>http://lists.iptel.org/mailman/listinfo/serusers
>>
>>----------
>>_______________________________________________
>>Serusers mailing list
>>serusers at lists.iptel.org
>>http://lists.iptel.org/mailman/listinfo/serusers
>
>




More information about the sr-users mailing list