[Serusers] session duration accounting

Ryan Pagquil rpagquil at philonline.com
Thu Jul 7 10:46:19 CEST 2005


Hi,

    I got a copy of that document. Please guide me in my learning 
process, I will post my questions if i have any...

Thank you very much everybody,

Ryan
Java Rockx wrote:

>Ryan,
>
>I'd also recommend getting a copy of the Getting Started document from
>http://onsip.org/ because we documented many aspects of using SER.
>
>For the accounting you basically need to 
>
>1) enable the mysql module (see the onsip.org docs for this)
>
>2) tell ser to account for any particular message. this is done by
>setting a flag, usually with a call to setflag(1)
>
>So in general you need to do this in you ser.cfg
>
>
>modparam("acc", "db_url", "mysql://ser:heslo@192.168.2.10/ser")
>modparam("acc", "db_flag", 1)
>modparam("acc", "db_missed_flag", 1)
>modparam("acc", "log_fmt", "cdfimorstup")
>modparam("acc", "log_level", 1)
>modparam("acc", "failed_transactions", 1)
>modparam("acc", "report_cancels", 1)
>modparam("acc", "report_ack", 0)
>
>route {
>
>        # sanity checks
>
>        if (method=="INVITE" || method=="BYE" || method=="CANCEL") {
>                # enable accounting for INVITE and BYE and CANCEL messages.
>                setflag(1);
>        };
>
>        # other ususal stuff
>}
>
>
>Regards,
>Paul
>
>On 7/6/05, Ryan Pagquil <rpagquil at philonline.com> wrote:
>  
>
>>Hi Iqbal,
>>
>>       Ah ok, those queries will only generate the duration of INVITE to
>>BYE methods data from my database. But how can I get INVITE and BYE
>>accounted in my ser.cfg? I have this ser.cfg that I made but it is not
>>running, it gaves me an error (core dumped). Well just want to consult
>>you on how can I make this ser.cfg to work and account for INVITE's and
>>BYE's. Like just I said, I'm a very newbie with ser =).
>>
>>This is the config file:
>>
>>#debug=7
>>fork=no
>>log_stderror=yes
>>
>>check_via=no
>>dns=no
>>port=5060
>>listen=10.0.1.5
>>fifo_db_url="mysql://ser:heslo@localhost/ser"
>>fifo="/tmp/ser_fifo"
>>
>>#load needed modules
>>
>>loadmodule "/usr/local/lib/ser/modules/mysql.so"
>>loadmodule "/usr/local/lib/ser/modules/sl.so"
>>loadmodule "/usr/local/lib/ser/modules/tm.so"
>>loadmodule "/usr/local/lib/ser/modules/acc.so"
>>loadmodule "/usr/local/lib/ser/modules/rr.so"
>>loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
>>loadmodule "/usr/local/lib/ser/modules/registrar.so"
>>loadmodule "/usr/local/lib/ser/modules/auth.so"
>>loadmodule "/usr/local/lib/ser/modules/auth_db.so"
>>loadmodule "/usr/local/lib/ser/modules/usrloc.so"
>>
>>
>>#parameter settings
>>
>>#usr module param
>>modparam("usrloc", "db_mode", 1)
>>
>>#acc module param
>>modparam("acc", "log_level", 1)
>>modparam("acc", "log_flag", 1)
>>modparam("acc", "log_fmt", "mpoft")
>>modparam("acc", "report_ack", 1)
>>modparam("acc", "db_url", "mysql://ser:heslo@localhost/ser")
>>modparam("acc", "db_flag", 2)
>>modparam("acc", "db_missed_flag", 3)
>>
>>#auth_db param mysql authentication active
>>modparam("auth_db", "calculate_ha1", yes)
>>modparam("auth_db", "password_column", "password")
>>
>>#rr module param
>>modparam("rr", "enable_full_lr", 1)
>>
>>####routing logic####
>>
>>route{
>>
>>                if (!mf_process_maxfwd_header("10")) {
>>                        sl_send_reply("483","To many HOPS");
>>                        break;
>>                };
>>
>>                if (msg:len >= max_len ) {
>>                        sl_send_reply("513","Message too big");
>>                        break;
>>                };
>>
>>                if (uri==myself) {
>>
>>                        if (method=="REGISTER") {
>>
>>                        if (!www_authorize("server4all", "subscriber")) {
>>                                www_challenge("server4all", "1");
>>                                break;
>>                        };
>>
>>                save("location");
>>                break;
>>                };
>>
>>                if (method=="INVITE") record_route();
>>                setflag(1);
>>                };
>>
>>                if (!t_relay()) {
>>                sl_reply_error();
>>        };
>>}
>>
>>Thanks a lot,
>>
>>
>>Iqbal wrote:
>>
>>    
>>
>>>put those queries in mysql and it should lookup your acc table
>>>
>>>Iqbal
>>>
>>>Ryan Pagquil wrote:
>>>
>>>      
>>>
>>>>Hi,
>>>>      So the only concept on how will I account for duration is to
>>>>account for INVITE and BYE methods...BTW, where will I put those
>>>>queries? Sorry, I'm in a stage of discovering SER.=)
>>>>
>>>>Thanks,
>>>>
>>>>
>>>>
>>>>Java Rockx wrote:
>>>>
>>>>        
>>>>
>>>>>Ryan,
>>>>>
>>>>>This MySQL query should do the trick. It joins the acc table to
>>>>>itself. One side grabs INVITE messages and the other side grabs BYE
>>>>>messages.
>>>>>
>>>>>NOTE: This will not work if you account for re-INVITE messages because
>>>>>you will then have multple INVITEs for the same call.
>>>>>
>>>>>Regards,
>>>>>Paul
>>>>>
>>>>>SELECT t1.from_uri as orig_number,  t1.to_uri as term_number,
>>>>>TIMEDIFF(t2.time, t1.time) as duration,  t1.timestamp as calldate
>>>>>FROM acc t1, acc t2  WHERE t1.sip_callid = t2.sip_callid AND
>>>>>((t1.fromtag = t2.fromtag and t1.totag = t2.totag) OR
>>>>>(t1.fromtag = t2.totag and t1.totag = t2.fromtag)) AND
>>>>>t1.sip_method='INVITE' AND
>>>>>t2.sip_method='BYE'
>>>>>
>>>>>On 7/4/05, Iqbal <iqbal at gigo.co.uk> wrote:
>>>>>
>>>>>
>>>>>          
>>>>>
>>>>>>its records the INVITE and BYE, so fro there you can work out the
>>>>>>session duration
>>>>>>
>>>>>>Iqbal
>>>>>>
>>>>>>Ryan Pagquil wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>            
>>>>>>
>>>>>>>guys,
>>>>>>>     just want to ask if i can make ser to account session durations
>>>>>>>for billing purposes?
>>>>>>>
>>>>>>>Thanks,
>>>>>>>
>>>>>>>
>>>>>>>              
>>>>>>>
>>>>>>_______________________________________________
>>>>>>Serusers mailing list
>>>>>>serusers at lists.iptel.org
>>>>>>http://lists.iptel.org/mailman/listinfo/serusers
>>>>>>            
>>>>>>
>>--
>>Ryan Pagquil
>>Infodyne Inc. - PhilOnline.com
>>3603 Antel Global Corporate Center
>>Doña Julia Vargas Ave.
>>Ortigas Center Pasig City
>>Tel: 687-0715
>>Web: www.philonline.com
>>    
>>
-- 
Ryan Pagquil
Infodyne Inc. - PhilOnline.com
3603 Antel Global Corporate Center
Doña Julia Vargas Ave.
Ortigas Center Pasig City
Tel: 687-0715
Web: www.philonline.com




More information about the sr-users mailing list