[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