[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