On Tue, 2008-08-12 at 16:39 +0200, Klaus Darilion wrote:> Hi!
>
> I wonder how Asterisk measures the call duration. The CDR files have a
> accuracy of seconds. Thus, what happens if the call duration is 0.3
> seconds. What will Asterisk report? 0 seconds? 1 second?
>
> What logic will be used by Asterisk: floor? ceil? round?
>
> thanks
> klaus
Klaus--
The duration/billsec fields are stored as simple integers.
A simple integer subtraction is performed for both; duration
is end time minus start time; billsec is end time minus answer time.
Operations are done on system time, in seconds. If the .3 sec spans
a system second increment, then the time will be 1, if not, then the
time will be 0. It would seem to me the probability of .3 sec spanning
a clock tick would be .3...
CDR's do, internally, store finer increments than seconds. (struct
timeval),
but the interface yields plain seconds. I just checked the code, and
sure enough, just the seconds field is used. So, truncation seems to be
the rounding method.
In general, we never fussed much about the microseconds, because on
most interfaces, the slop in how much time it took to make a connection
made the precision laughable.
murf
--
Steve Murphy
Software Developer
Digium
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3227 bytes
Desc: not available
Url :
http://lists.digium.com/pipermail/asterisk-users/attachments/20080812/84c97cd8/attachment.bin