Щоб вирахувати різницю між двома часами у номерному плані Астеріск, спочатку необхідно конвертувати час у формат Лінукс епохи. Це можна зробити за допомогою функції Астеріск STRFTIME. Рядок у номерному плані, що зконвертує час у формат Лінукс епохи:
Set(time=${STRFTIME(${EPOCH},,%s)})
У наступному прикладі маємо дві змінні : starttime
та endtime
, задані з інтервалом часу 10 секунд. Далі вираховується різниця між часами й зберігається у змінну diff. У даному прикладі змінна diff
буде завжди дорівнювати 10:
exten => 1000,1,Set(starttime=${STRFTIME(${EPOCH},,%s)})
same => n,Wait(10)
same => n,Set(endtime=${STRFTIME(${EPOCH},,%s)})
same => n,Set(diff=$[${endtime} -${starttime}])
same => n,Hangup()