Hello,

Which OpenSIPS version are you using ?
You could use get_timestamp [1] from the Core to get the current second and microsecond,
and set the two variables at INVITE time, and set them as db_extra [2] .

Then, at BYE time call again the get_timestamp function, store them in some AVPs and set those AVPs in [3]. This way you should get both the INVITE and BYE timestamps with microseconds precision in the CDR record.

[1] http://www.opensips.org/Documentation/Script-CoreFunctions-1-10#toc18
[2] http://www.opensips.org/html/docs/modules/1.10.x/acc.html#id295028
[3] http://www.opensips.org/html/docs/modules/1.10.x/acc.html#id295056

Best Regards,

Vlad Paiu
OpenSIPS Developer
http://www.opensips-solutions.com

On 12.04.2014 23:44, Maciej Bylica wrote:
Hello Ryan,

I am using dialog accounting, so each row is fully qualified cdr record, not only single transaction of a call. Couldn't i just use two extra db variables which will gather the $time inside INVITE {} and BYE {}?

Thanks,
Mac


2014-04-12 6:39 GMT+02:00 Ryan Mitchell <r...@tcl.net <mailto:r...@tcl.net>>:

    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 <mb...@gazeta.pl
    <mailto:mb...@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 <r...@tcl.net
        <mailto:r...@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
            <mb...@gazeta.pl <mailto:mb...@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@lists.opensips.org <mailto:Users@lists.opensips.org>
                http://lists.opensips.org/cgi-bin/mailman/listinfo/users




-- Ryan Mitchell <r...@tcl.net <mailto:r...@tcl.net>>
            Telecom Logic, LLC


            _______________________________________________
            Users mailing list
            Users@lists.opensips.org <mailto:Users@lists.opensips.org>
            http://lists.opensips.org/cgi-bin/mailman/listinfo/users



        _______________________________________________
        Users mailing list
        Users@lists.opensips.org <mailto:Users@lists.opensips.org>
        http://lists.opensips.org/cgi-bin/mailman/listinfo/users




-- Ryan Mitchell <r...@tcl.net <mailto:r...@tcl.net>>
    Telecom Logic, LLC


    _______________________________________________
    Users mailing list
    Users@lists.opensips.org <mailto:Users@lists.opensips.org>
    http://lists.opensips.org/cgi-bin/mailman/listinfo/users




_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to