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, [email protected] 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 [email protected] http://lists.opensips.org/cgi-bin/mailman/listinfo/users
-- Best Regards: Marcin Groszek Business Phone Service https://www.voipplus.net _______________________________________________ Users mailing list [email protected] http://lists.opensips.org/cgi-bin/mailman/listinfo/users
