[OpenSIPS-Users] Miliseconds precision for accounting module

Ryan Mitchell rjm at tcl.net
Sat Apr 12 06:39:33 CEST 2014


Hello Mac,

Each row in the acc table is for a transaction.  To make a proper CDR out
of the data, you have to combine rows to find the start and end of the
call.  That can be harder than it sounds, especially with forking
(parallel, or the more common case of serial forking when you are LCR
routing or simply sending calls to alt destinations after a timeout).  I
wrote scripts that implement a simple dialog state machine to make sense of
all the distinct legs of a call, though there should be an easier way with
the auto-cdr / multi call-legs accounting feature of the acc module (anyone
comment on this please?).

The time field in the acc table will be the timestamp of the response for
the given transaction.  If you assign an extra field for another timestamp,
it will depend on where you assign that var in your script.  In my case I
assign it in the main routing section so the timestamp indicates the start
of the transaction.

best regards,
Ryan



On Fri, Apr 11, 2014 at 10:06 AM, Maciej Bylica <mbsip at gazeta.pl> wrote:

> Ryan,
>
> One more question.
> Currently i have some db extra attrs setup. My acc table looks like
> following:
>
> +------------+------------------+------+-----+---------+----------------+
>
> | Field      | Type             | Null | Key | Default | Extra          |
>
> +------------+------------------+------+-----+---------+----------------+
>
> | id         | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
>
> | method     | char(16)         | NO   |     |         |                |
>
> | from_tag   | char(64)         | NO   |     |         |                |
>
> | to_tag     | char(64)         | NO   |     |         |                |
>
> | callid     | char(64)         | NO   | MUL |         |                |
>
> | sip_code   | char(3)          | NO   |     |         |                |
>
> | sip_reason | char(32)         | NO   |     |         |                |
>
> | time       | datetime         | NO   |     | NULL    |                |
>
> | duration   | int(11) unsigned | NO   |     | 0       |                |
>
> | setuptime  | int(11) unsigned | NO   |     | 0       |                |
>
> | SourceAddr | char(30)         | NO   |     | NULL    |                |
>
> | DestAddr   | char(30)         | NO   |     | NULL    |                |
>
> | Anum       | char(30)         | NO   |     | NULL    |                |
>
> | Bnum_rU    | char(30)         | NO   |     | NULL    |                |
>
> | Bnum_tU    | char(30)         | NO   |     | NULL    |                |
>
> | created    | datetime         | YES  |     | NULL    |                |
>
> +------------+------------------+------+-----+---------+----------------+
>
>
> modparam("acc", "db_extra", "SourceAddr=$si; DestAddr=$rd; Anum=$fU;
> Bnum_rU=$rU; Bnum_tU=$tU")
>
>
> Now using additional data like $time will give me the exact moment the
> call is ended, nothing more, am i right?
>
> To have detailed call duration i need to know exact answer and disconnect
> timestamps.
>
>
> Btw: i am using OpenSIPS (1.9.1-notls (x86_64/linux))
>
>
> Thanks,
>
> Mac
>
>
> 2014-04-10 22:03 GMT+02:00 Ryan Mitchell <rjm at tcl.net>:
>
>> Using db_extra to stuff custom data into your acc table, use the $time
>> var with a format such as "%s.%N" or similar.
>>
>> Or, as you suggested, do it on the database level with a trigger or
>> auto-update column.
>>
>>
>>
>> On Thu, Apr 10, 2014 at 10:01 AM, Maciej Bylica <mbsip at gazeta.pl> wrote:
>>
>>> Hello
>>>
>>> I just want to know how to achieve miliseconds precision for accounting
>>> module.
>>> This is quite important while trying to sum up total traffic duration
>>> with the accuracy of hundred of ms.
>>>
>>> As i see there is no rounding feature implemented as well, but heaving
>>> ms precision it could be done directly on DB level.
>>>
>>> Could somebody give me a hand.
>>>
>>> Thanks in advanced
>>> Mac
>>>
>>>
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.opensips.org
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>>
>>>
>>
>>
>> --
>> Ryan Mitchell <rjm at tcl.net>
>> Telecom Logic, LLC
>>
>>
>> _______________________________________________
>> Users mailing list
>> Users at lists.opensips.org
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>


-- 
Ryan Mitchell <rjm at tcl.net>
Telecom Logic, LLC
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20140411/f14c1838/attachment-0001.htm>


More information about the Users mailing list