Hello,

you could probably combine some string transformation to get the desired result.

If your requirements are related to accounting, the acc module might bei easier 
to use.

Cheers,

Henning

--
Henning Westerholt - https://skalatan.de/blog/
Kamailio services - https://skalatan.de/services
________________________________
From: sr-users <[email protected]> on behalf of Chaigneau, 
Nicolas <[email protected]>
Sent: Friday, September 25, 2020 6:34:30 PM
To: Kamailio (SER) - Users Mailing List <[email protected]>
Subject: Re: [SR-Users] Computing a time difference when handling a stateless 
SIP request


> >
> > --snip
> > I would like to compute a time difference (with microseconds
> > precision) when handling a stateless SIP request.
> > --snip
>
> Welcome!
>
> Take a look at:
> https://www.kamailio.org/wiki/cookbooks/5.4.x/pseudovariables#timeval
>
> You can get down to the microsecond level.


Thanks!

Looking at src\modules\pv\pv_time.c, it seems TV functions just use 
"gettimeofday".
I was looking for a time difference based on a monotonically increasing clock 
(to avoid possible NTP drifting imprecision).

I've looked at the "benchmark" module which seems to do something like that, 
but I don't think I can use it for what I need...



Anyhow, I have another question. Using the TV I've come up with the following.
This works, except that I don't know how to convert an int to a string padded 
with zeroes (e.g. 51 => "051").
Is there a transformation that allows to do that?


        $var(start_time) = $TV(Sn); # allows to cache $TV(s) and $TV(u)

        (...)

        $var(end_time) = $TV(Sn);
        $var(end_s) = $TV(sn);
        $var(end_us) = $TV(un);
        $var(diff_us) = $var(end_us) - $TV(u) + (1000000 * ($var(end_s) - 
$TV(s)));

        # convert this to ms (integer part) and us (fractional part)
        $var(diff_ms) = $var(diff_us) / 1000;
        $var(diff_us_f) = $var(diff_us) - (1000 * $var(diff_ms));

        $var(diff_ms_us) = $var(diff_ms) + "." + $var(diff_us_f); # need to 
format on 3 digits... can we do the equivalent of sprintf("%03u") somehow ?




This message contains information that may be privileged or confidential and is 
the property of the Capgemini Group. It is intended only for the person to whom 
it is addressed. If you are not the intended recipient, you are not authorized 
to read, print, retain, copy, disseminate, distribute, or use this message or 
any part thereof. If you receive this message in error, please notify the 
sender immediately and delete all copies of this message.


_______________________________________________
Kamailio (SER) - Users Mailing List
[email protected]
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
_______________________________________________
Kamailio (SER) - Users Mailing List
[email protected]
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to