Hello, ad1) I am just wondering why get_timestamp must be fired before has_totag part of the script? I've found some threads on discussion group describing the same thing, but without explaination. ad2) i have set following rule:
if (is_method("INVITE") && t_check_status("200") ) { xlog("L_INFO","[INFO] Inside.... okay -> $var(okay)"); get_timestamp($avp(sec),$avp(usec)); } then i think reINVITE/OK/ transaction will generate new timestamps, which is wrong. Is there any dialog variable that could be checked and then set inside the { } to last more than just one transaction. Possible usage inside onreply_route... if (is_method("INVITE") && (t_check_status("200")) && ($var(okay)==NULL)) { $var(okay)=1; xlog("L_INFO","[INFO] Inside .... okay -> $var(okay)"); get_timestamp($avp(sec),$avp(usec)); } Thanks Mac. 2014-04-15 17:04 GMT+02:00 Maciej Bylica <mb...@gazeta.pl>: > Hello, > > It works, but: > 1) get_timestamp doesnt work inside has_totag section > if (has_totag()) { > if (loose_route()) { > if (is_method("BYE")) { > get_timestamp($avp(secbye),$avp(usecbye)); > ..... > ..... > but works if called before that section > > 2) because i need to count duration, i should rather place it inside > onreply_route > if (t_check_status("200")) { > get_timestamp($avp(sec),$avp(usec)); > } > but the question is how it will behave in case of reINVITE is triggered > from the originating side. > I think $avp(sec),$avp(usec) will be overwritten. > So maybe wise idea will be to set some flag in first 200 message and make > another statement like if ((t_check_status("200")) && !(isflagset(XX))) > > What do you think about p1 and p2? > > Thanks > Mac > > > > 2014-04-14 12:56 GMT+02:00 Maciej Bylica <mb...@gazeta.pl>: > > Hi Vlad, >> >> Thanks for reply. >> I am using OpenSIPS (1.9.1-notls (x86_64/linux)) so get_timestamp is >> available there. >> Let me check this. >> >> Regards, >> Mac >> >> >> 2014-04-14 10:57 GMT+02:00 Vlad Paiu <vladp...@opensips.org>: >> >> 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 Developerhttp://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>: >>> >>>> 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>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>: >>>>> >>>>>> 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>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 >>>>>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Ryan Mitchell <r...@tcl.net> >>>>>> Telecom Logic, LLC >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> 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 >>>>> >>>>> >>>> >>>> >>>> -- >>>> Ryan Mitchell <r...@tcl.net> >>>> Telecom Logic, LLC >>>> >>>> >>>> _______________________________________________ >>>> Users mailing list >>>> Users@lists.opensips.org >>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users >>>> >>>> >>> >>> >>> _______________________________________________ >>> Users mailing >>> listUsers@lists.opensips.orghttp://lists.opensips.org/cgi-bin/mailman/listinfo/users >>> >>> >>> >> >
_______________________________________________ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users