[OpenSIPS-Users] $DLG_lifetime but in ms

Marcin Groszek marcin at voipplus.net
Tue Jan 23 15:01:22 UTC 2024


use math_ceil

1.4.5.  math_ceil(number, result_var)

Truncates a number, always towards +infinity. This means that ceil(3.2) 
= 4.0 and ceil(-2.9) = -2.0


1.10.3. $DLG_lifetime

Returns the duration (in seconds)...



On 1/23/2024 8:29 AM, trevor at webon.co.za wrote:
> On Tue, 2024-01-23 at 05:44 -0600, Marcin Groszek wrote:
>> $avp(dlg_lifetime) is a read/ write variable and you can change its
>> value before acc is written.
>>
>> To round up the duration using minimum billing block and increments
>> you
>> need to save them first in to a dialog.
>>
>> this is the logic I use (opensips 3.1)
>>
>>                                           if ($(DLG_lifetime{s.int}) >
>> $(dlg_val(minimum){s.int})) {
>> math_eval("$DLG_lifetime / $dlg_val(increment)", $avp(lifetime));
>> math_ceil("$avp(lifetime)", $avp(dlg_total_increment));
>> math_eval("$avp(dlg_total_increment) * $dlg_val(increment)",
>> $avp(dlg_lifetime));
>> math_ceil("$avp(dlg_lifetime)",$avp(dlg_lifetime));
>>                                           }
>>                                           else {
>>                                                   $avp(dlg_lifetime) =
>> $dlg_val(minimum);
>>                                           }
>>
>>
> Hi Marcin,
>
> This only works for billing increments bigger than "1" I am
> implementing per second billing and $DLG_lifetime is a rounded to the
> nearest second, if a call duration is at 1001ms $DLG_Lifetime will
> return 1 I need to round up I need to bill anything past 1000ms to 2
> seconds.
>
> Regards
> Trevor Steyn
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
-- 
Best Regards:
Marcin Groszek
Business Phone Service
https://www.voipplus.net




More information about the Users mailing list